fix: cq code auto escape

fix: get groups no cache
This commit is contained in:
linyuchen
2024-04-16 20:28:05 +08:00
parent f84d0db811
commit 4c09147fd1
53 changed files with 120 additions and 69 deletions

View File

@@ -16,8 +16,8 @@ class GetGroupList extends BaseAction<Payload, OB11Group[]> {
protected async _handle(payload: Payload) {
let groupList: Group[] = Array.from(groups.values());
if (groupList.length === 0) {
groupList = await NTQQGroupApi.getGroups(payload.no_cache === true);
if (groupList.length === 0 || payload.no_cache === true) {
groupList = await NTQQGroupApi.getGroups(true);
// log('get groups', groups);
}
return OB11Constructor.groups(groupList);

View File

@@ -96,6 +96,8 @@ function initActionMap() {
const actionMap = new Map<string, BaseAction<any, any>>();
for (const action of actionHandlers) {
actionMap.set(action.actionName, action);
actionMap.set(action.actionName + '_async', action);
actionMap.set(action.actionName + '_rate_limited', action);
}
return actionMap;

View File

@@ -73,15 +73,15 @@ export interface ReturnDataType {
export function convertMessage2List(message: OB11MessageMixType, autoEscape = false) {
if (typeof message === 'string') {
if (!autoEscape) {
message = decodeCQCode(message.toString());
} else {
if (autoEscape === true) {
message = [{
type: OB11MessageDataType.text,
data: {
text: message
}
}];
} else {
message = decodeCQCode(message.toString());
}
} else if (!Array.isArray(message)) {
message = [message];
@@ -210,6 +210,14 @@ export async function createSendElements(messageData: OB11MessageData[], group:
sendElements.push(SendMsgElementConstructor.ark(sendMsg.data.data));
}
break;
case OB11MessageDataType.dice:{
const resultId = sendMsg.data?.result;
sendElements.push(SendMsgElementConstructor.dice(resultId));
}break;
case OB11MessageDataType.RPS:{
const resultId = sendMsg.data?.result;
sendElements.push(SendMsgElementConstructor.rps(resultId));
}break;
}
}
@@ -321,7 +329,7 @@ export class SendMsg extends BaseAction<OB11PostSendMsg, ReturnDataType> {
} else {
throw ('发送消息参数错误, 请指定group_id或user_id');
}
const messages = convertMessage2List(payload.message);
const messages = convertMessage2List(payload.message, payload.auto_escape);
if (this.getSpecialMsgNum(payload, OB11MessageDataType.node)) {
try {
const returnMsg = await this.handleForwardNode(peer, messages as OB11MessageNode[], group);