mirror of
https://github.com/NapNeko/NapCatQQ.git
synced 2025-07-19 12:03:37 +00:00
chore: Wrapper声明
This commit is contained in:
@@ -1,3 +1,21 @@
|
||||
export enum NCoreWorkMode {
|
||||
Unknown = 0,
|
||||
Shell = 1,
|
||||
LiteLoader = 2
|
||||
}
|
||||
export class NapCatCore {
|
||||
|
||||
public WorkMode: NCoreWorkMode = NCoreWorkMode.Unknown;
|
||||
public isInit: boolean = false;
|
||||
}
|
||||
export class NapCatShell extends NapCatCore {
|
||||
public WorkMode: NCoreWorkMode = NCoreWorkMode.Shell;
|
||||
Init() {
|
||||
|
||||
}
|
||||
}
|
||||
export class NapCatLiteLoader extends NapCatCore {
|
||||
public WorkMode: NCoreWorkMode = NCoreWorkMode.LiteLoader;
|
||||
Init(LoginService: any, WrapperSession: any) {
|
||||
|
||||
}
|
||||
}
|
65
src/core/entities/cache.ts
Normal file
65
src/core/entities/cache.ts
Normal file
@@ -0,0 +1,65 @@
|
||||
import { ChatType } from './msg';
|
||||
|
||||
export interface CacheScanResult {
|
||||
result: number;
|
||||
size: [ // 单位为字节
|
||||
string, // 系统总存储空间
|
||||
string, // 系统可用存储空间
|
||||
string, // 系统已用存储空间
|
||||
string, // QQ总大小
|
||||
string, // 「聊天与文件」大小
|
||||
string, // 未知
|
||||
string, // 「缓存数据」大小
|
||||
string, // 「其他数据」大小
|
||||
string, // 未知
|
||||
]
|
||||
}
|
||||
|
||||
export interface ChatCacheList {
|
||||
pageCount: number;
|
||||
infos: ChatCacheListItem[]
|
||||
};
|
||||
|
||||
export interface ChatCacheListItem {
|
||||
chatType: ChatType;
|
||||
basicChatCacheInfo: ChatCacheListItemBasic;
|
||||
guildChatCacheInfo: unknown[]; // TODO: 没用过频道所以不知道这里边的详细内容
|
||||
}
|
||||
|
||||
export interface ChatCacheListItemBasic {
|
||||
chatSize: string;
|
||||
chatTime: string;
|
||||
uid: string;
|
||||
uin: string;
|
||||
remarkName: string;
|
||||
nickName: string;
|
||||
chatType?: ChatType;
|
||||
isChecked?: boolean;
|
||||
}
|
||||
|
||||
export enum CacheFileType {
|
||||
IMAGE = 0,
|
||||
VIDEO = 1,
|
||||
AUDIO = 2,
|
||||
DOCUMENT = 3,
|
||||
OTHER = 4,
|
||||
}
|
||||
|
||||
export interface CacheFileList {
|
||||
infos: CacheFileListItem[],
|
||||
}
|
||||
|
||||
export interface CacheFileListItem {
|
||||
fileSize: string;
|
||||
fileTime: string;
|
||||
fileKey: string;
|
||||
elementId: string;
|
||||
elementIdStr: string;
|
||||
fileType: CacheFileType;
|
||||
path: string;
|
||||
fileName: string;
|
||||
senderId: string;
|
||||
previewPath: string;
|
||||
senderName: string;
|
||||
isChecked?: boolean;
|
||||
}
|
64
src/core/entities/group.ts
Normal file
64
src/core/entities/group.ts
Normal file
@@ -0,0 +1,64 @@
|
||||
import { QQLevel, Sex } from './user';
|
||||
export enum GroupListUpdateType {
|
||||
REFRESHALL,
|
||||
GETALL,
|
||||
MODIFIED,
|
||||
REMOVE
|
||||
}
|
||||
export interface Group {
|
||||
groupCode: string,
|
||||
createTime?: string,//高版本才有
|
||||
maxMember: number,
|
||||
memberCount: number,
|
||||
groupName: string,
|
||||
groupStatus: number,
|
||||
memberRole: number,
|
||||
isTop: boolean,
|
||||
toppedTimestamp: string,
|
||||
privilegeFlag: number, //65760
|
||||
isConf: boolean,
|
||||
hasModifyConfGroupFace: boolean,
|
||||
hasModifyConfGroupName: boolean,
|
||||
remarkName: string,
|
||||
hasMemo: boolean,
|
||||
groupShutupExpireTime: string, //"0",
|
||||
personShutupExpireTime: string, //"0",
|
||||
discussToGroupUin: string, //"0",
|
||||
discussToGroupMaxMsgSeq: number,
|
||||
discussToGroupTime: number,
|
||||
groupFlagExt: number, //1073938496,
|
||||
authGroupType: number, //0,
|
||||
groupCreditLevel: number, //0,
|
||||
groupFlagExt3: number, //0,
|
||||
groupOwnerId: {
|
||||
memberUin: string, //"0",
|
||||
memberUid: string, //"u_fbf8N7aeuZEnUiJAbQ9R8Q"
|
||||
}
|
||||
}
|
||||
|
||||
export enum GroupMemberRole {
|
||||
normal = 2,
|
||||
admin = 3,
|
||||
owner = 4
|
||||
}
|
||||
|
||||
export interface GroupMember {
|
||||
memberSpecialTitle?: string;
|
||||
avatarPath: string;
|
||||
cardName: string;
|
||||
cardType: number;
|
||||
isDelete: boolean;
|
||||
nick: string;
|
||||
qid: string;
|
||||
remark: string;
|
||||
role: GroupMemberRole; // 群主:4, 管理员:3,群员:2
|
||||
shutUpTime: number; // 禁言时间,单位是什么暂时不清楚
|
||||
uid: string; // 加密的字符串
|
||||
uin: string; // QQ号
|
||||
isRobot: boolean;
|
||||
sex?: Sex
|
||||
qqLevel?: QQLevel
|
||||
isChangeRole: boolean;
|
||||
joinTime: string;
|
||||
lastSpeakTime: string;
|
||||
}
|
5
src/core/entities/index.ts
Normal file
5
src/core/entities/index.ts
Normal file
@@ -0,0 +1,5 @@
|
||||
export * from './user';
|
||||
export * from './group';
|
||||
export * from './msg';
|
||||
export * from './notify';
|
||||
export * from './cache';
|
787
src/core/entities/msg.ts
Normal file
787
src/core/entities/msg.ts
Normal file
@@ -0,0 +1,787 @@
|
||||
import { GroupMemberRole } from './group';
|
||||
|
||||
|
||||
export interface Peer {
|
||||
chatType: ChatType;
|
||||
peerUid: string; // 如果是群聊uid为群号,私聊uid就是加密的字符串
|
||||
guildId?: string;
|
||||
}
|
||||
export interface KickedOffLineInfo {
|
||||
appId: number
|
||||
instanceId: number
|
||||
sameDevice: boolean
|
||||
tipsDesc: string
|
||||
tipsTitle: string
|
||||
kickedType: number
|
||||
securityKickedType: number
|
||||
}
|
||||
export interface GetFileListParam {
|
||||
sortType: number
|
||||
fileCount: number
|
||||
startIndex: number
|
||||
sortOrder: number
|
||||
showOnlinedocFolder: number
|
||||
}
|
||||
export enum ElementType {
|
||||
UNKNOWN = 0,
|
||||
TEXT = 1,
|
||||
PIC = 2,
|
||||
FILE = 3,
|
||||
PTT = 4,
|
||||
VIDEO = 5,
|
||||
FACE = 6,
|
||||
REPLY = 7,
|
||||
WALLET = 9,
|
||||
GreyTip = 8,//Poke别叫戳一搓了 官方名字拍一拍 戳一戳是另一个名字
|
||||
ARK = 10,
|
||||
MFACE = 11,
|
||||
LIVEGIFT = 12,
|
||||
STRUCTLONGMSG = 13,
|
||||
MARKDOWN = 14,
|
||||
GIPHY = 15,
|
||||
MULTIFORWARD = 16,
|
||||
INLINEKEYBOARD = 17,
|
||||
INTEXTGIFT = 18,
|
||||
CALENDAR = 19,
|
||||
YOLOGAMERESULT = 20,
|
||||
AVRECORD = 21,
|
||||
FEED = 22,
|
||||
TOFURECORD = 23,
|
||||
ACEBUBBLE = 24,
|
||||
ACTIVITY = 25,
|
||||
TOFU = 26,
|
||||
FACEBUBBLE = 27,
|
||||
SHARELOCATION = 28,
|
||||
TASKTOPMSG = 29,
|
||||
RECOMMENDEDMSG = 43,
|
||||
ACTIONBAR = 44
|
||||
}
|
||||
export interface ActionBarElement {
|
||||
rows: InlineKeyboardRow[];
|
||||
botAppid: string;
|
||||
}
|
||||
export interface SendActionBarElement {
|
||||
elementType: ElementType.ACTIONBAR;
|
||||
elementId: string;
|
||||
actionBarElement: ActionBarElement;
|
||||
}
|
||||
export interface RecommendedMsgElement {
|
||||
rows: InlineKeyboardRow[];
|
||||
botAppid: string;
|
||||
}
|
||||
export interface SendRecommendedMsgElement {
|
||||
elementType: ElementType.RECOMMENDEDMSG;
|
||||
elementId: string;
|
||||
recommendedMsgElement: RecommendedMsgElement;
|
||||
}
|
||||
export interface InlineKeyboardButton {
|
||||
id: string;
|
||||
label: string;
|
||||
visitedLabel: string;
|
||||
unsupportTips: string;
|
||||
data: string;
|
||||
specifyRoleIds: string[];
|
||||
specifyTinyids: string[];
|
||||
style: number;
|
||||
type: number;
|
||||
clickLimit: number;
|
||||
atBotShowChannelList: boolean;
|
||||
permissionType: number;
|
||||
}
|
||||
export interface InlineKeyboardRow {
|
||||
buttons: InlineKeyboardButton[];
|
||||
}
|
||||
export interface TofuElementContent {
|
||||
color: string;
|
||||
tittle: string;
|
||||
}
|
||||
export interface TaskTopMsgElement {
|
||||
msgTitle: string;
|
||||
msgSummary: string;
|
||||
iconUrl: string;
|
||||
topMsgType: number;
|
||||
}
|
||||
export interface SendTaskTopMsgElement {
|
||||
elementType: ElementType.TASKTOPMSG;
|
||||
elementId: string;
|
||||
taskTopMsgElement: TaskTopMsgElement;
|
||||
}
|
||||
export interface TofuRecordElement {
|
||||
type: number;
|
||||
busiid: string;
|
||||
busiuuid: string;
|
||||
descriptionContent: string;
|
||||
contentlist: TofuElementContent[],
|
||||
background: string;
|
||||
icon: string;
|
||||
uinlist: string[],
|
||||
uidlist: string[],
|
||||
busiExtra: string;
|
||||
updateTime: string;
|
||||
dependedmsgid: string;
|
||||
msgtime: string;
|
||||
onscreennotify: boolean;
|
||||
}
|
||||
export interface SendTofuRecordElement {
|
||||
elementType: ElementType.TOFURECORD;
|
||||
elementId: string;
|
||||
tofuRecordElement: TofuRecordElement;
|
||||
}
|
||||
|
||||
export interface FaceBubbleElement {
|
||||
faceCount: number;
|
||||
faceSummary: string;
|
||||
faceFlag: number;
|
||||
content: string;
|
||||
oldVersionStr: string;
|
||||
faceType: number;
|
||||
others: string;
|
||||
yellowFaceInfo: {
|
||||
index: number;
|
||||
buf: string;
|
||||
compatibleText: string;
|
||||
text: string;
|
||||
}
|
||||
}
|
||||
export interface SendFaceBubbleElement {
|
||||
elementType: ElementType.FACEBUBBLE;
|
||||
elementId: string;
|
||||
faceBubbleElement: FaceBubbleElement;
|
||||
|
||||
}
|
||||
export interface AvRecordElement {
|
||||
type: number;
|
||||
time: string;
|
||||
text: string;
|
||||
mainType: number;
|
||||
hasRead: boolean;
|
||||
extraType: number;
|
||||
}
|
||||
export interface SendavRecordElement {
|
||||
elementType: ElementType.AVRECORD;
|
||||
elementId: string;
|
||||
avRecordElement: AvRecordElement;
|
||||
}
|
||||
export interface YoloUserInfo {
|
||||
uid: string;
|
||||
result: number;
|
||||
rank: number;
|
||||
bizId: string
|
||||
}
|
||||
export interface SendInlineKeyboardElement {
|
||||
elementType: ElementType.INLINEKEYBOARD;
|
||||
elementId: string;
|
||||
inlineKeyboardElement: {
|
||||
rows: number;
|
||||
botAppid: string;
|
||||
}
|
||||
|
||||
}
|
||||
export interface YoloGameResultElement {
|
||||
UserInfo: YoloUserInfo[];
|
||||
}
|
||||
export interface SendYoloGameResultElement {
|
||||
elementType: ElementType.YOLOGAMERESULT;
|
||||
yoloGameResultElement: YoloGameResultElement
|
||||
}
|
||||
export interface GiphyElement {
|
||||
id: string;
|
||||
isClip: boolean;
|
||||
width: number;
|
||||
height: number;
|
||||
}
|
||||
export interface SendGiphyElement {
|
||||
elementType: ElementType.GIPHY;
|
||||
elementId: string;
|
||||
giphyElement: GiphyElement;
|
||||
}
|
||||
export interface SendWalletElement {
|
||||
elementType: ElementType.UNKNOWN;//不做 设置位置
|
||||
elementId: string;
|
||||
walletElement: {}
|
||||
}
|
||||
export interface CalendarElement {
|
||||
summary: string;
|
||||
msg: string;
|
||||
expireTimeMs: string;
|
||||
schemaType: number;
|
||||
schema: string
|
||||
}
|
||||
export interface SendCalendarElement {
|
||||
elementType: ElementType.CALENDAR;
|
||||
elementId: string;
|
||||
calendarElement: CalendarElement;
|
||||
}
|
||||
export interface SendliveGiftElement {
|
||||
elementType: ElementType.LIVEGIFT;
|
||||
elementId: string;
|
||||
liveGiftElement: {}
|
||||
}
|
||||
export interface SendTextElement {
|
||||
elementType: ElementType.TEXT;
|
||||
elementId: string;
|
||||
textElement: {
|
||||
content: string;
|
||||
atType: number;
|
||||
atUid: string;
|
||||
atTinyId: string;
|
||||
atNtUid: string;
|
||||
};
|
||||
}
|
||||
|
||||
export interface SendPttElement {
|
||||
elementType: ElementType.PTT;
|
||||
elementId: string;
|
||||
pttElement: {
|
||||
fileName: string;
|
||||
filePath: string;
|
||||
md5HexStr: string;
|
||||
fileSize: number;
|
||||
duration: number; // 单位是秒
|
||||
formatType: number;
|
||||
voiceType: number;
|
||||
voiceChangeType: number;
|
||||
canConvert2Text: boolean;
|
||||
waveAmplitudes: number[];
|
||||
fileSubId: string;
|
||||
playState: number;
|
||||
autoConvertText: number;
|
||||
};
|
||||
}
|
||||
|
||||
export enum PicType {
|
||||
gif = 2000,
|
||||
jpg = 1000
|
||||
}
|
||||
|
||||
export enum PicSubType {
|
||||
normal = 0, // 普通图片,大图
|
||||
face = 1 // 表情包小图
|
||||
}
|
||||
|
||||
export interface SendPicElement {
|
||||
elementType: ElementType.PIC;
|
||||
elementId: string;
|
||||
picElement:PicElement
|
||||
}
|
||||
export interface ReplyElement {
|
||||
replayMsgSeq: string;
|
||||
replayMsgId: string;
|
||||
senderUin: string;
|
||||
senderUinStr: string;
|
||||
}
|
||||
export interface SendReplyElement {
|
||||
elementType: ElementType.REPLY;
|
||||
elementId: string;
|
||||
replyElement: ReplyElement
|
||||
}
|
||||
|
||||
export interface SendFaceElement {
|
||||
elementType: ElementType.FACE;
|
||||
elementId: string;
|
||||
faceElement: FaceElement;
|
||||
}
|
||||
|
||||
export interface SendMarketFaceElement {
|
||||
elementType: ElementType.MFACE;
|
||||
marketFaceElement: MarketFaceElement;
|
||||
}
|
||||
export interface SendstructLongMsgElement {
|
||||
elementType: ElementType.STRUCTLONGMSG;
|
||||
elementId: string;
|
||||
structLongMsgElement: StructLongMsgElement;
|
||||
}
|
||||
export interface StructLongMsgElement {
|
||||
xmlContent: string;
|
||||
resId: string;
|
||||
}
|
||||
export interface SendactionBarElement {
|
||||
elementType: ElementType.ACTIONBAR;
|
||||
elementId: string;
|
||||
actionBarElement: {
|
||||
rows: number;
|
||||
botAppid: string;
|
||||
}
|
||||
}
|
||||
export interface ShareLocationElement {
|
||||
text: string;
|
||||
ext: string;
|
||||
}
|
||||
export interface sendShareLocationElement {
|
||||
elementType: ElementType.SHARELOCATION;
|
||||
elementId: string;
|
||||
shareLocationElement?: ShareLocationElement;
|
||||
}
|
||||
|
||||
export interface FileElement {
|
||||
fileMd5?: string;
|
||||
fileName: string;
|
||||
filePath: string;
|
||||
fileSize: string;
|
||||
picHeight?: number;
|
||||
picWidth?: number;
|
||||
folderId?: string;
|
||||
picThumbPath?: Map<number, string>;
|
||||
file10MMd5?: string;
|
||||
fileSha?: string;
|
||||
fileSha3?: string;
|
||||
fileUuid?: string;
|
||||
fileSubId?: string;
|
||||
thumbFileSize?: number;
|
||||
fileBizId?: number
|
||||
}
|
||||
|
||||
export interface SendFileElement {
|
||||
elementType: ElementType.FILE;
|
||||
elementId: string;
|
||||
fileElement: FileElement;
|
||||
}
|
||||
|
||||
export interface SendVideoElement {
|
||||
elementType: ElementType.VIDEO;
|
||||
elementId: string;
|
||||
videoElement: VideoElement;
|
||||
}
|
||||
|
||||
export interface SendArkElement {
|
||||
elementType: ElementType.ARK;
|
||||
elementId: string;
|
||||
arkElement: ArkElement;
|
||||
}
|
||||
|
||||
export interface SendMarkdownElement {
|
||||
elementType: ElementType.MARKDOWN;
|
||||
elementId: string;
|
||||
markdownElement: MarkdownElement;
|
||||
}
|
||||
export type SendMessageElement = SendTextElement | SendPttElement |
|
||||
SendPicElement | SendReplyElement | SendFaceElement | SendMarketFaceElement | SendFileElement |
|
||||
SendVideoElement | SendArkElement | SendMarkdownElement | sendShareLocationElement;
|
||||
|
||||
export interface TextElement {
|
||||
content: string;
|
||||
atType: number;
|
||||
atUid: string;
|
||||
atTinyId: string;
|
||||
atNtUid: string;
|
||||
}
|
||||
export interface MessageElement {
|
||||
elementType: ElementType,
|
||||
elementId: string,
|
||||
extBufForUI: string,//"0x",
|
||||
textElement?: TextElement;
|
||||
faceElement?: FaceElement,
|
||||
marketFaceElement?: MarkdownElement,
|
||||
replyElement?: ReplyElement,
|
||||
picElement?: PicElement,
|
||||
pttElement?: PttElement,
|
||||
videoElement?: VideoElement,
|
||||
grayTipElement?: GrayTipElement,
|
||||
arkElement?: ArkElement,
|
||||
fileElement?: FileElement,
|
||||
liveGiftElement?: null,
|
||||
markdownElement?: MarkdownElement,
|
||||
structLongMsgElement?: StructLongMsgElement,
|
||||
multiForwardMsgElement?: MultiForwardMsgElement,
|
||||
giphyElement?: GiphyElement,
|
||||
walletElement?: null,
|
||||
inlineKeyboardElement?: InlineKeyboardElement,
|
||||
textGiftElement?: null,//????
|
||||
calendarElement?: CalendarElement,
|
||||
yoloGameResultElement?: YoloGameResultElement,
|
||||
avRecordElement?: AvRecordElement,
|
||||
structMsgElement?: null,
|
||||
faceBubbleElement?: FaceBubbleElement,
|
||||
shareLocationElement?: ShareLocationElement,
|
||||
tofuRecordElement?: TofuRecordElement,
|
||||
taskTopMsgElement?: TaskTopMsgElement,
|
||||
recommendedMsgElement?: RecommendedMsgElement,
|
||||
actionBarElement?:ActionBarElement
|
||||
|
||||
}
|
||||
export enum AtType {
|
||||
notAt = 0,
|
||||
atAll = 1,
|
||||
atUser = 2
|
||||
}
|
||||
|
||||
export enum ChatType {
|
||||
friend = 1,
|
||||
group = 2,
|
||||
chatDevice = 8, //移动设备?
|
||||
temp = 100
|
||||
|
||||
}
|
||||
// 来自Android分析
|
||||
export enum ChatType2 {
|
||||
KCHATTYPEADELIE = 42,
|
||||
KCHATTYPEBUDDYNOTIFY = 5,
|
||||
KCHATTYPEC2C = 1,
|
||||
KCHATTYPECIRCLE = 113,
|
||||
KCHATTYPEDATALINE = 8,
|
||||
KCHATTYPEDATALINEMQQ = 134,
|
||||
KCHATTYPEDISC = 3,
|
||||
KCHATTYPEFAV = 41,
|
||||
KCHATTYPEGAMEMESSAGE = 105,
|
||||
KCHATTYPEGAMEMESSAGEFOLDER = 116,
|
||||
KCHATTYPEGROUP = 2,
|
||||
KCHATTYPEGROUPBLESS = 133,
|
||||
KCHATTYPEGROUPGUILD = 9,
|
||||
KCHATTYPEGROUPHELPER = 7,
|
||||
KCHATTYPEGROUPNOTIFY = 6,
|
||||
KCHATTYPEGUILD = 4,
|
||||
KCHATTYPEGUILDMETA = 16,
|
||||
KCHATTYPEMATCHFRIEND = 104,
|
||||
KCHATTYPEMATCHFRIENDFOLDER = 109,
|
||||
KCHATTYPENEARBY = 106,
|
||||
KCHATTYPENEARBYASSISTANT = 107,
|
||||
KCHATTYPENEARBYFOLDER = 110,
|
||||
KCHATTYPENEARBYHELLOFOLDER = 112,
|
||||
KCHATTYPENEARBYINTERACT = 108,
|
||||
KCHATTYPEQQNOTIFY = 132,
|
||||
KCHATTYPERELATEACCOUNT = 131,
|
||||
KCHATTYPESERVICEASSISTANT = 118,
|
||||
KCHATTYPESERVICEASSISTANTSUB = 201,
|
||||
KCHATTYPESQUAREPUBLIC = 115,
|
||||
KCHATTYPESUBSCRIBEFOLDER = 30,
|
||||
KCHATTYPETEMPADDRESSBOOK = 111,
|
||||
KCHATTYPETEMPBUSSINESSCRM = 102,
|
||||
KCHATTYPETEMPC2CFROMGROUP = 100,
|
||||
KCHATTYPETEMPC2CFROMUNKNOWN = 99,
|
||||
KCHATTYPETEMPFRIENDVERIFY = 101,
|
||||
KCHATTYPETEMPNEARBYPRO = 119,
|
||||
KCHATTYPETEMPPUBLICACCOUNT = 103,
|
||||
KCHATTYPETEMPWPA = 117,
|
||||
KCHATTYPEUNKNOWN = 0,
|
||||
KCHATTYPEWEIYUN = 40,
|
||||
}
|
||||
|
||||
export interface PttElement {
|
||||
canConvert2Text: boolean;
|
||||
duration: number; // 秒数
|
||||
fileBizId: null;
|
||||
fileId: number; // 0
|
||||
fileName: string; // "e4d09c784d5a2abcb2f9980bdc7acfe6.amr"
|
||||
filePath: string; // "/Users//Library/Containers/com.tencent.qq/Data/Library/Application Support/QQ/nt_qq_a6b15c9820595d25a56c1633ce19ad40/nt_data/Ptt/2023-11/Ori/e4d09c784d5a2abcb2f9980bdc7acfe6.amr"
|
||||
fileSize: string; // "4261"
|
||||
fileSubId: string; // "0"
|
||||
fileUuid: string; // "90j3z7rmRphDPrdVgP9udFBaYar#oK0TWZIV"
|
||||
formatType: string; // 1
|
||||
invalidState: number; // 0
|
||||
md5HexStr: string; // "e4d09c784d5a2abcb2f9980bdc7acfe6"
|
||||
playState: number; // 0
|
||||
progress: number; // 0
|
||||
text: string; // ""
|
||||
transferStatus: number; // 0
|
||||
translateStatus: number; // 0
|
||||
voiceChangeType: number; // 0
|
||||
voiceType: number; // 0
|
||||
waveAmplitudes: number[];
|
||||
}
|
||||
|
||||
export interface ArkElement {
|
||||
bytesData: string;
|
||||
linkInfo: null;
|
||||
subElementType: null;
|
||||
}
|
||||
|
||||
export const IMAGE_HTTP_HOST = 'https://gchat.qpic.cn';
|
||||
export const IMAGE_HTTP_HOST_NT = 'https://multimedia.nt.qq.com.cn';
|
||||
|
||||
export interface PicElement {
|
||||
md5HexStr?: string;
|
||||
fileSize: number | string;//number
|
||||
picWidth: number;
|
||||
picHeight: number;
|
||||
fileName: string;
|
||||
sourcePath: string;
|
||||
original: boolean;
|
||||
picType: PicType;
|
||||
picSubType?: PicSubType;
|
||||
fileUuid: string;
|
||||
fileSubId: string;
|
||||
thumbFileSize: number;
|
||||
summary: string;
|
||||
thumbPath: Map<number, string>;
|
||||
originImageMd5?: string;
|
||||
originImageUrl?: string; // http url, 没有host,host是https://gchat.qpic.cn/, 带download参数的是https://multimedia.nt.qq.com.cn
|
||||
};
|
||||
|
||||
export enum GrayTipElementSubType {
|
||||
INVITE_NEW_MEMBER = 12,
|
||||
MEMBER_NEW_TITLE = 17
|
||||
}
|
||||
|
||||
export interface GrayTipElement {
|
||||
subElementType: GrayTipElementSubType;
|
||||
revokeElement: {
|
||||
operatorRole: string;
|
||||
operatorUid: string;
|
||||
operatorNick: string;
|
||||
operatorRemark: string;
|
||||
operatorMemRemark?: string;
|
||||
wording: string; // 自定义的撤回提示语
|
||||
}
|
||||
aioOpGrayTipElement: TipAioOpGrayTipElement;
|
||||
groupElement: TipGroupElement;
|
||||
xmlElement: {
|
||||
content: string;
|
||||
templId: string;
|
||||
};
|
||||
jsonGrayTipElement: {
|
||||
busiId?: number;
|
||||
jsonStr: string;
|
||||
};
|
||||
}
|
||||
|
||||
export enum FaceType {
|
||||
normal = 1, // 小黄脸
|
||||
normal2 = 2, // 新小黄脸, 从faceIndex 222开始?
|
||||
dice = 3 // 骰子
|
||||
}
|
||||
export enum FaceIndex {
|
||||
dice = 358,
|
||||
RPS = 359 // 石头剪刀布
|
||||
}
|
||||
export interface FaceElement {
|
||||
faceIndex: number;
|
||||
faceType: FaceType;
|
||||
faceText?: string;
|
||||
packId?: string;
|
||||
stickerId?: string;
|
||||
sourceType?: number;
|
||||
stickerType?: number;
|
||||
resultId?: string;
|
||||
surpriseId?: string;
|
||||
randomType?: number;
|
||||
}
|
||||
|
||||
export interface MarketFaceElement {
|
||||
emojiPackageId: number;
|
||||
faceName: string;
|
||||
emojiId: string;
|
||||
key: string;
|
||||
}
|
||||
|
||||
export interface VideoElement {
|
||||
filePath: string;
|
||||
fileName: string;
|
||||
videoMd5?: string;
|
||||
thumbMd5?: string
|
||||
fileTime?: number; // second
|
||||
thumbSize?: number; // byte
|
||||
fileFormat?: viedo_type; // 2表示mp4 参考下面条目
|
||||
fileSize?: string; // byte
|
||||
thumbWidth?: number;
|
||||
thumbHeight?: number;
|
||||
busiType?: 0; //
|
||||
subBusiType?: 0; // 未知
|
||||
thumbPath?: Map<number, any>;
|
||||
transferStatus?: 0; // 未知
|
||||
progress?: 0; // 下载进度?
|
||||
invalidState?: 0; // 未知
|
||||
fileUuid?: string; // 可以用于下载链接?
|
||||
fileSubId?: string;
|
||||
fileBizId?: null;
|
||||
originVideoMd5?: string;
|
||||
import_rich_media_context?: null;
|
||||
sourceVideoCodecFormat?: number;
|
||||
}
|
||||
// export enum busiType{
|
||||
// public static final int CREATOR_SHARE_ADV_XWORLD = 21;
|
||||
// public static final int MINI_APP_MINI_GAME = 11;
|
||||
// public static final int OFFICIAL_ACCOUNT_ADV = 4;
|
||||
// public static final int OFFICIAL_ACCOUNT_ADV_GAME = 8;
|
||||
// public static final int OFFICIAL_ACCOUNT_ADV_SHOP = 9;
|
||||
// public static final int OFFICIAL_ACCOUNT_ADV_VIP = 7;
|
||||
// public static final int OFFICIAL_ACCOUNT_LAYER_MASK_ADV = 14;
|
||||
// public static final int OFFICIAL_ACCOUNT_SPORT = 13;
|
||||
// public static final int OFFICIAL_ACCOUNT_TIAN_QI = 10;
|
||||
// public static final int PC_QQTAB_ADV = 18;
|
||||
// public static final int QIQIAOBAN_SDK = 15;
|
||||
// public static final int QQ_CPS = 16;
|
||||
// public static final int QQ_WALLET_CPS = 17;
|
||||
// public static final int QZONE_FEEDS = 0;
|
||||
// public static final int QZONE_PHOTO_TAIL = 2;
|
||||
// public static final int QZONE_VIDEO_LAYER = 1;
|
||||
// public static final int REWARD_GIFT_ADV = 6;
|
||||
// public static final int REWARD_GROUPGIFT_ADV = 12;
|
||||
// public static final int REWARD_PERSONAL_ADV = 5;
|
||||
// public static final int WEISEE_OFFICIAL_ACCOUNT = 3;
|
||||
// public static final int X_WORLD_CREATOR_ADV = 20;
|
||||
// public static final int X_WORLD_QZONE_LAYER = 22;
|
||||
// public static final int X_WORLD_VIDEO_ADV = 19;
|
||||
|
||||
// }
|
||||
// export enum CategoryBusiType {
|
||||
// _KCateBusiTypeDefault = 0,
|
||||
// _kCateBusiTypeFaceCluster = 1,
|
||||
// _kCateBusiTypeLabelCluster = 4,
|
||||
// _kCateBusiTypeMonthCluster = 16,
|
||||
// _kCateBusiTypePoiCluster = 2,
|
||||
// _kCateBusiTypeYearCluster = 8,
|
||||
// }
|
||||
export enum viedo_type {
|
||||
VIDEO_FORMAT_AFS = 7,
|
||||
VIDEO_FORMAT_AVI = 1,
|
||||
VIDEO_FORMAT_MKV = 4,
|
||||
VIDEO_FORMAT_MOD = 9,
|
||||
VIDEO_FORMAT_MOV = 8,
|
||||
VIDEO_FORMAT_MP4 = 2,
|
||||
VIDEO_FORMAT_MTS = 11,
|
||||
VIDEO_FORMAT_RM = 6,
|
||||
VIDEO_FORMAT_RMVB = 5,
|
||||
VIDEO_FORMAT_TS = 10,
|
||||
VIDEO_FORMAT_WMV = 3,
|
||||
}
|
||||
export interface MarkdownElement {
|
||||
content: string;
|
||||
}
|
||||
|
||||
export interface InlineKeyboardElementRowButton {
|
||||
id: string;
|
||||
label: string;
|
||||
visitedLabel: string;
|
||||
style: 1; // 未知
|
||||
type: 2; // 未知
|
||||
clickLimit: 0; // 未知
|
||||
unsupportTips: string;
|
||||
data: string;
|
||||
atBotShowChannelList: boolean;
|
||||
permissionType: number;
|
||||
specifyRoleIds: [];
|
||||
specifyTinyids: [];
|
||||
isReply: false;
|
||||
anchor: 0;
|
||||
enter: false;
|
||||
subscribeDataTemplateIds: []
|
||||
}
|
||||
|
||||
export interface InlineKeyboardElement {
|
||||
rows: [{
|
||||
buttons: InlineKeyboardElementRowButton[]
|
||||
}];
|
||||
}
|
||||
|
||||
export interface TipAioOpGrayTipElement { // 这是什么提示来着?
|
||||
operateType: number;
|
||||
peerUid: string;
|
||||
fromGrpCodeOfTmpChat: string;
|
||||
}
|
||||
|
||||
export enum TipGroupElementType {
|
||||
memberIncrease = 1,
|
||||
kicked = 3, // 被移出群
|
||||
ban = 8
|
||||
}
|
||||
// public final class MemberAddShowType {
|
||||
// public static final int KOTHERADD = 0;
|
||||
// public static final int KOTHERADDBYOTHERQRCODE = 2;
|
||||
// public static final int KOTHERADDBYYOURQRCODE = 3;
|
||||
// public static final int KOTHERINVITEOTHER = 5;
|
||||
// public static final int KOTHERINVITEYOU = 6;
|
||||
// public static final int KYOUADD = 1;
|
||||
// public static final int KYOUADDBYOTHERQRCODE = 4;
|
||||
// public static final int KYOUALREADYMEMBER = 8;
|
||||
// public static final int KYOUINVITEOTHER = 7;
|
||||
// }
|
||||
export interface TipGroupElement {
|
||||
type: TipGroupElementType; // 1是表示有人加入群; 自己加入群也会收到这个
|
||||
role: 0; // 暂时不知
|
||||
groupName: string; // 暂时获取不到
|
||||
memberUid: string;
|
||||
memberNick: string;
|
||||
memberRemark: string;
|
||||
adminUid: string;
|
||||
adminNick: string;
|
||||
adminRemark: string;
|
||||
createGroup: null;
|
||||
memberAdd?: {
|
||||
showType: 1;
|
||||
otherAdd: null;
|
||||
otherAddByOtherQRCode: null;
|
||||
otherAddByYourQRCode: null;
|
||||
youAddByOtherQRCode: null;
|
||||
otherInviteOther: null;
|
||||
otherInviteYou: null;
|
||||
youInviteOther: null
|
||||
};
|
||||
shutUp?: {
|
||||
curTime: string;
|
||||
duration: string; // 禁言时间,秒
|
||||
admin: {
|
||||
uid: string;
|
||||
card: string;
|
||||
name: string;
|
||||
role: GroupMemberRole
|
||||
};
|
||||
member: {
|
||||
uid: string
|
||||
card: string;
|
||||
name: string;
|
||||
role: GroupMemberRole
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export interface MultiForwardMsgElement {
|
||||
xmlContent: string; // xml格式的消息内容
|
||||
resId: string;
|
||||
fileName: string;
|
||||
}
|
||||
|
||||
export interface RawMessage {
|
||||
parentMsgPeer: Peer;
|
||||
parentMsgIdList:string[];
|
||||
id?: number;//扩展字段 用于处理OB11 ID
|
||||
guildId: string;
|
||||
msgRandom: string;
|
||||
|
||||
|
||||
msgId: string;
|
||||
|
||||
// 时间戳,秒
|
||||
msgTime: string;
|
||||
|
||||
msgSeq: string;
|
||||
msgType: number;
|
||||
subMsgType: number;
|
||||
senderUid: string;
|
||||
senderUin: string; // 发送者QQ号
|
||||
peerUid: string; // 群号 或者 QQ uid
|
||||
peerUin: string; // 群号 或者 发送者QQ号
|
||||
sendNickName: string;
|
||||
sendMemberName?: string; // 发送者群名片
|
||||
chatType: ChatType;
|
||||
sendStatus?: number; // 消息状态,别人发的2是已撤回,自己发的2是已发送
|
||||
recallTime: string; // 撤回时间, "0"是没有撤回
|
||||
records: RawMessage[];
|
||||
elements: {
|
||||
elementId: string;
|
||||
elementType: ElementType;
|
||||
replyElement: {
|
||||
sourceMsgIdInRecords: string;
|
||||
senderUid: string; // 原消息发送者QQ号
|
||||
sourceMsgIsIncPic: boolean; // 原消息是否有图片
|
||||
sourceMsgText: string;
|
||||
replayMsgSeq: string; // 源消息的msgSeq,可以通过这个找到源消息的msgId
|
||||
};
|
||||
textElement: {
|
||||
atType: AtType;
|
||||
atUid: string; // QQ号
|
||||
content: string;
|
||||
atNtUid: string; // uid号
|
||||
};
|
||||
picElement: PicElement;
|
||||
pttElement: PttElement;
|
||||
arkElement: ArkElement;
|
||||
grayTipElement: GrayTipElement;
|
||||
faceElement: FaceElement;
|
||||
videoElement: VideoElement;
|
||||
fileElement: FileElement;
|
||||
marketFaceElement: MarketFaceElement;
|
||||
inlineKeyboardElement: InlineKeyboardElement;
|
||||
markdownElement: MarkdownElement;
|
||||
multiForwardMsgElement: MultiForwardMsgElement;
|
||||
}[];
|
||||
}
|
116
src/core/entities/notify.ts
Normal file
116
src/core/entities/notify.ts
Normal file
@@ -0,0 +1,116 @@
|
||||
export enum GroupNotifyTypes {
|
||||
INVITE_ME = 1,
|
||||
INVITED_JOIN = 4, // 有人接受了邀请入群
|
||||
JOIN_REQUEST = 7,
|
||||
ADMIN_SET = 8,
|
||||
KICK_MEMBER = 9,
|
||||
MEMBER_EXIT = 11, // 主动退出
|
||||
ADMIN_UNSET = 12,
|
||||
ADMIN_UNSET_OTHER = 13, // 其他人取消管理员
|
||||
}
|
||||
|
||||
export interface GroupNotifies {
|
||||
doubt: boolean;
|
||||
nextStartSeq: string;
|
||||
notifies: GroupNotify[];
|
||||
}
|
||||
|
||||
export enum GroupNotifyStatus {
|
||||
IGNORE = 0,
|
||||
WAIT_HANDLE = 1,
|
||||
APPROVE = 2,
|
||||
REJECT = 3
|
||||
}
|
||||
|
||||
export interface GroupNotify {
|
||||
time: number; // 自己添加的字段,时间戳,毫秒, 用于判断收到短时间内收到重复的notify
|
||||
seq: string; // 唯一标识符,转成数字再除以1000应该就是时间戳?
|
||||
type: GroupNotifyTypes;
|
||||
status: GroupNotifyStatus; // 0是已忽略?,1是未处理,2是已同意
|
||||
group: { groupCode: string; groupName: string };
|
||||
user1: { uid: string; nickName: string }; // 被设置管理员的人
|
||||
user2: { uid: string; nickName: string }; // 操作者
|
||||
actionUser: { uid: string; nickName: string }; //未知
|
||||
actionTime: string;
|
||||
invitationExt: {
|
||||
srcType: number; // 0?未知
|
||||
groupCode: string; waitStatus: number
|
||||
};
|
||||
postscript: string; // 加群用户填写的验证信息
|
||||
repeatSeqs: [];
|
||||
warningTips: string
|
||||
}
|
||||
|
||||
export enum GroupRequestOperateTypes {
|
||||
approve = 1,
|
||||
reject = 2
|
||||
}
|
||||
export enum BuddyReqType {
|
||||
KMEINITIATOR,
|
||||
KPEERINITIATOR,
|
||||
KMEAGREED,
|
||||
KMEAGREEDANDADDED,
|
||||
KPEERAGREED,
|
||||
KPEERAGREEDANDADDED,
|
||||
KPEERREFUSED,
|
||||
KMEREFUSED,
|
||||
KMEIGNORED,
|
||||
KMEAGREEANYONE,
|
||||
KMESETQUESTION,
|
||||
KMEAGREEANDADDFAILED,
|
||||
KMSGINFO,
|
||||
KMEINITIATORWAITPEERCONFIRM
|
||||
}
|
||||
export interface FriendRequest {
|
||||
isInitiator?: boolean;
|
||||
isDecide: boolean;
|
||||
friendUid: string;
|
||||
reqType: BuddyReqType,
|
||||
reqTime: string; // 时间戳;秒
|
||||
extWords: string; // 申请人填写的验证消息
|
||||
isUnread: boolean;
|
||||
friendNick: string;
|
||||
sourceId: number;
|
||||
groupCode: string
|
||||
}
|
||||
|
||||
export interface FriendRequestNotify {
|
||||
unreadNums: number;
|
||||
buddyReqs: FriendRequest[];
|
||||
}
|
||||
export enum MemberExtSourceType {
|
||||
DEFAULTTYPE = 0,
|
||||
TITLETYPE = 1,
|
||||
NEWGROUPTYPE = 2,
|
||||
}
|
||||
export interface GroupExtParam {
|
||||
groupCode: string
|
||||
seq: string
|
||||
beginUin: string
|
||||
dataTime: string
|
||||
uinList: Array<string>
|
||||
uinNum: string
|
||||
groupType: string
|
||||
richCardNameVer: string
|
||||
sourceType: MemberExtSourceType
|
||||
memberExtFilter: {
|
||||
memberLevelInfoUin: number
|
||||
memberLevelInfoPoint: number
|
||||
memberLevelInfoActiveDay: number
|
||||
memberLevelInfoLevel: number
|
||||
memberLevelInfoName: number
|
||||
levelName: number
|
||||
dataTime: number
|
||||
userShowFlag: number
|
||||
sysShowFlag: number
|
||||
timeToUpdate: number
|
||||
nickName: number
|
||||
specialTitle: number
|
||||
levelNameNew: number
|
||||
userShowFlagNew: number
|
||||
msgNeedField: number
|
||||
cmdUinFlagExt3Grocery: number
|
||||
memberIcon: number
|
||||
memberInfoSeq: number
|
||||
}
|
||||
}
|
347
src/core/entities/user.ts
Normal file
347
src/core/entities/user.ts
Normal file
@@ -0,0 +1,347 @@
|
||||
export enum Sex {
|
||||
male = 1,
|
||||
female = 2,
|
||||
unknown = 255,
|
||||
}
|
||||
export interface BuddyCategoryType {
|
||||
categoryId: number;
|
||||
categroyName: string;
|
||||
categroyMbCount: number;
|
||||
buddyList: User[];
|
||||
}
|
||||
export interface CoreInfo {
|
||||
uid: string;
|
||||
uin: string;
|
||||
nick: string;
|
||||
remark: string;
|
||||
}
|
||||
|
||||
export interface BaseInfo {
|
||||
qid: string;
|
||||
longNick: string;
|
||||
birthday_year: number;
|
||||
birthday_month: number;
|
||||
birthday_day: number;
|
||||
age: number;
|
||||
sex: number;
|
||||
eMail: string;
|
||||
phoneNum: string;
|
||||
categoryId: number;
|
||||
richTime: number;
|
||||
richBuffer: string;
|
||||
}
|
||||
|
||||
interface MusicInfo {
|
||||
buf: string;
|
||||
}
|
||||
|
||||
interface VideoBizInfo {
|
||||
cid: string;
|
||||
tvUrl: string;
|
||||
synchType: string;
|
||||
}
|
||||
|
||||
interface VideoInfo {
|
||||
name: string;
|
||||
}
|
||||
|
||||
interface ExtOnlineBusinessInfo {
|
||||
buf: string;
|
||||
customStatus: any;
|
||||
videoBizInfo: VideoBizInfo;
|
||||
videoInfo: VideoInfo;
|
||||
}
|
||||
|
||||
interface ExtBuffer {
|
||||
buf: string;
|
||||
}
|
||||
|
||||
interface UserStatus {
|
||||
uid: string;
|
||||
uin: string;
|
||||
status: number;
|
||||
extStatus: number;
|
||||
batteryStatus: number;
|
||||
termType: number;
|
||||
netType: number;
|
||||
iconType: number;
|
||||
customStatus: any;
|
||||
setTime: string;
|
||||
specialFlag: number;
|
||||
abiFlag: number;
|
||||
eNetworkType: number;
|
||||
showName: string;
|
||||
termDesc: string;
|
||||
musicInfo: MusicInfo;
|
||||
extOnlineBusinessInfo: ExtOnlineBusinessInfo;
|
||||
extBuffer: ExtBuffer;
|
||||
}
|
||||
|
||||
interface PrivilegeIcon {
|
||||
jumpUrl: string;
|
||||
openIconList: any[];
|
||||
closeIconList: any[];
|
||||
}
|
||||
|
||||
interface VasInfo {
|
||||
vipFlag: boolean;
|
||||
yearVipFlag: boolean;
|
||||
svipFlag: boolean;
|
||||
vipLevel: number;
|
||||
bigClub: boolean;
|
||||
bigClubLevel: number;
|
||||
nameplateVipType: number;
|
||||
grayNameplateFlag: number;
|
||||
superVipTemplateId: number;
|
||||
diyFontId: number;
|
||||
pendantId: number;
|
||||
pendantDiyId: number;
|
||||
faceId: number;
|
||||
vipFont: number;
|
||||
vipFontType: number;
|
||||
magicFont: number;
|
||||
fontEffect: number;
|
||||
newLoverDiamondFlag: number;
|
||||
extendNameplateId: number;
|
||||
diyNameplateIDs: any[];
|
||||
vipStartFlag: number;
|
||||
vipDataFlag: number;
|
||||
gameNameplateId: string;
|
||||
gameLastLoginTime: string;
|
||||
gameRank: number;
|
||||
gameIconShowFlag: boolean;
|
||||
gameCardId: string;
|
||||
vipNameColorId: string;
|
||||
privilegeIcon: PrivilegeIcon;
|
||||
}
|
||||
|
||||
interface RelationFlags {
|
||||
topTime: string;
|
||||
isBlock: boolean;
|
||||
isMsgDisturb: boolean;
|
||||
isSpecialCareOpen: boolean;
|
||||
isSpecialCareZone: boolean;
|
||||
ringId: string;
|
||||
isBlocked: boolean;
|
||||
recommendImgFlag: number;
|
||||
disableEmojiShortCuts: number;
|
||||
qidianMasterFlag: number;
|
||||
qidianCrewFlag: number;
|
||||
qidianCrewFlag2: number;
|
||||
isHideQQLevel: number;
|
||||
isHidePrivilegeIcon: number;
|
||||
}
|
||||
|
||||
|
||||
interface CommonExt {
|
||||
constellation: number;
|
||||
shengXiao: number;
|
||||
kBloodType: number;
|
||||
homeTown: string;
|
||||
makeFriendCareer: number;
|
||||
pos: string;
|
||||
college: string;
|
||||
country: string;
|
||||
province: string;
|
||||
city: string;
|
||||
postCode: string;
|
||||
address: string;
|
||||
regTime: number;
|
||||
interest: string;
|
||||
labels: any[];
|
||||
qqLevel: QQLevel;
|
||||
}
|
||||
|
||||
interface Pic {
|
||||
picId: string;
|
||||
picTime: number;
|
||||
picUrlMap: Record<string, string>;
|
||||
}
|
||||
|
||||
interface PhotoWall {
|
||||
picList: Pic[];
|
||||
}
|
||||
|
||||
export interface SimpleInfo {
|
||||
uid?: string;
|
||||
uin?: string;
|
||||
coreInfo: CoreInfo;
|
||||
baseInfo: BaseInfo;
|
||||
status: UserStatus | null;
|
||||
vasInfo: VasInfo | null;
|
||||
relationFlags: RelationFlags | null;
|
||||
otherFlags: any | null;
|
||||
intimate: any | null;
|
||||
}
|
||||
export interface FriendV2 extends SimpleInfo {
|
||||
categoryId?: number;
|
||||
categroyName?: string;
|
||||
}
|
||||
export interface UserDetailInfoListenerArg {
|
||||
uid: string;
|
||||
uin: string;
|
||||
simpleInfo: SimpleInfo;
|
||||
commonExt: CommonExt;
|
||||
photoWall: PhotoWall;
|
||||
}
|
||||
export interface ModifyProfileParams {
|
||||
nick: string,
|
||||
longNick: string,
|
||||
sex: Sex,
|
||||
birthday: { birthday_year: string, birthday_month: string, birthday_day: string },
|
||||
location: any//undefined
|
||||
}
|
||||
|
||||
export interface BuddyProfileLikeReq {
|
||||
friendUids: string[];
|
||||
basic: number;
|
||||
vote: number;
|
||||
favorite: number;
|
||||
userProfile: number;
|
||||
type: number;
|
||||
start: number;
|
||||
limit: number;
|
||||
}
|
||||
export interface QQLevel {
|
||||
crownNum: number;
|
||||
sunNum: number;
|
||||
moonNum: number;
|
||||
starNum: number
|
||||
}
|
||||
export interface User {
|
||||
uid: string; // 加密的字符串
|
||||
uin: string; // QQ号
|
||||
nick: string;
|
||||
avatarUrl?: string;
|
||||
longNick?: string; // 签名
|
||||
remark?: string;
|
||||
sex?: Sex;
|
||||
qqLevel?: QQLevel;
|
||||
qid?: string
|
||||
birthday_year?: number;
|
||||
birthday_month?: number;
|
||||
birthday_day?: number;
|
||||
topTime?: string;
|
||||
constellation?: number;
|
||||
shengXiao?: number;
|
||||
kBloodType?: number;
|
||||
homeTown?: string; //"0-0-0";
|
||||
makeFriendCareer?: number;
|
||||
pos?: string;
|
||||
eMail?: string
|
||||
phoneNum?: string;
|
||||
college?: string;
|
||||
country?: string;
|
||||
province?: string;
|
||||
city?: string;
|
||||
postCode?: string;
|
||||
address?: string;
|
||||
isBlock?: boolean;
|
||||
isSpecialCareOpen?: boolean;
|
||||
isSpecialCareZone?: boolean;
|
||||
ringId?: string;
|
||||
regTime?: number;
|
||||
interest?: string;
|
||||
labels?: string[];
|
||||
isHideQQLevel?: number;
|
||||
privilegeIcon?: {
|
||||
jumpUrl: string;
|
||||
openIconList: unknown[];
|
||||
closeIconList: unknown[]
|
||||
};
|
||||
photoWall?: {
|
||||
picList: unknown[]
|
||||
};
|
||||
vipFlag?: boolean;
|
||||
yearVipFlag?: boolean;
|
||||
svipFlag?: boolean;
|
||||
vipLevel?: number;
|
||||
status?: number;
|
||||
qidianMasterFlag?: number;
|
||||
qidianCrewFlag?: number;
|
||||
qidianCrewFlag2?: number;
|
||||
extStatus?: number;
|
||||
recommendImgFlag?: number;
|
||||
disableEmojiShortCuts?: number;
|
||||
pendantId?: string;
|
||||
}
|
||||
|
||||
export interface SelfInfo extends User {
|
||||
online?: boolean;
|
||||
}
|
||||
|
||||
export interface Friend extends User { }
|
||||
|
||||
export enum BizKey {
|
||||
KPRIVILEGEICON,
|
||||
KPHOTOWALL
|
||||
}
|
||||
export interface UserDetailInfoByUinV2 {
|
||||
result: number,
|
||||
errMsg: string,
|
||||
detail: {
|
||||
uid: string,
|
||||
uin: string,
|
||||
simpleInfo: SimpleInfo,
|
||||
commonExt: CommonExt,
|
||||
photoWall: null
|
||||
}
|
||||
}
|
||||
export interface UserDetailInfoByUin {
|
||||
result: number,
|
||||
errMsg: string,
|
||||
info: {
|
||||
uid: string,//这个没办法用
|
||||
qid: string,
|
||||
uin: string,
|
||||
nick: string,
|
||||
remark: string,
|
||||
longNick: string,
|
||||
avatarUrl: string,
|
||||
birthday_year: number,
|
||||
birthday_month: number,
|
||||
birthday_day: number,
|
||||
sex: number,//0
|
||||
topTime: string,
|
||||
constellation: number,
|
||||
shengXiao: number,
|
||||
kBloodType: number,
|
||||
homeTown: string,
|
||||
makeFriendCareer: number,
|
||||
pos: string,
|
||||
eMail: string,
|
||||
phoneNum: string,
|
||||
college: string,
|
||||
country: string,
|
||||
province: string,
|
||||
city: string,
|
||||
postCode: string,
|
||||
address: string,
|
||||
isBlock: boolean,
|
||||
isSpecialCareOpen: boolean,
|
||||
isSpecialCareZone: boolean,
|
||||
ringId: string,
|
||||
regTime: number,
|
||||
interest: string,
|
||||
termType: number,
|
||||
labels: any[],
|
||||
qqLevel: { crownNum: number, sunNum: number, moonNum: number, starNum: number },
|
||||
isHideQQLevel: number,
|
||||
privilegeIcon: { jumpUrl: string, openIconList: any[], closeIconList: any[] },
|
||||
isHidePrivilegeIcon: number,
|
||||
photoWall: { picList: any[] },
|
||||
vipFlag: boolean,
|
||||
yearVipFlag: boolean,
|
||||
svipFlag: boolean,
|
||||
vipLevel: number,
|
||||
status: number,
|
||||
qidianMasterFlag: number,
|
||||
qidianCrewFlag: number,
|
||||
qidianCrewFlag2: number,
|
||||
extStatus: number,
|
||||
recommendImgFlag: number,
|
||||
disableEmojiShortCuts: number,
|
||||
pendantId: string,
|
||||
vipNameColorId: string
|
||||
}
|
||||
}
|
3665
src/core/external/face_config.json
vendored
Normal file
3665
src/core/external/face_config.json
vendored
Normal file
File diff suppressed because it is too large
Load Diff
102
src/core/listeners/NodeIKernelBuddyListener.ts
Normal file
102
src/core/listeners/NodeIKernelBuddyListener.ts
Normal file
@@ -0,0 +1,102 @@
|
||||
import { BuddyCategoryType, FriendRequestNotify } from '@/core/entities';
|
||||
|
||||
export type OnBuddyChangeParams = BuddyCategoryType[]
|
||||
|
||||
interface IBuddyListener {
|
||||
onBuddyListChangedV2(arg: unknown): void,//V2版本 还没兼容
|
||||
|
||||
onBuddyListChange(arg: OnBuddyChangeParams): void,
|
||||
|
||||
onBuddyInfoChange(arg: unknown): void,
|
||||
|
||||
onBuddyDetailInfoChange(arg: unknown): void,
|
||||
|
||||
onNickUpdated(arg: unknown): void,
|
||||
|
||||
onBuddyRemarkUpdated(arg: unknown): void,
|
||||
|
||||
onAvatarUrlUpdated(arg: unknown): void,
|
||||
|
||||
onBuddyReqChange(arg: FriendRequestNotify): void,
|
||||
|
||||
onBuddyReqUnreadCntChange(arg: unknown): void,
|
||||
|
||||
onCheckBuddySettingResult(arg: unknown): void,
|
||||
|
||||
onAddBuddyNeedVerify(arg: unknown): void,
|
||||
|
||||
onSmartInfos(arg: unknown): void,
|
||||
|
||||
onSpacePermissionInfos(arg: unknown): void,
|
||||
|
||||
onDoubtBuddyReqChange(arg: unknown): void,
|
||||
|
||||
onDoubtBuddyReqUnreadNumChange(arg: unknown): void,
|
||||
|
||||
onBlockChanged(arg: unknown): void,
|
||||
|
||||
onAddMeSettingChanged(arg: unknown): void,
|
||||
|
||||
onDelBatchBuddyInfos(arg: unknown): void
|
||||
}
|
||||
|
||||
export interface NodeIKernelBuddyListener extends IBuddyListener {
|
||||
// eslint-disable-next-line @typescript-eslint/no-misused-new
|
||||
new(listener: IBuddyListener): NodeIKernelBuddyListener;
|
||||
}
|
||||
|
||||
export class BuddyListener implements IBuddyListener {
|
||||
onBuddyListChangedV2(arg: unknown): void {
|
||||
//throw new Error('Method not implemented.');
|
||||
}
|
||||
onAddBuddyNeedVerify(arg: unknown) {
|
||||
}
|
||||
|
||||
onAddMeSettingChanged(arg: unknown) {
|
||||
}
|
||||
|
||||
onAvatarUrlUpdated(arg: unknown) {
|
||||
}
|
||||
|
||||
onBlockChanged(arg: unknown) {
|
||||
}
|
||||
|
||||
onBuddyDetailInfoChange(arg: unknown) {
|
||||
}
|
||||
|
||||
onBuddyInfoChange(arg: unknown) {
|
||||
}
|
||||
|
||||
onBuddyListChange(arg: OnBuddyChangeParams): void {
|
||||
}
|
||||
|
||||
onBuddyRemarkUpdated(arg: unknown): void {
|
||||
}
|
||||
|
||||
onBuddyReqChange(arg: FriendRequestNotify): void {
|
||||
}
|
||||
|
||||
onBuddyReqUnreadCntChange(arg: unknown): void {
|
||||
}
|
||||
|
||||
onCheckBuddySettingResult(arg: unknown): void {
|
||||
}
|
||||
|
||||
onDelBatchBuddyInfos(arg: unknown): void {
|
||||
}
|
||||
|
||||
onDoubtBuddyReqChange(arg: unknown): void {
|
||||
}
|
||||
|
||||
onDoubtBuddyReqUnreadNumChange(arg: unknown): void {
|
||||
}
|
||||
|
||||
onNickUpdated(arg: unknown): void {
|
||||
}
|
||||
|
||||
onSmartInfos(arg: unknown): void {
|
||||
}
|
||||
|
||||
onSpacePermissionInfos(arg: unknown): void {
|
||||
}
|
||||
}
|
27
src/core/listeners/NodeIKernelFileAssistantListener.ts
Normal file
27
src/core/listeners/NodeIKernelFileAssistantListener.ts
Normal file
@@ -0,0 +1,27 @@
|
||||
export interface IKernelFileAssistantListener {
|
||||
onFileStatusChanged(...args: unknown[]): unknown;
|
||||
|
||||
onSessionListChanged(...args: unknown[]): unknown;
|
||||
|
||||
onSessionChanged(...args: unknown[]): unknown;
|
||||
|
||||
onFileListChanged(...args: unknown[]): unknown;
|
||||
|
||||
onFileSearch(...args: unknown[]): unknown;
|
||||
}
|
||||
export interface NodeIKernelFileAssistantListener extends IKernelFileAssistantListener {
|
||||
// eslint-disable-next-line @typescript-eslint/no-misused-new
|
||||
new(adapter: IKernelFileAssistantListener): NodeIKernelFileAssistantListener;
|
||||
}
|
||||
|
||||
export class KernelFileAssistantListener implements IKernelFileAssistantListener {
|
||||
onFileStatusChanged(...args: unknown[]) { }
|
||||
|
||||
onSessionListChanged(...args: unknown[]) { }
|
||||
|
||||
onSessionChanged(...args: unknown[]) { }
|
||||
|
||||
onFileListChanged(...args: unknown[]) { }
|
||||
|
||||
onFileSearch(...args: unknown[]) { }
|
||||
}
|
240
src/core/listeners/NodeIKernelGroupListener.ts
Normal file
240
src/core/listeners/NodeIKernelGroupListener.ts
Normal file
@@ -0,0 +1,240 @@
|
||||
import { Group, GroupListUpdateType, GroupMember, GroupNotify } from '@/core/entities';
|
||||
|
||||
interface IGroupListener {
|
||||
onGroupListUpdate(updateType: GroupListUpdateType, groupList: Group[]): void;
|
||||
|
||||
onGroupExtListUpdate(...args: unknown[]): void;
|
||||
|
||||
onGroupSingleScreenNotifies(doubt: boolean, seq: string, notifies: GroupNotify[]): void;
|
||||
|
||||
onGroupNotifiesUpdated(dboubt: boolean, notifies: GroupNotify[]): void;
|
||||
|
||||
onGroupNotifiesUnreadCountUpdated(...args: unknown[]): void;
|
||||
|
||||
onGroupDetailInfoChange(...args: unknown[]): void;
|
||||
|
||||
onGroupAllInfoChange(...args: unknown[]): void;
|
||||
|
||||
onGroupsMsgMaskResult(...args: unknown[]): void;
|
||||
|
||||
onGroupConfMemberChange(...args: unknown[]): void;
|
||||
|
||||
onGroupBulletinChange(...args: unknown[]): void;
|
||||
|
||||
onGetGroupBulletinListResult(...args: unknown[]): void;
|
||||
|
||||
onMemberListChange(arg: {
|
||||
sceneId: string,
|
||||
ids: string[],
|
||||
infos: Map<string, GroupMember>,
|
||||
finish: boolean,
|
||||
hasRobot: boolean
|
||||
}): void;
|
||||
|
||||
onMemberInfoChange(groupCode: string, changeType: number, members: Map<string, GroupMember>): void;
|
||||
|
||||
onSearchMemberChange(...args: unknown[]): void;
|
||||
|
||||
onGroupBulletinRichMediaDownloadComplete(...args: unknown[]): void;
|
||||
|
||||
onGroupBulletinRichMediaProgressUpdate(...args: unknown[]): void;
|
||||
|
||||
onGroupStatisticInfoChange(...args: unknown[]): void;
|
||||
|
||||
onJoinGroupNotify(...args: unknown[]): void;
|
||||
|
||||
onShutUpMemberListChanged(...args: unknown[]): void;
|
||||
|
||||
onGroupBulletinRemindNotify(...args: unknown[]): void;
|
||||
|
||||
onGroupFirstBulletinNotify(...args: unknown[]): void;
|
||||
|
||||
onJoinGroupNoVerifyFlag(...args: unknown[]): void;
|
||||
|
||||
onGroupArkInviteStateResult(...args: unknown[]): void;
|
||||
// 发现于Win 9.9.9 23159
|
||||
onGroupMemberLevelInfoChange(...args: unknown[]): void;
|
||||
}
|
||||
|
||||
export interface NodeIKernelGroupListener extends IGroupListener {
|
||||
// eslint-disable-next-line @typescript-eslint/no-misused-new
|
||||
new(listener: IGroupListener): NodeIKernelGroupListener;
|
||||
}
|
||||
|
||||
export class GroupListener implements IGroupListener {
|
||||
// 发现于Win 9.9.9 23159
|
||||
onGroupMemberLevelInfoChange(...args: unknown[]): void {
|
||||
|
||||
}
|
||||
onGetGroupBulletinListResult(...args: unknown[]) {
|
||||
}
|
||||
|
||||
onGroupAllInfoChange(...args: unknown[]) {
|
||||
}
|
||||
|
||||
onGroupBulletinChange(...args: unknown[]) {
|
||||
}
|
||||
|
||||
onGroupBulletinRemindNotify(...args: unknown[]) {
|
||||
}
|
||||
|
||||
onGroupArkInviteStateResult(...args: unknown[]) {
|
||||
}
|
||||
|
||||
onGroupBulletinRichMediaDownloadComplete(...args: unknown[]) {
|
||||
}
|
||||
|
||||
onGroupConfMemberChange(...args: unknown[]) {
|
||||
}
|
||||
|
||||
onGroupDetailInfoChange(...args: unknown[]) {
|
||||
}
|
||||
|
||||
onGroupExtListUpdate(...args: unknown[]) {
|
||||
}
|
||||
|
||||
onGroupFirstBulletinNotify(...args: unknown[]) {
|
||||
}
|
||||
|
||||
onGroupListUpdate(updateType: GroupListUpdateType, groupList: Group[]) {
|
||||
}
|
||||
|
||||
onGroupNotifiesUpdated(dboubt: boolean, notifies: GroupNotify[]) {
|
||||
}
|
||||
|
||||
onGroupBulletinRichMediaProgressUpdate(...args: unknown[]) {
|
||||
}
|
||||
|
||||
onGroupNotifiesUnreadCountUpdated(...args: unknown[]) {
|
||||
}
|
||||
|
||||
onGroupSingleScreenNotifies(doubt: boolean, seq: string, notifies: GroupNotify[]) {
|
||||
}
|
||||
|
||||
onGroupsMsgMaskResult(...args: unknown[]) {
|
||||
}
|
||||
|
||||
onGroupStatisticInfoChange(...args: unknown[]) {
|
||||
}
|
||||
|
||||
onJoinGroupNotify(...args: unknown[]) {
|
||||
}
|
||||
|
||||
onJoinGroupNoVerifyFlag(...args: unknown[]) {
|
||||
}
|
||||
|
||||
onMemberInfoChange(groupCode: string, changeType: number, members: Map<string, GroupMember>) {
|
||||
}
|
||||
|
||||
onMemberListChange(arg: {
|
||||
sceneId: string,
|
||||
ids: string[],
|
||||
infos: Map<string, GroupMember>, // uid -> GroupMember
|
||||
finish: boolean,
|
||||
hasRobot: boolean
|
||||
}) {
|
||||
}
|
||||
|
||||
onSearchMemberChange(...args: unknown[]) {
|
||||
}
|
||||
|
||||
onShutUpMemberListChanged(...args: unknown[]) {
|
||||
}
|
||||
}
|
||||
|
||||
export class DebugGroupListener implements IGroupListener {
|
||||
onGroupMemberLevelInfoChange(...args: unknown[]): void {
|
||||
console.log('onGroupMemberLevelInfoChange:', ...args);
|
||||
}
|
||||
onGetGroupBulletinListResult(...args: unknown[]) {
|
||||
console.log('onGetGroupBulletinListResult:', ...args);
|
||||
}
|
||||
|
||||
onGroupAllInfoChange(...args: unknown[]) {
|
||||
console.log('onGroupAllInfoChange:', ...args);
|
||||
}
|
||||
|
||||
onGroupBulletinChange(...args: unknown[]) {
|
||||
console.log('onGroupBulletinChange:', ...args);
|
||||
}
|
||||
|
||||
onGroupBulletinRemindNotify(...args: unknown[]) {
|
||||
console.log('onGroupBulletinRemindNotify:', ...args);
|
||||
}
|
||||
|
||||
onGroupArkInviteStateResult(...args: unknown[]) {
|
||||
console.log('onGroupArkInviteStateResult:', ...args);
|
||||
}
|
||||
|
||||
onGroupBulletinRichMediaDownloadComplete(...args: unknown[]) {
|
||||
console.log('onGroupBulletinRichMediaDownloadComplete:', ...args);
|
||||
}
|
||||
|
||||
onGroupConfMemberChange(...args: unknown[]) {
|
||||
console.log('onGroupConfMemberChange:', ...args);
|
||||
}
|
||||
|
||||
onGroupDetailInfoChange(...args: unknown[]) {
|
||||
console.log('onGroupDetailInfoChange:', ...args);
|
||||
}
|
||||
|
||||
onGroupExtListUpdate(...args: unknown[]) {
|
||||
console.log('onGroupExtListUpdate:', ...args);
|
||||
}
|
||||
|
||||
onGroupFirstBulletinNotify(...args: unknown[]) {
|
||||
console.log('onGroupFirstBulletinNotify:', ...args);
|
||||
}
|
||||
|
||||
onGroupListUpdate(...args: unknown[]) {
|
||||
console.log('onGroupListUpdate:', ...args);
|
||||
}
|
||||
|
||||
onGroupNotifiesUpdated(...args: unknown[]) {
|
||||
console.log('onGroupNotifiesUpdated:', ...args);
|
||||
}
|
||||
|
||||
onGroupBulletinRichMediaProgressUpdate(...args: unknown[]) {
|
||||
console.log('onGroupBulletinRichMediaProgressUpdate:', ...args);
|
||||
}
|
||||
|
||||
onGroupNotifiesUnreadCountUpdated(...args: unknown[]) {
|
||||
console.log('onGroupNotifiesUnreadCountUpdated:', ...args);
|
||||
}
|
||||
|
||||
onGroupSingleScreenNotifies(doubt: boolean, seq: string, notifies: GroupNotify[]) {
|
||||
console.log('onGroupSingleScreenNotifies:');
|
||||
}
|
||||
|
||||
onGroupsMsgMaskResult(...args: unknown[]) {
|
||||
console.log('onGroupsMsgMaskResult:', ...args);
|
||||
}
|
||||
|
||||
onGroupStatisticInfoChange(...args: unknown[]) {
|
||||
console.log('onGroupStatisticInfoChange:', ...args);
|
||||
}
|
||||
|
||||
onJoinGroupNotify(...args: unknown[]) {
|
||||
console.log('onJoinGroupNotify:', ...args);
|
||||
}
|
||||
|
||||
onJoinGroupNoVerifyFlag(...args: unknown[]) {
|
||||
console.log('onJoinGroupNoVerifyFlag:', ...args);
|
||||
}
|
||||
|
||||
onMemberInfoChange(groupCode: string, changeType: number, members: Map<string, GroupMember>) {
|
||||
console.log('onMemberInfoChange:', groupCode, changeType, members);
|
||||
}
|
||||
|
||||
onMemberListChange(...args: unknown[]) {
|
||||
console.log('onMemberListChange:', ...args);
|
||||
}
|
||||
|
||||
onSearchMemberChange(...args: unknown[]) {
|
||||
console.log('onSearchMemberChange:', ...args);
|
||||
}
|
||||
|
||||
onShutUpMemberListChanged(...args: unknown[]) {
|
||||
console.log('onShutUpMemberListChanged:', ...args);
|
||||
}
|
||||
}
|
108
src/core/listeners/NodeIKernelLoginListener.ts
Normal file
108
src/core/listeners/NodeIKernelLoginListener.ts
Normal file
@@ -0,0 +1,108 @@
|
||||
export interface IKernelLoginListener {
|
||||
onLoginConnected(...args: any[]): void;
|
||||
|
||||
onLoginDisConnected(...args: any[]): void;
|
||||
|
||||
onLoginConnecting(...args: any[]): void;
|
||||
|
||||
onQRCodeGetPicture(...args: any[]): void;
|
||||
|
||||
onQRCodeLoginPollingStarted(...args: any[]): void;
|
||||
|
||||
onQRCodeSessionUserScaned(...args: any[]): void;
|
||||
|
||||
onQRCodeLoginSucceed(...args: any[]): void;
|
||||
|
||||
onQRCodeSessionFailed(...args: any[]): void;
|
||||
|
||||
onLoginFailed(...args: any[]): void;
|
||||
|
||||
onLogoutSucceed(...args: any[]): void;
|
||||
|
||||
onLogoutFailed(...args: any[]): void;
|
||||
|
||||
onUserLoggedIn(...args: any[]): void;
|
||||
|
||||
onQRCodeSessionQuickLoginFailed(...args: any[]): void;
|
||||
|
||||
onPasswordLoginFailed(...args: any[]): void;
|
||||
|
||||
OnConfirmUnusualDeviceFailed(...args: any[]): void;
|
||||
|
||||
onQQLoginNumLimited(...args: any[]): void;
|
||||
|
||||
onLoginState(...args: any[]): void;
|
||||
}
|
||||
|
||||
export interface NodeIKernelLoginListener {
|
||||
// eslint-disable-next-line @typescript-eslint/no-misused-new
|
||||
new(listener: IKernelLoginListener): NodeIKernelLoginListener;
|
||||
}
|
||||
|
||||
export class LoginListener implements IKernelLoginListener {
|
||||
onLoginConnected(...args: any[]): void {
|
||||
}
|
||||
|
||||
onLoginDisConnected(...args: any[]): void {
|
||||
}
|
||||
|
||||
onLoginConnecting(...args: any[]): void {
|
||||
}
|
||||
|
||||
onQRCodeGetPicture(arg: { pngBase64QrcodeData: string, qrcodeUrl: string }): void {
|
||||
// let base64Data: string = arg.pngBase64QrcodeData
|
||||
// base64Data = base64Data.split("data:image/png;base64,")[1]
|
||||
// let buffer = Buffer.from(base64Data, 'base64')
|
||||
// console.log("onQRCodeGetPicture", arg);
|
||||
}
|
||||
|
||||
onQRCodeLoginPollingStarted(...args: any[]): void {
|
||||
}
|
||||
|
||||
onQRCodeSessionUserScaned(...args: any[]): void {
|
||||
}
|
||||
|
||||
onQRCodeLoginSucceed(arg: QRCodeLoginSucceedResult): void {
|
||||
}
|
||||
|
||||
onQRCodeSessionFailed(...args: any[]): void {
|
||||
}
|
||||
|
||||
onLoginFailed(...args: any[]): void {
|
||||
}
|
||||
|
||||
onLogoutSucceed(...args: any[]): void {
|
||||
}
|
||||
|
||||
onLogoutFailed(...args: any[]): void {
|
||||
}
|
||||
|
||||
onUserLoggedIn(...args: any[]): void {
|
||||
}
|
||||
|
||||
onQRCodeSessionQuickLoginFailed(...args: any[]): void {
|
||||
}
|
||||
|
||||
onPasswordLoginFailed(...args: any[]): void {
|
||||
}
|
||||
|
||||
OnConfirmUnusualDeviceFailed(...args: any[]): void {
|
||||
}
|
||||
|
||||
onQQLoginNumLimited(...args: any[]): void {
|
||||
}
|
||||
|
||||
onLoginState(...args: any[]): void {
|
||||
}
|
||||
}
|
||||
|
||||
export interface QRCodeLoginSucceedResult {
|
||||
account: string;
|
||||
mainAccount: string;
|
||||
uin: string; //拿UIN
|
||||
uid: string; //拿UID
|
||||
nickName: string; //一般是空的 拿不到
|
||||
gender: number;
|
||||
age: number;
|
||||
faceUrl: string;//一般是空的 拿不到
|
||||
}
|
512
src/core/listeners/NodeIKernelMsgListener.ts
Normal file
512
src/core/listeners/NodeIKernelMsgListener.ts
Normal file
@@ -0,0 +1,512 @@
|
||||
import { ChatType, RawMessage } from '@/core/entities';
|
||||
|
||||
export interface OnRichMediaDownloadCompleteParams {
|
||||
fileModelId: string,
|
||||
msgElementId: string,
|
||||
msgId: string,
|
||||
fileId: string,
|
||||
fileProgress: string, // '0'
|
||||
fileSpeed: string, // '0'
|
||||
fileErrCode: string, // '0'
|
||||
fileErrMsg: string,
|
||||
fileDownType: number, // 暂时未知
|
||||
thumbSize: number,
|
||||
filePath: string,
|
||||
totalSize: string,
|
||||
trasferStatus: number,
|
||||
step: number,
|
||||
commonFileInfo: unknown | null,
|
||||
fileSrvErrCode: string,
|
||||
clientMsg: string,
|
||||
businessId: number,
|
||||
userTotalSpacePerDay: unknown | null,
|
||||
userUsedSpacePerDay: unknown | null
|
||||
}
|
||||
export interface onGroupFileInfoUpdateParamType {
|
||||
retCode: number
|
||||
retMsg: string
|
||||
clientWording: string
|
||||
isEnd: boolean
|
||||
item: Array<any>
|
||||
allFileCount: string
|
||||
nextIndex: string
|
||||
reqId: string
|
||||
}
|
||||
// {
|
||||
// sessionType: 1,
|
||||
// chatType: 100,
|
||||
// peerUid: 'u_PVQ3tl6K78xxxx',
|
||||
// groupCode: '809079648',
|
||||
// fromNick: '拾xxxx,
|
||||
// sig: '0x'
|
||||
// }
|
||||
export interface TempOnRecvParams {
|
||||
sessionType: number,//1
|
||||
chatType: ChatType,//100
|
||||
peerUid: string,//uid
|
||||
groupCode: string,//gc
|
||||
fromNick: string,//gc name
|
||||
sig: string,
|
||||
|
||||
}
|
||||
export interface IKernelMsgListener {
|
||||
onAddSendMsg(msgRecord: RawMessage): void;
|
||||
|
||||
onBroadcastHelperDownloadComplete(broadcastHelperTransNotifyInfo: unknown): void;
|
||||
|
||||
onBroadcastHelperProgressUpdate(broadcastHelperTransNotifyInfo: unknown): void;
|
||||
|
||||
onChannelFreqLimitInfoUpdate(contact: unknown, z: unknown, freqLimitInfo: unknown): void;
|
||||
|
||||
onContactUnreadCntUpdate(hashMap: unknown): void;
|
||||
|
||||
onCustomWithdrawConfigUpdate(customWithdrawConfig: unknown): void;
|
||||
|
||||
onDraftUpdate(contact: unknown, arrayList: unknown, j2: unknown): void;
|
||||
|
||||
onEmojiDownloadComplete(emojiNotifyInfo: unknown): void;
|
||||
|
||||
onEmojiResourceUpdate(emojiResourceInfo: unknown): void;
|
||||
|
||||
onFeedEventUpdate(firstViewDirectMsgNotifyInfo: unknown): void;
|
||||
|
||||
onFileMsgCome(arrayList: unknown): void;
|
||||
|
||||
onFirstViewDirectMsgUpdate(firstViewDirectMsgNotifyInfo: unknown): void;
|
||||
|
||||
onFirstViewGroupGuildMapping(arrayList: unknown): void;
|
||||
|
||||
onGrabPasswordRedBag(i2: unknown, str: unknown, i3: unknown, recvdOrder: unknown, msgRecord: unknown): void;
|
||||
|
||||
onGroupFileInfoAdd(groupItem: unknown): void;
|
||||
|
||||
onGroupFileInfoUpdate(groupFileListResult: onGroupFileInfoUpdateParamType): void;
|
||||
|
||||
onGroupGuildUpdate(groupGuildNotifyInfo: unknown): void;
|
||||
|
||||
onGroupTransferInfoAdd(groupItem: unknown): void;
|
||||
|
||||
onGroupTransferInfoUpdate(groupFileListResult: unknown): void;
|
||||
|
||||
onGuildInteractiveUpdate(guildInteractiveNotificationItem: unknown): void;
|
||||
|
||||
onGuildMsgAbFlagChanged(guildMsgAbFlag: unknown): void;
|
||||
|
||||
onGuildNotificationAbstractUpdate(guildNotificationAbstractInfo: unknown): void;
|
||||
|
||||
onHitCsRelatedEmojiResult(downloadRelateEmojiResultInfo: unknown): void;
|
||||
|
||||
onHitEmojiKeywordResult(hitRelatedEmojiWordsResult: unknown): void;
|
||||
|
||||
onHitRelatedEmojiResult(relatedWordEmojiInfo: unknown): void;
|
||||
|
||||
onImportOldDbProgressUpdate(importOldDbMsgNotifyInfo: unknown): void;
|
||||
|
||||
onInputStatusPush(inputStatusInfo: unknown): void;
|
||||
|
||||
onKickedOffLine(kickedInfo: unknown): void;
|
||||
|
||||
onLineDev(arrayList: unknown): void;
|
||||
|
||||
onLogLevelChanged(j2: unknown): void;
|
||||
|
||||
onMsgAbstractUpdate(arrayList: unknown): void;
|
||||
|
||||
onMsgBoxChanged(arrayList: unknown): void;
|
||||
|
||||
onMsgDelete(contact: unknown, arrayList: unknown): void;
|
||||
|
||||
onMsgEventListUpdate(hashMap: unknown): void;
|
||||
|
||||
onMsgInfoListAdd(arrayList: unknown): void;
|
||||
|
||||
onMsgInfoListUpdate(msgList: RawMessage[]): void;
|
||||
|
||||
onMsgQRCodeStatusChanged(i2: unknown): void;
|
||||
|
||||
onMsgRecall(i2: unknown, str: unknown, j2: unknown): void;
|
||||
|
||||
onMsgSecurityNotify(msgRecord: unknown): void;
|
||||
|
||||
onMsgSettingUpdate(msgSetting: unknown): void;
|
||||
|
||||
onNtFirstViewMsgSyncEnd(): void;
|
||||
|
||||
onNtMsgSyncEnd(): void;
|
||||
|
||||
onNtMsgSyncStart(): void;
|
||||
|
||||
onReadFeedEventUpdate(firstViewDirectMsgNotifyInfo: unknown): void;
|
||||
|
||||
onRecvGroupGuildFlag(i2: unknown): void;
|
||||
|
||||
onRecvMsg(...arrayList: unknown[]): void;
|
||||
|
||||
onRecvMsgSvrRspTransInfo(j2: unknown, contact: unknown, i2: unknown, i3: unknown, str: unknown, bArr: unknown): void;
|
||||
|
||||
onRecvOnlineFileMsg(arrayList: unknown): void;
|
||||
|
||||
onRecvS2CMsg(arrayList: unknown): void;
|
||||
|
||||
onRecvSysMsg(arrayList: unknown): void;
|
||||
|
||||
onRecvUDCFlag(i2: unknown): void;
|
||||
|
||||
onRichMediaDownloadComplete(fileTransNotifyInfo: OnRichMediaDownloadCompleteParams): void;
|
||||
|
||||
onRichMediaProgerssUpdate(fileTransNotifyInfo: unknown): void;
|
||||
|
||||
onRichMediaUploadComplete(fileTransNotifyInfo: unknown): void;
|
||||
|
||||
onSearchGroupFileInfoUpdate(searchGroupFileResult:
|
||||
{
|
||||
result: {
|
||||
retCode: number,
|
||||
retMsg: string,
|
||||
clientWording: string
|
||||
},
|
||||
syncCookie: string,
|
||||
totalMatchCount: number,
|
||||
ownerMatchCount: number,
|
||||
isEnd: boolean,
|
||||
reqId: number,
|
||||
item: Array<{
|
||||
groupCode: string,
|
||||
groupName: string,
|
||||
uploaderUin: string,
|
||||
uploaderName: string,
|
||||
matchUin: string,
|
||||
matchWords: Array<unknown>,
|
||||
fileNameHits: Array<{
|
||||
start: number,
|
||||
end: number
|
||||
}>,
|
||||
fileModelId: string,
|
||||
fileId: string,
|
||||
fileName: string,
|
||||
fileSize: string,
|
||||
busId: number,
|
||||
uploadTime: number,
|
||||
modifyTime: number,
|
||||
deadTime: number,
|
||||
downloadTimes: number,
|
||||
localPath: string
|
||||
}>
|
||||
}): void;
|
||||
|
||||
onSendMsgError(j2: unknown, contact: unknown, i2: unknown, str: unknown): void;
|
||||
|
||||
onSysMsgNotification(i2: unknown, j2: unknown, j3: unknown, arrayList: unknown): void;
|
||||
|
||||
onTempChatInfoUpdate(tempChatInfo: TempOnRecvParams): void;
|
||||
|
||||
onUnreadCntAfterFirstView(hashMap: unknown): void;
|
||||
|
||||
onUnreadCntUpdate(hashMap: unknown): void;
|
||||
|
||||
onUserChannelTabStatusChanged(z: unknown): void;
|
||||
|
||||
onUserOnlineStatusChanged(z: unknown): void;
|
||||
|
||||
onUserTabStatusChanged(arrayList: unknown): void;
|
||||
|
||||
onlineStatusBigIconDownloadPush(i2: unknown, j2: unknown, str: unknown): void;
|
||||
|
||||
onlineStatusSmallIconDownloadPush(i2: unknown, j2: unknown, str: unknown): void;
|
||||
|
||||
// 第一次发现于Linux
|
||||
onUserSecQualityChanged(...args: unknown[]): void;
|
||||
|
||||
onMsgWithRichLinkInfoUpdate(...args: unknown[]): void;
|
||||
|
||||
onRedTouchChanged(...args: unknown[]): void;
|
||||
|
||||
// 第一次发现于Win 9.9.9 23159
|
||||
onBroadcastHelperProgerssUpdate(...args: unknown[]): void;
|
||||
|
||||
}
|
||||
|
||||
export interface NodeIKernelMsgListener extends IKernelMsgListener {
|
||||
// eslint-disable-next-line @typescript-eslint/no-misused-new
|
||||
new(listener: IKernelMsgListener): NodeIKernelMsgListener;
|
||||
}
|
||||
|
||||
|
||||
export class MsgListener implements IKernelMsgListener {
|
||||
onAddSendMsg(msgRecord: RawMessage) {
|
||||
|
||||
}
|
||||
|
||||
onBroadcastHelperDownloadComplete(broadcastHelperTransNotifyInfo: unknown) {
|
||||
|
||||
}
|
||||
|
||||
onBroadcastHelperProgressUpdate(broadcastHelperTransNotifyInfo: unknown) {
|
||||
|
||||
}
|
||||
|
||||
onChannelFreqLimitInfoUpdate(contact: unknown, z: unknown, freqLimitInfo: unknown) {
|
||||
|
||||
}
|
||||
|
||||
onContactUnreadCntUpdate(hashMap: unknown) {
|
||||
|
||||
}
|
||||
|
||||
onCustomWithdrawConfigUpdate(customWithdrawConfig: unknown) {
|
||||
|
||||
}
|
||||
|
||||
onDraftUpdate(contact: unknown, arrayList: unknown, j2: unknown) {
|
||||
|
||||
}
|
||||
|
||||
onEmojiDownloadComplete(emojiNotifyInfo: unknown) {
|
||||
|
||||
}
|
||||
|
||||
onEmojiResourceUpdate(emojiResourceInfo: unknown) {
|
||||
|
||||
}
|
||||
|
||||
onFeedEventUpdate(firstViewDirectMsgNotifyInfo: unknown) {
|
||||
|
||||
}
|
||||
|
||||
onFileMsgCome(arrayList: unknown) {
|
||||
|
||||
}
|
||||
|
||||
onFirstViewDirectMsgUpdate(firstViewDirectMsgNotifyInfo: unknown) {
|
||||
|
||||
}
|
||||
|
||||
onFirstViewGroupGuildMapping(arrayList: unknown) {
|
||||
|
||||
}
|
||||
|
||||
onGrabPasswordRedBag(i2: unknown, str: unknown, i3: unknown, recvdOrder: unknown, msgRecord: unknown) {
|
||||
|
||||
}
|
||||
|
||||
onGroupFileInfoAdd(groupItem: unknown) {
|
||||
|
||||
}
|
||||
|
||||
onGroupFileInfoUpdate(groupFileListResult: onGroupFileInfoUpdateParamType) {
|
||||
|
||||
}
|
||||
|
||||
onGroupGuildUpdate(groupGuildNotifyInfo: unknown) {
|
||||
|
||||
}
|
||||
|
||||
|
||||
onGroupTransferInfoAdd(groupItem: unknown) {
|
||||
|
||||
}
|
||||
|
||||
onGroupTransferInfoUpdate(groupFileListResult: unknown) {
|
||||
|
||||
}
|
||||
|
||||
onGuildInteractiveUpdate(guildInteractiveNotificationItem: unknown) {
|
||||
|
||||
}
|
||||
|
||||
onGuildMsgAbFlagChanged(guildMsgAbFlag: unknown) {
|
||||
|
||||
}
|
||||
|
||||
onGuildNotificationAbstractUpdate(guildNotificationAbstractInfo: unknown) {
|
||||
|
||||
}
|
||||
|
||||
onHitCsRelatedEmojiResult(downloadRelateEmojiResultInfo: unknown) {
|
||||
|
||||
}
|
||||
|
||||
onHitEmojiKeywordResult(hitRelatedEmojiWordsResult: unknown) {
|
||||
|
||||
}
|
||||
|
||||
onHitRelatedEmojiResult(relatedWordEmojiInfo: unknown) {
|
||||
|
||||
}
|
||||
|
||||
onImportOldDbProgressUpdate(importOldDbMsgNotifyInfo: unknown) {
|
||||
|
||||
}
|
||||
|
||||
onInputStatusPush(inputStatusInfo: unknown) {
|
||||
|
||||
}
|
||||
|
||||
onKickedOffLine(kickedInfo: unknown) {
|
||||
|
||||
}
|
||||
|
||||
onLineDev(arrayList: unknown) {
|
||||
|
||||
}
|
||||
|
||||
onLogLevelChanged(j2: unknown) {
|
||||
|
||||
}
|
||||
|
||||
onMsgAbstractUpdate(arrayList: unknown) {
|
||||
|
||||
}
|
||||
|
||||
onMsgBoxChanged(arrayList: unknown) {
|
||||
|
||||
}
|
||||
|
||||
onMsgDelete(contact: unknown, arrayList: unknown) {
|
||||
|
||||
}
|
||||
|
||||
onMsgEventListUpdate(hashMap: unknown) {
|
||||
|
||||
}
|
||||
|
||||
onMsgInfoListAdd(arrayList: unknown) {
|
||||
|
||||
}
|
||||
|
||||
onMsgInfoListUpdate(msgList: RawMessage[]) {
|
||||
|
||||
}
|
||||
|
||||
onMsgQRCodeStatusChanged(i2: unknown) {
|
||||
|
||||
}
|
||||
|
||||
onMsgRecall(i2: unknown, str: unknown, j2: unknown) {
|
||||
|
||||
}
|
||||
|
||||
onMsgSecurityNotify(msgRecord: unknown) {
|
||||
|
||||
}
|
||||
|
||||
onMsgSettingUpdate(msgSetting: unknown) {
|
||||
|
||||
}
|
||||
|
||||
onNtFirstViewMsgSyncEnd() {
|
||||
|
||||
}
|
||||
|
||||
onNtMsgSyncEnd() {
|
||||
|
||||
}
|
||||
|
||||
onNtMsgSyncStart() {
|
||||
|
||||
}
|
||||
|
||||
onReadFeedEventUpdate(firstViewDirectMsgNotifyInfo: unknown) {
|
||||
|
||||
}
|
||||
|
||||
onRecvGroupGuildFlag(i2: unknown) {
|
||||
|
||||
}
|
||||
|
||||
onRecvMsg(arrayList: RawMessage[]) {
|
||||
|
||||
}
|
||||
|
||||
onRecvMsgSvrRspTransInfo(j2: unknown, contact: unknown, i2: unknown, i3: unknown, str: unknown, bArr: unknown) {
|
||||
|
||||
}
|
||||
|
||||
onRecvOnlineFileMsg(arrayList: unknown) {
|
||||
|
||||
}
|
||||
|
||||
onRecvS2CMsg(arrayList: unknown) {
|
||||
|
||||
}
|
||||
|
||||
onRecvSysMsg(arrayList: unknown) {
|
||||
|
||||
}
|
||||
|
||||
onRecvUDCFlag(i2: unknown) {
|
||||
|
||||
}
|
||||
|
||||
onRichMediaDownloadComplete(fileTransNotifyInfo: OnRichMediaDownloadCompleteParams) {
|
||||
}
|
||||
|
||||
onRichMediaProgerssUpdate(fileTransNotifyInfo: unknown) {
|
||||
|
||||
}
|
||||
|
||||
onRichMediaUploadComplete(fileTransNotifyInfo: unknown) {
|
||||
|
||||
}
|
||||
|
||||
onSearchGroupFileInfoUpdate(searchGroupFileResult: unknown) {
|
||||
|
||||
}
|
||||
|
||||
onSendMsgError(j2: unknown, contact: unknown, i2: unknown, str: unknown) {
|
||||
|
||||
}
|
||||
|
||||
onSysMsgNotification(i2: unknown, j2: unknown, j3: unknown, arrayList: unknown) {
|
||||
|
||||
}
|
||||
|
||||
onTempChatInfoUpdate(tempChatInfo: TempOnRecvParams) {
|
||||
|
||||
}
|
||||
|
||||
onUnreadCntAfterFirstView(hashMap: unknown) {
|
||||
|
||||
}
|
||||
|
||||
onUnreadCntUpdate(hashMap: unknown) {
|
||||
|
||||
}
|
||||
|
||||
onUserChannelTabStatusChanged(z: unknown) {
|
||||
|
||||
}
|
||||
|
||||
onUserOnlineStatusChanged(z: unknown) {
|
||||
|
||||
}
|
||||
|
||||
onUserTabStatusChanged(arrayList: unknown) {
|
||||
|
||||
}
|
||||
|
||||
onlineStatusBigIconDownloadPush(i2: unknown, j2: unknown, str: unknown) {
|
||||
|
||||
}
|
||||
|
||||
onlineStatusSmallIconDownloadPush(i2: unknown, j2: unknown, str: unknown) {
|
||||
|
||||
}
|
||||
|
||||
// 第一次发现于Linux
|
||||
onUserSecQualityChanged(...args: unknown[]) {
|
||||
|
||||
}
|
||||
|
||||
onMsgWithRichLinkInfoUpdate(...args: unknown[]) {
|
||||
|
||||
}
|
||||
|
||||
onRedTouchChanged(...args: unknown[]) {
|
||||
|
||||
}
|
||||
// 第一次发现于Win 9.9.9-23159
|
||||
onBroadcastHelperProgerssUpdate(...args: unknown[]) {
|
||||
|
||||
}
|
||||
}
|
43
src/core/listeners/NodeIKernelProfileListener.ts
Normal file
43
src/core/listeners/NodeIKernelProfileListener.ts
Normal file
@@ -0,0 +1,43 @@
|
||||
import { User, UserDetailInfoListenerArg } from '@/core/entities';
|
||||
|
||||
interface IProfileListener {
|
||||
onProfileSimpleChanged(...args: unknown[]): void;
|
||||
onUserDetailInfoChanged(arg: UserDetailInfoListenerArg): void;
|
||||
onProfileDetailInfoChanged(profile: User): void;
|
||||
|
||||
onStatusUpdate(...args: unknown[]): void;
|
||||
|
||||
onSelfStatusChanged(...args: unknown[]): void;
|
||||
|
||||
onStrangerRemarkChanged(...args: unknown[]): void;
|
||||
}
|
||||
|
||||
export interface NodeIKernelProfileListener extends IProfileListener {
|
||||
// eslint-disable-next-line @typescript-eslint/no-misused-new
|
||||
new(listener: IProfileListener): NodeIKernelProfileListener;
|
||||
}
|
||||
|
||||
export class ProfileListener implements IProfileListener {
|
||||
onUserDetailInfoChanged(arg: UserDetailInfoListenerArg): void {
|
||||
|
||||
}
|
||||
onProfileSimpleChanged(...args: unknown[]) {
|
||||
|
||||
}
|
||||
|
||||
onProfileDetailInfoChanged(profile: User) {
|
||||
|
||||
}
|
||||
|
||||
onStatusUpdate(...args: unknown[]) {
|
||||
|
||||
}
|
||||
|
||||
onSelfStatusChanged(...args: unknown[]) {
|
||||
|
||||
}
|
||||
|
||||
onStrangerRemarkChanged(...args: unknown[]) {
|
||||
|
||||
}
|
||||
}
|
44
src/core/listeners/NodeIKernelRecentContactListener.ts
Normal file
44
src/core/listeners/NodeIKernelRecentContactListener.ts
Normal file
@@ -0,0 +1,44 @@
|
||||
interface IKernelRecentContactListener {
|
||||
onDeletedContactsNotify(...args: unknown[]): unknown;
|
||||
|
||||
onRecentContactNotification(...args: unknown[]): unknown;
|
||||
|
||||
onMsgUnreadCountUpdate(...args: unknown[]): unknown;
|
||||
|
||||
onGuildDisplayRecentContactListChanged(...args: unknown[]): unknown;
|
||||
|
||||
onRecentContactListChanged(...args: unknown[]): unknown;
|
||||
|
||||
onRecentContactListChangedVer2(...args: unknown[]): unknown;
|
||||
}
|
||||
|
||||
export interface NodeIKernelRecentContactListener extends IKernelRecentContactListener {
|
||||
// eslint-disable-next-line @typescript-eslint/no-misused-new
|
||||
new(listener: IKernelRecentContactListener): NodeIKernelRecentContactListener;
|
||||
}
|
||||
|
||||
export class KernelRecentContactListener implements IKernelRecentContactListener {
|
||||
onDeletedContactsNotify(...args: unknown[]) {
|
||||
|
||||
}
|
||||
|
||||
onRecentContactNotification(...args: unknown[]) {
|
||||
|
||||
}
|
||||
|
||||
onMsgUnreadCountUpdate(...args: unknown[]) {
|
||||
|
||||
}
|
||||
|
||||
onGuildDisplayRecentContactListChanged(...args: unknown[]) {
|
||||
|
||||
}
|
||||
|
||||
onRecentContactListChanged(...args: unknown[]) {
|
||||
|
||||
}
|
||||
|
||||
onRecentContactListChangedVer2(...args: unknown[]) {
|
||||
|
||||
}
|
||||
}
|
28
src/core/listeners/NodeIKernelRobotListener.ts
Normal file
28
src/core/listeners/NodeIKernelRobotListener.ts
Normal file
@@ -0,0 +1,28 @@
|
||||
|
||||
|
||||
export interface IKernelRobotListener {
|
||||
onRobotFriendListChanged(...args: unknown[]): void;
|
||||
|
||||
onRobotListChanged(...args: unknown[]): void;
|
||||
|
||||
onRobotProfileChanged(...args: unknown[]): void;
|
||||
}
|
||||
|
||||
export interface NodeIKernelRobotListener extends IKernelRobotListener {
|
||||
// eslint-disable-next-line @typescript-eslint/no-misused-new
|
||||
new(adapter: IKernelRobotListener): NodeIKernelRobotListener;
|
||||
}
|
||||
|
||||
export class KernelRobotListener implements IKernelRobotListener {
|
||||
onRobotFriendListChanged(...args: unknown[]){
|
||||
|
||||
}
|
||||
|
||||
onRobotListChanged(...args: unknown[]){
|
||||
|
||||
}
|
||||
|
||||
onRobotProfileChanged(...args: unknown[]){
|
||||
|
||||
}
|
||||
}
|
44
src/core/listeners/NodeIKernelSessionListener.ts
Normal file
44
src/core/listeners/NodeIKernelSessionListener.ts
Normal file
@@ -0,0 +1,44 @@
|
||||
export interface ISessionListener {
|
||||
onNTSessionCreate(args: unknown): void;
|
||||
|
||||
onGProSessionCreate(args: unknown): void;
|
||||
|
||||
onSessionInitComplete(args: unknown): void;
|
||||
|
||||
onOpentelemetryInit(args: unknown): void;
|
||||
|
||||
onUserOnlineResult(args: unknown): void;
|
||||
|
||||
onGetSelfTinyId(args: unknown): void;
|
||||
}
|
||||
|
||||
export interface NodeIKernelSessionListener extends ISessionListener {
|
||||
// eslint-disable-next-line @typescript-eslint/no-misused-new
|
||||
new(adapter: ISessionListener): NodeIKernelSessionListener;
|
||||
}
|
||||
|
||||
export class SessionListener implements ISessionListener {
|
||||
onNTSessionCreate(args: unknown) {
|
||||
|
||||
}
|
||||
|
||||
onGProSessionCreate(args: unknown) {
|
||||
|
||||
}
|
||||
|
||||
onSessionInitComplete(args: unknown) {
|
||||
|
||||
}
|
||||
|
||||
onOpentelemetryInit(args: unknown) {
|
||||
|
||||
}
|
||||
|
||||
onUserOnlineResult(args: unknown) {
|
||||
|
||||
}
|
||||
|
||||
onGetSelfTinyId(args: unknown) {
|
||||
|
||||
}
|
||||
}
|
37
src/core/listeners/NodeIKernelStorageCleanListener.ts
Normal file
37
src/core/listeners/NodeIKernelStorageCleanListener.ts
Normal file
@@ -0,0 +1,37 @@
|
||||
export interface IStorageCleanListener {
|
||||
onCleanCacheProgressChanged(args: unknown): void;
|
||||
|
||||
onScanCacheProgressChanged(args: unknown): void;
|
||||
|
||||
onCleanCacheStorageChanged(args: unknown): void;
|
||||
|
||||
onFinishScan(args: unknown): void;
|
||||
|
||||
onChatCleanDone(args: unknown): void;
|
||||
|
||||
}
|
||||
export interface NodeIKernelStorageCleanListener extends IStorageCleanListener {
|
||||
// eslint-disable-next-line @typescript-eslint/no-misused-new
|
||||
new(adapter: IStorageCleanListener): NodeIKernelStorageCleanListener;
|
||||
}
|
||||
|
||||
export class StorageCleanListener implements IStorageCleanListener {
|
||||
onCleanCacheProgressChanged(args: unknown) {
|
||||
|
||||
}
|
||||
|
||||
onScanCacheProgressChanged(args: unknown) {
|
||||
|
||||
}
|
||||
|
||||
onCleanCacheStorageChanged(args: unknown) {
|
||||
|
||||
}
|
||||
onFinishScan(args: unknown) {
|
||||
|
||||
}
|
||||
|
||||
onChatCleanDone(args: unknown) {
|
||||
|
||||
}
|
||||
}
|
9
src/core/listeners/NodeIKernelTicketListener.ts
Normal file
9
src/core/listeners/NodeIKernelTicketListener.ts
Normal file
@@ -0,0 +1,9 @@
|
||||
export interface IKernelTicketListener {
|
||||
}
|
||||
export interface NodeIKernelTicketListener extends IKernelTicketListener {
|
||||
// eslint-disable-next-line @typescript-eslint/no-misused-new
|
||||
new(adapter: IKernelTicketListener): NodeIKernelTicketListener;
|
||||
}
|
||||
|
||||
export class KernelTicketListener implements IKernelTicketListener {
|
||||
}
|
12
src/core/listeners/index.ts
Normal file
12
src/core/listeners/index.ts
Normal file
@@ -0,0 +1,12 @@
|
||||
|
||||
export * from './NodeIKernelSessionListener';
|
||||
export * from './NodeIKernelLoginListener';
|
||||
export * from './NodeIKernelMsgListener';
|
||||
export * from './NodeIKernelGroupListener';
|
||||
export * from './NodeIKernelBuddyListener';
|
||||
export * from './NodeIKernelProfileListener';
|
||||
export * from './NodeIKernelRobotListener';
|
||||
export * from './NodeIKernelTicketListener';
|
||||
export * from './NodeIKernelStorageCleanListener';
|
||||
export * from './NodeIKernelFileAssistantListener';
|
||||
|
46
src/core/services/NodeIKernelAlbumService.ts
Normal file
46
src/core/services/NodeIKernelAlbumService.ts
Normal file
@@ -0,0 +1,46 @@
|
||||
export interface NodeIKernelAlbumService {
|
||||
setAlbumServiceInfo(...args: any[]): unknown;// needs 3 arguments
|
||||
|
||||
getMainPage(...args: any[]): unknown;// needs 2 arguments
|
||||
|
||||
getAlbumList(...args: any[]): unknown;// needs 1 arguments
|
||||
|
||||
getAlbumInfo(...args: any[]): unknown;// needs 1 arguments
|
||||
|
||||
deleteAlbum(...args: any[]): unknown;// needs 3 arguments
|
||||
|
||||
addAlbum(...args: any[]): unknown;// needs 2 arguments
|
||||
|
||||
deleteMedias(...args: any[]): unknown;// needs 4 arguments
|
||||
|
||||
modifyAlbum(...args: any[]): unknown;// needs 3 arguments
|
||||
|
||||
getMediaList(...args: any[]): unknown;// needs 1 arguments
|
||||
|
||||
quoteToQzone(...args: any[]): unknown;// needs 1 arguments
|
||||
|
||||
quoteToQunAlbum(...args: any[]): unknown;// needs 1 arguments
|
||||
|
||||
queryQuoteToQunAlbumStatus(...args: any[]): unknown;// needs 1 arguments
|
||||
|
||||
getQunFeeds(...args: any[]): unknown;//needs 1 arguments
|
||||
|
||||
getQunFeedDetail(...args: any[]): unknown;// needs 1 arguments
|
||||
|
||||
getQunNoticeList(...args: any[]): unknown;// needs 4 arguments
|
||||
|
||||
getQunComment(...args: any[]): unknown;// needs 1 arguments
|
||||
|
||||
getQunLikes(...args: any[]): unknown;// needs 4 arguments
|
||||
|
||||
deleteQunFeed(...args: any[]): unknown;// needs 1 arguments
|
||||
|
||||
doQunComment(...args: any[]): unknown;// needs 6 arguments
|
||||
|
||||
doQunReply(...args: any[]): unknown;// needs 7 arguments
|
||||
|
||||
doQunLike(...args: any[]): unknown;// needs 5 arguments
|
||||
|
||||
getRedPoints(...args: any[]): unknown;// needs 3 arguments
|
||||
|
||||
}
|
31
src/core/services/NodeIKernelAvatarService.ts
Normal file
31
src/core/services/NodeIKernelAvatarService.ts
Normal file
@@ -0,0 +1,31 @@
|
||||
export interface NodeIKernelAvatarService {
|
||||
addAvatarListener(arg: unknown): unknown;
|
||||
|
||||
removeAvatarListener(arg: unknown): unknown;
|
||||
|
||||
getAvatarPath(arg1: unknown, arg2: unknown): unknown;
|
||||
|
||||
forceDownloadAvatar(uid: string, useCache: number): Promise<unknown>;
|
||||
|
||||
getGroupAvatarPath(arg1: unknown, arg2: unknown): unknown;
|
||||
|
||||
getConfGroupAvatarPath(arg: unknown): unknown;
|
||||
|
||||
forceDownloadGroupAvatar(arg1: unknown, arg2: unknown): unknown;
|
||||
|
||||
getGroupPortraitPath(arg1: unknown, arg2: unknown, arg3: unknown): unknown;
|
||||
|
||||
forceDownloadGroupPortrait(arg1: unknown, arg2: unknown, arg3: unknown): unknown;
|
||||
|
||||
getAvatarPaths(arg1: unknown, arg2: unknown): unknown;
|
||||
|
||||
getGroupAvatarPaths(arg1: unknown, arg2: unknown): unknown;
|
||||
|
||||
getConfGroupAvatarPaths(arg: unknown): unknown;
|
||||
|
||||
getAvatarPathByUin(arg1: unknown, arg2: unknown): unknown;
|
||||
|
||||
forceDownloadAvatarByUin(arg1: unknown, arg2: unknown): unknown;
|
||||
|
||||
isNull(): boolean;
|
||||
}
|
128
src/core/services/NodeIKernelBuddyService.ts
Normal file
128
src/core/services/NodeIKernelBuddyService.ts
Normal file
@@ -0,0 +1,128 @@
|
||||
import { Friend } from '@/core/entities';
|
||||
import { GeneralCallResult } from '@/core/services/common';
|
||||
import { NodeIKernelBuddyListener } from '@/core/listeners';
|
||||
export enum BuddyListReqType {
|
||||
KNOMAL,
|
||||
KLETTER
|
||||
}
|
||||
export interface NodeIKernelBuddyService {
|
||||
// 26702 以上
|
||||
getBuddyListV2(callFrom: string, reqType: BuddyListReqType): Promise<GeneralCallResult & {
|
||||
data: Array<{
|
||||
categoryId: number,
|
||||
categorySortId: number,
|
||||
categroyName: string,
|
||||
categroyMbCount: number,
|
||||
onlineCount: number,
|
||||
buddyUids: Array<string>
|
||||
}>
|
||||
}>;
|
||||
//26702 以上
|
||||
getBuddyListFromCache(callFrom: string): Promise<Array<
|
||||
{
|
||||
categoryId: number,//9999应该跳过 那是兜底数据吧
|
||||
categorySortId: number,//排序方式
|
||||
categroyName: string,//分类名
|
||||
categroyMbCount: number,//不懂
|
||||
onlineCount: number,//在线数目
|
||||
buddyUids: Array<string>//Uids
|
||||
}>>;
|
||||
// 以下为原生方法
|
||||
addKernelBuddyListener(listener: NodeIKernelBuddyListener): number;
|
||||
|
||||
getAllBuddyCount(): number;
|
||||
|
||||
removeKernelBuddyListener(listener: unknown): void;
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* @param nocache 使用缓存
|
||||
*/
|
||||
getBuddyList(nocache: boolean): Promise<GeneralCallResult>;
|
||||
|
||||
getBuddyNick(uid: number): string;
|
||||
|
||||
getBuddyRemark(uid: number): string;
|
||||
|
||||
setBuddyRemark(uid: number, remark: string): void;
|
||||
|
||||
getAvatarUrl(uid: number): string;
|
||||
|
||||
isBuddy(uid: string): boolean;
|
||||
|
||||
getCategoryNameWithUid(uid: number): string;
|
||||
|
||||
getTargetBuddySetting(uid: number): unknown;
|
||||
|
||||
getTargetBuddySettingByType(uid: number, type: number): unknown;
|
||||
|
||||
getBuddyReqUnreadCnt(): number;
|
||||
|
||||
getBuddyReq(): unknown;
|
||||
|
||||
delBuddyReq(uid: number): void;
|
||||
|
||||
clearBuddyReqUnreadCnt(): void;
|
||||
|
||||
reqToAddFriends(uid: number, msg: string): void;
|
||||
|
||||
setSpacePermission(uid: number, permission: number): void;
|
||||
|
||||
approvalFriendRequest(arg: {
|
||||
friendUid: string;
|
||||
reqTime: string;
|
||||
accept: boolean;
|
||||
}): Promise<void>;
|
||||
|
||||
delBuddy(uid: number): void;
|
||||
|
||||
delBatchBuddy(uids: number[]): void;
|
||||
|
||||
getSmartInfos(uid: number): unknown;
|
||||
|
||||
setBuddyCategory(uid: number, category: number): void;
|
||||
|
||||
setBatchBuddyCategory(uids: number[], category: number): void;
|
||||
|
||||
addCategory(category: string): void;
|
||||
|
||||
delCategory(category: string): void;
|
||||
|
||||
renameCategory(oldCategory: string, newCategory: string): void;
|
||||
|
||||
resortCategory(categorys: string[]): void;
|
||||
|
||||
pullCategory(uid: number, category: string): void;
|
||||
|
||||
setTop(uid: number, isTop: boolean): void;
|
||||
|
||||
SetSpecialCare(uid: number, isSpecialCare: boolean): void;
|
||||
|
||||
setMsgNotify(uid: number, isNotify: boolean): void;
|
||||
|
||||
hasBuddyList(): boolean;
|
||||
|
||||
setBlock(uid: number, isBlock: boolean): void;
|
||||
|
||||
isBlocked(uid: number): boolean;
|
||||
|
||||
modifyAddMeSetting(setting: unknown): void;
|
||||
|
||||
getAddMeSetting(): unknown;
|
||||
|
||||
getDoubtBuddyReq(): unknown;
|
||||
|
||||
getDoubtBuddyUnreadNum(): number;
|
||||
|
||||
approvalDoubtBuddyReq(uid: number, isAgree: boolean): void;
|
||||
|
||||
delDoubtBuddyReq(uid: number): void;
|
||||
|
||||
delAllDoubtBuddyReq(): void;
|
||||
|
||||
reportDoubtBuddyReqUnread(): void;
|
||||
|
||||
getBuddyRecommendContactArkJson(uid: string, phoneNumber: string): Promise<unknown>;
|
||||
|
||||
isNull(): boolean;
|
||||
}
|
91
src/core/services/NodeIKernelCollectionService.ts
Normal file
91
src/core/services/NodeIKernelCollectionService.ts
Normal file
@@ -0,0 +1,91 @@
|
||||
import { GeneralCallResult } from "./common";
|
||||
|
||||
export interface NodeIKernelCollectionService {
|
||||
addKernelCollectionListener(...args: any[]): unknown;//needs 1 arguments
|
||||
|
||||
removeKernelCollectionListener(...args: any[]): unknown;//needs 1 arguments
|
||||
|
||||
getCollectionItemList(param: {
|
||||
category: number,
|
||||
groupId: number,
|
||||
forceSync: boolean,
|
||||
forceFromDb: boolean,
|
||||
timeStamp: string,
|
||||
count: number,
|
||||
searchDown: boolean
|
||||
}): Promise<GeneralCallResult &
|
||||
{
|
||||
collectionSearchList: {
|
||||
collectionItemList: Array<
|
||||
{
|
||||
cid: string,
|
||||
type: number,
|
||||
status: number,
|
||||
author: {
|
||||
type: number,
|
||||
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
|
||||
|
||||
getCollectionCustomGroupList(...args: any[]): unknown;//needs 0 arguments
|
||||
|
||||
getCollectionUserInfo(...args: any[]): unknown;//needs 0 arguments
|
||||
|
||||
searchCollectionItemList(...args: any[]): unknown;//needs 2 arguments
|
||||
|
||||
addMsgToCollection(...args: any[]): unknown;//needs 2 arguments
|
||||
|
||||
collectionArkShare(...args: any[]): unknown;//needs 1 arguments
|
||||
|
||||
collectionFileForward(...args: any[]): unknown;//needs 3 arguments
|
||||
|
||||
downloadCollectionFile(...args: any[]): unknown;//needs 4 arguments
|
||||
|
||||
downloadCollectionFileThumbPic(...args: any[]): unknown;//needs 4 arguments
|
||||
|
||||
downloadCollectionPic(...args: any[]): unknown;//needs 3 arguments
|
||||
|
||||
cancelDownloadCollectionFile(...args: any[]): unknown;//needs 1 arguments
|
||||
|
||||
deleteCollectionItemList(...args: any[]): unknown;//needs 1 arguments
|
||||
|
||||
editCollectionItem(...args: any[]): unknown;//needs 2 arguments
|
||||
|
||||
getEditPicInfoByPath(...args: any[]): unknown;//needs 1 arguments
|
||||
|
||||
collectionFastUpload(...args: any[]): unknown;//needs 1 arguments
|
||||
|
||||
editCollectionItemAfterFastUpload(...args: any[]): unknown;//needs 2 arguments
|
||||
|
||||
createNewCollectionItem(...args: any[]): unknown;//needs 1 arguments
|
||||
}
|
5
src/core/services/NodeIKernelDbToolsService.ts
Normal file
5
src/core/services/NodeIKernelDbToolsService.ts
Normal file
@@ -0,0 +1,5 @@
|
||||
export interface NodeIKernelDbToolsService {
|
||||
depositDatabase(...args: unknown[]): unknown;
|
||||
backupDatabase(...args: unknown[]): unknown;
|
||||
retrieveDatabase(...args: unknown[]): unknown;
|
||||
}
|
3
src/core/services/NodeIKernelECDHService.ts
Normal file
3
src/core/services/NodeIKernelECDHService.ts
Normal file
@@ -0,0 +1,3 @@
|
||||
export interface NodeIKernelECDHService{
|
||||
|
||||
}
|
35
src/core/services/NodeIKernelFileAssistantService.ts
Normal file
35
src/core/services/NodeIKernelFileAssistantService.ts
Normal file
@@ -0,0 +1,35 @@
|
||||
export interface NodeIKernelFileAssistantService {
|
||||
addKernelFileAssistantListener(arg1: unknown[]): unknown;
|
||||
|
||||
removeKernelFileAssistantListener(arg1: unknown[]): unknown;
|
||||
|
||||
getFileAssistantList(arg1: unknown[]): unknown;
|
||||
|
||||
getMoreFileAssistantList(arg1: unknown[]): unknown;
|
||||
|
||||
getFileSessionList(): unknown;
|
||||
|
||||
searchFile(arg1: unknown, arg2: unknown, arg3: unknown): unknown;
|
||||
|
||||
resetSearchFileSortType(arg1: unknown, arg2: unknown, arg3: unknown): unknown;
|
||||
|
||||
searchMoreFile(arg1: unknown[]): unknown;
|
||||
|
||||
cancelSearchFile(arg1: unknown, arg2: unknown, arg3: unknown): unknown;
|
||||
|
||||
downloadFile(arg1: unknown[]): unknown;
|
||||
|
||||
forwardFile(arg1: unknown, arg2: unknown, arg3: unknown): unknown;
|
||||
|
||||
cancelFileAction(arg1: unknown[]): unknown;
|
||||
|
||||
retryFileAction(arg1: unknown[]): unknown;
|
||||
|
||||
deleteFile(arg1: unknown[]): unknown;
|
||||
|
||||
saveAs(arg1: unknown, arg2: unknown): unknown;
|
||||
|
||||
saveAsWithRename(arg1: unknown, arg2: unknown, arg3: unknown): unknown;
|
||||
|
||||
isNull(): boolean;
|
||||
}
|
249
src/core/services/NodeIKernelGroupService.ts
Normal file
249
src/core/services/NodeIKernelGroupService.ts
Normal file
@@ -0,0 +1,249 @@
|
||||
import { NodeIKernelGroupListener } from '@/core/listeners/NodeIKernelGroupListener';
|
||||
import {
|
||||
GroupExtParam,
|
||||
GroupMember,
|
||||
GroupMemberRole,
|
||||
GroupNotifyTypes,
|
||||
GroupRequestOperateTypes,
|
||||
} from '@/core/entities';
|
||||
import { GeneralCallResult } from '@/core/services/common';
|
||||
|
||||
//高版本的接口不应该随意使用 使用应该严格进行pr审核 同时部分ipc中未出现的接口不要过于依赖 应该做好数据兜底
|
||||
|
||||
export interface NodeIKernelGroupService {
|
||||
getMemberCommonInfo(Req: {
|
||||
groupCode: string,
|
||||
startUin: string,
|
||||
identifyFlag: string,
|
||||
uinList: string[],
|
||||
memberCommonFilter: {
|
||||
memberUin: number,
|
||||
uinFlag: number,
|
||||
uinFlagExt: number,
|
||||
uinMobileFlag: number,
|
||||
shutUpTime: number,
|
||||
privilege: number,
|
||||
},
|
||||
memberNum: number,
|
||||
filterMethod: string,
|
||||
onlineFlag: string,
|
||||
realSpecialTitleFlag: number
|
||||
}): Promise<unknown>;
|
||||
//26702
|
||||
getGroupMemberLevelInfo(groupCode: string): Promise<unknown>;
|
||||
//26702
|
||||
getGroupHonorList(groupCodes: Array<string>): unknown;
|
||||
|
||||
getUinByUids(uins: string[]): Promise<{
|
||||
errCode: number,
|
||||
errMsg: string,
|
||||
uins: Map<string, string>
|
||||
}>;
|
||||
|
||||
getUidByUins(uins: string[]): Promise<{
|
||||
errCode: number,
|
||||
errMsg: string,
|
||||
uids: Map<string, string>
|
||||
}>;
|
||||
//26702(其实更早 但是我不知道)
|
||||
checkGroupMemberCache(arrayList: Array<string>): Promise<unknown>;
|
||||
|
||||
//26702(其实更早 但是我不知道)
|
||||
getGroupLatestEssenceList(groupCode: string): Promise<unknown>;
|
||||
|
||||
//26702(其实更早 但是我不知道)
|
||||
shareDigest(Req: {
|
||||
appId: string,
|
||||
appType: number,
|
||||
msgStyle: number,
|
||||
recvUin: string,
|
||||
sendType: number,
|
||||
clientInfo: {
|
||||
platform: number
|
||||
},
|
||||
richMsg: {
|
||||
usingArk: boolean,
|
||||
title: string,
|
||||
summary: string,
|
||||
url: string,
|
||||
pictureUrl: string,
|
||||
brief: string
|
||||
}
|
||||
}): Promise<unknown>;
|
||||
//26702(其实更早 但是我不知道)
|
||||
isEssenceMsg(Req: { groupCode: string, msgRandom: number, msgSeq: number }): Promise<unknown>;
|
||||
//26702(其实更早 但是我不知道)
|
||||
queryCachedEssenceMsg(Req: { groupCode: string, msgRandom: number, msgSeq: number }): Promise<unknown>;
|
||||
//26702(其实更早 但是我不知道)
|
||||
fetchGroupEssenceList(Req: { groupCode: string, pageStart: number, pageLimit: number }, Arg: unknown): Promise<unknown>;
|
||||
//26702
|
||||
getAllMemberList(groupCode: string, forceFetch: boolean): Promise<{
|
||||
errCode: number,
|
||||
errMsg: string,
|
||||
result: {
|
||||
ids: Array<{
|
||||
uid: string,
|
||||
index: number//0
|
||||
}>,
|
||||
infos: {},
|
||||
finish: true,
|
||||
hasRobot: false
|
||||
}
|
||||
}>;
|
||||
|
||||
setHeader(uid: string, path: string): unknown;
|
||||
|
||||
addKernelGroupListener(listener: NodeIKernelGroupListener): number;
|
||||
|
||||
removeKernelGroupListener(listenerId: unknown): 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<string, GroupMember>, finish: boolean, hasRobot: boolean }
|
||||
}>;
|
||||
|
||||
getPrevMemberList(): unknown;
|
||||
|
||||
monitorMemberList(): unknown;
|
||||
|
||||
searchMember(sceneId: string, keywords: string[]): unknown;
|
||||
|
||||
getMemberInfo(group_id: string, uids: string[], forceFetch: boolean): Promise<GeneralCallResult>;
|
||||
//getMemberInfo [ '56729xxxx', [ 'u_4Nj08cwW5Hxxxxx' ], true ]
|
||||
|
||||
kickMember(groupCode: string, memberUids: string[], refuseForever: boolean, kickReason: string): Promise<void>;
|
||||
|
||||
modifyMemberRole(groupCode: string, uid: string, role: GroupMemberRole): void;
|
||||
|
||||
modifyMemberCardName(groupCode: string, uid: string, cardName: string): void;
|
||||
|
||||
getTransferableMemberInfo(groupCode: string): unknown;//获取整个群的
|
||||
|
||||
transferGroup(uid: string): void;
|
||||
|
||||
getGroupList(force: boolean): Promise<GeneralCallResult>;
|
||||
|
||||
getGroupExtList(force: boolean): Promise<GeneralCallResult>;
|
||||
|
||||
getGroupDetailInfo(groupCode: string): unknown;
|
||||
|
||||
getMemberExtInfo(param: GroupExtParam): Promise<unknown>;//req
|
||||
|
||||
getGroupAllInfo(): unknown;
|
||||
|
||||
getDiscussExistInfo(): unknown;
|
||||
|
||||
getGroupConfMember(): unknown;
|
||||
|
||||
getGroupMsgMask(): unknown;
|
||||
|
||||
getGroupPortrait(): void;
|
||||
|
||||
modifyGroupName(groupCode: string, groupName: string, arg: false): void;
|
||||
|
||||
modifyGroupRemark(groupCode: string, remark: string): void;
|
||||
|
||||
modifyGroupDetailInfo(groupCode: string, arg: unknown): void;
|
||||
|
||||
setGroupMsgMask(groupCode: string, arg: unknown): void;
|
||||
|
||||
changeGroupShieldSettingTemp(groupCode: string, arg: unknown): void;
|
||||
|
||||
inviteToGroup(arg: unknown): void;
|
||||
|
||||
inviteMembersToGroup(args: unknown[]): void;
|
||||
|
||||
inviteMembersToGroupWithMsg(args: unknown): void;
|
||||
|
||||
createGroup(arg: unknown): void;
|
||||
|
||||
createGroupWithMembers(arg: unknown): void;
|
||||
|
||||
quitGroup(groupCode: string): void;
|
||||
|
||||
destroyGroup(groupCode: string): void;
|
||||
//获取单屏群通知列表
|
||||
getSingleScreenNotifies(force: boolean, start_seq: string, num: number): Promise<GeneralCallResult>;
|
||||
|
||||
clearGroupNotifies(groupCode: string): void;
|
||||
|
||||
getGroupNotifiesUnreadCount(unknown: Boolean): Promise<GeneralCallResult>;
|
||||
|
||||
clearGroupNotifiesUnreadCount(groupCode: string): void;
|
||||
|
||||
operateSysNotify(
|
||||
doubt: boolean,
|
||||
operateMsg: {
|
||||
operateType: GroupRequestOperateTypes, // 2 拒绝
|
||||
targetMsg: {
|
||||
seq: string, // 通知序列号
|
||||
type: GroupNotifyTypes,
|
||||
groupCode: string,
|
||||
postscript: string
|
||||
}
|
||||
}): Promise<void>;
|
||||
|
||||
setTop(groupCode: string, isTop: boolean): void;
|
||||
|
||||
getGroupBulletin(groupCode: string): unknown;
|
||||
|
||||
deleteGroupBulletin(groupCode: string, seq: string): void;
|
||||
|
||||
publishGroupBulletin(groupCode: string, pskey: string, data: any): Promise<GeneralCallResult>;
|
||||
|
||||
publishInstructionForNewcomers(groupCode: string, arg: unknown): void;
|
||||
|
||||
uploadGroupBulletinPic(groupCode: string, pskey: string, imagePath: string): Promise<GeneralCallResult & {
|
||||
errCode: number;
|
||||
picInfo?: {
|
||||
id: string,
|
||||
width: number,
|
||||
height: number
|
||||
}
|
||||
}>;
|
||||
|
||||
downloadGroupBulletinRichMedia(groupCode: string): unknown;
|
||||
|
||||
getGroupBulletinList(groupCode: string): unknown;
|
||||
|
||||
getGroupStatisticInfo(groupCode: string): unknown;
|
||||
|
||||
getGroupRemainAtTimes(groupCode: string): number;
|
||||
|
||||
getJoinGroupNoVerifyFlag(groupCode: string): unknown;
|
||||
|
||||
getGroupArkInviteState(groupCode: string): unknown;
|
||||
|
||||
reqToJoinGroup(groupCode: string, arg: unknown): void;
|
||||
|
||||
setGroupShutUp(groupCode: string, shutUp: boolean): void;
|
||||
|
||||
getGroupShutUpMemberList(groupCode: string): unknown[];
|
||||
|
||||
setMemberShutUp(groupCode: string, memberTimes: { uid: string, timeStamp: number }[]): Promise<void>;
|
||||
|
||||
getGroupRecommendContactArkJson(groupCode: string): unknown;
|
||||
|
||||
getJoinGroupLink(groupCode: string): unknown;
|
||||
|
||||
modifyGroupExtInfo(groupCode: string, arg: unknown): void;
|
||||
|
||||
//需要提前判断是否存在 高版本新增
|
||||
addGroupEssence(param: {
|
||||
groupCode: string
|
||||
msgRandom: number,
|
||||
msgSeq: number
|
||||
}): Promise<unknown>;
|
||||
//需要提前判断是否存在 高版本新增
|
||||
removeGroupEssence(param: {
|
||||
groupCode: string
|
||||
msgRandom: number,
|
||||
msgSeq: number
|
||||
}): Promise<unknown>;
|
||||
|
||||
isNull(): boolean;
|
||||
}
|
82
src/core/services/NodeIKernelLoginService.ts
Normal file
82
src/core/services/NodeIKernelLoginService.ts
Normal file
@@ -0,0 +1,82 @@
|
||||
import { NodeIKernelLoginListener } from '@/core/listeners/NodeIKernelLoginListener';
|
||||
|
||||
export interface LoginInitConfig {
|
||||
machineId: '';
|
||||
appid: string;
|
||||
platVer: string;
|
||||
commonPath: string;
|
||||
clientVer: string;
|
||||
hostName: string;
|
||||
}
|
||||
|
||||
export interface passwordLoginRetType {
|
||||
result: string,
|
||||
loginErrorInfo: {
|
||||
step: number;
|
||||
errMsg: string;
|
||||
proofWaterUrl: string;
|
||||
newDevicePullQrCodeSig: string;
|
||||
jumpUrl: string,
|
||||
jumpWord: string;
|
||||
tipsTitle: string;
|
||||
tipsContent: string;
|
||||
}
|
||||
}
|
||||
|
||||
export interface passwordLoginArgType {
|
||||
uin: string;
|
||||
passwordMd5: string;//passwMD5
|
||||
step: number;//猜测是需要二次认证 参数 一次为0
|
||||
newDeviceLoginSig: string;
|
||||
proofWaterSig: string;
|
||||
proofWaterRand: string;
|
||||
proofWaterSid: string;
|
||||
}
|
||||
|
||||
export interface LoginListItem {
|
||||
uin: string;
|
||||
uid: string;
|
||||
nickName: string;
|
||||
faceUrl: string;
|
||||
facePath: string;
|
||||
loginType: 1; // 1是二维码登录?
|
||||
isQuickLogin: boolean; // 是否可以快速登录
|
||||
isAutoLogin: boolean; // 是否可以自动登录
|
||||
}
|
||||
|
||||
export interface QuickLoginResult{
|
||||
result: string
|
||||
loginErrorInfo: {
|
||||
step: number,
|
||||
errMsg: string,
|
||||
proofWaterUrl: string,
|
||||
newDevicePullQrCodeSig: string,
|
||||
jumpUrl: string,
|
||||
jumpWord: string,
|
||||
tipsTitle: string,
|
||||
tipsContent: string
|
||||
}
|
||||
}
|
||||
|
||||
export interface NodeIKernelLoginService {
|
||||
// eslint-disable-next-line @typescript-eslint/no-misused-new
|
||||
new(): NodeIKernelLoginService;
|
||||
|
||||
addKernelLoginListener(listener: NodeIKernelLoginListener): number;
|
||||
removeKernelLoginListener(listener: number): void;
|
||||
|
||||
initConfig(config: LoginInitConfig): void;
|
||||
|
||||
getLoginMiscData(cb: (r: unknown) => void): void;
|
||||
|
||||
getLoginList(): Promise<{
|
||||
result: number, // 0是ok
|
||||
LocalLoginInfoList: LoginListItem[]
|
||||
}>;
|
||||
|
||||
quickLoginWithUin(uin: string): Promise<QuickLoginResult>;
|
||||
|
||||
passwordLogin(param: passwordLoginArgType): Promise<any>;
|
||||
|
||||
getQRCodePicture(): boolean;
|
||||
}
|
3
src/core/services/NodeIKernelMSFService.ts
Normal file
3
src/core/services/NodeIKernelMSFService.ts
Normal file
@@ -0,0 +1,3 @@
|
||||
export interface NodeIKernelMSFService {
|
||||
getServerTime(): string;
|
||||
}
|
27
src/core/services/NodeIKernelMsgBackupService.ts
Normal file
27
src/core/services/NodeIKernelMsgBackupService.ts
Normal file
@@ -0,0 +1,27 @@
|
||||
export interface NodeIKernelMsgBackupService {
|
||||
addKernelMsgBackupListener(...args: any[]): unknown;// needs 1 arguments
|
||||
|
||||
removeKernelMsgBackupListener(...args: any[]): unknown;// needs 1 arguments
|
||||
|
||||
getMsgBackupLocation(...args: any[]): unknown;// needs 0 arguments
|
||||
|
||||
setMsgBackupLocation(...args: any[]): unknown;// needs 1 arguments
|
||||
|
||||
requestMsgBackup(...args: any[]): unknown;// needs 0 arguments
|
||||
|
||||
requestMsgRestore(...args: any[]): unknown;// needs 1 arguments
|
||||
|
||||
requestMsgMigrate(...args: any[]): unknown;// needs 1 arguments
|
||||
|
||||
getLocalStorageBackup(...args: any[]): unknown;// needs 0 arguments
|
||||
|
||||
deleteLocalBackup(...args: any[]): unknown;// needs 1 arguments
|
||||
|
||||
clearCache(...args: any[]): unknown;// needs 0 arguments
|
||||
|
||||
start(...args: any[]): unknown;// needs 1 arguments
|
||||
|
||||
stop(...args: any[]): unknown;// needs 1 arguments
|
||||
|
||||
pause(...args: any[]): unknown;// needs 2 arguments
|
||||
}
|
727
src/core/services/NodeIKernelMsgService.ts
Normal file
727
src/core/services/NodeIKernelMsgService.ts
Normal file
@@ -0,0 +1,727 @@
|
||||
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 NodeIKernelMsgService {
|
||||
|
||||
generateMsgUniqueId(chatType: number, time: string): string;
|
||||
|
||||
addKernelMsgListener(nodeIKernelMsgListener: NodeIKernelMsgListener): number;
|
||||
|
||||
sendMsg(msgId: string, peer: Peer, msgElements: SendMessageElement[], map: Map<any, any>): Promise<GeneralCallResult>;
|
||||
|
||||
recallMsg(peer: Peer, msgIds: string[]): Promise<GeneralCallResult>;
|
||||
|
||||
addKernelMsgImportToolListener(arg: Object): unknown;
|
||||
|
||||
removeKernelMsgListener(args: unknown): unknown;
|
||||
|
||||
addKernelTempChatSigListener(...args: unknown[]): unknown;
|
||||
|
||||
removeKernelTempChatSigListener(...args: unknown[]): unknown;
|
||||
|
||||
setAutoReplyTextList(AutoReplyText: Array<unknown>, i2: number): unknown;
|
||||
|
||||
getAutoReplyTextList(...args: unknown[]): unknown;
|
||||
|
||||
getOnLineDev(): void;
|
||||
|
||||
kickOffLine(DevInfo: Object): unknown;
|
||||
|
||||
setStatus(args: { status: number, extStatus: number, batteryStatus: number }): Promise<GeneralCallResult>;
|
||||
|
||||
fetchStatusMgrInfo(): unknown;
|
||||
|
||||
fetchStatusUnitedConfigInfo(): unknown;
|
||||
|
||||
getOnlineStatusSmallIconBasePath(): unknown;
|
||||
|
||||
getOnlineStatusSmallIconFileNameByUrl(Url: string): unknown;
|
||||
|
||||
downloadOnlineStatusSmallIconByUrl(arg0: number, arg1: string): unknown;
|
||||
|
||||
getOnlineStatusBigIconBasePath(): unknown;
|
||||
|
||||
downloadOnlineStatusBigIconByUrl(arg0: number, arg1: string): unknown;
|
||||
|
||||
getOnlineStatusCommonPath(arg: string): unknown;
|
||||
|
||||
getOnlineStatusCommonFileNameByUrl(Url: string): unknown;
|
||||
|
||||
downloadOnlineStatusCommonByUrl(arg0: string, arg1: string): unknown;
|
||||
|
||||
// this.tokenType = i2;
|
||||
// this.apnsToken = bArr;
|
||||
// this.voipToken = bArr2;
|
||||
// this.profileId = str;
|
||||
|
||||
setToken(arg: Object): unknown;
|
||||
|
||||
switchForeGround(): unknown;
|
||||
|
||||
switchBackGround(arg: Object): unknown;
|
||||
|
||||
//hex
|
||||
setTokenForMqq(token: string): unknown;
|
||||
|
||||
switchForeGroundForMqq(...args: unknown[]): unknown;
|
||||
|
||||
switchBackGroundForMqq(...args: unknown[]): unknown;
|
||||
|
||||
getMsgSetting(...args: unknown[]): unknown;
|
||||
|
||||
setMsgSetting(...args: unknown[]): unknown;
|
||||
|
||||
addSendMsg(...args: unknown[]): unknown;
|
||||
|
||||
cancelSendMsg(...args: unknown[]): unknown;
|
||||
|
||||
switchToOfflineSendMsg(peer: Peer, MsgId: string): unknown;
|
||||
|
||||
reqToOfflineSendMsg(...args: unknown[]): unknown;
|
||||
|
||||
refuseReceiveOnlineFileMsg(peer: Peer, MsgId: string): unknown;
|
||||
|
||||
resendMsg(...args: unknown[]): unknown;
|
||||
|
||||
recallMsg(...args: unknown[]): unknown;
|
||||
|
||||
reeditRecallMsg(...args: unknown[]): unknown;
|
||||
|
||||
forwardMsg(...args: unknown[]): Promise<GeneralCallResult>;
|
||||
|
||||
forwardMsgWithComment(...args: unknown[]): unknown;
|
||||
|
||||
forwardSubMsgWithComment(...args: unknown[]): unknown;
|
||||
|
||||
forwardRichMsgInVist(...args: unknown[]): unknown;
|
||||
|
||||
forwardFile(...args: unknown[]): unknown;
|
||||
//Array<Msg>, Peer from, Peer to
|
||||
multiForwardMsg(...args: unknown[]): unknown;
|
||||
|
||||
multiForwardMsgWithComment(...args: unknown[]): unknown;
|
||||
|
||||
deleteRecallMsg(...args: unknown[]): unknown;
|
||||
|
||||
deleteRecallMsgForLocal(...args: unknown[]): unknown;
|
||||
|
||||
addLocalGrayTipMsg(...args: unknown[]): unknown;
|
||||
|
||||
addLocalJsonGrayTipMsg(...args: unknown[]): unknown;
|
||||
|
||||
addLocalJsonGrayTipMsgExt(...args: unknown[]): unknown;
|
||||
|
||||
IsLocalJsonTipValid(...args: unknown[]): unknown;
|
||||
|
||||
addLocalAVRecordMsg(...args: unknown[]): unknown;
|
||||
|
||||
addLocalTofuRecordMsg(...args: unknown[]): unknown;
|
||||
|
||||
addLocalRecordMsg(Peer: Peer, msgId: string, ele: MessageElement, attr: Array<any> | number, front: boolean): Promise<unknown>;
|
||||
|
||||
deleteMsg(Peer: Peer, msgIds: Array<string>): Promise<any>;
|
||||
|
||||
updateElementExtBufForUI(...args: unknown[]): unknown;
|
||||
|
||||
updateMsgRecordExtPbBufForUI(...args: unknown[]): unknown;
|
||||
|
||||
startMsgSync(...args: unknown[]): unknown;
|
||||
|
||||
startGuildMsgSync(...args: unknown[]): unknown;
|
||||
|
||||
isGuildChannelSync(...args: unknown[]): unknown;
|
||||
|
||||
getMsgUniqueId(UniqueId: string): string;
|
||||
|
||||
isMsgMatched(...args: unknown[]): unknown;
|
||||
|
||||
getOnlineFileMsgs(...args: unknown[]): unknown;
|
||||
|
||||
getAllOnlineFileMsgs(...args: unknown[]): unknown;
|
||||
|
||||
getLatestDbMsgs(peer: Peer, cnt: number): Promise<unknown>;
|
||||
|
||||
getLastMessageList(peer: Peer[]): Promise<unknown>;
|
||||
|
||||
getAioFirstViewLatestMsgs(peer: Peer, num: number): unknown;
|
||||
|
||||
getMsgs(peer: Peer, msgId: string, count: unknown, queryOrder: boolean): Promise<unknown>;
|
||||
|
||||
getMsgsIncludeSelf(peer: Peer, msgId: string, count: number, queryOrder: boolean): Promise<GeneralCallResult & {
|
||||
msgList: RawMessage[]
|
||||
}>;
|
||||
|
||||
// this.$peer = contact;
|
||||
// this.$msgTime = j2;
|
||||
// this.$clientSeq = j3;
|
||||
// this.$cnt = i2;
|
||||
|
||||
getMsgsWithMsgTimeAndClientSeqForC2C(...args: unknown[]): Promise<GeneralCallResult & { msgList: RawMessage[] }>;
|
||||
|
||||
getMsgsWithStatus(params: {
|
||||
peer: Peer
|
||||
msgId: string
|
||||
msgTime: unknown
|
||||
cnt: unknown
|
||||
queryOrder: boolean
|
||||
isIncludeSelf: boolean
|
||||
appid: unknown
|
||||
}): Promise<GeneralCallResult & { msgList: RawMessage[] }>;
|
||||
|
||||
getMsgsBySeqRange(peer: Peer, startSeq: string, endSeq: string): Promise<GeneralCallResult & { msgList: RawMessage[] }>;
|
||||
|
||||
getMsgsBySeqAndCount(peer: Peer, seq: string, count: number, desc: boolean, unknownArg: boolean): Promise<GeneralCallResult & { msgList: RawMessage[] }>;
|
||||
|
||||
getMsgsByMsgId(peer: Peer, ids: string[]): Promise<GeneralCallResult & { msgList: RawMessage[] }>;
|
||||
|
||||
getRecallMsgsByMsgId(peer: Peer, MsgId: string[]): Promise<unknown>;
|
||||
|
||||
getMsgsBySeqList(peer: Peer, seqList: string[]): Promise<GeneralCallResult & { msgList: RawMessage[] }>;
|
||||
|
||||
getSingleMsg(Peer: Peer, msgSeq: string): Promise<GeneralCallResult & { msgList: RawMessage[] }>;
|
||||
|
||||
getSourceOfReplyMsg(peer: Peer, MsgId: string, SourceSeq: string): unknown;
|
||||
|
||||
getSourceOfReplyMsgV2(peer: Peer, RootMsgId: string, ReplyMsgId: string): unknown;
|
||||
|
||||
getMsgByClientSeqAndTime(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: { type: number, subtype: Array<number> }): unknown;
|
||||
|
||||
getMsgsByTypeFilters(peer: Peer, msgId: string, cnt: unknown, queryOrder: boolean, typeFilters: Array<{ type: number, subtype: Array<number> }>): unknown;
|
||||
|
||||
getMsgWithAbstractByFilterParam(...args: unknown[]): unknown;
|
||||
|
||||
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<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 & {
|
||||
msgList: RawMessage[]
|
||||
}>;
|
||||
//queryMsgsWithFilterEx(this.$msgId, this.$msgTime, this.$msgSeq, this.$param)
|
||||
queryFileMsgsDesktop(...args: unknown[]): unknown;
|
||||
|
||||
setMsgRichInfoFlag(...args: unknown[]): unknown;
|
||||
|
||||
queryPicOrVideoMsgs(msgId: string, msgTime: string, megSeq: string, param: QueryMsgsParams): Promise<unknown>;
|
||||
|
||||
queryPicOrVideoMsgsDesktop(...args: unknown[]): unknown;
|
||||
|
||||
queryEmoticonMsgs(msgId: string, msgTime: string, msgSeq: string, Params: QueryMsgsParams): Promise<unknown>;
|
||||
|
||||
queryTroopEmoticonMsgs(msgId: string, msgTime: string, msgSeq: string, Params: QueryMsgsParams): Promise<unknown>;
|
||||
|
||||
queryMsgsAndAbstractsWithFilter(msgId: string, msgTime: string, megSeq: string, param: QueryMsgsParams): unknown;
|
||||
|
||||
setFocusOnGuild(...args: unknown[]): unknown;
|
||||
|
||||
setFocusSession(...args: unknown[]): unknown;
|
||||
|
||||
enableFilterUnreadInfoNotify(...args: unknown[]): unknown;
|
||||
|
||||
enableFilterMsgAbstractNotify(...args: unknown[]): unknown;
|
||||
|
||||
onScenesChangeForSilenceMode(...args: unknown[]): unknown;
|
||||
|
||||
getContactUnreadCnt(...args: unknown[]): unknown;
|
||||
|
||||
getUnreadCntInfo(...args: unknown[]): unknown;
|
||||
|
||||
getGuildUnreadCntInfo(...args: unknown[]): unknown;
|
||||
|
||||
getGuildUnreadCntTabInfo(...args: unknown[]): unknown;
|
||||
|
||||
getAllGuildUnreadCntInfo(...args: unknown[]): unknown;
|
||||
|
||||
getAllJoinGuildCnt(...args: unknown[]): unknown;
|
||||
|
||||
getAllDirectSessionUnreadCntInfo(...args: unknown[]): unknown;
|
||||
|
||||
getCategoryUnreadCntInfo(...args: unknown[]): unknown;
|
||||
|
||||
getGuildFeedsUnreadCntInfo(...args: unknown[]): unknown;
|
||||
|
||||
setUnVisibleChannelCntInfo(...args: unknown[]): unknown;
|
||||
|
||||
setUnVisibleChannelTypeCntInfo(...args: unknown[]): unknown;
|
||||
|
||||
setVisibleGuildCntInfo(...args: unknown[]): unknown;
|
||||
|
||||
setMsgRead(peer: Peer): Promise<GeneralCallResult>;
|
||||
|
||||
setAllC2CAndGroupMsgRead(): Promise<unknown>;
|
||||
|
||||
setGuildMsgRead(...args: unknown[]): unknown;
|
||||
|
||||
setAllGuildMsgRead(...args: unknown[]): unknown;
|
||||
|
||||
setMsgReadAndReport(...args: unknown[]): unknown;
|
||||
|
||||
setSpecificMsgReadAndReport(...args: unknown[]): unknown;
|
||||
|
||||
setLocalMsgRead(...args: unknown[]): unknown;
|
||||
|
||||
setGroupGuildMsgRead(...args: unknown[]): unknown;
|
||||
|
||||
getGuildGroupTransData(...args: unknown[]): unknown;
|
||||
|
||||
setGroupGuildBubbleRead(...args: unknown[]): unknown;
|
||||
|
||||
getGuildGroupBubble(...args: unknown[]): unknown;
|
||||
|
||||
fetchGroupGuildUnread(...args: unknown[]): unknown;
|
||||
|
||||
setGroupGuildFlag(...args: unknown[]): unknown;
|
||||
|
||||
setGuildUDCFlag(...args: unknown[]): unknown;
|
||||
|
||||
setGuildTabUserFlag(...args: unknown[]): unknown;
|
||||
|
||||
setBuildMode(flag: number/*0 1 3*/): unknown;
|
||||
|
||||
setConfigurationServiceData(...args: unknown[]): unknown;
|
||||
|
||||
setMarkUnreadFlag(...args: unknown[]): unknown;
|
||||
|
||||
getChannelEventFlow(...args: unknown[]): unknown;
|
||||
|
||||
getMsgEventFlow(...args: unknown[]): unknown;
|
||||
|
||||
getRichMediaFilePathForMobileQQSend(...args: unknown[]): unknown;
|
||||
|
||||
getRichMediaFilePathForGuild(arg: {
|
||||
md5HexStr: string,
|
||||
fileName: string,
|
||||
elementType: ElementType,
|
||||
elementSubType: number,
|
||||
thumbSize: 0,
|
||||
needCreate: true,
|
||||
downloadType: 1,
|
||||
file_uuid: ''
|
||||
}): string;
|
||||
|
||||
assembleMobileQQRichMediaFilePath(...args: unknown[]): unknown;
|
||||
|
||||
getFileThumbSavePathForSend(...args: unknown[]): unknown;
|
||||
|
||||
getFileThumbSavePath(...args: unknown[]): unknown;
|
||||
//猜测居多
|
||||
translatePtt2Text(MsgId: string, Peer: {}, MsgElement: {}): unknown;
|
||||
|
||||
setPttPlayedState(...args: unknown[]): unknown;
|
||||
// NodeIQQNTWrapperSession fetchFavEmojiList [
|
||||
// "",
|
||||
// 48,
|
||||
// true,
|
||||
// true
|
||||
// ]
|
||||
fetchFavEmojiList(str: string, num: number, uk1: boolean, uk2: boolean): Promise<GeneralCallResult & {
|
||||
emojiInfoList: Array<{
|
||||
uin: string,
|
||||
emoId: number,
|
||||
emoPath: string,
|
||||
isExist: boolean,
|
||||
resId: string,
|
||||
url: string,
|
||||
md5: string,
|
||||
emoOriginalPath: string,
|
||||
thumbPath: string,
|
||||
RomaingType: string,
|
||||
isAPNG: false,
|
||||
isMarkFace: false,
|
||||
eId: string,
|
||||
epId: string,
|
||||
ocrWord: string,
|
||||
modifyWord: string,
|
||||
exposeNum: number,
|
||||
clickNum: number,
|
||||
desc: string
|
||||
}>
|
||||
}>;
|
||||
|
||||
addFavEmoji(...args: unknown[]): unknown;
|
||||
|
||||
fetchMarketEmoticonList(...args: unknown[]): unknown;
|
||||
|
||||
fetchMarketEmoticonShowImage(...args: unknown[]): unknown;
|
||||
|
||||
fetchMarketEmoticonAioImage(...args: unknown[]): unknown;
|
||||
|
||||
fetchMarketEmotionJsonFile(...args: unknown[]): unknown;
|
||||
|
||||
getMarketEmoticonPath(...args: unknown[]): unknown;
|
||||
|
||||
getMarketEmoticonPathBySync(...args: unknown[]): unknown;
|
||||
|
||||
fetchMarketEmoticonFaceImages(...args: unknown[]): unknown;
|
||||
|
||||
fetchMarketEmoticonAuthDetail(...args: unknown[]): unknown;
|
||||
|
||||
getFavMarketEmoticonInfo(...args: unknown[]): unknown;
|
||||
|
||||
addRecentUsedFace(...args: unknown[]): unknown;
|
||||
|
||||
getRecentUsedFaceList(...args: unknown[]): unknown;
|
||||
|
||||
getMarketEmoticonEncryptKeys(...args: unknown[]): unknown;
|
||||
|
||||
downloadEmojiPic(...args: unknown[]): unknown;
|
||||
|
||||
deleteFavEmoji(...args: unknown[]): unknown;
|
||||
|
||||
modifyFavEmojiDesc(...args: unknown[]): unknown;
|
||||
|
||||
queryFavEmojiByDesc(...args: unknown[]): unknown;
|
||||
|
||||
getHotPicInfoListSearchString(...args: unknown[]): unknown;
|
||||
|
||||
getHotPicSearchResult(...args: unknown[]): unknown;
|
||||
|
||||
getHotPicHotWords(...args: unknown[]): unknown;
|
||||
|
||||
getHotPicJumpInfo(...args: unknown[]): unknown;
|
||||
|
||||
getEmojiResourcePath(...args: unknown[]): unknown;
|
||||
|
||||
JoinDragonGroupEmoji(JoinDragonGroupEmojiReq: any/*joinDragonGroupEmojiReq*/): unknown;
|
||||
|
||||
getMsgAbstracts(...args: unknown[]): unknown;
|
||||
|
||||
getMsgAbstract(...args: unknown[]): unknown;
|
||||
|
||||
getMsgAbstractList(...args: unknown[]): unknown;
|
||||
|
||||
getMsgAbstractListBySeqRange(...args: unknown[]): unknown;
|
||||
|
||||
refreshMsgAbstracts(...args: unknown[]): unknown;
|
||||
|
||||
refreshMsgAbstractsByGuildIds(...args: unknown[]): unknown;
|
||||
|
||||
getRichMediaElement(...args: unknown[]): unknown;
|
||||
|
||||
cancelGetRichMediaElement(...args: unknown[]): unknown;
|
||||
|
||||
refuseGetRichMediaElement(...args: unknown[]): unknown;
|
||||
|
||||
switchToOfflineGetRichMediaElement(...args: unknown[]): unknown;
|
||||
|
||||
downloadRichMedia(...args: unknown[]): unknown;
|
||||
|
||||
getFirstUnreadMsgSeq(args: {
|
||||
peerUid: string
|
||||
guildId: string
|
||||
}): unknown;
|
||||
|
||||
getFirstUnreadCommonMsg(...args: unknown[]): unknown;
|
||||
|
||||
getFirstUnreadAtmeMsg(...args: unknown[]): unknown;
|
||||
|
||||
getFirstUnreadAtallMsg(...args: unknown[]): unknown;
|
||||
|
||||
getNavigateInfo(...args: unknown[]): unknown;
|
||||
|
||||
getChannelFreqLimitInfo(...args: unknown[]): unknown;
|
||||
|
||||
getRecentUseEmojiList(...args: unknown[]): unknown;
|
||||
|
||||
getRecentEmojiList(...args: unknown[]): unknown;
|
||||
|
||||
setMsgEmojiLikes(...args: unknown[]): unknown;
|
||||
|
||||
getMsgEmojiLikesList(peer: Peer, msgSeq: string, emojiId: string, emojiType: string, cookie: string, bForward: boolean, number: number): Promise<{
|
||||
result: number,
|
||||
errMsg: string,
|
||||
emojiLikesList:
|
||||
Array<{
|
||||
tinyId: string,
|
||||
nickName: string,
|
||||
headUrl: string
|
||||
}>,
|
||||
cookie: string,
|
||||
isLastPage: boolean,
|
||||
isFirstPage: boolean
|
||||
}>;
|
||||
|
||||
setMsgEmojiLikesForRole(...args: unknown[]): unknown;
|
||||
|
||||
clickInlineKeyboardButton(...args: unknown[]): unknown;
|
||||
|
||||
setCurOnScreenMsg(...args: unknown[]): unknown;
|
||||
|
||||
setCurOnScreenMsgForMsgEvent(...args: unknown[]): unknown;
|
||||
|
||||
getMiscData(key: string): unknown;
|
||||
|
||||
setMiscData(key: string, value: string): unknown;
|
||||
|
||||
getBookmarkData(...args: unknown[]): unknown;
|
||||
|
||||
setBookmarkData(...args: unknown[]): unknown;
|
||||
|
||||
sendShowInputStatusReq(ChatType: number, EventType: number, toUid: string): Promise<unknown>;
|
||||
|
||||
queryCalendar(...args: unknown[]): unknown;
|
||||
|
||||
queryFirstMsgSeq(peer: Peer, ...args: unknown[]): unknown;
|
||||
|
||||
queryRoamCalendar(...args: unknown[]): unknown;
|
||||
|
||||
queryFirstRoamMsg(...args: unknown[]): unknown;
|
||||
|
||||
fetchLongMsg(peer: Peer, msgId: string): unknown;
|
||||
|
||||
fetchLongMsgWithCb(...args: unknown[]): unknown;
|
||||
|
||||
setIsStopKernelFetchLongMsg(...args: unknown[]): unknown;
|
||||
|
||||
insertGameResultAsMsgToDb(...args: unknown[]): unknown;
|
||||
|
||||
getMultiMsg(...args: unknown[]): Promise<GeneralCallResult & {
|
||||
msgList: RawMessage[]
|
||||
}>;
|
||||
|
||||
setDraft(...args: unknown[]): unknown;
|
||||
|
||||
getDraft(...args: unknown[]): unknown;
|
||||
|
||||
deleteDraft(...args: unknown[]): unknown;
|
||||
|
||||
getRecentHiddenSesionList(...args: unknown[]): unknown;
|
||||
|
||||
setRecentHiddenSession(...args: unknown[]): unknown;
|
||||
|
||||
delRecentHiddenSession(...args: unknown[]): unknown;
|
||||
|
||||
getCurHiddenSession(...args: unknown[]): unknown;
|
||||
|
||||
setCurHiddenSession(...args: unknown[]): unknown;
|
||||
|
||||
setReplyDraft(...args: unknown[]): unknown;
|
||||
|
||||
getReplyDraft(...args: unknown[]): unknown;
|
||||
|
||||
deleteReplyDraft(...args: unknown[]): unknown;
|
||||
|
||||
getFirstUnreadAtMsg(peer: Peer): unknown;
|
||||
|
||||
clearMsgRecords(...args: unknown[]): unknown;//设置已读后调用我觉得比较好 清理记录 现在别了
|
||||
|
||||
IsExistOldDb(...args: unknown[]): unknown;
|
||||
|
||||
canImportOldDbMsg(...args: unknown[]): unknown;
|
||||
|
||||
setPowerStatus(z: boolean): unknown;
|
||||
|
||||
canProcessDataMigration(...args: unknown[]): unknown;
|
||||
|
||||
importOldDbMsg(...args: unknown[]): unknown;
|
||||
|
||||
stopImportOldDbMsgAndroid(...args: unknown[]): unknown;
|
||||
|
||||
isMqqDataImportFinished(...args: unknown[]): unknown;
|
||||
|
||||
getMqqDataImportTableNames(...args: unknown[]): unknown;
|
||||
|
||||
getCurChatImportStatusByUin(...args: unknown[]): unknown;
|
||||
|
||||
getDataImportUserLevel(): unknown;
|
||||
|
||||
getMsgQRCode(...args: unknown[]): unknown;
|
||||
|
||||
getGuestMsgAbstracts(...args: unknown[]): unknown;
|
||||
|
||||
getGuestMsgByRange(...args: unknown[]): unknown;
|
||||
|
||||
getGuestMsgAbstractByRange(...args: unknown[]): unknown;
|
||||
|
||||
registerSysMsgNotification(...args: unknown[]): unknown;
|
||||
|
||||
unregisterSysMsgNotification(...args: unknown[]): unknown;
|
||||
|
||||
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;//主动临时消息 不做
|
||||
|
||||
sendSsoCmdReqByContend(cmd: string, param: string): Promise<unknown>;
|
||||
|
||||
//chattype,uid->Promise<any>
|
||||
getTempChatInfo(ChatType: number, Uid: string): unknown;
|
||||
|
||||
setContactLocalTop(...args: unknown[]): unknown;
|
||||
|
||||
switchAnonymousChat(...args: unknown[]): unknown;
|
||||
|
||||
renameAnonyChatNick(...args: unknown[]): unknown;
|
||||
|
||||
getAnonymousInfo(...args: unknown[]): unknown;
|
||||
|
||||
updateAnonymousInfo(...args: unknown[]): unknown;
|
||||
|
||||
sendSummonMsg(peer: Peer, MsgElement: unknown, MsgAttributeInfo: unknown): Promise<unknown>;//频道的东西
|
||||
|
||||
outputGuildUnreadInfo(...args: unknown[]): unknown;
|
||||
|
||||
checkMsgWithUrl(...args: unknown[]): unknown;
|
||||
|
||||
checkTabListStatus(...args: unknown[]): unknown;
|
||||
|
||||
getABatchOfContactMsgBoxInfo(...args: unknown[]): unknown;
|
||||
|
||||
insertMsgToMsgBox(peer: Peer, msgId: string, arg: 2006): unknown;
|
||||
|
||||
isHitEmojiKeyword(...args: unknown[]): unknown;
|
||||
|
||||
getKeyWordRelatedEmoji(...args: unknown[]): unknown;
|
||||
|
||||
recordEmoji(...args: unknown[]): unknown;
|
||||
|
||||
fetchGetHitEmotionsByWord(args: Object): Promise<unknown>;//表情推荐?
|
||||
|
||||
deleteAllRoamMsgs(...args: unknown[]): unknown;//漫游消息?
|
||||
|
||||
packRedBag(...args: unknown[]): unknown;
|
||||
|
||||
grabRedBag(...args: unknown[]): unknown;
|
||||
|
||||
pullDetail(...args: unknown[]): unknown;
|
||||
|
||||
selectPasswordRedBag(...args: unknown[]): unknown;
|
||||
|
||||
pullRedBagPasswordList(...args: unknown[]): unknown;
|
||||
|
||||
requestTianshuAdv(...args: unknown[]): unknown;
|
||||
|
||||
tianshuReport(...args: unknown[]): unknown;
|
||||
|
||||
tianshuMultiReport(...args: unknown[]): unknown;
|
||||
|
||||
GetMsgSubType(a0: number, a1: number): unknown;
|
||||
|
||||
setIKernelPublicAccountAdapter(...args: unknown[]): unknown;
|
||||
//tempChatGameSession有关
|
||||
createUidFromTinyId(fromTinyId: string, toTinyId: string): unknown;
|
||||
|
||||
dataMigrationGetDataAvaiableContactList(...args: unknown[]): unknown;
|
||||
|
||||
dataMigrationGetMsgList(...args: unknown[]): unknown;
|
||||
|
||||
dataMigrationStopOperation(...args: unknown[]): unknown;
|
||||
|
||||
//新的希望
|
||||
dataMigrationImportMsgPbRecord(DataMigrationMsgInfo: Array<{
|
||||
extensionData: string//"Hex"
|
||||
extraData: string //""
|
||||
chatType: number
|
||||
chatUin: string
|
||||
msgType: number
|
||||
msgTime: string
|
||||
msgSeq: string
|
||||
msgRandom: string
|
||||
}>, DataMigrationResourceInfo: {
|
||||
extraData: string
|
||||
filePath: string
|
||||
fileSize: string
|
||||
msgRandom: string
|
||||
msgSeq: string
|
||||
msgSubType: number
|
||||
msgType: number
|
||||
}): unknown;
|
||||
|
||||
dataMigrationGetResourceLocalDestinyPath(...args: unknown[]): unknown;
|
||||
|
||||
dataMigrationSetIOSPathPrefix(...args: unknown[]): unknown;
|
||||
|
||||
getServiceAssistantSwitch(...args: unknown[]): unknown;
|
||||
|
||||
setServiceAssistantSwitch(...args: unknown[]): unknown;
|
||||
|
||||
setSubscribeFolderUsingSmallRedPoint(...args: unknown[]): unknown;
|
||||
|
||||
clearGuildNoticeRedPoint(...args: unknown[]): unknown;
|
||||
|
||||
clearFeedNoticeRedPoint(...args: unknown[]): unknown;
|
||||
|
||||
clearFeedSquareRead(...args: unknown[]): unknown;
|
||||
|
||||
IsC2CStyleChatType(...args: unknown[]): unknown;
|
||||
|
||||
IsTempChatType(uin: number): unknown;//猜的
|
||||
|
||||
getGuildInteractiveNotification(...args: unknown[]): unknown;
|
||||
|
||||
getGuildNotificationAbstract(...args: unknown[]): unknown;
|
||||
|
||||
setFocusOnBase(...args: unknown[]): unknown;
|
||||
|
||||
queryArkInfo(...args: unknown[]): unknown;
|
||||
|
||||
queryUserSecQuality(...args: unknown[]): unknown;
|
||||
|
||||
getGuildMsgAbFlag(...args: unknown[]): unknown;
|
||||
|
||||
getGroupMsgStorageTime(): unknown;//这是嘛啊
|
||||
|
||||
}
|
12
src/core/services/NodeIKernelNodeMiscService.ts
Normal file
12
src/core/services/NodeIKernelNodeMiscService.ts
Normal file
@@ -0,0 +1,12 @@
|
||||
import { GeneralCallResult } from "./common";
|
||||
|
||||
//没扒干净 因为用不着
|
||||
export interface NodeIKernelNodeMiscService {
|
||||
getMiniAppPath(): unknown;
|
||||
setMiniAppVersion(version:string): unknown;
|
||||
wantWinScreenOCR(imagepath: string): Promise<GeneralCallResult>;
|
||||
SendMiniAppMsg(arg1: string, arg2: string, arg3: string): unknown;
|
||||
startNewMiniApp(appfile: string, params: string): unknown;
|
||||
// 我的计划是转发给一个新程序避免吃掉Electron_AS_Node的环境 然后重写启动MiniApp 挂载相应JS脚本 这样有个问题
|
||||
// 需要自己转发ipc参数 然后必须处在gui环境 且完成校验破解 才能实现发包 有点抽象了
|
||||
}
|
36
src/core/services/NodeIKernelOnlineStatusService.ts
Normal file
36
src/core/services/NodeIKernelOnlineStatusService.ts
Normal file
@@ -0,0 +1,36 @@
|
||||
export interface NodeIKernelOnlineStatusService {
|
||||
|
||||
addKernelOnlineStatusListener(listener: unknown): void;
|
||||
|
||||
removeKernelOnlineStatusListener(listenerId: unknown): void;
|
||||
|
||||
getShouldShowAIOStatusAnimation(arg: unknown): unknown;
|
||||
|
||||
setReadLikeList(arg: unknown): unknown;
|
||||
|
||||
getLikeList(arg: unknown): unknown;
|
||||
|
||||
setLikeStatus(arg: unknown): unknown;
|
||||
|
||||
getAggregationPageEntrance(): unknown;
|
||||
|
||||
didClickAggregationPageEntrance(): unknown;
|
||||
|
||||
getAggregationGroupModels(): unknown;
|
||||
|
||||
// {
|
||||
// "businessType": 1,
|
||||
// "uins": [
|
||||
// "1627126029",
|
||||
// "66600000",
|
||||
// "71702575"
|
||||
// ]
|
||||
// }
|
||||
|
||||
checkLikeStatus(param: {
|
||||
businessType: number,
|
||||
uins: string[]
|
||||
}): Promise<any>;
|
||||
|
||||
isNull(): boolean;
|
||||
}
|
22
src/core/services/NodeIKernelProfileLikeService.ts
Normal file
22
src/core/services/NodeIKernelProfileLikeService.ts
Normal file
@@ -0,0 +1,22 @@
|
||||
import { BuddyProfileLikeReq } from "../entities/user";
|
||||
import { GeneralCallResult } from "./common";
|
||||
|
||||
export interface NodeIKernelProfileLikeService {
|
||||
addKernelProfileLikeListener(listener: NodeIKernelProfileLikeService): void;
|
||||
|
||||
removeKernelProfileLikeListener(listener: unknown): void;
|
||||
|
||||
setBuddyProfileLike(...args: unknown[]): { result: number, errMsg: string, succCounts: number };
|
||||
|
||||
getBuddyProfileLike(req: BuddyProfileLikeReq): Promise<GeneralCallResult & {
|
||||
"info": {
|
||||
"userLikeInfos": Array<any>,
|
||||
"friendMaxVotes": number,
|
||||
"start": number
|
||||
}
|
||||
}>;
|
||||
|
||||
getProfileLikeScidResourceInfo(...args: unknown[]): void;
|
||||
|
||||
isNull(): boolean;
|
||||
}
|
103
src/core/services/NodeIKernelProfileService.ts
Normal file
103
src/core/services/NodeIKernelProfileService.ts
Normal file
@@ -0,0 +1,103 @@
|
||||
import { AnyCnameRecord } from 'node:dns';
|
||||
import { BaseInfo, BizKey, CoreInfo, ModifyProfileParams, SimpleInfo, UserDetailInfoByUin } from '../entities';
|
||||
import { NodeIKernelProfileListener } from '../listeners';
|
||||
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<string>): Promise<Map<string,string>>;//uin->uid
|
||||
|
||||
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>>;
|
||||
|
||||
fetchUserDetailInfo(trace: string, uids: string[], arg2: number, arg3: number[]): Promise<unknown>;
|
||||
|
||||
addKernelProfileListener(listener: NodeIKernelProfileListener): number;
|
||||
|
||||
removeKernelProfileListener(listenerId: number): void;
|
||||
|
||||
prepareRegionConfig(...args: unknown[]): unknown;
|
||||
|
||||
getLocalStrangerRemark(): Promise<AnyCnameRecord>;
|
||||
|
||||
enumCountryOptions(): Array<string>;
|
||||
|
||||
enumProvinceOptions(Country: string): Array<string>;
|
||||
|
||||
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<unknown>;
|
||||
|
||||
modifyDesktopMiniProfile(param: ModifyProfileParams): Promise<GeneralCallResult>;
|
||||
|
||||
setNickName(NickName: string): Promise<unknown>;
|
||||
|
||||
setLongNick(longNick: string): Promise<unknown>;
|
||||
|
||||
setBirthday(...args: unknown[]): Promise<unknown>;
|
||||
|
||||
setGander(...args: unknown[]): Promise<unknown>;
|
||||
|
||||
setHeader(arg: string): Promise<unknown>;
|
||||
|
||||
setRecommendImgFlag(...args: unknown[]): Promise<unknown>;
|
||||
|
||||
getUserSimpleInfo(force: boolean, uids: string[],): Promise<unknown>;
|
||||
|
||||
getUserDetailInfo(uid: string): Promise<unknown>;
|
||||
|
||||
getUserDetailInfoWithBizInfo(uid: string, Biz: BizKey[]): Promise<GeneralCallResult>;
|
||||
|
||||
getUserDetailInfoByUin(uin: string): Promise<UserDetailInfoByUin>;
|
||||
|
||||
getZplanAvatarInfos(args: string[]): Promise<unknown>;
|
||||
|
||||
getStatus(uid: string): Promise<unknown>;
|
||||
|
||||
startStatusPolling(isForceReset: boolean): Promise<unknown>;
|
||||
|
||||
getSelfStatus(): Promise<unknown>;
|
||||
//
|
||||
setdisableEmojiShortCuts(...args: unknown[]): unknown;
|
||||
|
||||
getProfileQzonePicInfo(uid: string, type: number, force: boolean): Promise<unknown>;
|
||||
|
||||
//profileService.getCoreInfo("UserRemarkServiceImpl::getStrangerRemarkByUid", arrayList);
|
||||
getCoreInfo(name: string, arg: any[]): unknown;
|
||||
//m429253e12.getOtherFlag("FriendListInfoCache_getKernelDataAndPutCache", new ArrayList<>());
|
||||
isNull(): boolean;
|
||||
}
|
99
src/core/services/NodeIKernelRecentContactService.ts
Normal file
99
src/core/services/NodeIKernelRecentContactService.ts
Normal file
@@ -0,0 +1,99 @@
|
||||
import { ChatType, Peer } from "../entities";
|
||||
import { NodeIKernelRecentContactListener } from "../listeners/NodeIKernelRecentContactListener";
|
||||
import { GeneralCallResult } from "./common";
|
||||
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
|
||||
|
||||
setContactListTop(...args: unknown[]): unknown; // 2 arguments
|
||||
|
||||
updateRecentContactExtBufForUI(...args: unknown[]): unknown; // 2 arguments
|
||||
|
||||
upsertRecentContactManually(...args: unknown[]): unknown; // 1 arguments
|
||||
|
||||
enterOrExitMsgList(...args: unknown[]): unknown; // 1 arguments
|
||||
|
||||
/*!---!*/getRecentContactListSnapShot(count: number): Promise<GeneralCallResult & {
|
||||
info: {
|
||||
errCode: number,
|
||||
errMsg: string,
|
||||
sortedContactList: Array<number>,
|
||||
changedList: Array<{
|
||||
remark: any;
|
||||
peerName: any;
|
||||
sendMemberName: any;
|
||||
sendNickName: any;
|
||||
peerUid: string; peerUin: string, msgTime: string, chatType: ChatType, msgId: string
|
||||
}>
|
||||
}
|
||||
}>; // 1 arguments
|
||||
|
||||
clearMsgUnreadCount(...args: unknown[]): unknown; // 1 arguments
|
||||
|
||||
getRecentContactListSyncLimit(count: number): unknown;
|
||||
|
||||
jumpToSpecifyRecentContact(...args: unknown[]): unknown; // 1 arguments
|
||||
|
||||
/*!---!*/fetchAndSubscribeABatchOfRecentContact(params: FSABRecentContactParams): unknown; // 1 arguments
|
||||
|
||||
addRecentContact(peer: Peer): unknown;
|
||||
|
||||
deleteRecentContacts(peer: Peer): unknown; // 猜测
|
||||
|
||||
getContacts(peers: Peer[]): Promise<unknown>;
|
||||
|
||||
setThirdPartyBusinessInfos(...args: unknown[]): unknown; // 1 arguments
|
||||
|
||||
updateGameMsgConfigs(...args: unknown[]): unknown; // 1 arguments
|
||||
|
||||
removeKernelRecentContactListener(listenerid: number): unknown; // 1 arguments
|
||||
|
||||
addKernelRecentContactListener(listener: NodeIKernelRecentContactListener): void;
|
||||
|
||||
clearRecentContactsByChatType(...args: unknown[]): unknown; // 1 arguments
|
||||
|
||||
upInsertModule(...args: unknown[]): unknown; // 1 arguments
|
||||
|
||||
jumpToSpecifyRecentContactVer2(...args: unknown[]): unknown; // 1 arguments
|
||||
|
||||
deleteRecentContactsVer2(...args: unknown[]): unknown; // 1 arguments
|
||||
|
||||
getRecentContactList(): Promise<any>;
|
||||
|
||||
getMsgUnreadCount(): unknown;
|
||||
|
||||
clearRecentContacts(): unknown;
|
||||
|
||||
getServiceAssistantRecentContactInfos(): unknown;
|
||||
|
||||
getRecentContactInfos(): unknown;
|
||||
|
||||
getUnreadDetailsInfos(): unknown;
|
||||
|
||||
cleanAllModule(): unknown;
|
||||
|
||||
setAllGameMsgRead(): unknown;
|
||||
|
||||
getRecentContactListSync(): unknown;
|
||||
}
|
266
src/core/services/NodeIKernelRichMediaService.ts
Normal file
266
src/core/services/NodeIKernelRichMediaService.ts
Normal file
@@ -0,0 +1,266 @@
|
||||
import { GetFileListParam, MessageElement, Peer, SendMessageElement } from "../entities";
|
||||
import { GeneralCallResult } from "./common";
|
||||
export enum UrlFileDownloadType {
|
||||
KUNKNOWN,
|
||||
KURLFILEDOWNLOADPRIVILEGEICON,
|
||||
KURLFILEDOWNLOADPHOTOWALL,
|
||||
KURLFILEDOWNLOADQZONE,
|
||||
KURLFILEDOWNLOADCOMMON,
|
||||
KURLFILEDOWNLOADINSTALLAPP
|
||||
}
|
||||
export enum RMBizTypeEnum {
|
||||
KUNKNOWN,
|
||||
KC2CFILE,
|
||||
KGROUPFILE,
|
||||
KC2CPIC,
|
||||
KGROUPPIC,
|
||||
KDISCPIC,
|
||||
KC2CVIDEO,
|
||||
KGROUPVIDEO,
|
||||
KC2CPTT,
|
||||
KGROUPPTT,
|
||||
KFEEDCOMMENTPIC,
|
||||
KGUILDFILE,
|
||||
KGUILDPIC,
|
||||
KGUILDPTT,
|
||||
KGUILDVIDEO
|
||||
}
|
||||
export interface CommonFileInfo {
|
||||
bizType: number;
|
||||
chatType: number;
|
||||
elemId: string;
|
||||
favId: string;
|
||||
fileModelId: string;
|
||||
fileName: string;
|
||||
fileSize: string;
|
||||
md5: string;
|
||||
md510m: string;
|
||||
msgId: string;
|
||||
msgTime: string;
|
||||
parent: string;
|
||||
peerUid: string;
|
||||
picThumbPath: Array<string>
|
||||
sha: string;
|
||||
sha3: string;
|
||||
subId: string;
|
||||
uuid: string;
|
||||
}
|
||||
export interface NodeIKernelRichMediaService {
|
||||
//getVideoPlayUrl(peer, msgId, elemId, videoCodecFormat, VideoRequestWay.KHAND, cb);
|
||||
// public enum VideoCodecFormatType {
|
||||
// KCODECFORMATH264,
|
||||
// KCODECFORMATH265,
|
||||
// KCODECFORMATH266,
|
||||
// KCODECFORMATAV1
|
||||
// }
|
||||
// public enum VideoRequestWay {
|
||||
// KUNKNOW,
|
||||
// KHAND,
|
||||
// KAUTO
|
||||
// }
|
||||
getVideoPlayUrl(peer: Peer, msgId: string, elemId: string, videoCodecFormat: number, VideoRequestWay: number): Promise<unknown>;
|
||||
|
||||
//exParams (RMReqExParams)
|
||||
// this.downSourceType = i2;
|
||||
// this.triggerType = i3;
|
||||
//peer, msgId, elemId, videoCodecFormat, exParams
|
||||
// 1 0 频道在用
|
||||
// 1 1
|
||||
// 0 2
|
||||
|
||||
// public static final int KCOMMONREDENVELOPEMSGTYPEINMSGBOX = 1007;
|
||||
// public static final int KDOWNSOURCETYPEAIOINNER = 1;
|
||||
// public static final int KDOWNSOURCETYPEBIGSCREEN = 2;
|
||||
// public static final int KDOWNSOURCETYPEHISTORY = 3;
|
||||
// public static final int KDOWNSOURCETYPEUNKNOWN = 0;
|
||||
|
||||
// public static final int KTRIGGERTYPEAUTO = 1;
|
||||
// public static final int KTRIGGERTYPEMANUAL = 0;
|
||||
|
||||
getVideoPlayUrlV2(peer: Peer, msgId: string, elemId: string, videoCodecFormat: number, exParams: { downSourceType: number, triggerType: number }): Promise<GeneralCallResult & {
|
||||
urlResult: {
|
||||
v4IpUrl: [],
|
||||
v6IpUrl: [],
|
||||
domainUrl: Array<{
|
||||
url: string,
|
||||
isHttps: boolean,
|
||||
httpsDomain: string
|
||||
}>,
|
||||
videoCodecFormat: number
|
||||
}
|
||||
}>;
|
||||
|
||||
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: {
|
||||
downloadType: number,
|
||||
thumbSize: number,
|
||||
msgId: string,
|
||||
msgRandom: string,
|
||||
msgSeq: string,
|
||||
msgTime: string,
|
||||
chatType: number,
|
||||
senderUid: string,
|
||||
peerUid: string,
|
||||
guildId: string,
|
||||
ele: MessageElement,
|
||||
useHttps: boolean
|
||||
}): Promise<unknown>;
|
||||
|
||||
//arg双端number
|
||||
isFileExpired(arg: number): unknown;
|
||||
|
||||
deleteGroupFolder(GroupCode: string, FolderId: string): Promise<GeneralCallResult & { groupFileCommonResult: { retCode: number, retMsg: string, clientWording: string } }>;
|
||||
|
||||
//参数与getVideoPlayUrlInVisit一样
|
||||
downloadRichMediaInVisit(arg: {
|
||||
downloadType: number,
|
||||
thumbSize: number,
|
||||
msgId: string,
|
||||
msgRandom: string,
|
||||
msgSeq: string,
|
||||
msgTime: string,
|
||||
chatType: number,
|
||||
senderUid: string,
|
||||
peerUid: string,
|
||||
guildId: string,
|
||||
ele: MessageElement,
|
||||
useHttps: boolean
|
||||
}): unknown;
|
||||
//arg3为“”
|
||||
downloadFileForModelId(peer: Peer, ModelId: string[], arg3: string): unknown;
|
||||
//第三个参数 Array<Type>
|
||||
// this.fileId = "";
|
||||
// this.fileName = "";
|
||||
// this.fileId = str;
|
||||
// this.fileName = str2;
|
||||
// this.fileSize = j2;
|
||||
// this.fileModelId = j3;
|
||||
|
||||
downloadFileForFileUuid(peer: Peer, uuid: string, arg3: {
|
||||
fileId: string,
|
||||
fileName: string,
|
||||
fileSize: string,
|
||||
fileModelId: string
|
||||
}[]): Promise<unknown>;
|
||||
|
||||
downloadFileByUrlList(fileDownloadTyp: UrlFileDownloadType, urlList: Array<string>): unknown;
|
||||
|
||||
downloadFileForFileInfo(fileInfo: CommonFileInfo[], savePath: string): unknown;
|
||||
|
||||
createGroupFolder(GroupCode: string, FolderName: string): Promise<GeneralCallResult & { resultWithGroupItem: { result: any, groupItem: Array<any> } }>
|
||||
|
||||
downloadFile(commonFile: CommonFileInfo, arg2: unknown, arg3: unknown, savePath: string): unknown;
|
||||
|
||||
createGroupFolder(arg1: unknown, arg2: unknown): unknown;
|
||||
|
||||
downloadGroupFolder(arg1: unknown, arg2: unknown, arg3: unknown): unknown;
|
||||
|
||||
renameGroupFolder(arg1: unknown, arg2: unknown, arg3: unknown): unknown;
|
||||
|
||||
deleteGroupFolder(arg1: unknown, arg2: unknown): unknown;
|
||||
|
||||
deleteTransferInfo(arg1: unknown, arg2: unknown): unknown;
|
||||
|
||||
cancelTransferTask(arg1: unknown, arg2: unknown, arg3: unknown): unknown;
|
||||
|
||||
cancelUrlDownload(arg: unknown): unknown;
|
||||
|
||||
updateOnlineVideoElemStatus(arg: unknown): unknown;
|
||||
|
||||
getGroupSpace(arg: unknown): unknown;
|
||||
|
||||
getGroupFileList(groupCode: string, params: GetFileListParam): Promise<GeneralCallResult & {
|
||||
groupSpaceResult: {
|
||||
retCode: number
|
||||
retMsg: string
|
||||
clientWording: string
|
||||
totalSpace: number
|
||||
usedSpace: number
|
||||
allUpload: boolean
|
||||
}
|
||||
}>;
|
||||
|
||||
getGroupFileInfo(arg1: unknown, arg2: unknown): unknown;
|
||||
|
||||
getGroupTransferList(arg1: unknown, arg2: unknown): unknown;
|
||||
|
||||
renameGroupFile(arg1: unknown, arg2: unknown, arg3: unknown, arg4: unknown, arg5: unknown): unknown;
|
||||
|
||||
moveGroupFile(arg1: unknown, arg2: unknown, arg3: unknown, arg4: unknown, arg5: unknown): unknown;
|
||||
|
||||
transGroupFile(arg1: unknown, arg2: unknown): unknown;
|
||||
|
||||
searchGroupFile(
|
||||
keywords: Array<string>,
|
||||
param: {
|
||||
groupIds: Array<string>,
|
||||
fileType: number,
|
||||
context: string,
|
||||
count: number,
|
||||
sortType: number,
|
||||
groupNames: Array<string>
|
||||
}): Promise<unknown>;
|
||||
searchGroupFileByWord(arg1: unknown, arg2: unknown, arg3: unknown, arg4: unknown, arg5: unknown): unknown;
|
||||
|
||||
deleteGroupFile(GroupCode: string, params: Array<number>, Files: Array<string>): Promise<GeneralCallResult & {
|
||||
transGroupFileResult: {
|
||||
result: any
|
||||
successFileIdList: Array<any>
|
||||
failFileIdList: Array<any>
|
||||
}
|
||||
}>;
|
||||
|
||||
translateEnWordToZn(words: string[]): Promise<GeneralCallResult & { words: string[] }>;
|
||||
|
||||
getScreenOCR(path: string): Promise<unknown>;
|
||||
|
||||
batchGetGroupFileCount(Gids: Array<string>): Promise<GeneralCallResult & { groupCodes: Array<string>, groupFileCounts: Array<number> }>;
|
||||
|
||||
queryPicDownloadSize(arg: unknown): unknown;
|
||||
|
||||
searchGroupFile(arg1: unknown, arg2: unknown): unknown;
|
||||
|
||||
searchMoreGroupFile(arg: unknown): unknown;
|
||||
|
||||
cancelSearcheGroupFile(arg1: unknown, arg2: unknown, arg3: unknown): unknown;
|
||||
|
||||
onlyDownloadFile(peer: Peer, arg2: unknown, arg3: Array<{
|
||||
fileId: string,
|
||||
fileName: string,
|
||||
fileSize: string,
|
||||
fileModelId: string
|
||||
}
|
||||
>): unknown;
|
||||
|
||||
onlyUploadFile(arg1: unknown, arg2: unknown): unknown;
|
||||
|
||||
isExtraLargePic(arg1: unknown, arg2: unknown, arg3: unknown): unknown;
|
||||
|
||||
uploadRMFileWithoutMsg(arg: {
|
||||
bizType: RMBizTypeEnum,
|
||||
filePath: string,
|
||||
peerUid: string,
|
||||
transferId: string
|
||||
useNTV2: string
|
||||
}): Promise<unknown>;
|
||||
|
||||
isNull(): boolean;
|
||||
}
|
35
src/core/services/NodeIKernelRobotService.ts
Normal file
35
src/core/services/NodeIKernelRobotService.ts
Normal file
@@ -0,0 +1,35 @@
|
||||
import { NodeIKernelRobotListener } from "@/core/listeners";
|
||||
|
||||
export interface NodeIKernelRobotService {
|
||||
fetchGroupRobotStoreDiscovery(arg: unknown): unknown;
|
||||
|
||||
sendGroupRobotStoreSearch(arg: unknown): unknown;
|
||||
|
||||
fetchGroupRobotStoreCategoryList(arg: unknown): unknown;
|
||||
|
||||
FetchSubscribeMsgTemplate(arg: unknown): unknown;
|
||||
|
||||
FetchSubcribeMsgTemplateStatus(arg: unknown): unknown;
|
||||
|
||||
SubscribeMsgTemplateSet(arg1: unknown, arg2: unknown): unknown;
|
||||
|
||||
fetchRecentUsedRobots(arg: unknown): unknown;
|
||||
|
||||
fetchShareArkInfo(arg: unknown): unknown;
|
||||
|
||||
addKernelRobotListener(Listener: NodeIKernelRobotListener): number;
|
||||
|
||||
removeKernelRobotListener(ListenerId: number): unknown;
|
||||
|
||||
getAllRobotFriendsFromCache(): Promise<unknown>;
|
||||
|
||||
fetchAllRobots(arg1: unknown, arg2: unknown): unknown;
|
||||
|
||||
removeAllRecommendCache(): unknown;
|
||||
|
||||
setRobotPickTts(arg1: unknown, arg2: unknown): unknown;
|
||||
|
||||
getRobotUinRange(data: any): Promise<{ response: { robotUinRanges: any } }>
|
||||
|
||||
isNull(): boolean;
|
||||
}
|
129
src/core/services/NodeIKernelSearchService.ts
Normal file
129
src/core/services/NodeIKernelSearchService.ts
Normal file
@@ -0,0 +1,129 @@
|
||||
import { ChatType } from "../entities";
|
||||
|
||||
export interface NodeIKernelSearchService {
|
||||
addKernelSearchListener(...args: any[]): unknown;// needs 1 arguments
|
||||
|
||||
removeKernelSearchListener(...args: any[]): unknown;// needs 1 arguments
|
||||
|
||||
searchStranger(...args: any[]): unknown;// needs 3 arguments
|
||||
|
||||
searchGroup(...args: any[]): unknown;// needs 1 arguments
|
||||
|
||||
searchLocalInfo(keywords: string, unknown: number/*4*/): unknown;
|
||||
|
||||
cancelSearchLocalInfo(...args: any[]): unknown;// needs 3 arguments
|
||||
|
||||
searchBuddyChatInfo(...args: any[]): unknown;// needs 2 arguments
|
||||
|
||||
searchMoreBuddyChatInfo(...args: any[]): unknown;// needs 1 arguments
|
||||
|
||||
cancelSearchBuddyChatInfo(...args: any[]): unknown;// needs 3 arguments
|
||||
|
||||
searchContact(...args: any[]): unknown;// needs 2 arguments
|
||||
|
||||
searchMoreContact(...args: any[]): unknown;// needs 1 arguments
|
||||
|
||||
cancelSearchContact(...args: any[]): unknown;// needs 3 arguments
|
||||
|
||||
searchGroupChatInfo(...args: any[]): unknown;// needs 3 arguments
|
||||
|
||||
resetSearchGroupChatInfoSortType(...args: any[]): unknown;// needs 3 arguments
|
||||
|
||||
resetSearchGroupChatInfoFilterMembers(...args: any[]): unknown;// needs 3 arguments
|
||||
|
||||
searchMoreGroupChatInfo(...args: any[]): unknown;// needs 1 arguments
|
||||
|
||||
cancelSearchGroupChatInfo(...args: any[]): unknown;// needs 3 arguments
|
||||
|
||||
searchChatsWithKeywords(...args: any[]): unknown;// needs 3 arguments
|
||||
|
||||
searchMoreChatsWithKeywords(...args: any[]): unknown;// needs 1 arguments
|
||||
|
||||
cancelSearchChatsWithKeywords(...args: any[]): unknown;// needs 3 arguments
|
||||
|
||||
searchChatMsgs(...args: any[]): unknown;// needs 2 arguments
|
||||
|
||||
searchMoreChatMsgs(...args: any[]): unknown;// needs 1 arguments
|
||||
|
||||
cancelSearchChatMsgs(...args: any[]): unknown;// needs 3 arguments
|
||||
|
||||
searchMsgWithKeywords(...args: any[]): unknown;// needs 2 arguments
|
||||
|
||||
searchMoreMsgWithKeywords(...args: any[]): unknown;// needs 1 arguments
|
||||
|
||||
cancelSearchMsgWithKeywords(...args: any[]): unknown;// needs 3 arguments
|
||||
|
||||
searchFileWithKeywords(keywords: string[], source: number): Promise<string>;// needs 2 arguments
|
||||
|
||||
searchMoreFileWithKeywords(...args: any[]): unknown;// needs 1 arguments
|
||||
|
||||
cancelSearchFileWithKeywords(...args: any[]): unknown;// needs 3 arguments
|
||||
|
||||
searchAtMeChats(...args: any[]): unknown;// needs 3 arguments
|
||||
|
||||
searchMoreAtMeChats(...args: any[]): unknown;// needs 1 arguments
|
||||
|
||||
cancelSearchAtMeChats(...args: any[]): unknown;// needs 3 arguments
|
||||
|
||||
searchChatAtMeMsgs(...args: any[]): unknown;// needs 1 arguments
|
||||
|
||||
searchMoreChatAtMeMsgs(...args: any[]): unknown;// needs 1 arguments
|
||||
|
||||
cancelSearchChatAtMeMsgs(...args: any[]): unknown;// needs 3 arguments
|
||||
|
||||
addSearchHistory(param: {
|
||||
type: number,//4
|
||||
contactList: [],
|
||||
id: number,//-1
|
||||
groupInfos: [],
|
||||
msgs: [],
|
||||
fileInfos: [
|
||||
{
|
||||
chatType: ChatType,
|
||||
buddyChatInfo: Array<{ category_name: string, peerUid: string, peerUin: string, remark: string }>,
|
||||
discussChatInfo: [],
|
||||
groupChatInfo: Array<
|
||||
{
|
||||
groupCode: string,
|
||||
isConf: boolean,
|
||||
hasModifyConfGroupFace: boolean,
|
||||
hasModifyConfGroupName: boolean,
|
||||
groupName: string,
|
||||
remark: string
|
||||
}>
|
||||
,
|
||||
dataLineChatInfo: [],
|
||||
tmpChatInfo: [],
|
||||
msgId: string,
|
||||
msgSeq: string,
|
||||
msgTime: string,
|
||||
senderUid: string,
|
||||
senderNick: string,
|
||||
senderRemark: string,
|
||||
senderCard: string,
|
||||
elemId: string,
|
||||
elemType: string,//3
|
||||
fileSize: string,
|
||||
filePath: string,
|
||||
fileName: string,
|
||||
hits: Array<
|
||||
{
|
||||
start: 12,
|
||||
end: 14
|
||||
}
|
||||
>
|
||||
}
|
||||
]
|
||||
|
||||
}): Promise<{
|
||||
result: number,
|
||||
errMsg: string,
|
||||
id?: number
|
||||
}>;
|
||||
|
||||
removeSearchHistory(...args: any[]): unknown;// needs 1 arguments
|
||||
|
||||
searchCache(...args: any[]): unknown;// needs 3 arguments
|
||||
|
||||
clearSearchCache(...args: any[]): unknown;// needs 1 arguments
|
||||
}
|
41
src/core/services/NodeIKernelStorageCleanService.ts
Normal file
41
src/core/services/NodeIKernelStorageCleanService.ts
Normal file
@@ -0,0 +1,41 @@
|
||||
import { NodeIKernelStorageCleanListener } from "@/core/listeners";
|
||||
import { GeneralCallResult } from "./common";
|
||||
|
||||
export interface NodeIKernelStorageCleanService {
|
||||
|
||||
addKernelStorageCleanListener(Listener: NodeIKernelStorageCleanListener): number;
|
||||
|
||||
removeKernelStorageCleanListener(ListenerId: number): void;
|
||||
|
||||
addCacheScanedPaths(arg: unknown): unknown;
|
||||
|
||||
addFilesScanedPaths(arg: unknown): unknown;
|
||||
|
||||
scanCache(): Promise<GeneralCallResult & {
|
||||
size: string[]
|
||||
}>;
|
||||
|
||||
addReportData(arg: unknown): unknown;
|
||||
|
||||
reportData(): unknown;
|
||||
|
||||
getChatCacheInfo(arg1: unknown, arg2: unknown, arg3: unknown, arg4: unknown): unknown;
|
||||
|
||||
getFileCacheInfo(arg1: unknown, arg2: unknown, arg3: unknown, arg44: unknown, args5: unknown): unknown;
|
||||
|
||||
clearChatCacheInfo(arg1: unknown, arg2: unknown): unknown;
|
||||
|
||||
clearCacheDataByKeys(arg: unknown): unknown;
|
||||
|
||||
setSilentScan(arg: unknown): unknown;
|
||||
|
||||
closeCleanWindow(): unknown;
|
||||
|
||||
clearAllChatCacheInfo(): unknown;
|
||||
|
||||
endScan(arg: unknown): unknown;
|
||||
|
||||
addNewDownloadOrUploadFile(arg: unknown): unknown;
|
||||
|
||||
isNull(): boolean;
|
||||
}
|
10
src/core/services/NodeIKernelTianShuService.ts
Normal file
10
src/core/services/NodeIKernelTianShuService.ts
Normal file
@@ -0,0 +1,10 @@
|
||||
export interface NodeIKernelTianShuService {
|
||||
addKernelTianShuListener(...args: any[]): unknown;// needs 1 arguments
|
||||
|
||||
removeKernelTianShuListener(...args: any[]): unknown;// needs 1 arguments
|
||||
|
||||
requesTianShuNumeralRe(...args: any[]): unknown;//d needs 1 arguments
|
||||
|
||||
reportTianShuNumeralRed(...args: any[]): unknown;// needs 1 arguments
|
||||
|
||||
}
|
12
src/core/services/NodeIKernelTicketService.ts
Normal file
12
src/core/services/NodeIKernelTicketService.ts
Normal file
@@ -0,0 +1,12 @@
|
||||
import { forceFetchClientKeyRetType } from "./common";
|
||||
|
||||
export interface NodeIKernelTicketService {
|
||||
|
||||
addKernelTicketListener(listener: unknown): void;
|
||||
|
||||
removeKernelTicketListener(listenerId: unknown): void;
|
||||
|
||||
forceFetchClientKey(arg: string): Promise<forceFetchClientKeyRetType>;
|
||||
|
||||
isNull(): boolean;
|
||||
}
|
20
src/core/services/NodeIKernelTipOffService.ts
Normal file
20
src/core/services/NodeIKernelTipOffService.ts
Normal file
@@ -0,0 +1,20 @@
|
||||
import { GeneralCallResult } from "./common";
|
||||
|
||||
export interface NodeIKernelTipOffService {
|
||||
|
||||
addKernelTipOffListener(listener: unknown): void;
|
||||
|
||||
removeKernelTipOffListener(listenerId: unknown): void;
|
||||
|
||||
tipOffSendJsData(args: unknown[]): Promise<unknown>;//2
|
||||
|
||||
getPskey(domainList: string[], nocache: boolean): Promise<GeneralCallResult & { domainPskeyMap: Map<string, string> }>;//2
|
||||
|
||||
tipOffSendJsData(args: unknown[]): Promise<unknown>;//2
|
||||
|
||||
tipOffMsgs(args: unknown[]): Promise<unknown>;//1
|
||||
|
||||
encodeUinAesInfo(args: unknown[]): Promise<unknown>;//2
|
||||
|
||||
isNull(): boolean;
|
||||
}
|
5
src/core/services/NodeIKernelUixConvertService.ts
Normal file
5
src/core/services/NodeIKernelUixConvertService.ts
Normal file
@@ -0,0 +1,5 @@
|
||||
export interface NodeIKernelUixConvertService {
|
||||
getUin(uid: string[]): Promise<{ uinInfo: Map<string, string> }>;
|
||||
|
||||
getUid(uin: string[]): Promise<{ uidInfo: Map<string, string> }>;
|
||||
}
|
15
src/core/services/NodeIKernelUnitedConfigService.ts
Normal file
15
src/core/services/NodeIKernelUnitedConfigService.ts
Normal file
@@ -0,0 +1,15 @@
|
||||
export interface NodeIKernelUnitedConfigService{
|
||||
addKernelUnitedConfigListener(...args: any[]): unknown;// needs 1 arguments
|
||||
|
||||
removeKernelUnitedConfigListener(...args: any[]): unknown;// needs 1 arguments
|
||||
|
||||
fetchUnitedCommendConfig(...args: any[]): unknown;// needs 1 arguments
|
||||
|
||||
fetchUnitedSwitchConfig(...args: any[]): unknown;// needs 1 arguments
|
||||
|
||||
loadUnitedConfig(...args: any[]): unknown;// needs 1 arguments
|
||||
|
||||
isUnitedConfigSwitchOn(...args: any[]): unknown;// needs 1 arguments
|
||||
|
||||
registerUnitedConfigPushGroupList(...args: any[]): unknown;// needs 1 arguments
|
||||
}
|
5
src/core/services/NodeIYellowFaceService.ts
Normal file
5
src/core/services/NodeIYellowFaceService.ts
Normal file
@@ -0,0 +1,5 @@
|
||||
// public interface IYellowFaceForManagerService extends QRouteApi {
|
||||
// void download(@NotNull String resourceConfigJson, @NotNull String resourceDir, @NotNull String cacheDir, boolean force, @NotNull IKernelYellowFaceDownloadCallback callback);
|
||||
|
||||
// void setHistory(@NotNull String fullMd5, @NotNull IOperateCallback callback);
|
||||
// }
|
14
src/core/services/NodeIkernelTestPerformanceService.ts
Normal file
14
src/core/services/NodeIkernelTestPerformanceService.ts
Normal file
@@ -0,0 +1,14 @@
|
||||
import { MessageElement, Peer } from "../entities";
|
||||
|
||||
export interface NodeIkernelTestPerformanceService {
|
||||
insertMsg(MsgParam: {
|
||||
peer: Peer
|
||||
msgTime: string
|
||||
msgId: string
|
||||
msgSeq: string
|
||||
batchNums: number
|
||||
timesPerBatch: number
|
||||
numPerTime: number
|
||||
}, msg: Array<MessageElement>): Promise<unknown>;
|
||||
|
||||
}
|
14
src/core/services/common.ts
Normal file
14
src/core/services/common.ts
Normal file
@@ -0,0 +1,14 @@
|
||||
export enum GeneralCallResultStatus {
|
||||
OK = 0,
|
||||
// ERROR = 1,
|
||||
}
|
||||
export interface GeneralCallResult{
|
||||
result: GeneralCallResultStatus,
|
||||
errMsg: string
|
||||
}
|
||||
export interface forceFetchClientKeyRetType extends GeneralCallResult {
|
||||
url: string;
|
||||
keyIndex: string;
|
||||
clientKey: string;
|
||||
expireTime: string;
|
||||
}
|
16
src/core/services/index.ts
Normal file
16
src/core/services/index.ts
Normal file
@@ -0,0 +1,16 @@
|
||||
export * from './common';
|
||||
export * from './NodeIKernelAvatarService';
|
||||
export * from './NodeIKernelBuddyService';
|
||||
export * from './NodeIKernelFileAssistantService';
|
||||
export * from './NodeIKernelGroupService';
|
||||
export * from './NodeIKernelLoginService';
|
||||
export * from './NodeIKernelMsgService';
|
||||
export * from './NodeIKernelOnlineStatusService';
|
||||
export * from './NodeIKernelProfileLikeService';
|
||||
export * from './NodeIKernelProfileService';
|
||||
export * from './NodeIKernelTicketService';
|
||||
export * from './NodeIKernelStorageCleanService';
|
||||
export * from './NodeIKernelRobotService';
|
||||
export * from './NodeIKernelRichMediaService';
|
||||
export * from './NodeIKernelDbToolsService';
|
||||
export * from './NodeIKernelTipOffService'
|
@@ -27,12 +27,10 @@
|
||||
"./src*"
|
||||
],
|
||||
"@/core": [
|
||||
"./src/core/src/index",
|
||||
"./src/core.lib/src/index"
|
||||
"./src/core/index",
|
||||
],
|
||||
"@/core/*": [
|
||||
"./src/core/src/*",
|
||||
"./src/core.lib/src/*"
|
||||
"./src/core/*"
|
||||
]
|
||||
}
|
||||
},
|
||||
|
Reference in New Issue
Block a user