diff --git a/src/core/apis/msg.ts b/src/core/apis/msg.ts index dda4af1a..51b67951 100644 --- a/src/core/apis/msg.ts +++ b/src/core/apis/msg.ts @@ -136,6 +136,20 @@ export class NTQQMsgApi { }); } + async queryFirstMsgBySender(peer: Peer, SendersUid: string[]) { + console.log(peer, SendersUid); + return await this.context.session.getMsgService().queryMsgsWithFilterEx('0', '0', '0', { + chatInfo: peer, + filterMsgType: [], + filterSendersUid: SendersUid, + filterMsgToTime: '0', + filterMsgFromTime: '0', + isReverseOrder: true, + isIncludeCurrent: true, + pageLimit: 20000, + }); + } + async setMsgRead(peer: Peer) { return this.context.session.getMsgService().setMsgRead(peer); } diff --git a/src/core/listeners/NodeIKernelSearchListener.ts b/src/core/listeners/NodeIKernelSearchListener.ts index cd7d3a10..e0a34e9d 100644 --- a/src/core/listeners/NodeIKernelSearchListener.ts +++ b/src/core/listeners/NodeIKernelSearchListener.ts @@ -1,4 +1,4 @@ -import { ChatType } from '@/core'; +import { ChatType, RawMessage } from '@/core'; export interface SearchGroupInfo { groupCode: string; ownerUid: string; @@ -56,7 +56,7 @@ export interface GroupSearchResult { nextPos: number; } export interface NodeIKernelSearchListener { - + onSearchGroupResult(params: GroupSearchResult): any; onSearchFileKeywordsResult(params: { @@ -94,4 +94,27 @@ export interface NodeIKernelSearchListener { }[] }[] }): any; + + onSearchMsgKeywordsResult(params: { + searchId: string, + hasMore: boolean, + resultItems: Array<{ + msgId: string, + msgSeq: string, + msgTime: string, + senderUid: string, + senderUin: string, + senderNick: string, + senderNickHits: unknown[], + senderRemark: string, + senderRemarkHits: unknown[], + senderCard: string, + senderCardHits: unknown[], + fieldType: number, + fieldText: string, + msgRecord: RawMessage; + hitsInfo: Array, + msgAbstract: unknown, + }> + }): void | Promise; } diff --git a/src/core/services/NodeIKernelSearchService.ts b/src/core/services/NodeIKernelSearchService.ts index 56eeb992..7eda4f8a 100644 --- a/src/core/services/NodeIKernelSearchService.ts +++ b/src/core/services/NodeIKernelSearchService.ts @@ -1,4 +1,4 @@ -import { ChatType } from '@/core/types'; +import { ChatType, Peer } from '@/core/types'; import { GeneralCallResult } from './common'; export interface NodeIKernelSearchService { @@ -54,7 +54,7 @@ export interface NodeIKernelSearchService { cancelSearchChatMsgs(...args: unknown[]): unknown;// needs 3 arguments - searchMsgWithKeywords(...args: unknown[]): unknown;// needs 2 arguments + searchMsgWithKeywords(keyWords: string[], param: Peer & { searchFields: number, pageLimit: number }): Promise; searchMoreMsgWithKeywords(...args: unknown[]): unknown;// needs 1 arguments