diff --git a/src/onebot/action/go-cqhttp/GetGroupMsgHistory.ts b/src/onebot/action/go-cqhttp/GetGroupMsgHistory.ts index 7be377e6..2f1fbd2c 100644 --- a/src/onebot/action/go-cqhttp/GetGroupMsgHistory.ts +++ b/src/onebot/action/go-cqhttp/GetGroupMsgHistory.ts @@ -26,7 +26,7 @@ export default class GoCQHTTPGetGroupMsgHistory extends BaseAction { + async _handle(payload: Payload, adapter: string): Promise { //处理参数 const isReverseOrder = typeof payload.reverseOrder === 'string' ? payload.reverseOrder === 'true' : !!payload.reverseOrder; const MsgCount = +(payload.count ?? 20); @@ -43,9 +43,11 @@ export default class GoCQHTTPGetGroupMsgHistory extends BaseAction { msg.id = MessageUnique.createUniqueMsgId({ guildId: '', chatType: msg.chatType, peerUid: msg.peerUid }, msg.msgId); })); + let network = Object.values(this.obContext.configLoader.configData.network) as Array; //烘焙消息 + let msgFormat = network.flat().find(e => e.name === adapter)?.messagePostFormat ?? 'array'; const ob11MsgList = (await Promise.all( - msgList.map(msg => this.obContext.apis.MsgApi.parseMessage(msg))) + msgList.map(msg => this.obContext.apis.MsgApi.parseMessage(msg, msgFormat))) ).filter(msg => msg !== undefined); return { 'messages': ob11MsgList }; } diff --git a/src/onebot/action/group/GetGroupEssence.ts b/src/onebot/action/group/GetGroupEssence.ts index 9e809ab4..602c8325 100644 --- a/src/onebot/action/group/GetGroupEssence.ts +++ b/src/onebot/action/group/GetGroupEssence.ts @@ -30,7 +30,9 @@ export class GetGroupEssence extends BaseAction { }; } - async _handle(payload: Payload) { + async _handle(payload: Payload, adapter: string) { + let network = Object.values(this.obContext.configLoader.configData.network) as Array; + let msgFormat = network.flat().find(e => e.name === adapter)?.messagePostFormat ?? 'array'; const msglist = (await this.core.apis.WebApi.getGroupEssenceMsgAll(payload.group_id.toString())).flatMap((e) => e.data.msg_list); if (!msglist) { throw new Error('获取失败'); @@ -51,7 +53,7 @@ export class GetGroupEssence extends BaseAction { operator_nick: msg.add_digest_nick, message_id: message_id, operator_time: msg.add_digest_time, - content: (await this.obContext.apis.MsgApi.parseMessage(rawMessage))?.message + content: (await this.obContext.apis.MsgApi.parseMessage(rawMessage, msgFormat))?.message }; } const msgTempData = JSON.stringify({ diff --git a/src/onebot/action/msg/GetMsg.ts b/src/onebot/action/msg/GetMsg.ts index 851baf98..c32f9c5f 100644 --- a/src/onebot/action/msg/GetMsg.ts +++ b/src/onebot/action/msg/GetMsg.ts @@ -22,8 +22,10 @@ class GetMsg extends BaseAction { actionName = ActionName.GetMsg; payloadSchema = SchemaData; - async _handle(payload: Payload) { + async _handle(payload: Payload, adapter: string) { // log("history msg ids", Object.keys(msgHistory)); + let network = Object.values(this.obContext.configLoader.configData.network) as Array; + let msgFormat = network.flat().find(e => e.name === adapter)?.messagePostFormat ?? 'array'; if (!payload.message_id) { throw Error('参数message_id不能为空'); } @@ -40,7 +42,7 @@ class GetMsg extends BaseAction { } else { msg = (await this.core.apis.MsgApi.getMsgsByMsgId(peer, [msgIdWithPeer?.MsgId || payload.message_id.toString()])).msgList[0]; } - const retMsg = await this.obContext.apis.MsgApi.parseMessage(msg); + const retMsg = await this.obContext.apis.MsgApi.parseMessage(msg, msgFormat); if (!retMsg) throw Error('消息为空'); try { retMsg.message_id = MessageUnique.createUniqueMsgId(peer, msg.msgId)!; diff --git a/src/onebot/action/user/GetRecentContact.ts b/src/onebot/action/user/GetRecentContact.ts index 9a9487fe..706a97ec 100644 --- a/src/onebot/action/user/GetRecentContact.ts +++ b/src/onebot/action/user/GetRecentContact.ts @@ -15,13 +15,16 @@ export default class GetRecentContact extends BaseAction { actionName = ActionName.GetRecentContact; payloadSchema = SchemaData; - async _handle(payload: Payload) { + async _handle(payload: Payload, adapter: string) { const ret = await this.core.apis.UserApi.getRecentContactListSnapShot(+(payload.count || 10)); + let network = Object.values(this.obContext.configLoader.configData.network) as Array; + //烘焙消息 + let msgFormat = network.flat().find(e => e.name === adapter)?.messagePostFormat ?? 'array'; return await Promise.all(ret.info.changedList.map(async (t) => { const FastMsg = await this.core.apis.MsgApi.getMsgsByMsgId({ chatType: t.chatType, peerUid: t.peerUid }, [t.msgId]); if (FastMsg.msgList.length > 0) { //扩展ret.info.changedList - const lastestMsg = await this.obContext.apis.MsgApi.parseMessage(FastMsg.msgList[0]); + const lastestMsg = await this.obContext.apis.MsgApi.parseMessage(FastMsg.msgList[0], msgFormat); return { lastestMsg: lastestMsg, peerUin: t.peerUin,