This commit is contained in:
手瓜一十雪 2024-10-31 19:32:10 +08:00
parent 7b1ac224f6
commit 36c2c567b7
2 changed files with 44 additions and 24 deletions

View File

@ -822,6 +822,8 @@ export interface RawMessage {
elements: MessageElement[]; elements: MessageElement[];
sourceType: MsgSourceType; sourceType: MsgSourceType;
isOnlineMsg: boolean;
} }
export interface QueryMsgsParams { export interface QueryMsgsParams {
chatInfo: Peer; chatInfo: Peer;

View File

@ -311,16 +311,10 @@ export class NapCatOneBot11Adapter {
} }
}; };
const msgIdSend = new LRUCache<string, boolean>(100); //const msgIdSend = new LRUCache<string, boolean>(100);
const recallMsgs = new LRUCache<string, boolean>(100); const recallMsgs = new LRUCache<string, boolean>(100);
msgListener.onMsgInfoListUpdate = async msgList => { msgListener.onAddSendMsg = async msg => {
this.emitRecallMsg(msgList, recallMsgs) if (msg.sendStatus == SendStatusType.KSEND_STATUS_SUCCESS) {
.catch(e => this.context.logger.logError.bind(this.context.logger)('处理消息失败', e));
for (const msg of msgList.filter(e => e.senderUin == this.core.selfInfo.uin)) {
if (msg.sendStatus == SendStatusType.KSEND_STATUS_SUCCESS && !msgIdSend.get(msg.msgId)) {
msgIdSend.put(msg.msgId, true);
// 完成后再post
this.apis.MsgApi.parseMessage(msg) this.apis.MsgApi.parseMessage(msg)
.then((ob11Msg) => { .then((ob11Msg) => {
if (!ob11Msg) return; if (!ob11Msg) return;
@ -337,7 +331,31 @@ export class NapCatOneBot11Adapter {
} }
}); });
} }
} };
msgListener.onMsgInfoListUpdate = async msgList => {
this.emitRecallMsg(msgList, recallMsgs)
.catch(e => this.context.logger.logError.bind(this.context.logger)('处理消息失败', e));
// for (const msg of msgList.filter(e => e.senderUin == this.core.selfInfo.uin)) {
// if (msg.sendStatus == SendStatusType.KSEND_STATUS_SUCCESS && !msgIdSend.get(msg.msgId)) {
// msgIdSend.put(msg.msgId, true);
// // 完成后再post
// this.apis.MsgApi.parseMessage(msg)
// .then((ob11Msg) => {
// if (!ob11Msg) return;
// ob11Msg.target_id = parseInt(msg.peerUin);
// if (this.configLoader.configData.reportSelfMessage) {
// msg.id = MessageUnique.createUniqueMsgId({
// chatType: msg.chatType,
// peerUid: msg.peerUid,
// guildId: '',
// }, msg.msgId);
// this.emitMsg(msg);
// } else {
// // logOB11Message(this.core, ob11Msg);
// }
// });
// }
// }
}; };
this.context.session.getMsgService().addKernelMsgListener( this.context.session.getMsgService().addKernelMsgListener(
@ -523,7 +541,7 @@ export class NapCatOneBot11Adapter {
); );
} }
private async emitMsg(message: RawMessage) { private async emitMsg(message: RawMessage, parseEvent: boolean = true) {
const { debug, reportSelfMessage, messagePostFormat } = this.configLoader.configData; const { debug, reportSelfMessage, messagePostFormat } = this.configLoader.configData;
this.context.logger.logDebug('收到新消息 RawMessage', message); this.context.logger.logDebug('收到新消息 RawMessage', message);
this.apis.MsgApi.parseMessage(message, messagePostFormat).then((ob11Msg) => { this.apis.MsgApi.parseMessage(message, messagePostFormat).then((ob11Msg) => {