diff --git a/src/core/apis/msg.ts b/src/core/apis/msg.ts index 0cb8774a..03b2fbb2 100644 --- a/src/core/apis/msg.ts +++ b/src/core/apis/msg.ts @@ -93,7 +93,22 @@ export class NTQQMsgApi { async getMsgsBySeqAndCount(peer: Peer, seq: string, count: number, desc: boolean, z: boolean) { return await this.context.session.getMsgService().getMsgsBySeqAndCount(peer, seq, count, desc, z); } - + async getMsgExBySeq(peer: Peer, msgSeq: string) { + const DateNow = Math.floor(Date.now() / 1000); + const filterMsgFromTime = (DateNow - 300).toString(); + const filterMsgToTime = DateNow.toString(); + const ret = await this.context.session.getMsgService().queryMsgsWithFilterEx('0', '0', msgSeq, { + chatInfo: peer,//此处为Peer 为关键查询参数 没有啥也没有 by mlik iowa + filterMsgType: [], + filterSendersUid: [], + filterMsgToTime: filterMsgToTime, + filterMsgFromTime: filterMsgFromTime, + isReverseOrder: false, + isIncludeCurrent: true, + pageLimit: 100, + }); + return ret; + } async setMsgRead(peer: Peer) { return this.context.session.getMsgService().setMsgRead(peer); } @@ -102,18 +117,18 @@ export class NTQQMsgApi { const data = await this.core.eventWrapper.CallNormalEvent< (GroupCode: string, params: GetFileListParam) => Promise, (groupFileListResult: onGroupFileInfoUpdateParamType) => void - >( - 'NodeIKernelRichMediaService/getGroupFileList', - 'NodeIKernelMsgListener/onGroupFileInfoUpdate', - 1, - 5000, - (groupFileListResult: onGroupFileInfoUpdateParamType) => { + >( + 'NodeIKernelRichMediaService/getGroupFileList', + 'NodeIKernelMsgListener/onGroupFileInfoUpdate', + 1, + 5000, + (groupFileListResult: onGroupFileInfoUpdateParamType) => { //Developer Mlikiowa Todo: 此处有问题 无法判断是否成功 - return true; - }, - GroupCode, - params, - ); + return true; + }, + GroupCode, + params, + ); return data[1].item; } @@ -164,24 +179,24 @@ export class NTQQMsgApi { const data = await this.core.eventWrapper.CallNormalEvent< (msgId: string, peer: Peer, msgElements: SendMessageElement[], map: Map) => Promise, (msgList: RawMessage[]) => void - >( - 'NodeIKernelMsgService/sendMsg', - 'NodeIKernelMsgListener/onMsgInfoListUpdate', - 1, - timeout, - (msgRecords: RawMessage[]) => { - for (const msgRecord of msgRecords) { - if (msgRecord.guildId === msgId && msgRecord.sendStatus === SendStatusType.KSEND_STATUS_SUCCESS) { - return true; - } + >( + 'NodeIKernelMsgService/sendMsg', + 'NodeIKernelMsgListener/onMsgInfoListUpdate', + 1, + timeout, + (msgRecords: RawMessage[]) => { + for (const msgRecord of msgRecords) { + if (msgRecord.guildId === msgId && msgRecord.sendStatus === SendStatusType.KSEND_STATUS_SUCCESS) { + return true; } - return false; - }, - '0', - peer, - msgElements, - new Map(), - ); + } + return false; + }, + '0', + peer, + msgElements, + new Map(), + ); const retMsg = data[1].find(msgRecord => { if (msgRecord.guildId === msgId) { return true; @@ -209,25 +224,25 @@ export class NTQQMsgApi { const data = await this.core.eventWrapper.CallNormalEvent< (msgInfo: typeof msgInfos, srcPeer: Peer, destPeer: Peer, comment: Array, attr: Map) => Promise, (msgList: RawMessage[]) => void - >( - 'NodeIKernelMsgService/multiForwardMsgWithComment', - 'NodeIKernelMsgListener/onMsgInfoListUpdate', - 1, - 5000, - (msgRecords: RawMessage[]) => { - for (const msgRecord of msgRecords) { - if (msgRecord.peerUid == destPeer.peerUid && msgRecord.senderUid == this.core.selfInfo.uid) { - return true; - } + >( + 'NodeIKernelMsgService/multiForwardMsgWithComment', + 'NodeIKernelMsgListener/onMsgInfoListUpdate', + 1, + 5000, + (msgRecords: RawMessage[]) => { + for (const msgRecord of msgRecords) { + if (msgRecord.peerUid == destPeer.peerUid && msgRecord.senderUid == this.core.selfInfo.uid) { + return true; } - return false; - }, - msgInfos, - srcPeer, - destPeer, - [], - new Map(), - ); + } + return false; + }, + msgInfos, + srcPeer, + destPeer, + [], + new Map(), + ); for (const msg of data[1]) { const arkElement = msg.elements.find(ele => ele.arkElement); if (!arkElement) { diff --git a/src/onebot/helper/data.ts b/src/onebot/helper/data.ts index 4c5760d1..b4ea5b4d 100644 --- a/src/onebot/helper/data.ts +++ b/src/onebot/helper/data.ts @@ -530,13 +530,18 @@ export class OB11Constructor { const senderUin = emojiLikeData.gtip.qq.jp; const msgSeq = emojiLikeData.gtip.url.msgseq; const emojiId = emojiLikeData.gtip.face.id; - - const replyMsgList = (await NTQQMsgApi.getMsgsBySeqAndCount({ + const peer = { chatType: ChatType.group, guildId: '', - peerUid: msg.peerUid, - }, msgSeq, 1, true, true)).msgList; - console.log("表情回应消息长度检测", replyMsgList.length) + peerUid: msg.peerUid + } + // const replyMsgList = (await NTQQMsgApi.getMsgsBySeqAndCount({ + // chatType: ChatType.group, + // guildId: '', + // peerUid: msg.peerUid, + // }, msgSeq, 1, true, true)).msgList; + const replyMsgList = (await NTQQMsgApi.getMsgExBySeq(peer, msgSeq)).msgList; + //console.log("表情回应消息长度检测", replyMsgList.length) if (replyMsgList.length < 1) { return; }