diff --git a/src/ntqqapi/api/msg.ts b/src/ntqqapi/api/msg.ts index 33bcbba..82a7716 100644 --- a/src/ntqqapi/api/msg.ts +++ b/src/ntqqapi/api/msg.ts @@ -68,6 +68,10 @@ export class NTQQMsgApi extends Service { return await invoke(NTMethod.ACTIVE_CHAT_HISTORY, [{ peer, cnt: 20 }, null]) } + async getAioFirstViewLatestMsgs(peer: Peer, cnt: number) { + return await invoke('nodeIKernelMsgService/getAioFirstViewLatestMsgs', [{ peer, cnt }, null]) + } + async getMsgsByMsgId(peer: Peer | undefined, msgIds: string[] | undefined) { if (!peer) throw new Error('peer is not allowed') if (!msgIds) throw new Error('msgIds is not allowed') @@ -260,22 +264,6 @@ export class NTQQMsgApi extends Service { } } - /** 27187 TODO */ - async getLastestMsgByUids(peer: Peer, count = 20, isReverseOrder = false) { - const session = getSession() - const ret = await session?.getMsgService().queryMsgsWithFilterEx('0', '0', '0', { - chatInfo: peer, - filterMsgType: [], - filterSendersUid: [], - filterMsgToTime: '0', - filterMsgFromTime: '0', - isReverseOrder: isReverseOrder, //此参数有点离谱 注意不是本次查询的排序 而是全部消历史信息的排序 默认false 从新消息拉取到旧消息 - isIncludeCurrent: true, - pageLimit: count, - }) - return ret - } - async getSingleMsg(peer: Peer, msgSeq: string) { const session = getSession() if (session) { diff --git a/src/ntqqapi/services/NodeIKernelMsgService.ts b/src/ntqqapi/services/NodeIKernelMsgService.ts index a701fcc..cdbd3b9 100644 --- a/src/ntqqapi/services/NodeIKernelMsgService.ts +++ b/src/ntqqapi/services/NodeIKernelMsgService.ts @@ -168,9 +168,10 @@ export interface NodeIKernelMsgService { getLastMessageList(peer: Peer[]): Promise - getAioFirstViewLatestMsgs(peer: Peer, num: number): unknown + getAioFirstViewLatestMsgs(peer: Peer, num: number): Promise - //deprecated 从9.9.15-26702版本开始,该接口已经废弃,请使用getMsgsEx getMsgs(peer: Peer, msgId: string, count: unknown, queryOrder: boolean): Promise getMsgsIncludeSelf(peer: Peer, msgId: string, count: number, queryOrder: boolean): Promise { let msgList: RawMessage[] | undefined // 包含 message_seq 0 if (!payload.message_seq) { - msgList = (await this.ctx.ntMsgApi.getLastestMsgByUids(peer, count))?.msgList + msgList = (await this.ctx.ntMsgApi.getAioFirstViewLatestMsgs(peer, +count)).msgList } else { - const startMsgId = (await MessageUnique.getMsgIdAndPeerByShortId(payload.message_seq))?.MsgId - if (!startMsgId) throw `消息${payload.message_seq}不存在` - msgList = (await this.ctx.ntMsgApi.getMsgHistory(peer, startMsgId, count)).msgList + const startMsgId = (await MessageUnique.getMsgIdAndPeerByShortId(+payload.message_seq))?.MsgId + if (!startMsgId) throw new Error(`消息${payload.message_seq}不存在`) + msgList = (await this.ctx.ntMsgApi.getMsgHistory(peer, startMsgId, +count)).msgList } - if (!msgList?.length) throw '未找到消息' + if (!msgList?.length) throw new Error('未找到消息') if (isReverseOrder) msgList.reverse() await Promise.all( msgList.map(async msg => {