mirror of
https://github.com/NapNeko/NapCatQQ.git
synced 2025-07-19 12:03:37 +00:00
src
common
core
adapters
apis
entities
services
NodeIKernelAlbumService.tsNodeIKernelAvatarService.tsNodeIKernelBuddyService.tsNodeIKernelCollectionService.tsNodeIKernelDbToolsService.tsNodeIKernelECDHService.tsNodeIKernelGroupService.tsNodeIKernelMsgBackupService.tsNodeIKernelMsgService.tsNodeIKernelNodeMiscService.tsNodeIKernelOnlineStatusService.tsNodeIKernelProfileLikeService.tsNodeIKernelProfileService.tsNodeIKernelRecentContactService.tsNodeIKernelRichMediaService.tsNodeIKernelSearchService.tsNodeIKernelStorageCleanService.tsNodeIKernelTianShuService.tsNodeIKernelTicketService.tsNodeIKernelTipOffService.tsNodeIKernelUnitedConfigService.tsNodeIYellowFaceService.tsNodeIkernelTestPerformanceService.tscommon.ts
onebot
shell
@@ -25,8 +25,13 @@ export async function solveAsyncProblem<T extends (...args: any[]) => Promise<an
|
|||||||
}
|
}
|
||||||
|
|
||||||
export class FileNapCatOneBotUUID {
|
export class FileNapCatOneBotUUID {
|
||||||
static encodeModelId(peer: Peer, modelId: string, fileId: string): string {
|
static encodeModelId(peer: Peer, modelId: string, fileId: string, endString: string = ""): string {
|
||||||
return `NapCatOneBot|ModelIdFile|${peer.chatType}|${peer.peerUid}|${modelId}|${fileId}`;
|
let data = `NapCatOneBot|ModelIdFile|${peer.chatType}|${peer.peerUid}|${modelId}|${fileId}`;
|
||||||
|
//前四个字节塞data长度
|
||||||
|
let length = Buffer.alloc(4 + data.length);
|
||||||
|
length.writeUInt32BE(data.length, 0);
|
||||||
|
length.write(data, 4);
|
||||||
|
return length.toString('hex') + endString;
|
||||||
}
|
}
|
||||||
|
|
||||||
static decodeModelId(uuid: string): undefined | {
|
static decodeModelId(uuid: string): undefined | {
|
||||||
@@ -34,8 +39,14 @@ export class FileNapCatOneBotUUID {
|
|||||||
modelId: string,
|
modelId: string,
|
||||||
fileId: string
|
fileId: string
|
||||||
} {
|
} {
|
||||||
if (!uuid.startsWith('NapCatOneBot|ModelIdFile|')) return undefined;
|
//前四个字节是data长度
|
||||||
const data = uuid.split('|');
|
let length = Buffer.from(uuid.slice(0, 8), 'hex').readUInt32BE(0);
|
||||||
|
//根据length计算需要读取的长度
|
||||||
|
let dataId = uuid.slice(8, 8 + length);
|
||||||
|
//hex还原为string
|
||||||
|
const realData = Buffer.from(dataId, 'hex').toString();
|
||||||
|
if (!realData.startsWith('NapCatOneBot|ModelIdFile|')) return undefined;
|
||||||
|
const data = realData.split('|');
|
||||||
if (data.length !== 6) return undefined;
|
if (data.length !== 6) return undefined;
|
||||||
const [, , chatType, peerUid, modelId, fileId] = data;
|
const [, , chatType, peerUid, modelId, fileId] = data;
|
||||||
return {
|
return {
|
||||||
@@ -48,8 +59,13 @@ export class FileNapCatOneBotUUID {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
static encode(peer: Peer, msgId: string, elementId: string): string {
|
static encode(peer: Peer, msgId: string, elementId: string, endString: string = ""): string {
|
||||||
return `NapCatOneBot|MsgFile|${peer.chatType}|${peer.peerUid}|${msgId}|${elementId}`;
|
const data = `NapCatOneBot|MsgFile|${peer.chatType}|${peer.peerUid}|${msgId}|${elementId}`;
|
||||||
|
//前四个字节塞data长度
|
||||||
|
const length = Buffer.alloc(4 + data.length);
|
||||||
|
length.writeUInt32BE(data.length, 0);
|
||||||
|
length.write(data, 4);
|
||||||
|
return length.toString('hex');
|
||||||
}
|
}
|
||||||
|
|
||||||
static decode(uuid: string): undefined | {
|
static decode(uuid: string): undefined | {
|
||||||
@@ -57,8 +73,14 @@ export class FileNapCatOneBotUUID {
|
|||||||
msgId: string,
|
msgId: string,
|
||||||
elementId: string
|
elementId: string
|
||||||
} {
|
} {
|
||||||
if (!uuid.startsWith('NapCatOneBot|MsgFile|')) return undefined;
|
//前四个字节是data长度
|
||||||
const data = uuid.split('|');
|
const length = Buffer.from(uuid.slice(0, 8), 'hex').readUInt32BE(0);
|
||||||
|
//根据length计算需要读取的长度
|
||||||
|
const dataId = uuid.slice(8, 8 + length);
|
||||||
|
//hex还原为string
|
||||||
|
const realData = Buffer.from(dataId, 'hex').toString();
|
||||||
|
if (!realData.startsWith('NapCatOneBot|MsgFile|')) return undefined;
|
||||||
|
const data = realData.split('|');
|
||||||
if (data.length !== 6) return undefined;
|
if (data.length !== 6) return undefined;
|
||||||
const [, , chatType, peerUid, msgId, elementId] = data;
|
const [, , chatType, peerUid, msgId, elementId] = data;
|
||||||
return {
|
return {
|
||||||
|
@@ -1,9 +1,8 @@
|
|||||||
|
import { MsfChangeReasonType, MsfStatusType } from "../entities/adapter";
|
||||||
|
|
||||||
export class NodeIDependsAdapter {
|
export class NodeIDependsAdapter {
|
||||||
onMSFStatusChange(arg1: number, arg2: number) {
|
onMSFStatusChange(statusType: MsfStatusType, changeReasonType: MsfChangeReasonType) {
|
||||||
// console.log(arg1, arg2);
|
|
||||||
// if (arg1 == 2 && arg2 == 2) {
|
|
||||||
// log("NapCat丢失网络连接,请检查网络")
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
onMSFSsoError(args: unknown) {
|
onMSFSsoError(args: unknown) {
|
||||||
|
@@ -339,12 +339,12 @@ export class NTQQFileApi {
|
|||||||
if (!element) {
|
if (!element) {
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
const url: string = element.originImageUrl!; // 没有域名
|
const url: string = element.originImageUrl ?? '';
|
||||||
const md5HexStr = element.md5HexStr;
|
const md5HexStr = element.md5HexStr;
|
||||||
const fileMd5 = element.md5HexStr;
|
const fileMd5 = element.md5HexStr;
|
||||||
|
|
||||||
if (url) {
|
if (url) {
|
||||||
const parsedUrl = new URL(IMAGE_HTTP_HOST + url);//临时解析拼接
|
const parsedUrl = new URL(IMAGE_HTTP_HOST + url);
|
||||||
const imageAppid = parsedUrl.searchParams.get('appid');
|
const imageAppid = parsedUrl.searchParams.get('appid');
|
||||||
const isNTFlavoredPic = imageAppid && ['1406', '1407'].includes(imageAppid);
|
const isNTFlavoredPic = imageAppid && ['1406', '1407'].includes(imageAppid);
|
||||||
if (isNTFlavoredPic) {
|
if (isNTFlavoredPic) {
|
||||||
|
@@ -6,14 +6,9 @@ export class NTQQFriendApi {
|
|||||||
context: InstanceContext;
|
context: InstanceContext;
|
||||||
core: NapCatCore;
|
core: NapCatCore;
|
||||||
|
|
||||||
// friends: Map<string, Friend> = new Map<string, FriendV2>();
|
|
||||||
|
|
||||||
constructor(context: InstanceContext, core: NapCatCore) {
|
constructor(context: InstanceContext, core: NapCatCore) {
|
||||||
this.context = context;
|
this.context = context;
|
||||||
this.core = core;
|
this.core = core;
|
||||||
// if (!this.context.basicInfoWrapper.requireMinNTQQBuild('26702')) {
|
|
||||||
// this.getFriends(true);
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async getBuddyV2SimpleInfoMap(refresh = false) {
|
async getBuddyV2SimpleInfoMap(refresh = false) {
|
||||||
|
@@ -44,8 +44,8 @@ export class NTQQGroupApi {
|
|||||||
}, pskey);
|
}, pskey);
|
||||||
}
|
}
|
||||||
|
|
||||||
async clearGroupNotifiesUnreadCount(unk: boolean) {
|
async clearGroupNotifiesUnreadCount(uk: boolean) {
|
||||||
return this.context.session.getGroupService().clearGroupNotifiesUnreadCount(unk);
|
return this.context.session.getGroupService().clearGroupNotifiesUnreadCount(uk);
|
||||||
}
|
}
|
||||||
|
|
||||||
async setGroupAvatar(gc: string, filePath: string) {
|
async setGroupAvatar(gc: string, filePath: string) {
|
||||||
@@ -61,9 +61,9 @@ export class NTQQGroupApi {
|
|||||||
return groupList;
|
return groupList;
|
||||||
}
|
}
|
||||||
|
|
||||||
async getGroupExtFE0Info(GroupCode: string[], forced = true) {
|
async getGroupExtFE0Info(groupCode: string[], forced = true) {
|
||||||
return this.context.session.getGroupService().getGroupExt0xEF0Info(
|
return this.context.session.getGroupService().getGroupExt0xEF0Info(
|
||||||
GroupCode,
|
groupCode,
|
||||||
[],
|
[],
|
||||||
{
|
{
|
||||||
bindGuildId: 1,
|
bindGuildId: 1,
|
||||||
@@ -121,8 +121,8 @@ export class NTQQGroupApi {
|
|||||||
return group;
|
return group;
|
||||||
}
|
}
|
||||||
|
|
||||||
async getGroupMemberAll(GroupCode: string, forced = false) {
|
async getGroupMemberAll(groupCode: string, forced = false) {
|
||||||
return this.context.session.getGroupService().getAllMemberList(GroupCode, forced);
|
return this.context.session.getGroupService().getAllMemberList(groupCode, forced);
|
||||||
}
|
}
|
||||||
|
|
||||||
async getGroupMember(groupCode: string | number, memberUinOrUid: string | number) {
|
async getGroupMember(groupCode: string | number, memberUinOrUid: string | number) {
|
||||||
@@ -157,8 +157,8 @@ export class NTQQGroupApi {
|
|||||||
}
|
}
|
||||||
return member;
|
return member;
|
||||||
}
|
}
|
||||||
async getGroupRecommendContactArkJson(GroupCode: string) {
|
async getGroupRecommendContactArkJson(groupCode: string) {
|
||||||
return this.context.session.getGroupService().getGroupRecommendContactArkJson(GroupCode);
|
return this.context.session.getGroupService().getGroupRecommendContactArkJson(groupCode);
|
||||||
}
|
}
|
||||||
|
|
||||||
async CreatGroupFileFolder(groupCode: string, folderName: string) {
|
async CreatGroupFileFolder(groupCode: string, folderName: string) {
|
||||||
@@ -174,7 +174,6 @@ export class NTQQGroupApi {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async addGroupEssence(GroupCode: string, msgId: string) {
|
async addGroupEssence(GroupCode: string, msgId: string) {
|
||||||
// 需要 ob11msgId -> msgId + (peer) -> msgSeq + msgRandom
|
|
||||||
const MsgData = await this.context.session.getMsgService().getMsgsIncludeSelf({
|
const MsgData = await this.context.session.getMsgService().getMsgsIncludeSelf({
|
||||||
chatType: 2,
|
chatType: 2,
|
||||||
guildId: '',
|
guildId: '',
|
||||||
@@ -185,7 +184,6 @@ export class NTQQGroupApi {
|
|||||||
msgRandom: parseInt(MsgData.msgList[0].msgRandom),
|
msgRandom: parseInt(MsgData.msgList[0].msgRandom),
|
||||||
msgSeq: parseInt(MsgData.msgList[0].msgSeq),
|
msgSeq: parseInt(MsgData.msgList[0].msgSeq),
|
||||||
};
|
};
|
||||||
// GetMsgByShortID(shortID); -> MsgService.getMsgs(Peer,MsgId,1,false); -> 组出参数
|
|
||||||
return this.context.session.getGroupService().addGroupEssence(param);
|
return this.context.session.getGroupService().addGroupEssence(param);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -203,7 +201,6 @@ export class NTQQGroupApi {
|
|||||||
groupCode: GroupCode,
|
groupCode: GroupCode,
|
||||||
needDeleteLocalMsg: needDeleteLocalMsg,
|
needDeleteLocalMsg: needDeleteLocalMsg,
|
||||||
};
|
};
|
||||||
//应该是直接返回不需要Listener的 未经测试 需测试再发布
|
|
||||||
return this.context.session.getGroupService().quitGroupV2(param);
|
return this.context.session.getGroupService().quitGroupV2(param);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -325,8 +322,7 @@ export class NTQQGroupApi {
|
|||||||
if (result.errCode !== 0) {
|
if (result.errCode !== 0) {
|
||||||
throw new Error('获取群成员列表出错,' + result.errMsg);
|
throw new Error('获取群成员列表出错,' + result.errMsg);
|
||||||
}
|
}
|
||||||
|
this.context.logger.logDebug(`获取群(${groupQQ})成员列表结果:`, `members: ${result.result.infos.size}`);
|
||||||
this.context.logger.logDebug(`获取群(${groupQQ})成员列表结果:`, `members: ${result.result.infos.size}`); //, Array.from(result.result.infos.values()));
|
|
||||||
return result.result.infos;
|
return result.result.infos;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -357,12 +353,12 @@ export class NTQQGroupApi {
|
|||||||
return this.context.session.getGroupService().operateSysNotify(
|
return this.context.session.getGroupService().operateSysNotify(
|
||||||
false,
|
false,
|
||||||
{
|
{
|
||||||
'operateType': operateType, // 2 拒绝
|
operateType: operateType, // 2 拒绝
|
||||||
'targetMsg': {
|
targetMsg: {
|
||||||
'seq': seq, // 通知序列号
|
seq: seq, // 通知序列号
|
||||||
'type': type,
|
type: type,
|
||||||
'groupCode': groupCode,
|
groupCode: groupCode,
|
||||||
'postscript': reason ?? ' ', // 仅传空值可能导致处理失败,故默认给个空格
|
postscript: reason ?? ' ', // 仅传空值可能导致处理失败,故默认给个空格
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -418,7 +414,6 @@ export class NTQQGroupApi {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async getMemberExtInfo(groupCode: string, uin: string) {
|
async getMemberExtInfo(groupCode: string, uin: string) {
|
||||||
// 仅NTQQ 9.9.11 24568测试 容易炸开谨慎使用
|
|
||||||
return this.context.session.getGroupService().getMemberExtInfo(
|
return this.context.session.getGroupService().getMemberExtInfo(
|
||||||
{
|
{
|
||||||
groupCode: groupCode,
|
groupCode: groupCode,
|
||||||
|
@@ -19,27 +19,16 @@ export class NTQQMsgApi {
|
|||||||
return this.context.session.getMsgService().getAioFirstViewLatestMsgs(peer, MsgCount);
|
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) {
|
async sendShowInputStatusReq(peer: Peer, eventType: number) {
|
||||||
return this.context.session.getMsgService().sendShowInputStatusReq(peer.chatType, eventType, peer.peerUid);
|
return this.context.session.getMsgService().sendShowInputStatusReq(peer.chatType, eventType, peer.peerUid);
|
||||||
}
|
}
|
||||||
|
|
||||||
async getMsgEmojiLikesList(peer: Peer, msgSeq: string, emojiId: string, emojiType: string, count: number = 20) {
|
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);
|
return this.context.session.getMsgService().getMsgEmojiLikesList(peer, msgSeq, emojiId, emojiType, '', false, count);
|
||||||
}
|
}
|
||||||
|
|
||||||
async setEmojiLike(peer: Peer, msgSeq: string, emojiId: string, set: boolean = true) {
|
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();
|
emojiId = emojiId.toString();
|
||||||
return this.context.session.getMsgService().setMsgEmojiLikes(peer, msgSeq, emojiId, emojiId.length > 3 ? '2' : '1', set);
|
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) {
|
async getMsgsBySeqAndCount(peer: Peer, seq: string, count: number, desc: boolean, z: boolean) {
|
||||||
return await this.context.session.getMsgService().getMsgsBySeqAndCount(peer, seq, count, desc, z);
|
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) {
|
async getMsgExBySeq(peer: Peer, msgSeq: string) {
|
||||||
const DateNow = Math.floor(Date.now() / 1000);
|
const DateNow = Math.floor(Date.now() / 1000);
|
||||||
const filterMsgFromTime = (DateNow - 300).toString();
|
const filterMsgFromTime = (DateNow - 300).toString();
|
||||||
@@ -200,7 +181,7 @@ export class NTQQMsgApi {
|
|||||||
await this.PrepareTempChat(peer.peerUid, peer.guildId, member.nick);
|
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;
|
peer.guildId = msgId;
|
||||||
const [, msgList] = await this.core.eventWrapper.callNormalEventV2(
|
const [, msgList] = await this.core.eventWrapper.callNormalEventV2(
|
||||||
'NodeIKernelMsgService/sendMsg',
|
'NodeIKernelMsgService/sendMsg',
|
||||||
@@ -226,12 +207,8 @@ export class NTQQMsgApi {
|
|||||||
return msgList.find(msgRecord => msgRecord.guildId === msgId);
|
return msgList.find(msgRecord => msgRecord.guildId === msgId);
|
||||||
}
|
}
|
||||||
|
|
||||||
async generateMsgUniqueId(chatType: number, time: string) {
|
async generateMsgUniqueId(chatType: number) {
|
||||||
return this.context.session.getMsgService().generateMsgUniqueId(chatType, time);
|
return this.context.session.getMsgService().generateMsgUniqueId(chatType, this.context.session.getMSFService().getServerTime());
|
||||||
}
|
|
||||||
|
|
||||||
async getServerTime() {
|
|
||||||
return this.context.session.getMSFService().getServerTime();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async forwardMsg(srcPeer: Peer, destPeer: Peer, msgIds: string[]) {
|
async forwardMsg(srcPeer: Peer, destPeer: Peer, msgIds: string[]) {
|
||||||
|
@@ -214,11 +214,6 @@ export class NTQQMusicSignApi {
|
|||||||
//console.log(MusicReal);
|
//console.log(MusicReal);
|
||||||
return { ...MusicReal.data, mid: signedMid };
|
return { ...MusicReal.data, mid: signedMid };
|
||||||
}
|
}
|
||||||
|
|
||||||
async CreateMusicThirdWay1(id: string = '', mid: string = '') {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
//转换外域名为 https://qq.ugcimg.cn/v1/cpqcbu4b8870i61bde6k7cbmjgejq8mr3in82qir4qi7ielffv5slv8ck8g42novtmev26i233ujtuab6tvu2l2sjgtupfr389191v00s1j5oh5325j5eqi40774jv1i/khovifoh7jrqd6eahoiv7koh8o
|
//转换外域名为 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
|
//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
|
||||||
|
|
||||||
|
@@ -22,7 +22,7 @@ export class NTQQSystemApi {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async getOnlineDev() {
|
async getOnlineDev() {
|
||||||
return this.context.session.getMsgService().getOnLineDev();
|
this.context.session.getMsgService().getOnLineDev();
|
||||||
}
|
}
|
||||||
|
|
||||||
async getArkJsonCollection(cid: string) {
|
async getArkJsonCollection(cid: string) {
|
||||||
|
@@ -1,7 +1,6 @@
|
|||||||
import type { ModifyProfileParams, User } from '@/core/entities';
|
import { ModifyProfileParams, User, UserDetailSource } from '@/core/entities';
|
||||||
import { RequestUtil } from '@/common/request';
|
import { RequestUtil } from '@/common/request';
|
||||||
import { ProfileBizType, UserDetailSource } from '@/core/services';
|
import { InstanceContext, NapCatCore, ProfileBizType } from '..';
|
||||||
import { InstanceContext, NapCatCore } from '..';
|
|
||||||
import { solveAsyncProblem } from '@/common/helper';
|
import { solveAsyncProblem } from '@/common/helper';
|
||||||
|
|
||||||
export class NTQQUserApi {
|
export class NTQQUserApi {
|
||||||
|
11
src/core/entities/adapter.ts
Normal file
11
src/core/entities/adapter.ts
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
export enum MsfStatusType {
|
||||||
|
KUNKNOWN,
|
||||||
|
KDISCONNECTED,
|
||||||
|
KCONNECTED
|
||||||
|
}
|
||||||
|
export enum MsfChangeReasonType {
|
||||||
|
KUNKNOWN,
|
||||||
|
KUSERLOGININ,
|
||||||
|
KUSERLOGINOUT,
|
||||||
|
KAUTO
|
||||||
|
}
|
12
src/core/entities/contact.ts
Normal file
12
src/core/entities/contact.ts
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
|
||||||
|
export interface FSABRecentContactParams {
|
||||||
|
anchorPointContact: {
|
||||||
|
contactId: string;
|
||||||
|
sortField: string;
|
||||||
|
pos: number;
|
||||||
|
};
|
||||||
|
relativeMoveCount: number;
|
||||||
|
listType: number;
|
||||||
|
count: number;
|
||||||
|
fetchOld: boolean;
|
||||||
|
}
|
@@ -1,4 +1,4 @@
|
|||||||
import { GroupMemberRole } from '@/core';
|
import { GroupMemberRole, Peer } from '@/core';
|
||||||
|
|
||||||
export interface Peer {
|
export interface Peer {
|
||||||
chatType: ChatType;
|
chatType: ChatType;
|
||||||
@@ -934,3 +934,28 @@ export interface RawMessage {
|
|||||||
|
|
||||||
elements: MessageElement[];
|
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;
|
||||||
|
}
|
||||||
|
@@ -364,3 +364,19 @@ export interface UserDetailInfoByUin {
|
|||||||
vipNameColorId: string
|
vipNameColorId: string
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
export enum UserDetailSource {
|
||||||
|
KDB,
|
||||||
|
KSERVER
|
||||||
|
}
|
||||||
|
|
||||||
|
export enum ProfileBizType {
|
||||||
|
KALL,
|
||||||
|
KBASEEXTEND,
|
||||||
|
KVAS,
|
||||||
|
KQZONE,
|
||||||
|
KOTHER
|
||||||
|
}export enum BuddyListReqType {
|
||||||
|
KNOMAL,
|
||||||
|
KLETTER
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
export interface NodeIKernelAlbumService {
|
export interface NodeIKernelAlbumService {
|
||||||
|
|
||||||
setAlbumServiceInfo(...args: any[]): unknown;// needs 3 arguments
|
setAlbumServiceInfo(...args: any[]): unknown;// needs 3 arguments
|
||||||
|
|
||||||
getMainPage(...args: any[]): unknown;// needs 2 arguments
|
getMainPage(...args: any[]): unknown;// needs 2 arguments
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
export interface NodeIKernelAvatarService {
|
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;
|
getAvatarPath(arg1: unknown, arg2: unknown): unknown;
|
||||||
|
|
||||||
|
@@ -1,13 +1,8 @@
|
|||||||
import { GeneralCallResult } from '@/core/services/common';
|
import { GeneralCallResult } from '@/core/services/common';
|
||||||
import { NodeIKernelBuddyListener } from '@/core/listeners';
|
import { NodeIKernelBuddyListener } from '@/core/listeners';
|
||||||
|
import { BuddyListReqType } from '../entities/user';
|
||||||
export enum BuddyListReqType {
|
|
||||||
KNOMAL,
|
|
||||||
KLETTER
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface NodeIKernelBuddyService {
|
export interface NodeIKernelBuddyService {
|
||||||
// 26702 以上
|
|
||||||
getBuddyListV2(callFrom: string, reqType: BuddyListReqType): Promise<GeneralCallResult & {
|
getBuddyListV2(callFrom: string, reqType: BuddyListReqType): Promise<GeneralCallResult & {
|
||||||
data: Array<{
|
data: Array<{
|
||||||
categoryId: number,
|
categoryId: number,
|
||||||
@@ -19,7 +14,6 @@ export interface NodeIKernelBuddyService {
|
|||||||
}>
|
}>
|
||||||
}>;
|
}>;
|
||||||
|
|
||||||
//26702 以上
|
|
||||||
getBuddyListFromCache(callFrom: string): Promise<Array<
|
getBuddyListFromCache(callFrom: string): Promise<Array<
|
||||||
{
|
{
|
||||||
categoryId: number,//9999应该跳过 那是兜底数据吧
|
categoryId: number,//9999应该跳过 那是兜底数据吧
|
||||||
@@ -29,19 +23,14 @@ export interface NodeIKernelBuddyService {
|
|||||||
onlineCount: number,//在线数目
|
onlineCount: number,//在线数目
|
||||||
buddyUids: Array<string>//Uids
|
buddyUids: Array<string>//Uids
|
||||||
}>>;
|
}>>;
|
||||||
|
|
||||||
// 以下为原生方法
|
|
||||||
addKernelBuddyListener(listener: NodeIKernelBuddyListener): number;
|
addKernelBuddyListener(listener: NodeIKernelBuddyListener): number;
|
||||||
|
|
||||||
getAllBuddyCount(): number;
|
getAllBuddyCount(): number;
|
||||||
|
|
||||||
removeKernelBuddyListener(listener: unknown): void;
|
removeKernelBuddyListener(listenerId: number): void;
|
||||||
|
|
||||||
/**
|
//getBuddyList(nocache: boolean): Promise<GeneralCallResult>;
|
||||||
* @deprecated
|
|
||||||
* @param nocache 使用缓存
|
|
||||||
*/
|
|
||||||
getBuddyList(nocache: boolean): Promise<GeneralCallResult>;
|
|
||||||
|
|
||||||
getBuddyNick(uid: number): string;
|
getBuddyNick(uid: number): string;
|
||||||
|
|
||||||
|
@@ -1,9 +1,9 @@
|
|||||||
import { GeneralCallResult } from './common';
|
import { GeneralCallResult } from './common';
|
||||||
|
|
||||||
export interface NodeIKernelCollectionService {
|
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: {
|
getCollectionItemList(param: {
|
||||||
category: number,
|
category: number,
|
||||||
@@ -14,46 +14,46 @@ export interface NodeIKernelCollectionService {
|
|||||||
count: number,
|
count: number,
|
||||||
searchDown: boolean
|
searchDown: boolean
|
||||||
}): Promise<GeneralCallResult &
|
}): Promise<GeneralCallResult &
|
||||||
{
|
{
|
||||||
collectionSearchList: {
|
collectionSearchList: {
|
||||||
collectionItemList: Array<
|
collectionItemList: Array<
|
||||||
{
|
{
|
||||||
cid: string,
|
cid: string,
|
||||||
|
type: number,
|
||||||
|
status: number,
|
||||||
|
author: {
|
||||||
type: number,
|
type: number,
|
||||||
status: number,
|
numId: string,
|
||||||
author: {
|
strId: string,
|
||||||
type: number,
|
groupId: string,
|
||||||
numId: string,
|
groupName: string,
|
||||||
strId: string,
|
uid: string
|
||||||
groupId: string,
|
},
|
||||||
groupName: string,
|
bid: number,
|
||||||
uid: string
|
category: number,
|
||||||
},
|
createTime: string,
|
||||||
bid: number,
|
collectTime: string,
|
||||||
category: number,
|
modifyTime: string,
|
||||||
createTime: string,
|
sequence: string,
|
||||||
collectTime: string,
|
shareUrl: string,
|
||||||
modifyTime: string,
|
customGroupId: number,
|
||||||
sequence: string,
|
securityBeat: boolean,
|
||||||
shareUrl: string,
|
summary: {
|
||||||
customGroupId: number,
|
textSummary: unknown,
|
||||||
securityBeat: boolean,
|
linkSummary: unknown,
|
||||||
summary: {
|
gallerySummary: unknown,
|
||||||
textSummary: unknown,
|
audioSummary: unknown,
|
||||||
linkSummary: unknown,
|
videoSummary: unknown,
|
||||||
gallerySummary: unknown,
|
fileSummary: unknown,
|
||||||
audioSummary: unknown,
|
locationSummary: unknown,
|
||||||
videoSummary: unknown,
|
richMediaSummary: unknown,
|
||||||
fileSummary: unknown,
|
}
|
||||||
locationSummary: unknown,
|
}>,
|
||||||
richMediaSummary: unknown,
|
hasMore: boolean,
|
||||||
}
|
bottomTimeStamp: string
|
||||||
}>,
|
|
||||||
hasMore: boolean,
|
|
||||||
bottomTimeStamp: string
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
>;//needs 1 arguments
|
}
|
||||||
|
>;
|
||||||
|
|
||||||
getCollectionContent(...args: any[]): unknown;//needs 5 arguments
|
getCollectionContent(...args: any[]): unknown;//needs 5 arguments
|
||||||
|
|
||||||
|
@@ -1,7 +1,9 @@
|
|||||||
export interface NodeIKernelDbToolsService {
|
export interface NodeIKernelDbToolsService {
|
||||||
|
|
||||||
depositDatabase(...args: unknown[]): unknown;
|
depositDatabase(...args: unknown[]): unknown;
|
||||||
|
|
||||||
backupDatabase(...args: unknown[]): unknown;
|
backupDatabase(...args: unknown[]): unknown;
|
||||||
|
|
||||||
retrieveDatabase(...args: unknown[]): unknown;
|
retrieveDatabase(...args: unknown[]): unknown;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -1,3 +1,2 @@
|
|||||||
export interface NodeIKernelECDHService {
|
export interface NodeIKernelECDHService {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -11,8 +11,6 @@ import {
|
|||||||
} from '@/core/entities';
|
} from '@/core/entities';
|
||||||
import { GeneralCallResult } from '@/core/services/common';
|
import { GeneralCallResult } from '@/core/services/common';
|
||||||
|
|
||||||
//高版本的接口不应该随意使用 使用应该严格进行pr审核 同时部分ipc中未出现的接口不要过于依赖 应该做好数据兜底
|
|
||||||
|
|
||||||
export interface NodeIKernelGroupService {
|
export interface NodeIKernelGroupService {
|
||||||
getGroupExt0xEF0Info(enableGroupCodes: string[], bannedGroupCodes: string[], filter: GroupExt0xEF0InfoFilter, forceFetch: boolean):
|
getGroupExt0xEF0Info(enableGroupCodes: string[], bannedGroupCodes: string[], filter: GroupExt0xEF0InfoFilter, forceFetch: boolean):
|
||||||
Promise<GeneralCallResult & { result: { groupExtInfos: Map<string, any> } }>;
|
Promise<GeneralCallResult & { result: { groupExtInfos: Map<string, any> } }>;
|
||||||
@@ -82,11 +80,11 @@ export interface NodeIKernelGroupService {
|
|||||||
}): Promise<unknown>;
|
}): Promise<unknown>;
|
||||||
|
|
||||||
|
|
||||||
isEssenceMsg(Req: { groupCode: string, msgRandom: number, msgSeq: number }): Promise<unknown>;
|
isEssenceMsg(req: { groupCode: string, msgRandom: number, msgSeq: number }): Promise<unknown>;
|
||||||
|
|
||||||
queryCachedEssenceMsg(Req: { groupCode: string, msgRandom: number, msgSeq: number }): Promise<unknown>;
|
queryCachedEssenceMsg(req: { groupCode: string, msgRandom: number, msgSeq: number }): Promise<unknown>;
|
||||||
|
|
||||||
fetchGroupEssenceList(Req: {
|
fetchGroupEssenceList(req: {
|
||||||
groupCode: string,
|
groupCode: string,
|
||||||
pageStart: number,
|
pageStart: number,
|
||||||
pageLimit: number
|
pageLimit: number
|
||||||
@@ -110,13 +108,12 @@ export interface NodeIKernelGroupService {
|
|||||||
|
|
||||||
addKernelGroupListener(listener: NodeIKernelGroupListener): number;
|
addKernelGroupListener(listener: NodeIKernelGroupListener): number;
|
||||||
|
|
||||||
removeKernelGroupListener(listenerId: unknown): void;
|
removeKernelGroupListener(listenerId: number): void;
|
||||||
|
|
||||||
createMemberListScene(groupCode: string, scene: string): string;
|
createMemberListScene(groupCode: string, scene: string): string;
|
||||||
|
|
||||||
destroyMemberListScene(SceneId: string): void;
|
destroyMemberListScene(SceneId: string): void;
|
||||||
|
|
||||||
//About Arg (a) name: lastId 根据手Q来看为object {index:?(number),uid:string}
|
|
||||||
getNextMemberList(sceneId: string, a: undefined, num: number): Promise<{
|
getNextMemberList(sceneId: string, a: undefined, num: number): Promise<{
|
||||||
errCode: number, errMsg: string,
|
errCode: number, errMsg: string,
|
||||||
result: { ids: string[], infos: Map<string, GroupMember>, finish: boolean, hasRobot: boolean }
|
result: { ids: string[], infos: Map<string, GroupMember>, finish: boolean, hasRobot: boolean }
|
||||||
@@ -247,14 +244,12 @@ export interface NodeIKernelGroupService {
|
|||||||
|
|
||||||
modifyGroupExtInfo(groupCode: string, arg: unknown): void;
|
modifyGroupExtInfo(groupCode: string, arg: unknown): void;
|
||||||
|
|
||||||
//需要提前判断是否存在 高版本新增
|
|
||||||
addGroupEssence(param: {
|
addGroupEssence(param: {
|
||||||
groupCode: string
|
groupCode: string
|
||||||
msgRandom: number,
|
msgRandom: number,
|
||||||
msgSeq: number
|
msgSeq: number
|
||||||
}): Promise<unknown>;
|
}): Promise<unknown>;
|
||||||
|
|
||||||
//需要提前判断是否存在 高版本新增
|
|
||||||
removeGroupEssence(param: {
|
removeGroupEssence(param: {
|
||||||
groupCode: string
|
groupCode: string
|
||||||
msgRandom: number,
|
msgRandom: number,
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
export interface NodeIKernelMsgBackupService {
|
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
|
getMsgBackupLocation(...args: any[]): unknown;// needs 0 arguments
|
||||||
|
|
||||||
|
@@ -1,32 +1,7 @@
|
|||||||
import { ElementType, MessageElement, Peer, RawMessage, SendMessageElement } from '@/core/entities';
|
import { ElementType, MessageElement, Peer, RawMessage, SendMessageElement } from '@/core/entities';
|
||||||
import { NodeIKernelMsgListener } from '@/core/listeners/NodeIKernelMsgListener';
|
import { NodeIKernelMsgListener } from '@/core/listeners/NodeIKernelMsgListener';
|
||||||
import { GeneralCallResult } from '@/core/services/common';
|
import { GeneralCallResult } from '@/core/services/common';
|
||||||
|
import { QueryMsgsParams, TmpChatInfoApi } from '../entities/msg';
|
||||||
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;
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface NodeIKernelMsgService {
|
export interface NodeIKernelMsgService {
|
||||||
|
|
||||||
@@ -76,18 +51,12 @@ export interface NodeIKernelMsgService {
|
|||||||
|
|
||||||
downloadOnlineStatusCommonByUrl(arg0: string, arg1: string): unknown;
|
downloadOnlineStatusCommonByUrl(arg0: string, arg1: string): unknown;
|
||||||
|
|
||||||
// this.tokenType = i2;
|
|
||||||
// this.apnsToken = bArr;
|
|
||||||
// this.voipToken = bArr2;
|
|
||||||
// this.profileId = str;
|
|
||||||
|
|
||||||
setToken(arg: unknown): unknown;
|
setToken(arg: unknown): unknown;
|
||||||
|
|
||||||
switchForeGround(): unknown;
|
switchForeGround(): unknown;
|
||||||
|
|
||||||
switchBackGround(arg: unknown): unknown;
|
switchBackGround(arg: unknown): unknown;
|
||||||
|
|
||||||
//hex
|
|
||||||
setTokenForMqq(token: string): unknown;
|
setTokenForMqq(token: string): unknown;
|
||||||
|
|
||||||
switchForeGroundForMqq(...args: unknown[]): unknown;
|
switchForeGroundForMqq(...args: unknown[]): unknown;
|
||||||
@@ -124,7 +93,6 @@ export interface NodeIKernelMsgService {
|
|||||||
|
|
||||||
forwardFile(...args: unknown[]): unknown;
|
forwardFile(...args: unknown[]): unknown;
|
||||||
|
|
||||||
//Array<Msg>, Peer from, Peer to
|
|
||||||
multiForwardMsg(...args: unknown[]): unknown;
|
multiForwardMsg(...args: unknown[]): unknown;
|
||||||
|
|
||||||
multiForwardMsgWithComment(...args: unknown[]): unknown;
|
multiForwardMsgWithComment(...args: unknown[]): unknown;
|
||||||
@@ -185,11 +153,6 @@ export interface NodeIKernelMsgService {
|
|||||||
msgList: RawMessage[]
|
msgList: RawMessage[]
|
||||||
}>;
|
}>;
|
||||||
|
|
||||||
// this.$peer = contact;
|
|
||||||
// this.$msgTime = j2;
|
|
||||||
// this.$clientSeq = j3;
|
|
||||||
// this.$cnt = i2;
|
|
||||||
|
|
||||||
getMsgsWithMsgTimeAndClientSeqForC2C(...args: unknown[]): Promise<GeneralCallResult & { msgList: RawMessage[] }>;
|
getMsgsWithMsgTimeAndClientSeqForC2C(...args: unknown[]): Promise<GeneralCallResult & { msgList: RawMessage[] }>;
|
||||||
|
|
||||||
getMsgsWithStatus(params: {
|
getMsgsWithStatus(params: {
|
||||||
@@ -226,7 +189,6 @@ export interface NodeIKernelMsgService {
|
|||||||
|
|
||||||
getSourceOfReplyMsgByClientSeqAndTime(peer: Peer, clientSeq: string, time: string): unknown;
|
getSourceOfReplyMsgByClientSeqAndTime(peer: Peer, clientSeq: string, time: string): unknown;
|
||||||
|
|
||||||
//cnt clientSeq?并不是吧
|
|
||||||
getMsgsByTypeFilter(peer: Peer, msgId: string, cnt: unknown, queryOrder: boolean, typeFilter: {
|
getMsgsByTypeFilter(peer: Peer, msgId: string, cnt: unknown, queryOrder: boolean, typeFilter: {
|
||||||
type: number,
|
type: number,
|
||||||
subtype: Array<number>
|
subtype: Array<number>
|
||||||
@@ -241,49 +203,15 @@ export interface NodeIKernelMsgService {
|
|||||||
|
|
||||||
queryMsgsWithFilter(...args: unknown[]): unknown;
|
queryMsgsWithFilter(...args: unknown[]): unknown;
|
||||||
|
|
||||||
/**
|
//queryMsgsWithFilterVer2(MsgId: string, MsgTime: string, param: QueryMsgsParams): Promise<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<unknown>;
|
|
||||||
|
|
||||||
// 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<GeneralCallResult & {
|
queryMsgsWithFilterEx(msgId: string, msgTime: string, megSeq: string, param: QueryMsgsParams): Promise<GeneralCallResult & {
|
||||||
msgList: RawMessage[]
|
msgList: RawMessage[]
|
||||||
}>;
|
}>;
|
||||||
|
|
||||||
//queryMsgsWithFilterEx(this.$msgId, this.$msgTime, this.$msgSeq, this.$param)
|
queryFileMsgsDesktop(msgId: string, msgTime: string, msgSeq: string, param: QueryMsgsParams): Promise<GeneralCallResult & {
|
||||||
queryFileMsgsDesktop(...args: unknown[]): unknown;
|
msgList: RawMessage[]
|
||||||
|
}>;
|
||||||
|
|
||||||
setMsgRichInfoFlag(...args: unknown[]): unknown;
|
setMsgRichInfoFlag(...args: unknown[]): unknown;
|
||||||
|
|
||||||
@@ -390,17 +318,11 @@ export interface NodeIKernelMsgService {
|
|||||||
|
|
||||||
getFileThumbSavePath(...args: unknown[]): unknown;
|
getFileThumbSavePath(...args: unknown[]): unknown;
|
||||||
|
|
||||||
//猜测居多
|
translatePtt2Text(msgId: string, peer: Peer, msgElement: unknown): unknown;
|
||||||
translatePtt2Text(MsgId: string, Peer: Peer, MsgElement: unknown): unknown;
|
|
||||||
|
|
||||||
setPttPlayedState(...args: unknown[]): unknown;
|
setPttPlayedState(...args: unknown[]): unknown;
|
||||||
|
|
||||||
// NodeIQQNTWrapperSession fetchFavEmojiList [
|
//uk1 uk2 true
|
||||||
// "",
|
|
||||||
// 48,
|
|
||||||
// true,
|
|
||||||
// true
|
|
||||||
// ]
|
|
||||||
fetchFavEmojiList(str: string, num: number, uk1: boolean, uk2: boolean): Promise<GeneralCallResult & {
|
fetchFavEmojiList(str: string, num: number, uk1: boolean, uk2: boolean): Promise<GeneralCallResult & {
|
||||||
emojiInfoList: Array<{
|
emojiInfoList: Array<{
|
||||||
uin: string,
|
uin: string,
|
||||||
@@ -496,7 +418,7 @@ export interface NodeIKernelMsgService {
|
|||||||
getFirstUnreadMsgSeq(args: {
|
getFirstUnreadMsgSeq(args: {
|
||||||
peerUid: string
|
peerUid: string
|
||||||
guildId: string
|
guildId: string
|
||||||
}): unknown;
|
}): Promise<unknown>;
|
||||||
|
|
||||||
getFirstUnreadCommonMsg(...args: unknown[]): unknown;
|
getFirstUnreadCommonMsg(...args: unknown[]): unknown;
|
||||||
|
|
||||||
@@ -590,7 +512,7 @@ export interface NodeIKernelMsgService {
|
|||||||
|
|
||||||
getFirstUnreadAtMsg(peer: Peer): unknown;
|
getFirstUnreadAtMsg(peer: Peer): unknown;
|
||||||
|
|
||||||
clearMsgRecords(...args: unknown[]): unknown;//设置已读后调用我觉得比较好 清理记录 现在别了
|
clearMsgRecords(...args: unknown[]): unknown;
|
||||||
|
|
||||||
IsExistOldDb(...args: unknown[]): unknown;
|
IsExistOldDb(...args: unknown[]): unknown;
|
||||||
|
|
||||||
@@ -626,25 +548,10 @@ export interface NodeIKernelMsgService {
|
|||||||
|
|
||||||
enterOrExitAio(...args: unknown[]): unknown;
|
enterOrExitAio(...args: unknown[]): unknown;
|
||||||
|
|
||||||
// this.peerUid = "";
|
prepareTempChat(args: unknown): unknown;
|
||||||
// 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;//主动临时消息 不做
|
|
||||||
|
|
||||||
sendSsoCmdReqByContend(cmd: string, param: string): Promise<unknown>;
|
sendSsoCmdReqByContend(cmd: string, param: string): Promise<unknown>;
|
||||||
|
|
||||||
//chattype,uid->Promise<any>
|
|
||||||
getTempChatInfo(ChatType: number, Uid: string): Promise<TmpChatInfoApi>;
|
getTempChatInfo(ChatType: number, Uid: string): Promise<TmpChatInfoApi>;
|
||||||
|
|
||||||
setContactLocalTop(...args: unknown[]): unknown;
|
setContactLocalTop(...args: unknown[]): unknown;
|
||||||
@@ -708,7 +615,6 @@ export interface NodeIKernelMsgService {
|
|||||||
|
|
||||||
dataMigrationStopOperation(...args: unknown[]): unknown;
|
dataMigrationStopOperation(...args: unknown[]): unknown;
|
||||||
|
|
||||||
//新的希望
|
|
||||||
dataMigrationImportMsgPbRecord(DataMigrationMsgInfo: Array<{
|
dataMigrationImportMsgPbRecord(DataMigrationMsgInfo: Array<{
|
||||||
extensionData: string//"Hex"
|
extensionData: string//"Hex"
|
||||||
extraData: string //""
|
extraData: string //""
|
||||||
@@ -760,6 +666,6 @@ export interface NodeIKernelMsgService {
|
|||||||
|
|
||||||
getGuildMsgAbFlag(...args: unknown[]): unknown;
|
getGuildMsgAbFlag(...args: unknown[]): unknown;
|
||||||
|
|
||||||
getGroupMsgStorageTime(): unknown;//这是嘛啊
|
getGroupMsgStorageTime(): unknown;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -1,6 +1,5 @@
|
|||||||
import { GeneralCallResult } from './common';
|
import { GeneralCallResult } from './common';
|
||||||
|
|
||||||
//没扒干净 因为用不着
|
|
||||||
export interface NodeIKernelNodeMiscService {
|
export interface NodeIKernelNodeMiscService {
|
||||||
getMiniAppPath(): unknown;
|
getMiniAppPath(): unknown;
|
||||||
|
|
||||||
@@ -11,7 +10,4 @@ export interface NodeIKernelNodeMiscService {
|
|||||||
SendMiniAppMsg(arg1: string, arg2: string, arg3: string): unknown;
|
SendMiniAppMsg(arg1: string, arg2: string, arg3: string): unknown;
|
||||||
|
|
||||||
startNewMiniApp(appfile: string, params: string): unknown;
|
startNewMiniApp(appfile: string, params: string): unknown;
|
||||||
|
|
||||||
// 我的计划是转发给一个新程序避免吃掉Electron_AS_Node的环境 然后重写启动MiniApp 挂载相应JS脚本 这样有个问题
|
|
||||||
// 需要自己转发ipc参数 然后必须处在gui环境 且完成校验破解 才能实现发包 有点抽象了
|
|
||||||
}
|
}
|
||||||
|
@@ -1,8 +1,8 @@
|
|||||||
export interface NodeIKernelOnlineStatusService {
|
export interface NodeIKernelOnlineStatusService {
|
||||||
|
|
||||||
addKernelOnlineStatusListener(listener: unknown): void;
|
addKernelOnlineStatusListener(listener: unknown): number;
|
||||||
|
|
||||||
removeKernelOnlineStatusListener(listenerId: unknown): void;
|
removeKernelOnlineStatusListener(listenerId: number): void;
|
||||||
|
|
||||||
getShouldShowAIOStatusAnimation(arg: unknown): unknown;
|
getShouldShowAIOStatusAnimation(arg: unknown): unknown;
|
||||||
|
|
||||||
|
@@ -1,17 +1,17 @@
|
|||||||
import { BuddyProfileLikeReq, GeneralCallResult } from '@/core';
|
import { BuddyProfileLikeReq, GeneralCallResult } from '@/core';
|
||||||
|
|
||||||
export interface NodeIKernelProfileLikeService {
|
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 };
|
setBuddyProfileLike(...args: unknown[]): { result: number, errMsg: string, succCounts: number };
|
||||||
|
|
||||||
getBuddyProfileLike(req: BuddyProfileLikeReq): Promise<GeneralCallResult & {
|
getBuddyProfileLike(req: BuddyProfileLikeReq): Promise<GeneralCallResult & {
|
||||||
'info': {
|
info: {
|
||||||
'userLikeInfos': Array<any>,
|
userLikeInfos: Array<any>,
|
||||||
'friendMaxVotes': number,
|
friendMaxVotes: number,
|
||||||
'start': number
|
start: number
|
||||||
}
|
}
|
||||||
}>;
|
}>;
|
||||||
|
|
||||||
|
@@ -1,38 +1,16 @@
|
|||||||
import { AnyCnameRecord } from 'node:dns';
|
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';
|
import { GeneralCallResult } from '@/core/services/common';
|
||||||
|
|
||||||
export enum UserDetailSource {
|
|
||||||
KDB,
|
|
||||||
KSERVER
|
|
||||||
}
|
|
||||||
|
|
||||||
export enum ProfileBizType {
|
|
||||||
KALL,
|
|
||||||
KBASEEXTEND,
|
|
||||||
KVAS,
|
|
||||||
KQZONE,
|
|
||||||
KOTHER
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface NodeIKernelProfileService {
|
export interface NodeIKernelProfileService {
|
||||||
|
|
||||||
getUidByUin(callfrom: string, uin: Array<string>): Promise<Map<string, string>>;//uin->uid
|
getUidByUin(callfrom: string, uin: Array<string>): Promise<Map<string, string>>;
|
||||||
|
|
||||||
getUinByUid(callfrom: string, uid: Array<string>): Promise<Map<string, string>>;
|
getUinByUid(callfrom: string, uid: Array<string>): Promise<Map<string, string>>;
|
||||||
|
|
||||||
// {
|
|
||||||
// coreInfo: CoreInfo,
|
|
||||||
// baseInfo: BaseInfo,
|
|
||||||
// status: null,
|
|
||||||
// vasInfo: null,
|
|
||||||
// relationFlags: null,
|
|
||||||
// otherFlags: null,
|
|
||||||
// intimate: null
|
|
||||||
// }
|
|
||||||
getCoreAndBaseInfo(callfrom: string, uids: string[]): Promise<Map<string, SimpleInfo>>;
|
getCoreAndBaseInfo(callfrom: string, uids: string[]): Promise<Map<string, SimpleInfo>>;
|
||||||
|
|
||||||
fetchUserDetailInfo(trace: string, uids: string[], arg2: number, arg3: number[]): Promise<unknown>;
|
fetchUserDetailInfo(trace: string, uids: string[], source: UserDetailSource, bizType: ProfileBizType[]): Promise<GeneralCallResult>;
|
||||||
|
|
||||||
addKernelProfileListener(listener: NodeIKernelProfileListener): number;
|
addKernelProfileListener(listener: NodeIKernelProfileListener): number;
|
||||||
|
|
||||||
@@ -44,30 +22,17 @@ export interface NodeIKernelProfileService {
|
|||||||
|
|
||||||
enumCountryOptions(): Array<string>;
|
enumCountryOptions(): Array<string>;
|
||||||
|
|
||||||
enumProvinceOptions(Country: string): Array<string>;
|
enumProvinceOptions(country: string): Array<string>;
|
||||||
|
|
||||||
enumCityOptions(Country: string, Province: string): unknown;
|
enumCityOptions(country: string, province: string): unknown;
|
||||||
|
|
||||||
enumAreaOptions(...args: unknown[]): 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<unknown>;
|
modifySelfProfile(...args: unknown[]): Promise<unknown>;
|
||||||
|
|
||||||
modifyDesktopMiniProfile(param: ModifyProfileParams): Promise<GeneralCallResult>;
|
modifyDesktopMiniProfile(param: ModifyProfileParams): Promise<GeneralCallResult>;
|
||||||
|
|
||||||
setNickName(NickName: string): Promise<unknown>;
|
setNickName(nickName: string): Promise<unknown>;
|
||||||
|
|
||||||
setLongNick(longNick: string): Promise<unknown>;
|
setLongNick(longNick: string): Promise<unknown>;
|
||||||
|
|
||||||
@@ -95,14 +60,12 @@ export interface NodeIKernelProfileService {
|
|||||||
|
|
||||||
getSelfStatus(): Promise<unknown>;
|
getSelfStatus(): Promise<unknown>;
|
||||||
|
|
||||||
//
|
|
||||||
setdisableEmojiShortCuts(...args: unknown[]): unknown;
|
setdisableEmojiShortCuts(...args: unknown[]): unknown;
|
||||||
|
|
||||||
getProfileQzonePicInfo(uid: string, type: number, force: boolean): Promise<unknown>;
|
getProfileQzonePicInfo(uid: string, type: number, force: boolean): Promise<unknown>;
|
||||||
|
|
||||||
//profileService.getCoreInfo("UserRemarkServiceImpl::getStrangerRemarkByUid", arrayList);
|
// UserRemarkServiceImpl::getStrangerRemarkByUid []
|
||||||
getCoreInfo(name: string, arg: any[]): unknown;
|
getCoreInfo(sceneId: string, arg: any[]): unknown;
|
||||||
|
|
||||||
//m429253e12.getOtherFlag("FriendListInfoCache_getKernelDataAndPutCache", new ArrayList<>());
|
|
||||||
isNull(): boolean;
|
isNull(): boolean;
|
||||||
}
|
}
|
||||||
|
@@ -1,30 +1,8 @@
|
|||||||
import { ChatType, Peer } from '../entities';
|
import { ChatType, Peer } from '../entities';
|
||||||
import { NodeIKernelRecentContactListener } from '../listeners/NodeIKernelRecentContactListener';
|
import { NodeIKernelRecentContactListener } from '../listeners/NodeIKernelRecentContactListener';
|
||||||
import { GeneralCallResult } from './common';
|
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 {
|
export interface NodeIKernelRecentContactService {
|
||||||
setGuildDisplayStatus(...args: unknown[]): unknown; // 2 arguments
|
setGuildDisplayStatus(...args: unknown[]): unknown; // 2 arguments
|
||||||
|
|
||||||
@@ -36,7 +14,6 @@ export interface NodeIKernelRecentContactService {
|
|||||||
|
|
||||||
enterOrExitMsgList(...args: unknown[]): unknown; // 1 arguments
|
enterOrExitMsgList(...args: unknown[]): unknown; // 1 arguments
|
||||||
|
|
||||||
/*!---!*/
|
|
||||||
getRecentContactListSnapShot(count: number): Promise<GeneralCallResult & {
|
getRecentContactListSnapShot(count: number): Promise<GeneralCallResult & {
|
||||||
info: {
|
info: {
|
||||||
errCode: number,
|
errCode: number,
|
||||||
@@ -58,7 +35,6 @@ export interface NodeIKernelRecentContactService {
|
|||||||
|
|
||||||
jumpToSpecifyRecentContact(...args: unknown[]): unknown; // 1 arguments
|
jumpToSpecifyRecentContact(...args: unknown[]): unknown; // 1 arguments
|
||||||
|
|
||||||
/*!---!*/
|
|
||||||
fetchAndSubscribeABatchOfRecentContact(params: FSABRecentContactParams): unknown; // 1 arguments
|
fetchAndSubscribeABatchOfRecentContact(params: FSABRecentContactParams): unknown; // 1 arguments
|
||||||
|
|
||||||
addRecentContact(peer: Peer): unknown;
|
addRecentContact(peer: Peer): unknown;
|
||||||
|
@@ -99,23 +99,6 @@ export interface NodeIKernelRichMediaService {
|
|||||||
|
|
||||||
getRichMediaFileDir(elementType: number, downType: number, isTemp: boolean): unknown;
|
getRichMediaFileDir(elementType: number, downType: number, isTemp: boolean): unknown;
|
||||||
|
|
||||||
// this.senderUid = "";
|
|
||||||
// this.peerUid = "";
|
|
||||||
// this.guildId = "";
|
|
||||||
// this.elem = new MsgElement();
|
|
||||||
// this.downloadType = i2;
|
|
||||||
// this.thumbSize = i3;
|
|
||||||
// this.msgId = j2;
|
|
||||||
// this.msgRandom = j3;
|
|
||||||
// this.msgSeq = j4;
|
|
||||||
// this.msgTime = j5;
|
|
||||||
// this.chatType = i4;
|
|
||||||
// this.senderUid = str;
|
|
||||||
// this.peerUid = str2;
|
|
||||||
// this.guildId = str3;
|
|
||||||
// this.elem = msgElement;
|
|
||||||
// this.useHttps = num;
|
|
||||||
|
|
||||||
getVideoPlayUrlInVisit(arg: {
|
getVideoPlayUrlInVisit(arg: {
|
||||||
downloadType: number,
|
downloadType: number,
|
||||||
thumbSize: number,
|
thumbSize: number,
|
||||||
@@ -131,7 +114,6 @@ export interface NodeIKernelRichMediaService {
|
|||||||
useHttps: boolean
|
useHttps: boolean
|
||||||
}): Promise<unknown>;
|
}): Promise<unknown>;
|
||||||
|
|
||||||
//arg双端number
|
|
||||||
isFileExpired(arg: number): unknown;
|
isFileExpired(arg: number): unknown;
|
||||||
|
|
||||||
deleteGroupFolder(GroupCode: string, FolderId: string): Promise<GeneralCallResult & {
|
deleteGroupFolder(GroupCode: string, FolderId: string): Promise<GeneralCallResult & {
|
||||||
@@ -154,7 +136,6 @@ export interface NodeIKernelRichMediaService {
|
|||||||
useHttps: boolean
|
useHttps: boolean
|
||||||
}): unknown;
|
}): unknown;
|
||||||
|
|
||||||
//arg3为“”
|
|
||||||
downloadFileForModelId(peer: Peer, ModelId: string[], unknown: string): Promise<unknown>;
|
downloadFileForModelId(peer: Peer, ModelId: string[], unknown: string): Promise<unknown>;
|
||||||
|
|
||||||
//第三个参数 Array<Type>
|
//第三个参数 Array<Type>
|
||||||
|
@@ -1,11 +1,12 @@
|
|||||||
import { ChatType } from '../entities';
|
import { ChatType } from '../entities';
|
||||||
|
|
||||||
export interface NodeIKernelSearchService {
|
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<unknown>;
|
||||||
|
|
||||||
searchGroup(...args: any[]): unknown;// needs 1 arguments
|
searchGroup(...args: any[]): unknown;// needs 1 arguments
|
||||||
|
|
||||||
@@ -125,4 +126,5 @@ export interface NodeIKernelSearchService {
|
|||||||
searchCache(...args: any[]): unknown;// needs 3 arguments
|
searchCache(...args: any[]): unknown;// needs 3 arguments
|
||||||
|
|
||||||
clearSearchCache(...args: any[]): unknown;// needs 1 arguments
|
clearSearchCache(...args: any[]): unknown;// needs 1 arguments
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -3,9 +3,9 @@ import { GeneralCallResult } from './common';
|
|||||||
|
|
||||||
export interface NodeIKernelStorageCleanService {
|
export interface NodeIKernelStorageCleanService {
|
||||||
|
|
||||||
addKernelStorageCleanListener(Listener: NodeIKernelStorageCleanListener): number;
|
addKernelStorageCleanListener(listener: NodeIKernelStorageCleanListener): number;
|
||||||
|
|
||||||
removeKernelStorageCleanListener(ListenerId: number): void;
|
removeKernelStorageCleanListener(listenerId: number): void;
|
||||||
|
|
||||||
addCacheScanedPaths(arg: unknown): unknown;
|
addCacheScanedPaths(arg: unknown): unknown;
|
||||||
|
|
||||||
|
@@ -1,9 +1,7 @@
|
|||||||
export interface NodeIKernelTianShuService {
|
export interface NodeIKernelTianShuService {
|
||||||
addKernelTianShuListener(...args: any[]): unknown;// needs 1 arguments
|
addKernelTianShuListener(listener:unknown): number;
|
||||||
|
|
||||||
removeKernelTianShuListener(...args: any[]): unknown;// needs 1 arguments
|
removeKernelTianShuListener(listenerId:number): void;
|
||||||
|
|
||||||
requesTianShuNumeralRe(...args: any[]): unknown;//d needs 1 arguments
|
|
||||||
|
|
||||||
reportTianShuNumeralRed(...args: any[]): unknown;// needs 1 arguments
|
reportTianShuNumeralRed(...args: any[]): unknown;// needs 1 arguments
|
||||||
|
|
||||||
|
@@ -2,9 +2,9 @@ import { ForceFetchClientKeyRetType } from './common';
|
|||||||
|
|
||||||
export interface NodeIKernelTicketService {
|
export interface NodeIKernelTicketService {
|
||||||
|
|
||||||
addKernelTicketListener(listener: unknown): void;
|
addKernelTicketListener(listener: unknown): number;
|
||||||
|
|
||||||
removeKernelTicketListener(listenerId: unknown): void;
|
removeKernelTicketListener(listenerId: number): void;
|
||||||
|
|
||||||
forceFetchClientKey(arg: string): Promise<ForceFetchClientKeyRetType>;
|
forceFetchClientKey(arg: string): Promise<ForceFetchClientKeyRetType>;
|
||||||
|
|
||||||
|
@@ -2,7 +2,7 @@ import { GeneralCallResult } from './common';
|
|||||||
|
|
||||||
export interface NodeIKernelTipOffService {
|
export interface NodeIKernelTipOffService {
|
||||||
|
|
||||||
addKernelTipOffListener(listener: unknown): void;
|
addKernelTipOffListener(listener: unknown): number;
|
||||||
|
|
||||||
removeKernelTipOffListener(listenerId: unknown): void;
|
removeKernelTipOffListener(listenerId: unknown): void;
|
||||||
|
|
||||||
@@ -10,7 +10,7 @@ export interface NodeIKernelTipOffService {
|
|||||||
|
|
||||||
getPskey(domainList: string[], nocache: boolean): Promise<GeneralCallResult & {
|
getPskey(domainList: string[], nocache: boolean): Promise<GeneralCallResult & {
|
||||||
domainPskeyMap: Map<string, string>
|
domainPskeyMap: Map<string, string>
|
||||||
}>;//2
|
}>;
|
||||||
|
|
||||||
tipOffSendJsData(args: unknown[]): Promise<unknown>;//2
|
tipOffSendJsData(args: unknown[]): Promise<unknown>;//2
|
||||||
|
|
||||||
|
@@ -1,7 +1,8 @@
|
|||||||
export interface NodeIKernelUnitedConfigService {
|
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
|
fetchUnitedCommendConfig(...args: any[]): unknown;// needs 1 arguments
|
||||||
|
|
||||||
@@ -12,4 +13,5 @@ export interface NodeIKernelUnitedConfigService {
|
|||||||
isUnitedConfigSwitchOn(...args: any[]): unknown;// needs 1 arguments
|
isUnitedConfigSwitchOn(...args: any[]): unknown;// needs 1 arguments
|
||||||
|
|
||||||
registerUnitedConfigPushGroupList(...args: any[]): unknown;// needs 1 arguments
|
registerUnitedConfigPushGroupList(...args: any[]): unknown;// needs 1 arguments
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
// public interface IYellowFaceForManagerService extends QRouteApi {
|
export interface NodeIYellowFaceService {
|
||||||
// void download(@NotNull String resourceConfigJson, @NotNull String resourceDir, @NotNull String cacheDir, boolean force, @NotNull IKernelYellowFaceDownloadCallback callback);
|
download(resourceConfigJson: string, resourceDir: string, cacheDir: string, force: boolean): void;
|
||||||
|
|
||||||
// void setHistory(@NotNull String fullMd5, @NotNull IOperateCallback callback);
|
setHistory(fullMd5: string): void;
|
||||||
// }
|
}
|
||||||
|
@@ -1,6 +1,7 @@
|
|||||||
import { MessageElement, Peer } from '../entities';
|
import { MessageElement, Peer } from '../entities';
|
||||||
|
|
||||||
export interface NodeIkernelTestPerformanceService {
|
export interface NodeIkernelTestPerformanceService {
|
||||||
|
|
||||||
insertMsg(MsgParam: {
|
insertMsg(MsgParam: {
|
||||||
peer: Peer
|
peer: Peer
|
||||||
msgTime: string
|
msgTime: string
|
||||||
|
@@ -1,6 +1,5 @@
|
|||||||
export enum GeneralCallResultStatus {
|
export enum GeneralCallResultStatus {
|
||||||
OK = 0,
|
OK = 0
|
||||||
// ERROR = 1,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface GeneralCallResult {
|
export interface GeneralCallResult {
|
||||||
|
@@ -18,7 +18,6 @@ export class OneBotFriendApi {
|
|||||||
let pokedetail: any[] = json.items;
|
let pokedetail: any[] = json.items;
|
||||||
//筛选item带有uid的元素
|
//筛选item带有uid的元素
|
||||||
pokedetail = pokedetail.filter(item => 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) {
|
if (pokedetail.length == 2) {
|
||||||
return new OB11FriendPokeEvent(
|
return new OB11FriendPokeEvent(
|
||||||
this.core,
|
this.core,
|
||||||
|
@@ -77,7 +77,7 @@ export class OneBotGroupApi {
|
|||||||
id: FileNapCatOneBotUUID.encode({
|
id: FileNapCatOneBotUUID.encode({
|
||||||
chatType: ChatType.KCHATTYPEGROUP,
|
chatType: ChatType.KCHATTYPEGROUP,
|
||||||
peerUid: msg.peerUid,
|
peerUid: msg.peerUid,
|
||||||
}, msg.msgId, element.elementId),
|
}, msg.msgId, element.elementId, element.fileElement.fileName),
|
||||||
name: element.fileElement.fileName,
|
name: element.fileElement.fileName,
|
||||||
size: parseInt(element.fileElement.fileSize),
|
size: parseInt(element.fileElement.fileSize),
|
||||||
busid: element.fileElement.fileBizId || 0,
|
busid: element.fileElement.fileBizId || 0,
|
||||||
|
@@ -106,7 +106,7 @@ export class OneBotMsgApi {
|
|||||||
peerUid: msg.peerUid,
|
peerUid: msg.peerUid,
|
||||||
guildId: '',
|
guildId: '',
|
||||||
};
|
};
|
||||||
const encodedFileId = FileNapCatOneBotUUID.encode(peer, msg.msgId, elementWrapper.elementId);
|
const encodedFileId = FileNapCatOneBotUUID.encode(peer, msg.msgId, elementWrapper.elementId, element.fileName);
|
||||||
return {
|
return {
|
||||||
type: OB11MessageDataType.image,
|
type: OB11MessageDataType.image,
|
||||||
data: {
|
data: {
|
||||||
@@ -136,7 +136,7 @@ export class OneBotMsgApi {
|
|||||||
file: element.fileName,
|
file: element.fileName,
|
||||||
path: element.filePath,
|
path: element.filePath,
|
||||||
url: 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_size: element.fileSize,
|
||||||
file_unique: element.fileName,
|
file_unique: element.fileName,
|
||||||
},
|
},
|
||||||
@@ -179,7 +179,7 @@ export class OneBotMsgApi {
|
|||||||
type: OB11MessageDataType.image,
|
type: OB11MessageDataType.image,
|
||||||
data: {
|
data: {
|
||||||
file: 'marketface',
|
file: 'marketface',
|
||||||
file_id: FileNapCatOneBotUUID.encode(peer, msg.msgId, elementWrapper.elementId),
|
file_id: FileNapCatOneBotUUID.encode(peer, msg.msgId, elementWrapper.elementId, ".jpg"),
|
||||||
path: elementWrapper.elementId,
|
path: elementWrapper.elementId,
|
||||||
url: elementWrapper.elementId,
|
url: elementWrapper.elementId,
|
||||||
file_unique: _.key
|
file_unique: _.key
|
||||||
@@ -264,7 +264,7 @@ export class OneBotMsgApi {
|
|||||||
file: element.fileName,
|
file: element.fileName,
|
||||||
path: videoDownUrl,
|
path: videoDownUrl,
|
||||||
url: 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_size: element.fileSize,
|
||||||
file_unique: element.fileName,
|
file_unique: element.fileName,
|
||||||
},
|
},
|
||||||
@@ -277,12 +277,13 @@ export class OneBotMsgApi {
|
|||||||
peerUid: msg.peerUid,
|
peerUid: msg.peerUid,
|
||||||
guildId: '',
|
guildId: '',
|
||||||
};
|
};
|
||||||
|
const fileCode = FileNapCatOneBotUUID.encode(peer, msg.msgId, elementWrapper.elementId, element.fileName);
|
||||||
return {
|
return {
|
||||||
type: OB11MessageDataType.voice,
|
type: OB11MessageDataType.voice,
|
||||||
data: {
|
data: {
|
||||||
file: element.fileName,
|
file: fileCode,
|
||||||
path: element.filePath,
|
path: element.filePath,
|
||||||
file_id: FileNapCatOneBotUUID.encode(peer, msg.msgId, elementWrapper.elementId),
|
file_id: fileCode,
|
||||||
file_size: element.fileSize,
|
file_size: element.fileSize,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
@@ -109,7 +109,7 @@ export class OB11Entities {
|
|||||||
static file(peerId: string, file: Exclude<GroupFileInfoUpdateParamType['item'][0]['fileInfo'], undefined>): OB11GroupFile {
|
static file(peerId: string, file: Exclude<GroupFileInfoUpdateParamType['item'][0]['fileInfo'], undefined>): OB11GroupFile {
|
||||||
return {
|
return {
|
||||||
group_id: parseInt(peerId),
|
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,
|
file_name: file.fileName,
|
||||||
busid: file.busId,
|
busid: file.busId,
|
||||||
size: parseInt(file.fileSize),
|
size: parseInt(file.fileSize),
|
||||||
|
@@ -17,7 +17,6 @@ export interface QuickActionGroupMessage extends QuickActionPrivateMessage {
|
|||||||
kick?: boolean;
|
kick?: boolean;
|
||||||
ban?: boolean;
|
ban?: boolean;
|
||||||
ban_duration?: number;
|
ban_duration?: number;
|
||||||
//
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface QuickActionFriendRequest {
|
export interface QuickActionFriendRequest {
|
||||||
|
@@ -229,7 +229,7 @@ export async function NCoreInitShell() {
|
|||||||
sessionConfig,
|
sessionConfig,
|
||||||
new NodeIDependsAdapter(),
|
new NodeIDependsAdapter(),
|
||||||
new NodeIDispatcherAdapter(),
|
new NodeIDispatcherAdapter(),
|
||||||
sessionListener as any,
|
sessionListener,
|
||||||
);
|
);
|
||||||
try {
|
try {
|
||||||
session.startNT(0);
|
session.startNT(0);
|
||||||
|
Reference in New Issue
Block a user