From 18892379de768c2fc3e39f6ecd1478afb33f661b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=89=8B=E7=93=9C=E4=B8=80=E5=8D=81=E9=9B=AA?= Date: Fri, 26 Jul 2024 12:27:02 +0800 Subject: [PATCH] fix: search file --- src/core/src/apis/file.ts | 53 +++++++++++++++++++ .../src/services/NodeIKernelSearchService.ts | 8 +-- 2 files changed, 57 insertions(+), 4 deletions(-) diff --git a/src/core/src/apis/file.ts b/src/core/src/apis/file.ts index 9d3bb992..d536ffe1 100644 --- a/src/core/src/apis/file.ts +++ b/src/core/src/apis/file.ts @@ -17,6 +17,7 @@ import { ISizeCalculationResult } from 'image-size/dist/types/interface'; import { sessionConfig } from '@/core/sessionConfig'; import { rkeyManager } from '../utils/rkey'; import { NTEventDispatch } from '@/common/utils/EventTask'; +import { NodeIKernelSearchService } from '../services/NodeIKernelSearchService'; export class NTQQFileApi { static async getFileType(filePath: string) { @@ -145,6 +146,58 @@ export class NTQQFileApi { }); }); } + static async searchfile(keys: string[]) { + + type EventType = NodeIKernelSearchService['searchFileWithKeywords']; + interface OnListener { + searchId: string, + hasMore: boolean, + resultItems: { + chatType: ChatType, + buddyChatInfo: any[], + discussChatInfo: any[], + groupChatInfo: + { + groupCode: string, + isConf: boolean, + hasModifyConfGroupFace: boolean, + hasModifyConfGroupName: boolean, + groupName: string, + remark: string + }[] + , + dataLineChatInfo: any[], + tmpChatInfo: any[], + msgId: string, + msgSeq: string, + msgTime: string, + senderUid: string, + senderNick: string, + senderRemark: string, + senderCard: string, + elemId: string, + elemType: number, + fileSize: string, + filePath: string, + fileName: string, + hits: + { + start: number, + end: number + }[] + }[] + }; + const [id, data] = await NTEventDispatch.CallNormalEvent void>( + 'NodeIKernelSearchService/searchFileWithKeywords', + 'NodeIKernelSearchListener/onSearchFileKeywordsResult', + 1, + 10000, + (arg): boolean => { return id == data.searchId }, + keys, + 12 + ); + return data.resultItems[0]; + } static async getImageUrl(element: { originImageUrl: any; md5HexStr?: any; fileUuid: any; }) { if (!element) { return ''; diff --git a/src/core/src/services/NodeIKernelSearchService.ts b/src/core/src/services/NodeIKernelSearchService.ts index d7e11d82..3cac5018 100644 --- a/src/core/src/services/NodeIKernelSearchService.ts +++ b/src/core/src/services/NodeIKernelSearchService.ts @@ -1,4 +1,4 @@ -export interface NodeIKernelSearchService{ +export interface NodeIKernelSearchService { addKernelSearchListenerr(...args: any[]): unknown;// needs 1 arguments removeKernelSearchListenerr(...args: any[]): unknown;// needs 1 arguments @@ -48,10 +48,10 @@ export interface NodeIKernelSearchService{ searchMsgWithKeywordsr(...args: any[]): unknown;// needs 2 arguments searchMoreMsgWithKeywordsr(...args: any[]): unknown;// needs 1 arguments - - cancelSearchMsgWithKeywordsr(...args: any[]): unknown;// needs 3 arguments - searchFileWithKeywordsr(...args: any[]): unknown;// needs 2 arguments + cancelSearchMsgWithKeywords(...args: any[]): unknown;// needs 3 arguments + + searchFileWithKeywords(keywords: string[], source: number): Promise;// needs 2 arguments searchMoreFileWithKeywordsr(...args: any[]): unknown;// needs 1 arguments