diff --git a/src/common/helper.ts b/src/common/helper.ts index 693187fb..a8728e73 100644 --- a/src/common/helper.ts +++ b/src/common/helper.ts @@ -25,8 +25,13 @@ export async function solveAsyncProblem Promise = new Map(); - constructor(context: InstanceContext, core: NapCatCore) { this.context = context; this.core = core; - // if (!this.context.basicInfoWrapper.requireMinNTQQBuild('26702')) { - // this.getFriends(true); - // } } async getBuddyV2SimpleInfoMap(refresh = false) { diff --git a/src/core/apis/group.ts b/src/core/apis/group.ts index 363483a4..a0276f8e 100644 --- a/src/core/apis/group.ts +++ b/src/core/apis/group.ts @@ -44,8 +44,8 @@ export class NTQQGroupApi { }, pskey); } - async clearGroupNotifiesUnreadCount(unk: boolean) { - return this.context.session.getGroupService().clearGroupNotifiesUnreadCount(unk); + async clearGroupNotifiesUnreadCount(uk: boolean) { + return this.context.session.getGroupService().clearGroupNotifiesUnreadCount(uk); } async setGroupAvatar(gc: string, filePath: string) { @@ -61,9 +61,9 @@ export class NTQQGroupApi { return groupList; } - async getGroupExtFE0Info(GroupCode: string[], forced = true) { + async getGroupExtFE0Info(groupCode: string[], forced = true) { return this.context.session.getGroupService().getGroupExt0xEF0Info( - GroupCode, + groupCode, [], { bindGuildId: 1, @@ -121,8 +121,8 @@ export class NTQQGroupApi { return group; } - async getGroupMemberAll(GroupCode: string, forced = false) { - return this.context.session.getGroupService().getAllMemberList(GroupCode, forced); + async getGroupMemberAll(groupCode: string, forced = false) { + return this.context.session.getGroupService().getAllMemberList(groupCode, forced); } async getGroupMember(groupCode: string | number, memberUinOrUid: string | number) { @@ -157,8 +157,8 @@ export class NTQQGroupApi { } return member; } - async getGroupRecommendContactArkJson(GroupCode: string) { - return this.context.session.getGroupService().getGroupRecommendContactArkJson(GroupCode); + async getGroupRecommendContactArkJson(groupCode: string) { + return this.context.session.getGroupService().getGroupRecommendContactArkJson(groupCode); } async CreatGroupFileFolder(groupCode: string, folderName: string) { @@ -174,7 +174,6 @@ export class NTQQGroupApi { } async addGroupEssence(GroupCode: string, msgId: string) { - // 需要 ob11msgId -> msgId + (peer) -> msgSeq + msgRandom const MsgData = await this.context.session.getMsgService().getMsgsIncludeSelf({ chatType: 2, guildId: '', @@ -185,7 +184,6 @@ export class NTQQGroupApi { msgRandom: parseInt(MsgData.msgList[0].msgRandom), msgSeq: parseInt(MsgData.msgList[0].msgSeq), }; - // GetMsgByShortID(shortID); -> MsgService.getMsgs(Peer,MsgId,1,false); -> 组出参数 return this.context.session.getGroupService().addGroupEssence(param); } @@ -203,7 +201,6 @@ export class NTQQGroupApi { groupCode: GroupCode, needDeleteLocalMsg: needDeleteLocalMsg, }; - //应该是直接返回不需要Listener的 未经测试 需测试再发布 return this.context.session.getGroupService().quitGroupV2(param); } @@ -325,8 +322,7 @@ export class NTQQGroupApi { if (result.errCode !== 0) { throw new Error('获取群成员列表出错,' + result.errMsg); } - - this.context.logger.logDebug(`获取群(${groupQQ})成员列表结果:`, `members: ${result.result.infos.size}`); //, Array.from(result.result.infos.values())); + this.context.logger.logDebug(`获取群(${groupQQ})成员列表结果:`, `members: ${result.result.infos.size}`); return result.result.infos; } @@ -357,12 +353,12 @@ export class NTQQGroupApi { return this.context.session.getGroupService().operateSysNotify( false, { - 'operateType': operateType, // 2 拒绝 - 'targetMsg': { - 'seq': seq, // 通知序列号 - 'type': type, - 'groupCode': groupCode, - 'postscript': reason ?? ' ', // 仅传空值可能导致处理失败,故默认给个空格 + operateType: operateType, // 2 拒绝 + targetMsg: { + seq: seq, // 通知序列号 + type: type, + groupCode: groupCode, + postscript: reason ?? ' ', // 仅传空值可能导致处理失败,故默认给个空格 }, }); } @@ -418,7 +414,6 @@ export class NTQQGroupApi { } async getMemberExtInfo(groupCode: string, uin: string) { - // 仅NTQQ 9.9.11 24568测试 容易炸开谨慎使用 return this.context.session.getGroupService().getMemberExtInfo( { groupCode: groupCode, diff --git a/src/core/apis/msg.ts b/src/core/apis/msg.ts index e0294492..0ad0358d 100644 --- a/src/core/apis/msg.ts +++ b/src/core/apis/msg.ts @@ -19,27 +19,16 @@ export class NTQQMsgApi { return this.context.session.getMsgService().getAioFirstViewLatestMsgs(peer, MsgCount); } - async getLatestDbMsgs(peer: Peer, MsgCount: number) { - return this.context.session.getMsgService().getLatestDbMsgs(peer, MsgCount); - } - - async FetchLongMsg(peer: Peer, msgId: string) { - return this.context.session.getMsgService().fetchLongMsg(peer, msgId); - } - async sendShowInputStatusReq(peer: Peer, eventType: number) { return this.context.session.getMsgService().sendShowInputStatusReq(peer.chatType, eventType, peer.peerUid); } async getMsgEmojiLikesList(peer: Peer, msgSeq: string, emojiId: string, emojiType: string, count: number = 20) { - //注意此处emojiType 可选值一般为1-2 2好像是unicode表情dec值 大部分情况 Taged M likiowa + //注意此处emojiType 可选值一般为1-2 2好像是unicode表情dec值 大部分情况 Taged Mlikiowa return this.context.session.getMsgService().getMsgEmojiLikesList(peer, msgSeq, emojiId, emojiType, '', false, count); } async setEmojiLike(peer: Peer, msgSeq: string, emojiId: string, set: boolean = true) { - // nt_qq//global//nt_data//Emoji//emoji-resource//sysface_res/apng/ 下可以看到所有QQ表情预览 - // nt_qq\global\nt_data\Emoji\emoji-resource\face_config.json 里面有所有表情的id, 自带表情id是QSid, 标准emoji表情id是QCid - // 其实以官方文档为准是最好的,https://bot.q.qq.com/wiki/develop/api-v2/openapi/emoji/model.html#EmojiType emojiId = emojiId.toString(); return this.context.session.getMsgService().setMsgEmojiLikes(peer, msgSeq, emojiId, emojiId.length > 3 ? '2' : '1', set); } @@ -108,14 +97,6 @@ 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 getMsgBySeqList(peer: Peer, msgSeqList: string[]) { - //坏的 - return await this.context.session.getMsgService().getMsgsBySeqList(peer, msgSeqList); - } - async getMsgBySeqExFirstMsg(peer: Peer, rootMsgId: string, replyMsgId: string) { - const reply = await this.context.session.getMsgService().getSourceOfReplyMsgV2(peer, rootMsgId, replyMsgId); - console.log(reply); - } async getMsgExBySeq(peer: Peer, msgSeq: string) { const DateNow = Math.floor(Date.now() / 1000); const filterMsgFromTime = (DateNow - 300).toString(); @@ -200,7 +181,7 @@ export class NTQQMsgApi { await this.PrepareTempChat(peer.peerUid, peer.guildId, member.nick); } } - const msgId = await this.generateMsgUniqueId(peer.chatType, await this.getServerTime()); + const msgId = await this.generateMsgUniqueId(peer.chatType); peer.guildId = msgId; const [, msgList] = await this.core.eventWrapper.callNormalEventV2( 'NodeIKernelMsgService/sendMsg', @@ -226,12 +207,8 @@ export class NTQQMsgApi { return msgList.find(msgRecord => msgRecord.guildId === msgId); } - async generateMsgUniqueId(chatType: number, time: string) { - return this.context.session.getMsgService().generateMsgUniqueId(chatType, time); - } - - async getServerTime() { - return this.context.session.getMSFService().getServerTime(); + async generateMsgUniqueId(chatType: number) { + return this.context.session.getMsgService().generateMsgUniqueId(chatType, this.context.session.getMSFService().getServerTime()); } async forwardMsg(srcPeer: Peer, destPeer: Peer, msgIds: string[]) { diff --git a/src/core/apis/sign.ts b/src/core/apis/sign.ts index 53f20289..9ac71d80 100644 --- a/src/core/apis/sign.ts +++ b/src/core/apis/sign.ts @@ -214,11 +214,6 @@ export class NTQQMusicSignApi { //console.log(MusicReal); return { ...MusicReal.data, mid: signedMid }; } - - async CreateMusicThirdWay1(id: string = '', mid: string = '') { - - } - //转换外域名为 https://qq.ugcimg.cn/v1/cpqcbu4b8870i61bde6k7cbmjgejq8mr3in82qir4qi7ielffv5slv8ck8g42novtmev26i233ujtuab6tvu2l2sjgtupfr389191v00s1j5oh5325j5eqi40774jv1i/khovifoh7jrqd6eahoiv7koh8o //https://cgi.connect.qq.com/qqconnectopen/openapi/change_image_url?url=https://th.bing.com/th?id=OSK.b8ed36f1fb1889de6dc84fd81c187773&w=46&h=46&c=11&rs=1&qlt=80&o=6&dpr=2&pid=SANGAM diff --git a/src/core/apis/system.ts b/src/core/apis/system.ts index af70cff5..f79b4b53 100644 --- a/src/core/apis/system.ts +++ b/src/core/apis/system.ts @@ -22,7 +22,7 @@ export class NTQQSystemApi { } async getOnlineDev() { - return this.context.session.getMsgService().getOnLineDev(); + this.context.session.getMsgService().getOnLineDev(); } async getArkJsonCollection(cid: string) { diff --git a/src/core/apis/user.ts b/src/core/apis/user.ts index 7c7897cb..fe8d48f5 100644 --- a/src/core/apis/user.ts +++ b/src/core/apis/user.ts @@ -1,7 +1,6 @@ -import type { ModifyProfileParams, User } from '@/core/entities'; +import { ModifyProfileParams, User, UserDetailSource } from '@/core/entities'; import { RequestUtil } from '@/common/request'; -import { ProfileBizType, UserDetailSource } from '@/core/services'; -import { InstanceContext, NapCatCore } from '..'; +import { InstanceContext, NapCatCore, ProfileBizType } from '..'; import { solveAsyncProblem } from '@/common/helper'; export class NTQQUserApi { diff --git a/src/core/entities/adapter.ts b/src/core/entities/adapter.ts new file mode 100644 index 00000000..3f0113ea --- /dev/null +++ b/src/core/entities/adapter.ts @@ -0,0 +1,11 @@ +export enum MsfStatusType { + KUNKNOWN, + KDISCONNECTED, + KCONNECTED +} +export enum MsfChangeReasonType { + KUNKNOWN, + KUSERLOGININ, + KUSERLOGINOUT, + KAUTO +} \ No newline at end of file diff --git a/src/core/entities/contact.ts b/src/core/entities/contact.ts new file mode 100644 index 00000000..ab13af92 --- /dev/null +++ b/src/core/entities/contact.ts @@ -0,0 +1,12 @@ + +export interface FSABRecentContactParams { + anchorPointContact: { + contactId: string; + sortField: string; + pos: number; + }; + relativeMoveCount: number; + listType: number; + count: number; + fetchOld: boolean; +} diff --git a/src/core/entities/msg.ts b/src/core/entities/msg.ts index 9e62e3fa..0f05abca 100644 --- a/src/core/entities/msg.ts +++ b/src/core/entities/msg.ts @@ -1,4 +1,4 @@ -import { GroupMemberRole } from '@/core'; +import { GroupMemberRole, Peer } from '@/core'; export interface Peer { chatType: ChatType; @@ -934,3 +934,28 @@ export interface RawMessage { elements: MessageElement[]; } +export interface QueryMsgsParams { + chatInfo: Peer; + filterMsgType: []; + filterSendersUid: string[]; + filterMsgFromTime: string; + filterMsgToTime: string; + pageLimit: number; + isReverseOrder: boolean; + isIncludeCurrent: boolean; +} + +export interface TmpChatInfoApi { + errMsg: string; + result: number; + tmpChatInfo?: TmpChatInfo; +} + +export interface TmpChatInfo { + chatType: number; + fromNick: string; + groupCode: string; + peerUid: string; + sessionType: number; + sig: string; +} diff --git a/src/core/entities/user.ts b/src/core/entities/user.ts index 3eb5a966..2323705b 100644 --- a/src/core/entities/user.ts +++ b/src/core/entities/user.ts @@ -364,3 +364,19 @@ export interface UserDetailInfoByUin { vipNameColorId: string } } +export enum UserDetailSource { + KDB, + KSERVER +} + +export enum ProfileBizType { + KALL, + KBASEEXTEND, + KVAS, + KQZONE, + KOTHER +}export enum BuddyListReqType { + KNOMAL, + KLETTER +} + diff --git a/src/core/services/NodeIKernelAlbumService.ts b/src/core/services/NodeIKernelAlbumService.ts index b8224e0f..1d1ca68c 100644 --- a/src/core/services/NodeIKernelAlbumService.ts +++ b/src/core/services/NodeIKernelAlbumService.ts @@ -1,4 +1,5 @@ export interface NodeIKernelAlbumService { + setAlbumServiceInfo(...args: any[]): unknown;// needs 3 arguments getMainPage(...args: any[]): unknown;// needs 2 arguments diff --git a/src/core/services/NodeIKernelAvatarService.ts b/src/core/services/NodeIKernelAvatarService.ts index 1dcc4453..176c0aba 100644 --- a/src/core/services/NodeIKernelAvatarService.ts +++ b/src/core/services/NodeIKernelAvatarService.ts @@ -1,7 +1,7 @@ export interface NodeIKernelAvatarService { - addAvatarListener(arg: unknown): unknown; + addAvatarListener(listener: unknown): void; - removeAvatarListener(arg: unknown): unknown; + removeAvatarListener(listenerId: number): void; getAvatarPath(arg1: unknown, arg2: unknown): unknown; diff --git a/src/core/services/NodeIKernelBuddyService.ts b/src/core/services/NodeIKernelBuddyService.ts index b940ed8c..c42a772c 100644 --- a/src/core/services/NodeIKernelBuddyService.ts +++ b/src/core/services/NodeIKernelBuddyService.ts @@ -1,13 +1,8 @@ import { GeneralCallResult } from '@/core/services/common'; import { NodeIKernelBuddyListener } from '@/core/listeners'; - -export enum BuddyListReqType { - KNOMAL, - KLETTER -} +import { BuddyListReqType } from '../entities/user'; export interface NodeIKernelBuddyService { - // 26702 以上 getBuddyListV2(callFrom: string, reqType: BuddyListReqType): Promise }>; - //26702 以上 getBuddyListFromCache(callFrom: string): Promise//Uids }>>; - - // 以下为原生方法 + addKernelBuddyListener(listener: NodeIKernelBuddyListener): number; getAllBuddyCount(): number; - removeKernelBuddyListener(listener: unknown): void; + removeKernelBuddyListener(listenerId: number): void; - /** - * @deprecated - * @param nocache 使用缓存 - */ - getBuddyList(nocache: boolean): Promise; + //getBuddyList(nocache: boolean): Promise; getBuddyNick(uid: number): string; diff --git a/src/core/services/NodeIKernelCollectionService.ts b/src/core/services/NodeIKernelCollectionService.ts index c745a93a..2bbdd459 100644 --- a/src/core/services/NodeIKernelCollectionService.ts +++ b/src/core/services/NodeIKernelCollectionService.ts @@ -1,9 +1,9 @@ import { GeneralCallResult } from './common'; export interface NodeIKernelCollectionService { - addKernelCollectionListener(...args: any[]): unknown;//needs 1 arguments + addKernelCollectionListener(...args: any[]): void;//needs 1 arguments - removeKernelCollectionListener(...args: any[]): unknown;//needs 1 arguments + removeKernelCollectionListener(listenerId: number): void; getCollectionItemList(param: { category: number, @@ -14,46 +14,46 @@ export interface NodeIKernelCollectionService { count: number, searchDown: boolean }): Promise, - hasMore: boolean, - bottomTimeStamp: string - } + numId: string, + strId: string, + groupId: string, + groupName: string, + uid: string + }, + bid: number, + category: number, + createTime: string, + collectTime: string, + modifyTime: string, + sequence: string, + shareUrl: string, + customGroupId: number, + securityBeat: boolean, + summary: { + textSummary: unknown, + linkSummary: unknown, + gallerySummary: unknown, + audioSummary: unknown, + videoSummary: unknown, + fileSummary: unknown, + locationSummary: unknown, + richMediaSummary: unknown, + } + }>, + hasMore: boolean, + bottomTimeStamp: string } - >;//needs 1 arguments + } + >; getCollectionContent(...args: any[]): unknown;//needs 5 arguments diff --git a/src/core/services/NodeIKernelDbToolsService.ts b/src/core/services/NodeIKernelDbToolsService.ts index ab110b05..8dd9bd4e 100644 --- a/src/core/services/NodeIKernelDbToolsService.ts +++ b/src/core/services/NodeIKernelDbToolsService.ts @@ -1,7 +1,9 @@ export interface NodeIKernelDbToolsService { + depositDatabase(...args: unknown[]): unknown; backupDatabase(...args: unknown[]): unknown; retrieveDatabase(...args: unknown[]): unknown; + } diff --git a/src/core/services/NodeIKernelECDHService.ts b/src/core/services/NodeIKernelECDHService.ts index e6e83613..fd8231a3 100644 --- a/src/core/services/NodeIKernelECDHService.ts +++ b/src/core/services/NodeIKernelECDHService.ts @@ -1,3 +1,2 @@ export interface NodeIKernelECDHService { - } diff --git a/src/core/services/NodeIKernelGroupService.ts b/src/core/services/NodeIKernelGroupService.ts index 7d54c099..284727e6 100644 --- a/src/core/services/NodeIKernelGroupService.ts +++ b/src/core/services/NodeIKernelGroupService.ts @@ -11,8 +11,6 @@ import { } from '@/core/entities'; import { GeneralCallResult } from '@/core/services/common'; -//高版本的接口不应该随意使用 使用应该严格进行pr审核 同时部分ipc中未出现的接口不要过于依赖 应该做好数据兜底 - export interface NodeIKernelGroupService { getGroupExt0xEF0Info(enableGroupCodes: string[], bannedGroupCodes: string[], filter: GroupExt0xEF0InfoFilter, forceFetch: boolean): Promise } }>; @@ -82,11 +80,11 @@ export interface NodeIKernelGroupService { }): Promise; - isEssenceMsg(Req: { groupCode: string, msgRandom: number, msgSeq: number }): Promise; + isEssenceMsg(req: { groupCode: string, msgRandom: number, msgSeq: number }): Promise; - queryCachedEssenceMsg(Req: { groupCode: string, msgRandom: number, msgSeq: number }): Promise; + queryCachedEssenceMsg(req: { groupCode: string, msgRandom: number, msgSeq: number }): Promise; - fetchGroupEssenceList(Req: { + fetchGroupEssenceList(req: { groupCode: string, pageStart: number, pageLimit: number @@ -110,13 +108,12 @@ export interface NodeIKernelGroupService { addKernelGroupListener(listener: NodeIKernelGroupListener): number; - removeKernelGroupListener(listenerId: unknown): void; + removeKernelGroupListener(listenerId: number): void; createMemberListScene(groupCode: string, scene: string): string; destroyMemberListScene(SceneId: string): void; - //About Arg (a) name: lastId 根据手Q来看为object {index:?(number),uid:string} getNextMemberList(sceneId: string, a: undefined, num: number): Promise<{ errCode: number, errMsg: string, result: { ids: string[], infos: Map, finish: boolean, hasRobot: boolean } @@ -247,14 +244,12 @@ export interface NodeIKernelGroupService { modifyGroupExtInfo(groupCode: string, arg: unknown): void; - //需要提前判断是否存在 高版本新增 addGroupEssence(param: { groupCode: string msgRandom: number, msgSeq: number }): Promise; - //需要提前判断是否存在 高版本新增 removeGroupEssence(param: { groupCode: string msgRandom: number, diff --git a/src/core/services/NodeIKernelMsgBackupService.ts b/src/core/services/NodeIKernelMsgBackupService.ts index e48bea13..395edd04 100644 --- a/src/core/services/NodeIKernelMsgBackupService.ts +++ b/src/core/services/NodeIKernelMsgBackupService.ts @@ -1,7 +1,7 @@ export interface NodeIKernelMsgBackupService { - addKernelMsgBackupListener(...args: any[]): unknown;// needs 1 arguments + addKernelMsgBackupListener(listener: unknown): number; - removeKernelMsgBackupListener(...args: any[]): unknown;// needs 1 arguments + removeKernelMsgBackupListener(listenerId: number): void; getMsgBackupLocation(...args: any[]): unknown;// needs 0 arguments diff --git a/src/core/services/NodeIKernelMsgService.ts b/src/core/services/NodeIKernelMsgService.ts index 8992f191..a0498f62 100644 --- a/src/core/services/NodeIKernelMsgService.ts +++ b/src/core/services/NodeIKernelMsgService.ts @@ -1,32 +1,7 @@ import { ElementType, MessageElement, Peer, RawMessage, SendMessageElement } from '@/core/entities'; import { NodeIKernelMsgListener } from '@/core/listeners/NodeIKernelMsgListener'; import { GeneralCallResult } from '@/core/services/common'; - -export interface QueryMsgsParams { - chatInfo: Peer, - filterMsgType: [], - filterSendersUid: string[], - filterMsgFromTime: string, - filterMsgToTime: string, - pageLimit: number, - isReverseOrder: boolean, - isIncludeCurrent: boolean -} - -export interface TmpChatInfoApi { - errMsg: string; - result: number; - tmpChatInfo?: TmpChatInfo; -} - -export interface TmpChatInfo { - chatType: number; - fromNick: string; - groupCode: string; - peerUid: string; - sessionType: number; - sig: string; -} +import { QueryMsgsParams, TmpChatInfoApi } from '../entities/msg'; export interface NodeIKernelMsgService { @@ -76,18 +51,12 @@ export interface NodeIKernelMsgService { downloadOnlineStatusCommonByUrl(arg0: string, arg1: string): unknown; - // this.tokenType = i2; - // this.apnsToken = bArr; - // this.voipToken = bArr2; - // this.profileId = str; - setToken(arg: unknown): unknown; switchForeGround(): unknown; switchBackGround(arg: unknown): unknown; - //hex setTokenForMqq(token: string): unknown; switchForeGroundForMqq(...args: unknown[]): unknown; @@ -124,7 +93,6 @@ export interface NodeIKernelMsgService { forwardFile(...args: unknown[]): unknown; - //Array, Peer from, Peer to multiForwardMsg(...args: unknown[]): unknown; multiForwardMsgWithComment(...args: unknown[]): unknown; @@ -185,11 +153,6 @@ export interface NodeIKernelMsgService { msgList: RawMessage[] }>; - // this.$peer = contact; - // this.$msgTime = j2; - // this.$clientSeq = j3; - // this.$cnt = i2; - getMsgsWithMsgTimeAndClientSeqForC2C(...args: unknown[]): Promise; getMsgsWithStatus(params: { @@ -226,7 +189,6 @@ export interface NodeIKernelMsgService { getSourceOfReplyMsgByClientSeqAndTime(peer: Peer, clientSeq: string, time: string): unknown; - //cnt clientSeq?并不是吧 getMsgsByTypeFilter(peer: Peer, msgId: string, cnt: unknown, queryOrder: boolean, typeFilter: { type: number, subtype: Array @@ -241,49 +203,15 @@ export interface NodeIKernelMsgService { queryMsgsWithFilter(...args: unknown[]): unknown; - /** - * @deprecated 该函数已被标记为废弃,请使用新的替代方法。 - * 使用过滤条件查询消息列表的版本2接口。 - * - * 该函数通过一系列过滤条件来查询特定聊天中的消息列表。这些条件包括消息类型、发送者、时间范围等。 - * 函数返回一个Promise,解析为查询结果的未知类型对象。 - * - * @param MsgId 消息ID,用于特定消息的查询。 - * @param MsgTime 消息时间,用于指定消息的时间范围。 - * @param param 查询参数对象,包含详细的过滤条件和分页信息。 - * @param param.chatInfo 聊天信息,包括聊天类型和对方用户ID。 - * @param param.filterMsgType 需要过滤的消息类型数组,留空表示不过滤。 - * @param param.filterSendersUid 需要过滤的发送者用户ID数组。 - * @param param.filterMsgFromTime 查询消息的起始时间。 - * @param param.filterMsgToTime 查询消息的结束时间。 - * @param param.pageLimit 每页的消息数量限制。 - * @param param.isReverseOrder 是否按时间顺序倒序返回消息。 - * @param param.isIncludeCurrent 是否包含当前页码。 - * @returns 返回一个Promise,解析为查询结果的未知类型对象。 - */ - queryMsgsWithFilterVer2(MsgId: string, MsgTime: string, param: QueryMsgsParams): Promise; + //queryMsgsWithFilterVer2(MsgId: string, MsgTime: string, param: QueryMsgsParams): Promise; - // this.chatType = i2; - // this.peerUid = str; - - // this.chatInfo = new ChatInfo(); - // this.filterMsgType = new ArrayList<>(); - // this.filterSendersUid = new ArrayList<>(); - // this.chatInfo = chatInfo; - // this.filterMsgType = arrayList; - // this.filterSendersUid = arrayList2; - // this.filterMsgFromTime = j2; - // this.filterMsgToTime = j3; - // this.pageLimit = i2; - // this.isReverseOrder = z; - // this.isIncludeCurrent = z2; - //queryMsgsWithFilterEx(0L, 0L, 0L, new QueryMsgsParams(new ChatInfo(2, str), new ArrayList(), new ArrayList(), 0L, 0L, 250, false, true)) queryMsgsWithFilterEx(msgId: string, msgTime: string, megSeq: string, param: QueryMsgsParams): Promise; - //queryMsgsWithFilterEx(this.$msgId, this.$msgTime, this.$msgSeq, this.$param) - queryFileMsgsDesktop(...args: unknown[]): unknown; + queryFileMsgsDesktop(msgId: string, msgTime: string, msgSeq: string, param: QueryMsgsParams): Promise; setMsgRichInfoFlag(...args: unknown[]): unknown; @@ -390,17 +318,11 @@ export interface NodeIKernelMsgService { getFileThumbSavePath(...args: unknown[]): unknown; - //猜测居多 - translatePtt2Text(MsgId: string, Peer: Peer, MsgElement: unknown): unknown; + translatePtt2Text(msgId: string, peer: Peer, msgElement: unknown): unknown; setPttPlayedState(...args: unknown[]): unknown; - // NodeIQQNTWrapperSession fetchFavEmojiList [ - // "", - // 48, - // true, - // true - // ] + //uk1 uk2 true fetchFavEmojiList(str: string, num: number, uk1: boolean, uk2: boolean): Promise; getFirstUnreadCommonMsg(...args: unknown[]): unknown; @@ -590,7 +512,7 @@ export interface NodeIKernelMsgService { getFirstUnreadAtMsg(peer: Peer): unknown; - clearMsgRecords(...args: unknown[]): unknown;//设置已读后调用我觉得比较好 清理记录 现在别了 + clearMsgRecords(...args: unknown[]): unknown; IsExistOldDb(...args: unknown[]): unknown; @@ -626,25 +548,10 @@ export interface NodeIKernelMsgService { enterOrExitAio(...args: unknown[]): unknown; - // this.peerUid = ""; - // this.peerNickname = ""; - // this.fromGroupCode = ""; - // this.sig = new byte[0]; - // this.selfUid = ""; - // this.selfPhone = ""; - // this.chatType = i2; - // this.peerUid = str; - // this.peerNickname = str2; - // this.fromGroupCode = str3; - // this.sig = bArr; - // this.selfUid = str4; - // this.selfPhone = str5; - // this.gameSession = tempChatGameSession; - prepareTempChat(args: unknown): unknown;//主动临时消息 不做 + prepareTempChat(args: unknown): unknown; sendSsoCmdReqByContend(cmd: string, param: string): Promise; - //chattype,uid->Promise getTempChatInfo(ChatType: number, Uid: string): Promise; setContactLocalTop(...args: unknown[]): unknown; @@ -708,7 +615,6 @@ export interface NodeIKernelMsgService { dataMigrationStopOperation(...args: unknown[]): unknown; - //新的希望 dataMigrationImportMsgPbRecord(DataMigrationMsgInfo: Array<{ extensionData: string//"Hex" extraData: string //"" @@ -760,6 +666,6 @@ export interface NodeIKernelMsgService { getGuildMsgAbFlag(...args: unknown[]): unknown; - getGroupMsgStorageTime(): unknown;//这是嘛啊 + getGroupMsgStorageTime(): unknown; } diff --git a/src/core/services/NodeIKernelNodeMiscService.ts b/src/core/services/NodeIKernelNodeMiscService.ts index 9e07cf78..21b75d06 100644 --- a/src/core/services/NodeIKernelNodeMiscService.ts +++ b/src/core/services/NodeIKernelNodeMiscService.ts @@ -1,6 +1,5 @@ import { GeneralCallResult } from './common'; -//没扒干净 因为用不着 export interface NodeIKernelNodeMiscService { getMiniAppPath(): unknown; @@ -11,7 +10,4 @@ export interface NodeIKernelNodeMiscService { SendMiniAppMsg(arg1: string, arg2: string, arg3: string): unknown; startNewMiniApp(appfile: string, params: string): unknown; - - // 我的计划是转发给一个新程序避免吃掉Electron_AS_Node的环境 然后重写启动MiniApp 挂载相应JS脚本 这样有个问题 - // 需要自己转发ipc参数 然后必须处在gui环境 且完成校验破解 才能实现发包 有点抽象了 } diff --git a/src/core/services/NodeIKernelOnlineStatusService.ts b/src/core/services/NodeIKernelOnlineStatusService.ts index c3c97062..4cb372a7 100644 --- a/src/core/services/NodeIKernelOnlineStatusService.ts +++ b/src/core/services/NodeIKernelOnlineStatusService.ts @@ -1,8 +1,8 @@ export interface NodeIKernelOnlineStatusService { - addKernelOnlineStatusListener(listener: unknown): void; + addKernelOnlineStatusListener(listener: unknown): number; - removeKernelOnlineStatusListener(listenerId: unknown): void; + removeKernelOnlineStatusListener(listenerId: number): void; getShouldShowAIOStatusAnimation(arg: unknown): unknown; diff --git a/src/core/services/NodeIKernelProfileLikeService.ts b/src/core/services/NodeIKernelProfileLikeService.ts index a1f385e3..b4682a31 100644 --- a/src/core/services/NodeIKernelProfileLikeService.ts +++ b/src/core/services/NodeIKernelProfileLikeService.ts @@ -1,17 +1,17 @@ import { BuddyProfileLikeReq, GeneralCallResult } from '@/core'; export interface NodeIKernelProfileLikeService { - addKernelProfileLikeListener(listener: NodeIKernelProfileLikeService): void; + addKernelProfileLikeListener(listener: unknown): number; - removeKernelProfileLikeListener(listener: unknown): void; + removeKernelProfileLikeListener(listenerId: unknown): void; setBuddyProfileLike(...args: unknown[]): { result: number, errMsg: string, succCounts: number }; getBuddyProfileLike(req: BuddyProfileLikeReq): Promise, - 'friendMaxVotes': number, - 'start': number + info: { + userLikeInfos: Array, + friendMaxVotes: number, + start: number } }>; diff --git a/src/core/services/NodeIKernelProfileService.ts b/src/core/services/NodeIKernelProfileService.ts index 9987aa7e..17cdf791 100644 --- a/src/core/services/NodeIKernelProfileService.ts +++ b/src/core/services/NodeIKernelProfileService.ts @@ -1,38 +1,16 @@ import { AnyCnameRecord } from 'node:dns'; -import { BizKey, ModifyProfileParams, NodeIKernelProfileListener, SimpleInfo, UserDetailInfoByUinV2 } from '@/core'; +import { BizKey, ModifyProfileParams, NodeIKernelProfileListener, ProfileBizType, SimpleInfo, UserDetailInfoByUinV2, UserDetailSource } from '@/core'; import { GeneralCallResult } from '@/core/services/common'; -export enum UserDetailSource { - KDB, - KSERVER -} - -export enum ProfileBizType { - KALL, - KBASEEXTEND, - KVAS, - KQZONE, - KOTHER -} - export interface NodeIKernelProfileService { - getUidByUin(callfrom: string, uin: Array): Promise>;//uin->uid + getUidByUin(callfrom: string, uin: Array): Promise>; getUinByUid(callfrom: string, uid: Array): Promise>; - // { - // coreInfo: CoreInfo, - // baseInfo: BaseInfo, - // status: null, - // vasInfo: null, - // relationFlags: null, - // otherFlags: null, - // intimate: null - // } getCoreAndBaseInfo(callfrom: string, uids: string[]): Promise>; - fetchUserDetailInfo(trace: string, uids: string[], arg2: number, arg3: number[]): Promise; + fetchUserDetailInfo(trace: string, uids: string[], source: UserDetailSource, bizType: ProfileBizType[]): Promise; addKernelProfileListener(listener: NodeIKernelProfileListener): number; @@ -44,30 +22,17 @@ export interface NodeIKernelProfileService { enumCountryOptions(): Array; - enumProvinceOptions(Country: string): Array; + enumProvinceOptions(country: string): Array; - enumCityOptions(Country: string, Province: string): unknown; + enumCityOptions(country: string, province: string): unknown; enumAreaOptions(...args: unknown[]): unknown; - //SimpleInfo - // this.uid = ""; - // this.uid = str; - // this.uin = j2; - // this.isBuddy = z; - // this.coreInfo = coreInfo; - // this.baseInfo = baseInfo; - // this.status = statusInfo; - // this.vasInfo = vasInfo; - // this.relationFlags = relationFlag; - // this.otherFlags = otherFlag; - // this.intimate = intimate; - modifySelfProfile(...args: unknown[]): Promise; modifyDesktopMiniProfile(param: ModifyProfileParams): Promise; - setNickName(NickName: string): Promise; + setNickName(nickName: string): Promise; setLongNick(longNick: string): Promise; @@ -95,14 +60,12 @@ export interface NodeIKernelProfileService { getSelfStatus(): Promise; - // setdisableEmojiShortCuts(...args: unknown[]): unknown; getProfileQzonePicInfo(uid: string, type: number, force: boolean): Promise; - //profileService.getCoreInfo("UserRemarkServiceImpl::getStrangerRemarkByUid", arrayList); - getCoreInfo(name: string, arg: any[]): unknown; + // UserRemarkServiceImpl::getStrangerRemarkByUid [] + getCoreInfo(sceneId: string, arg: any[]): unknown; - //m429253e12.getOtherFlag("FriendListInfoCache_getKernelDataAndPutCache", new ArrayList<>()); isNull(): boolean; } diff --git a/src/core/services/NodeIKernelRecentContactService.ts b/src/core/services/NodeIKernelRecentContactService.ts index 556b3281..2573e413 100644 --- a/src/core/services/NodeIKernelRecentContactService.ts +++ b/src/core/services/NodeIKernelRecentContactService.ts @@ -1,30 +1,8 @@ import { ChatType, Peer } from '../entities'; import { NodeIKernelRecentContactListener } from '../listeners/NodeIKernelRecentContactListener'; import { GeneralCallResult } from './common'; +import { FSABRecentContactParams } from '../entities/contact'; -export interface FSABRecentContactParams { - anchorPointContact: { - contactId: string; - sortField: string; - pos: number; - }, - relativeMoveCount: number; - listType: number; - count: number; - fetchOld: boolean; -} - -// { -// "anchorPointContact": { -// "contactId": "", -// "sortField": "", -// "pos": 0 -// }, -// "relativeMoveCount": 0, -// "listType": 1, -// "count": 200, -// "fetchOld": true -// } export interface NodeIKernelRecentContactService { setGuildDisplayStatus(...args: unknown[]): unknown; // 2 arguments @@ -36,7 +14,6 @@ export interface NodeIKernelRecentContactService { enterOrExitMsgList(...args: unknown[]): unknown; // 1 arguments - /*!---!*/ getRecentContactListSnapShot(count: number): Promise; - //arg双端number isFileExpired(arg: number): unknown; deleteGroupFolder(GroupCode: string, FolderId: string): Promise; //第三个参数 Array diff --git a/src/core/services/NodeIKernelSearchService.ts b/src/core/services/NodeIKernelSearchService.ts index 978773e9..bb81f8e4 100644 --- a/src/core/services/NodeIKernelSearchService.ts +++ b/src/core/services/NodeIKernelSearchService.ts @@ -1,11 +1,12 @@ import { ChatType } from '../entities'; export interface NodeIKernelSearchService { - addKernelSearchListener(...args: any[]): unknown;// needs 1 arguments - removeKernelSearchListener(...args: any[]): unknown;// needs 1 arguments + addKernelSearchListener(listener: unknown): number; - searchStranger(...args: any[]): unknown;// needs 3 arguments + removeKernelSearchListener(listenerId: number): void; + + searchStranger(unknown: string, searchStranger: unknown, searchParams: unknown): Promise; searchGroup(...args: any[]): unknown;// needs 1 arguments @@ -125,4 +126,5 @@ export interface NodeIKernelSearchService { searchCache(...args: any[]): unknown;// needs 3 arguments clearSearchCache(...args: any[]): unknown;// needs 1 arguments + } diff --git a/src/core/services/NodeIKernelStorageCleanService.ts b/src/core/services/NodeIKernelStorageCleanService.ts index ed7aa2e4..28a9d546 100644 --- a/src/core/services/NodeIKernelStorageCleanService.ts +++ b/src/core/services/NodeIKernelStorageCleanService.ts @@ -3,9 +3,9 @@ import { GeneralCallResult } from './common'; export interface NodeIKernelStorageCleanService { - addKernelStorageCleanListener(Listener: NodeIKernelStorageCleanListener): number; + addKernelStorageCleanListener(listener: NodeIKernelStorageCleanListener): number; - removeKernelStorageCleanListener(ListenerId: number): void; + removeKernelStorageCleanListener(listenerId: number): void; addCacheScanedPaths(arg: unknown): unknown; diff --git a/src/core/services/NodeIKernelTianShuService.ts b/src/core/services/NodeIKernelTianShuService.ts index caf408aa..3cb883b3 100644 --- a/src/core/services/NodeIKernelTianShuService.ts +++ b/src/core/services/NodeIKernelTianShuService.ts @@ -1,9 +1,7 @@ export interface NodeIKernelTianShuService { - addKernelTianShuListener(...args: any[]): unknown;// needs 1 arguments + addKernelTianShuListener(listener:unknown): number; - removeKernelTianShuListener(...args: any[]): unknown;// needs 1 arguments - - requesTianShuNumeralRe(...args: any[]): unknown;//d needs 1 arguments + removeKernelTianShuListener(listenerId:number): void; reportTianShuNumeralRed(...args: any[]): unknown;// needs 1 arguments diff --git a/src/core/services/NodeIKernelTicketService.ts b/src/core/services/NodeIKernelTicketService.ts index 70132f9b..57f802ba 100644 --- a/src/core/services/NodeIKernelTicketService.ts +++ b/src/core/services/NodeIKernelTicketService.ts @@ -2,9 +2,9 @@ import { ForceFetchClientKeyRetType } from './common'; export interface NodeIKernelTicketService { - addKernelTicketListener(listener: unknown): void; + addKernelTicketListener(listener: unknown): number; - removeKernelTicketListener(listenerId: unknown): void; + removeKernelTicketListener(listenerId: number): void; forceFetchClientKey(arg: string): Promise; diff --git a/src/core/services/NodeIKernelTipOffService.ts b/src/core/services/NodeIKernelTipOffService.ts index 756eaa8b..ae4617cd 100644 --- a/src/core/services/NodeIKernelTipOffService.ts +++ b/src/core/services/NodeIKernelTipOffService.ts @@ -2,7 +2,7 @@ import { GeneralCallResult } from './common'; export interface NodeIKernelTipOffService { - addKernelTipOffListener(listener: unknown): void; + addKernelTipOffListener(listener: unknown): number; removeKernelTipOffListener(listenerId: unknown): void; @@ -10,7 +10,7 @@ export interface NodeIKernelTipOffService { getPskey(domainList: string[], nocache: boolean): Promise - }>;//2 + }>; tipOffSendJsData(args: unknown[]): Promise;//2 diff --git a/src/core/services/NodeIKernelUnitedConfigService.ts b/src/core/services/NodeIKernelUnitedConfigService.ts index 6c02b27b..6a287a16 100644 --- a/src/core/services/NodeIKernelUnitedConfigService.ts +++ b/src/core/services/NodeIKernelUnitedConfigService.ts @@ -1,7 +1,8 @@ export interface NodeIKernelUnitedConfigService { - addKernelUnitedConfigListener(...args: any[]): unknown;// needs 1 arguments - removeKernelUnitedConfigListener(...args: any[]): unknown;// needs 1 arguments + addKernelUnitedConfigListener(listener:unknown): number; + + removeKernelUnitedConfigListener(listenerId:number): void; fetchUnitedCommendConfig(...args: any[]): unknown;// needs 1 arguments @@ -12,4 +13,5 @@ export interface NodeIKernelUnitedConfigService { isUnitedConfigSwitchOn(...args: any[]): unknown;// needs 1 arguments registerUnitedConfigPushGroupList(...args: any[]): unknown;// needs 1 arguments + } diff --git a/src/core/services/NodeIYellowFaceService.ts b/src/core/services/NodeIYellowFaceService.ts index 31ef0ff6..973cc91a 100644 --- a/src/core/services/NodeIYellowFaceService.ts +++ b/src/core/services/NodeIYellowFaceService.ts @@ -1,5 +1,5 @@ -// public interface IYellowFaceForManagerService extends QRouteApi { -// void download(@NotNull String resourceConfigJson, @NotNull String resourceDir, @NotNull String cacheDir, boolean force, @NotNull IKernelYellowFaceDownloadCallback callback); +export interface NodeIYellowFaceService { + download(resourceConfigJson: string, resourceDir: string, cacheDir: string, force: boolean): void; -// void setHistory(@NotNull String fullMd5, @NotNull IOperateCallback callback); -// } \ No newline at end of file + setHistory(fullMd5: string): void; +} diff --git a/src/core/services/NodeIkernelTestPerformanceService.ts b/src/core/services/NodeIkernelTestPerformanceService.ts index 427aaa0c..ba6f4e66 100644 --- a/src/core/services/NodeIkernelTestPerformanceService.ts +++ b/src/core/services/NodeIkernelTestPerformanceService.ts @@ -1,6 +1,7 @@ import { MessageElement, Peer } from '../entities'; export interface NodeIkernelTestPerformanceService { + insertMsg(MsgParam: { peer: Peer msgTime: string diff --git a/src/core/services/common.ts b/src/core/services/common.ts index 8f087fbb..1843db4e 100644 --- a/src/core/services/common.ts +++ b/src/core/services/common.ts @@ -1,6 +1,5 @@ export enum GeneralCallResultStatus { - OK = 0, - // ERROR = 1, + OK = 0 } export interface GeneralCallResult { diff --git a/src/onebot/api/friend.ts b/src/onebot/api/friend.ts index 8a1136f3..d87ba1c3 100644 --- a/src/onebot/api/friend.ts +++ b/src/onebot/api/friend.ts @@ -18,7 +18,6 @@ export class OneBotFriendApi { let pokedetail: any[] = json.items; //筛选item带有uid的元素 pokedetail = pokedetail.filter(item => item.uid); - //console.log("[NapCat] 群拍一拍 群:", pokedetail, parseInt(msg.peerUid), " ", await NTQQUserApi.getUinByUid(pokedetail[0].uid), "拍了拍", await NTQQUserApi.getUinByUid(pokedetail[1].uid)); if (pokedetail.length == 2) { return new OB11FriendPokeEvent( this.core, diff --git a/src/onebot/api/group.ts b/src/onebot/api/group.ts index 40f0380e..07d31c60 100644 --- a/src/onebot/api/group.ts +++ b/src/onebot/api/group.ts @@ -77,7 +77,7 @@ export class OneBotGroupApi { id: FileNapCatOneBotUUID.encode({ chatType: ChatType.KCHATTYPEGROUP, peerUid: msg.peerUid, - }, msg.msgId, element.elementId), + }, msg.msgId, element.elementId, element.fileElement.fileName), name: element.fileElement.fileName, size: parseInt(element.fileElement.fileSize), busid: element.fileElement.fileBizId || 0, diff --git a/src/onebot/api/msg.ts b/src/onebot/api/msg.ts index bd36e2fa..21757111 100644 --- a/src/onebot/api/msg.ts +++ b/src/onebot/api/msg.ts @@ -106,7 +106,7 @@ export class OneBotMsgApi { peerUid: msg.peerUid, guildId: '', }; - const encodedFileId = FileNapCatOneBotUUID.encode(peer, msg.msgId, elementWrapper.elementId); + const encodedFileId = FileNapCatOneBotUUID.encode(peer, msg.msgId, elementWrapper.elementId, element.fileName); return { type: OB11MessageDataType.image, data: { @@ -136,7 +136,7 @@ export class OneBotMsgApi { file: element.fileName, path: element.filePath, url: element.filePath, - file_id: FileNapCatOneBotUUID.encode(peer, msg.msgId, elementWrapper.elementId), + file_id: FileNapCatOneBotUUID.encode(peer, msg.msgId, elementWrapper.elementId, element.fileName), file_size: element.fileSize, file_unique: element.fileName, }, @@ -179,7 +179,7 @@ export class OneBotMsgApi { type: OB11MessageDataType.image, data: { file: 'marketface', - file_id: FileNapCatOneBotUUID.encode(peer, msg.msgId, elementWrapper.elementId), + file_id: FileNapCatOneBotUUID.encode(peer, msg.msgId, elementWrapper.elementId, ".jpg"), path: elementWrapper.elementId, url: elementWrapper.elementId, file_unique: _.key @@ -264,7 +264,7 @@ export class OneBotMsgApi { file: element.fileName, path: videoDownUrl, url: videoDownUrl, - file_id: FileNapCatOneBotUUID.encode(peer, msg.msgId, elementWrapper.elementId), + file_id: FileNapCatOneBotUUID.encode(peer, msg.msgId, elementWrapper.elementId, element.fileName), file_size: element.fileSize, file_unique: element.fileName, }, @@ -277,12 +277,13 @@ export class OneBotMsgApi { peerUid: msg.peerUid, guildId: '', }; + const fileCode = FileNapCatOneBotUUID.encode(peer, msg.msgId, elementWrapper.elementId, element.fileName); return { type: OB11MessageDataType.voice, data: { - file: element.fileName, + file: fileCode, path: element.filePath, - file_id: FileNapCatOneBotUUID.encode(peer, msg.msgId, elementWrapper.elementId), + file_id: fileCode, file_size: element.fileSize, }, }; diff --git a/src/onebot/entities.ts b/src/onebot/entities.ts index 32f2a692..12d5f39f 100644 --- a/src/onebot/entities.ts +++ b/src/onebot/entities.ts @@ -109,7 +109,7 @@ export class OB11Entities { static file(peerId: string, file: Exclude): OB11GroupFile { return { group_id: parseInt(peerId), - file_id: FileNapCatOneBotUUID.encodeModelId({ chatType: 2, peerUid: peerId }, file.fileModelId, file.fileId), + file_id: FileNapCatOneBotUUID.encodeModelId({ chatType: 2, peerUid: peerId }, file.fileModelId, file.fileId, file.fileName), file_name: file.fileName, busid: file.busId, size: parseInt(file.fileSize), diff --git a/src/onebot/types/quick.ts b/src/onebot/types/quick.ts index 748c8705..2c3fff65 100644 --- a/src/onebot/types/quick.ts +++ b/src/onebot/types/quick.ts @@ -17,7 +17,6 @@ export interface QuickActionGroupMessage extends QuickActionPrivateMessage { kick?: boolean; ban?: boolean; ban_duration?: number; - // } export interface QuickActionFriendRequest { diff --git a/src/shell/napcat.ts b/src/shell/napcat.ts index 4beeded5..1a2a704b 100644 --- a/src/shell/napcat.ts +++ b/src/shell/napcat.ts @@ -229,7 +229,7 @@ export async function NCoreInitShell() { sessionConfig, new NodeIDependsAdapter(), new NodeIDispatcherAdapter(), - sessionListener as any, + sessionListener, ); try { session.startNT(0);