This commit is contained in:
手瓜一十雪
2024-09-29 12:53:18 +08:00
parent fe4427c076
commit bfc339c58d

View File

@@ -46,8 +46,7 @@ export class GoCQHTTPGetForwardMsgAction extends BaseAction<Payload, any> {
for (const msgdata of message.message) { for (const msgdata of message.message) {
if ((msgdata as OB11MessageData).type === OB11MessageDataType.forward) { if ((msgdata as OB11MessageData).type === OB11MessageDataType.forward) {
const newNode = this.createTemplateNode(message); const newNode = this.createTemplateNode(message);
console.log(msgdata); newNode.data.message = await this.parseForward((msgdata as OB11MessageForward).data.content);
newNode.data.content = await this.parseForward((msgdata as OB11MessageForward).data.content);
templateNode.data.message.push(newNode); templateNode.data.message.push(newNode);
} else { } else {
@@ -71,33 +70,23 @@ export class GoCQHTTPGetForwardMsgAction extends BaseAction<Payload, any> {
if (!rootMsg) { if (!rootMsg) {
throw new Error('msg not found'); throw new Error('msg not found');
} }
const data = await this.core.apis.MsgApi.getMsgsByMsgId(rootMsg.Peer, [rootMsg.MsgId]);
const data = await this.core.apis.MsgApi.getMultiMsg(rootMsg.Peer, rootMsg.MsgId, rootMsg.MsgId);
if (!data || data.result !== 0) { if (!data || data.result !== 0) {
throw new Error('找不到相关的聊天记录' + data?.errMsg); throw new Error('找不到相关的聊天记录' + data?.errMsg);
} }
const msgList = data.msgList; const singleMsg = data.msgList[0];
const messages = (await Promise.all(msgList.map(async msg => { const resMsg = await this.obContext.apis.MsgApi.parseMessage(singleMsg);
const resMsg = await this.obContext.apis.MsgApi.parseMessage(msg); if (!resMsg) {
if (!resMsg) return null; throw new Error('找不到相关的聊天记录');
resMsg.message_id = MessageUnique.createUniqueMsgId({ }
guildId: '',
chatType: msg.chatType,
peerUid: msg.peerUid,
}, msg.msgId)!;
return resMsg;
}))).filter(msg => !!msg);
if (this.obContext.configLoader.configData.messagePostFormat === 'array') { if (this.obContext.configLoader.configData.messagePostFormat === 'array') {
return { message: await this.parseForward(messages) }; //提取
let realmsg = ((await this.parseForward([resMsg]))[0].data.message as OB11MessageNode[])[0].data.message;
return { message: realmsg };
} }
messages.forEach(msg => { return { message: resMsg };
(msg as OB11ForwardMessage).content = msg.message;
delete (msg as any).message;
});
return { messages };
} }
} }