mirror of
https://github.com/NapNeko/NapCatQQ.git
synced 2025-07-19 12:03:37 +00:00
Compare commits
93 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
b9d1d84716 | ||
![]() |
64b2d547ce | ||
![]() |
d8d2ff7e4e | ||
![]() |
8aa5dc6482 | ||
![]() |
474ba20e61 | ||
![]() |
bdea2d02a9 | ||
![]() |
c4307481f1 | ||
![]() |
b8ac1b28bd | ||
![]() |
24038cda95 | ||
![]() |
86c82e9608 | ||
![]() |
daab5d150b | ||
![]() |
9ff82bdb90 | ||
![]() |
c6d70ef1cf | ||
![]() |
15d4bb3c76 | ||
![]() |
3e698981fd | ||
![]() |
9d45c934a5 | ||
![]() |
c2bf9cf93e | ||
![]() |
b3c6fd7f26 | ||
![]() |
ccd155de71 | ||
![]() |
1f90d2e46b | ||
![]() |
4c5d974c22 | ||
![]() |
392eda1cbc | ||
![]() |
a9da3279e8 | ||
![]() |
1ce8351180 | ||
![]() |
96c334478a | ||
![]() |
f1b0875b05 | ||
![]() |
cea9e11c83 | ||
![]() |
f098b39200 | ||
![]() |
012d948b59 | ||
![]() |
3334cd0a71 | ||
![]() |
d63d53fd88 | ||
![]() |
a7fa39b2fd | ||
![]() |
40bb42e193 | ||
![]() |
9c382c639b | ||
![]() |
a43cde38f1 | ||
![]() |
c35d2e08cd | ||
![]() |
3377c383c1 | ||
![]() |
c00e6d95cd | ||
![]() |
725fccf4ed | ||
![]() |
13129bd219 | ||
![]() |
4561977bcf | ||
![]() |
40be8a91f5 | ||
![]() |
2a04d5830b | ||
![]() |
82a38574f3 | ||
![]() |
fea3a33c2b | ||
![]() |
9a502cdf6f | ||
![]() |
4b616299cf | ||
![]() |
102243e064 | ||
![]() |
4b21ac5ebe | ||
![]() |
4dd7363dd3 | ||
![]() |
3d5e5ab78f | ||
![]() |
73045a1b21 | ||
![]() |
871173a7cf | ||
![]() |
0002313093 | ||
![]() |
948cf5cca6 | ||
![]() |
d40230879c | ||
![]() |
ab22b775f1 | ||
![]() |
42c85224ba | ||
![]() |
e57444a353 | ||
![]() |
3c6503d495 | ||
![]() |
149b518f48 | ||
![]() |
74621447ff | ||
![]() |
3280952931 | ||
![]() |
9e670e2736 | ||
![]() |
9fc6347a2f | ||
![]() |
ec7a15a192 | ||
![]() |
7f99982810 | ||
![]() |
935d83aaf8 | ||
![]() |
0ff6edd546 | ||
![]() |
94f629585a | ||
![]() |
89c04be02f | ||
![]() |
3151965ea8 | ||
![]() |
bdf5159be1 | ||
![]() |
0499ebbea3 | ||
![]() |
d5843b7236 | ||
![]() |
1c9c574a90 | ||
![]() |
39acf20e48 | ||
![]() |
52eb6ed5ab | ||
![]() |
ee78d2d59d | ||
![]() |
60dc5c4a38 | ||
![]() |
50a0dc0355 | ||
![]() |
3f681ec914 | ||
![]() |
0bf499f191 | ||
![]() |
389695a0d6 | ||
![]() |
07f1afb312 | ||
![]() |
ae91e61304 | ||
![]() |
6248991b01 | ||
![]() |
7f2d57ef62 | ||
![]() |
31f8f884f1 | ||
![]() |
4f4af5985a | ||
![]() |
a716fdf6d4 | ||
![]() |
9717f64abd | ||
![]() |
adf239183a |
11
docs/changelogs/CHANGELOG.v1.5.4.md
Normal file
11
docs/changelogs/CHANGELOG.v1.5.4.md
Normal file
@@ -0,0 +1,11 @@
|
||||
# v1.5.4
|
||||
|
||||
QQ Version: Windows 9.9.11-24568 / Linux 3.2.9-23568
|
||||
|
||||
## 修复与优化
|
||||
* 紧急修复视频与文件问题
|
||||
|
||||
## 新增与调整
|
||||
|
||||
|
||||
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)
|
@@ -1,10 +1,10 @@
|
||||
# v1.4.4
|
||||
|
||||
QQ Version: Windows 9.9.10-24108 / Linux 3.2.7-23361
|
||||
|
||||
## 更新
|
||||
* **重大更新:**更新了版本号
|
||||
|
||||
|
||||
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)
|
||||
|
||||
# v1.4.4
|
||||
|
||||
QQ Version: Windows 9.9.10-24108 / Linux 3.2.7-23361
|
||||
|
||||
## 更新
|
||||
* **重大更新:**更新了版本号
|
||||
|
||||
|
||||
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)
|
||||
|
12
docs/changelogs/old/CHANGELOG.v1.4.5.md
Normal file
12
docs/changelogs/old/CHANGELOG.v1.4.5.md
Normal file
@@ -0,0 +1,12 @@
|
||||
# v1.4.5
|
||||
|
||||
QQ Version: Windows 9.9.10-24108 / Linux 3.2.7-23361
|
||||
|
||||
## 修复与优化
|
||||
* 紧急修复二维扫码问题
|
||||
|
||||
## 新增与调整
|
||||
|
||||
|
||||
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)
|
||||
|
12
docs/changelogs/old/CHANGELOG.v1.4.6.md
Normal file
12
docs/changelogs/old/CHANGELOG.v1.4.6.md
Normal file
@@ -0,0 +1,12 @@
|
||||
# v1.4.6
|
||||
|
||||
QQ Version: Windows 9.9.10-24108 / Linux 3.2.7-23361
|
||||
|
||||
## 修复与优化
|
||||
* 优化整体稳定性
|
||||
|
||||
## 新增与调整
|
||||
|
||||
|
||||
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)
|
||||
|
11
docs/changelogs/old/CHANGELOG.v1.4.7.md
Normal file
11
docs/changelogs/old/CHANGELOG.v1.4.7.md
Normal file
@@ -0,0 +1,11 @@
|
||||
# v1.4.7
|
||||
|
||||
QQ Version: Windows 9.9.10-24108 / Linux 3.2.7-23361
|
||||
|
||||
## 修复与优化
|
||||
* 临时扩展 Api: GoCQHTTPUploadGroupFile folder_id字段 用于选择文件夹
|
||||
|
||||
## 新增与调整
|
||||
|
||||
|
||||
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)
|
12
docs/changelogs/old/CHANGELOG.v1.4.8.md
Normal file
12
docs/changelogs/old/CHANGELOG.v1.4.8.md
Normal file
@@ -0,0 +1,12 @@
|
||||
# v1.4.8
|
||||
|
||||
QQ Version: Windows 9.9.10-24108 / Linux 3.2.7-23361
|
||||
|
||||
## 修复与优化
|
||||
* 优化Guid的生成方式
|
||||
* 支持临时消息获取群来源
|
||||
|
||||
## 新增与调整
|
||||
|
||||
|
||||
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)
|
11
docs/changelogs/old/CHANGELOG.v1.4.9.md
Normal file
11
docs/changelogs/old/CHANGELOG.v1.4.9.md
Normal file
@@ -0,0 +1,11 @@
|
||||
# v1.4.9
|
||||
|
||||
QQ Version: Windows 9.9.10-24108 / Linux 3.2.7-23361
|
||||
|
||||
## 修复与优化
|
||||
* 修复接口调用问题 接口标准化 API:set_group_add_request
|
||||
|
||||
## 新增与调整
|
||||
|
||||
|
||||
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)
|
11
docs/changelogs/old/CHANGELOG.v1.5.0.md
Normal file
11
docs/changelogs/old/CHANGELOG.v1.5.0.md
Normal file
@@ -0,0 +1,11 @@
|
||||
# v1.5.0
|
||||
|
||||
QQ Version: Windows 9.9.10-24108 / Linux 3.2.7-23361
|
||||
|
||||
## 修复与优化
|
||||
* 修正各Api默认值
|
||||
|
||||
## 新增与调整
|
||||
|
||||
|
||||
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)
|
12
docs/changelogs/old/CHANGELOG.v1.5.1.md
Normal file
12
docs/changelogs/old/CHANGELOG.v1.5.1.md
Normal file
@@ -0,0 +1,12 @@
|
||||
# v1.5.1
|
||||
|
||||
QQ Version: Windows 9.9.10-24108 / Linux 3.2.7-23361
|
||||
|
||||
## 修复与优化
|
||||
* 支持 新Api: set_self_profile 可设置个性签名
|
||||
* 修复 Api: get_group_system_msg
|
||||
* 整理日志、添加颜色、使用统一的日志函数以提高日志可读性
|
||||
## 新增与调整
|
||||
|
||||
|
||||
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)
|
13
docs/changelogs/old/CHANGELOG.v1.5.2.md
Normal file
13
docs/changelogs/old/CHANGELOG.v1.5.2.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# v1.5.2
|
||||
|
||||
QQ Version: Windows 9.9.10-24108 / Linux 3.2.7-23361
|
||||
|
||||
## 修复与优化
|
||||
* 替换Uid/Uin为内部实现
|
||||
* 增加HttpApi调用稳定性
|
||||
* 修复 GetMsg 兼容性
|
||||
|
||||
## 新增与调整
|
||||
* 支持真正意义上的陌生人信息获取 Api: GoCQHTTP_GetStrangerInfo
|
||||
|
||||
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)
|
15
docs/changelogs/old/CHANGELOG.v1.5.3.md
Normal file
15
docs/changelogs/old/CHANGELOG.v1.5.3.md
Normal file
@@ -0,0 +1,15 @@
|
||||
# v1.5.3
|
||||
|
||||
QQ Version: Windows 9.9.11-24568 / Linux 3.2.9-23568
|
||||
|
||||
## 修复与优化
|
||||
* 修复引用消息id问题
|
||||
* 修复添加好友的通知
|
||||
|
||||
## 新增与调整
|
||||
* 扩展群分享Json生成
|
||||
* 扩展关于收藏的一系列接口
|
||||
* 支持专属群头衔获取
|
||||
* 支持视频获取直链
|
||||
|
||||
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)
|
2
docs/develop/Android.md
Normal file
2
docs/develop/Android.md
Normal file
@@ -0,0 +1,2 @@
|
||||
# 开始
|
||||
jadx 跳转于 `com.tencent.qqnt.kernel.*`
|
42
docs/develop/GetMemberExt.md
Normal file
42
docs/develop/GetMemberExt.md
Normal file
@@ -0,0 +1,42 @@
|
||||
# Android
|
||||
```java
|
||||
GroupMemberExtReq groupMemberExtReq = new GroupMemberExtReq();
|
||||
groupMemberExtReq.sourceType = MemberExtSourceType.TITLETYPE.ordinal();
|
||||
groupMemberExtReq.groupCode = longOrNull.longValue();
|
||||
groupMemberExtReq.beginUin = "0";
|
||||
groupMemberExtReq.dataTime = "0";
|
||||
Long[] lArr = new Long[1];
|
||||
AppInterface a2 = dVar.a();
|
||||
lArr[0] = Long.valueOf(a2 != null ? a2.getLongAccountUin() : 0L);
|
||||
arrayListOf = CollectionsKt__CollectionsKt.arrayListOf(lArr);
|
||||
groupMemberExtReq.uinList = arrayListOf;
|
||||
MemberExtInfoFilter memberExtInfoFilter = new MemberExtInfoFilter();
|
||||
memberExtInfoFilter.memberLevelInfoUin = 1;
|
||||
memberExtInfoFilter.memberLevelInfoPoint = 1;
|
||||
memberExtInfoFilter.memberLevelInfoActiveDay = 1;
|
||||
memberExtInfoFilter.memberLevelInfoLevel = 1;
|
||||
memberExtInfoFilter.levelName = 1;
|
||||
memberExtInfoFilter.dataTime = 1;
|
||||
memberExtInfoFilter.sysShowFlag = 1;
|
||||
memberExtInfoFilter.userShowFlag = 1;
|
||||
memberExtInfoFilter.userShowFlagNew = 1;
|
||||
memberExtInfoFilter.levelNameNew = 1;
|
||||
Unit unit = Unit.INSTANCE;
|
||||
groupMemberExtReq.memberExtFilter = memberExtInfoFilter;
|
||||
troopLevelFrequencyControl.f(troopUin, new TroopListRepo$fetchTroopLevelInfo$2(b2, groupMemberExtReq, troopUin, new com.tencent.qqnt.troopmemberlist.report.c("fetchTroopLevelInfo")));
|
||||
```
|
||||
# Win
|
||||
参数解析位于 sub_181456A10(24108) -> wrapper.node(24108)+1456A10
|
||||
IGroupService.GetMemberExt(param: object);
|
||||
param展开如下
|
||||
```
|
||||
groupCode string
|
||||
beginUin string
|
||||
dataTime string
|
||||
uinList Array<string>
|
||||
uinNum string
|
||||
groupType string
|
||||
richCardNameVer string
|
||||
sourceType number
|
||||
memberExtFilter object// 参数解析位于 sub_18145A6D0(24108) -> wrapper.node(24108)+145A6D0
|
||||
```
|
48
docs/develop/Image.NTAndroid.md
Normal file
48
docs/develop/Image.NTAndroid.md
Normal file
@@ -0,0 +1,48 @@
|
||||
public static final int C2C_PIC_DOWNLOAD = 1004;
|
||||
public static final String C2C_PIC_DOWNLOAD_DOMAIN = "c2cpicdw.qpic.cn";
|
||||
public static final String C2C_PIC_DOWNLOAD_QUIC_DOMAIN = "c2cpicdw.quic.qpic.cn";
|
||||
public static final int FLAG_NOT_UPLOAD = 3;
|
||||
public static final int FLAG_UPLOADINFO_ERROR = 4;
|
||||
public static final int GROUP_PIC_DOWNLOAD = 1000;
|
||||
public static final String GROUP_PIC_DOWNLOAD_DOMAIN = "gchat.qpic.cn";
|
||||
public static final String GROUP_PIC_DOWNLOAD_QUIC_DOMAIN = "gchat.quic.qpic.cn";
|
||||
public static final String GUILD_PIC_DOWNLOAD_DOMAIN = "gchat.qpic.cn/qmeetpic";
|
||||
public static final boolean NEW_STORE_FLAG = true;
|
||||
public static final String PTT_VIDEO_DOWNLOAD_DOMAIN = "grouptalk.c2c.qq.com";
|
||||
|
||||
protected static final int AVIF_DECODE_EXCEPTION = 4;
|
||||
protected static final int AVIF_DECODE_FAIL = 1;
|
||||
protected static final int AVIF_DECODE_FAIL_SO_FAIL = 2;
|
||||
protected static final int AVIF_DECODE_FAIL_UNKNOWN = 6;
|
||||
protected static final int AVIF_DECODE_FILETYPE_ERROR = 5;
|
||||
protected static final int AVIF_DECODE_OOM = 3;
|
||||
protected static final int AVIF_DECODE_RENAME_FAIL = 7;
|
||||
protected static final int AVIF_DECODE_SUC = 0;
|
||||
public static final String AVIF_FILE_SUFFIX = ".avif";
|
||||
public static final int AVIF_REQ_APPRUNTIME_NULL = 12;
|
||||
public static final int AVIF_REQ_CODEC_UNSURPPORT = 5;
|
||||
protected static final int AVIF_REQ_DENSITY_UNSURPPORT = 10;
|
||||
protected static final int AVIF_REQ_FLASH_PHOTO = 9;
|
||||
protected static final int AVIF_REQ_HAS_TMP_AVIF = 7;
|
||||
protected static final int AVIF_REQ_INVALID_MSG_RECORD = 2;
|
||||
protected static final int AVIF_REQ_IS_RAW_PHOTO = 3;
|
||||
protected static final int AVIF_REQ_OUTPUTSTREAM_UNSURPPORT = 11;
|
||||
protected static final int AVIF_REQ_OVERSIZE = 6;
|
||||
protected static final int AVIF_REQ_RETRY = 1;
|
||||
public static final int AVIF_REQ_SO_DOWNLOAD_FAILED = 8;
|
||||
protected static final int AVIF_REQ_SUC = 0;
|
||||
public static final int AVIF_REQ_SWITCH_CLOSE = 4;
|
||||
public static final String C2C_PIC_DOWNLOAD_ERROR_CODE = "C2CPicDownloadErrorCode";
|
||||
static final int DOWNLOAD_ST_COMPLETE = 1;
|
||||
static final int DOWNLOAD_ST_HEAD = 2;
|
||||
static final int DOWNLOAD_ST_LEFT = 4;
|
||||
static final int DOWNLOAD_ST_PART = 3;
|
||||
private static final int ENCRYPT_APPID = 1600000226;
|
||||
public static final String GROUP_PIC_DOWNLOAD_ERROR_CODE = "GroupPicDownloadErrorCode";
|
||||
public static final String KEY_PIC_DOWNLOAD_ERROR_CODE = "param_detail_code";
|
||||
protected static final int QUIC_FAIL_IP_LIST_EMPTY = 1;
|
||||
protected static final int QUIC_FAIL_REQUEST_HTTPS = 3;
|
||||
protected static final int QUIC_FAIL_REQUEST_QUIC = 2;
|
||||
protected static final int QUIC_FAIL_SO_LOAD = 4;
|
||||
public static final String REPORT_TAG_DIRECT_DOWNLOAD_FAIL = "report_direct_download_fail";
|
||||
public static final String REQ_PARAM_AVIF = "tp=avif";
|
444
docs/develop/Msg常量NTAndroid.md
Normal file
444
docs/develop/Msg常量NTAndroid.md
Normal file
@@ -0,0 +1,444 @@
|
||||
```java
|
||||
MsgConstant
|
||||
int ARKSTRUCTELEMENTSUBTYPETENCENTDOCFROMMINIAPP = 1;
|
||||
int ARKSTRUCTELEMENTSUBTYPETENCENTDOCFROMPLUSPANEL = 2;
|
||||
int ARKSTRUCTELEMENTSUBTYPEUNKNOWN = 0;
|
||||
int ATTYPEALL = 1;
|
||||
int ATTYPECATEGORY = 512;
|
||||
int ATTYPECHANNEL = 16;
|
||||
int ATTYPEME = 4;
|
||||
int ATTYPEONE = 2;
|
||||
int ATTYPEONLINE = 64;
|
||||
int ATTYPEROLE = 8;
|
||||
int ATTYPESUMMON = 32;
|
||||
int ATTYPESUMMONONLINE = 128;
|
||||
int ATTYPESUMMONROLE = 256;
|
||||
int ATTYPEUNKNOWN = 0;
|
||||
int CALENDARELEMSUBTYPECOMMON = 3;
|
||||
int CALENDARELEMSUBTYPESTRONG = 1;
|
||||
int CALENDARELEMSUBTYPEUNKNOWN = 0;
|
||||
int CALENDARELEMSUBTYPEWEAK = 2;
|
||||
int FACEBUBBLEELEMSUBTYPENORMAL = 1;
|
||||
int FACEBUBBLEELEMSUBTYPEUNKNOWN = 0;
|
||||
int FETCHLONGMSGERRCODEMSGEXPIRED = 196;
|
||||
int FILEELEMENTSUBTYPEAI = 16;
|
||||
int FILEELEMENTSUBTYPEAPP = 11;
|
||||
int FILEELEMENTSUBTYPEAUDIO = 3;
|
||||
int FILEELEMENTSUBTYPEDOC = 4;
|
||||
int FILEELEMENTSUBTYPEEMOTICON = 15;
|
||||
int FILEELEMENTSUBTYPEEXCEL = 6;
|
||||
int FILEELEMENTSUBTYPEFOLDER = 13;
|
||||
int FILEELEMENTSUBTYPEHTML = 10;
|
||||
int FILEELEMENTSUBTYPEIPA = 14;
|
||||
int FILEELEMENTSUBTYPENORMAL = 0;
|
||||
int FILEELEMENTSUBTYPEPDF = 7;
|
||||
int FILEELEMENTSUBTYPEPIC = 1;
|
||||
int FILEELEMENTSUBTYPEPPT = 5;
|
||||
int FILEELEMENTSUBTYPEPSD = 12;
|
||||
int FILEELEMENTSUBTYPETXT = 8;
|
||||
int FILEELEMENTSUBTYPEVIDEO = 2;
|
||||
int FILEELEMENTSUBTYPEZIP = 9;
|
||||
int GRAYTIPELEMENTSUBTYPEAIOOP = 15;
|
||||
int GRAYTIPELEMENTSUBTYPEBLOCK = 14;
|
||||
int GRAYTIPELEMENTSUBTYPEBUDDY = 5;
|
||||
int GRAYTIPELEMENTSUBTYPEBUDDYNOTIFY = 9;
|
||||
int GRAYTIPELEMENTSUBTYPEEMOJIREPLY = 3;
|
||||
int GRAYTIPELEMENTSUBTYPEESSENCE = 7;
|
||||
int GRAYTIPELEMENTSUBTYPEFEED = 6;
|
||||
int GRAYTIPELEMENTSUBTYPEFEEDCHANNELMSG = 11;
|
||||
int GRAYTIPELEMENTSUBTYPEFILE = 10;
|
||||
int GRAYTIPELEMENTSUBTYPEGROUP = 4;
|
||||
int GRAYTIPELEMENTSUBTYPEGROUPNOTIFY = 8;
|
||||
int GRAYTIPELEMENTSUBTYPEJSON = 17;
|
||||
int GRAYTIPELEMENTSUBTYPELOCALMSG = 13;
|
||||
int GRAYTIPELEMENTSUBTYPEPROCLAMATION = 2;
|
||||
int GRAYTIPELEMENTSUBTYPEREVOKE = 1;
|
||||
int GRAYTIPELEMENTSUBTYPEUNKNOWN = 0;
|
||||
int GRAYTIPELEMENTSUBTYPEWALLET = 16;
|
||||
int GRAYTIPELEMENTSUBTYPEXMLMSG = 12;
|
||||
int INLINEKEYBOARDBUTTONRENDERSTYLEBLUEBLACKGROUND = 4;
|
||||
int INLINEKEYBOARDBUTTONRENDERSTYLEBLUEBORDER = 1;
|
||||
int INLINEKEYBOARDBUTTONRENDERSTYLEGRAYBORDER = 0;
|
||||
int INLINEKEYBOARDBUTTONRENDERSTYLENOBORDER = 2;
|
||||
int INLINEKEYBOARDBUTTONRENDERSTYLEREDCHARACTER = 3;
|
||||
int INPUTSTATUSTYPECANCEL = 2;
|
||||
int INPUTSTATUSTYPESPEAK = 3;
|
||||
int INPUTSTATUSTYPETEXT = 1;
|
||||
int KACTIVITYMSG = 22;
|
||||
int KADDLOCALMSGEXTINFOTYPEPROLOGUEMSG = 1;
|
||||
int KANONYMOUSATMEMSGTYPEINMSGBOX = 1001;
|
||||
int KANONYMOUSFLAGFROMOTHERPEOPLE = 1;
|
||||
int KANONYMOUSFLAGFROMOWN = 2;
|
||||
int KANONYMOUSFLAGINVALID = 0;
|
||||
int KAPPCHANNELMSG = 16;
|
||||
int KATALLMSGTYPEINMSGBOX = 2000;
|
||||
int KATMEMSGTYPEINMSGBOX = 1000;
|
||||
int KATTRIBUTETYPEADELIEMSG = 16;
|
||||
int KATTRIBUTETYPEEXTENDBUSINESS = 13;
|
||||
int KATTRIBUTETYPEFEEDBACKSTATE = 17;
|
||||
int KATTRIBUTETYPEGROUPHONOR = 2;
|
||||
int KATTRIBUTETYPEKINGHONOR = 3;
|
||||
int KATTRIBUTETYPELONGMSG = 8;
|
||||
int KATTRIBUTETYPEMEMORYSTATEMSGINFO = 18;
|
||||
int KATTRIBUTETYPEMSG = 0;
|
||||
int KATTRIBUTETYPEMSGBOXEVENTTYPE = 14;
|
||||
int KATTRIBUTETYPEPERSONAL = 1;
|
||||
int KATTRIBUTETYPEPUBLICACCOUNT = 4;
|
||||
int KATTRIBUTETYPEQQCONNECT = 12;
|
||||
int KATTRIBUTETYPESENDMSGRSPTRANSSVRINFO = 15;
|
||||
int KATTRIBUTETYPESHAREDMSGINFO = 5;
|
||||
int KATTRIBUTETYPETEMPCHATGAMESESSION = 6;
|
||||
int KATTRIBUTETYPETOROBOTMSG = 9;
|
||||
int KATTRIBUTETYPEUININFO = 7;
|
||||
int KATTRIBUTETYPEZPLAN = 11;
|
||||
int KAUTOREPLYTEXTNONEINDEX = -1;
|
||||
int KAVRECORDMSG = 19;
|
||||
int KBUSINESSTYPGUILD = 1;
|
||||
int KBUSINESSTYPNT = 0;
|
||||
int KCHATTYPEADELIE = 42;
|
||||
int KCHATTYPEBUDDYNOTIFY = 5;
|
||||
int KCHATTYPEC2C = 1;
|
||||
int KCHATTYPECIRCLE = 113;
|
||||
int KCHATTYPEDATALINE = 8;
|
||||
int KCHATTYPEDATALINEMQQ = 134;
|
||||
int KCHATTYPEDISC = 3;
|
||||
int KCHATTYPEFAV = 41;
|
||||
int KCHATTYPEGAMEMESSAGE = 105;
|
||||
int KCHATTYPEGAMEMESSAGEFOLDER = 116;
|
||||
int KCHATTYPEGROUP = 2;
|
||||
int KCHATTYPEGROUPBLESS = 133;
|
||||
int KCHATTYPEGROUPGUILD = 9;
|
||||
int KCHATTYPEGROUPHELPER = 7;
|
||||
int KCHATTYPEGROUPNOTIFY = 6;
|
||||
int KCHATTYPEGUILD = 4;
|
||||
int KCHATTYPEGUILDMETA = 16;
|
||||
int KCHATTYPEMATCHFRIEND = 104;
|
||||
int KCHATTYPEMATCHFRIENDFOLDER = 109;
|
||||
int KCHATTYPENEARBY = 106;
|
||||
int KCHATTYPENEARBYASSISTANT = 107;
|
||||
int KCHATTYPENEARBYFOLDER = 110;
|
||||
int KCHATTYPENEARBYHELLOFOLDER = 112;
|
||||
int KCHATTYPENEARBYINTERACT = 108;
|
||||
int KCHATTYPEQQNOTIFY = 132;
|
||||
int KCHATTYPERELATEACCOUNT = 131;
|
||||
int KCHATTYPESERVICEASSISTANT = 118;
|
||||
int KCHATTYPESERVICEASSISTANTSUB = 201;
|
||||
int KCHATTYPESQUAREPUBLIC = 115;
|
||||
int KCHATTYPESUBSCRIBEFOLDER = 30;
|
||||
int KCHATTYPETEMPADDRESSBOOK = 111;
|
||||
int KCHATTYPETEMPBUSSINESSCRM = 102;
|
||||
int KCHATTYPETEMPC2CFROMGROUP = 100;
|
||||
int KCHATTYPETEMPC2CFROMUNKNOWN = 99;
|
||||
int KCHATTYPETEMPFRIENDVERIFY = 101;
|
||||
int KCHATTYPETEMPNEARBYPRO = 119;
|
||||
int KCHATTYPETEMPPUBLICACCOUNT = 103;
|
||||
int KCHATTYPETEMPWPA = 117;
|
||||
int KCHATTYPEUNKNOWN = 0;
|
||||
int KCHATTYPEWEIYUN = 40;
|
||||
int KCOMMONREDENVELOPEMSGTYPEINMSGBOX = 1007;
|
||||
int KDOWNSOURCETYPEAIOINNER = 1;
|
||||
int KDOWNSOURCETYPEBIGSCREEN = 2;
|
||||
int KDOWNSOURCETYPEHISTORY = 3;
|
||||
int KDOWNSOURCETYPEUNKNOWN = 0;
|
||||
int KELEMTYPEACTIVITY = 25;
|
||||
int KELEMTYPEACTIVITYSTATE = 41;
|
||||
int KELEMTYPEACTIVITYSUBTYPECREATEMOBATEAM = 12;
|
||||
int KELEMTYPEACTIVITYSUBTYPEDISBANDMOBATEAM = 11;
|
||||
int KELEMTYPEACTIVITYSUBTYPEFEEDSQUARE = 10001;
|
||||
int KELEMTYPEACTIVITYSUBTYPEFINISHGAME = 16;
|
||||
int KELEMTYPEACTIVITYSUBTYPEFINISHMATCHTEAM = 14;
|
||||
int KELEMTYPEACTIVITYSUBTYPEHOTCHAT = 10000;
|
||||
int KELEMTYPEACTIVITYSUBTYPEMINIGAME = 18;
|
||||
int KELEMTYPEACTIVITYSUBTYPEMUSICPLAY = 17;
|
||||
int KELEMTYPEACTIVITYSUBTYPENEWSMOBA = 9;
|
||||
int KELEMTYPEACTIVITYSUBTYPENOLIVE = 2;
|
||||
int KELEMTYPEACTIVITYSUBTYPENOSCREENSHARE = 7;
|
||||
int KELEMTYPEACTIVITYSUBTYPENOVOICE = 3;
|
||||
int KELEMTYPEACTIVITYSUBTYPEONLIVE = 1;
|
||||
int KELEMTYPEACTIVITYSUBTYPEONSCREENSHARE = 6;
|
||||
int KELEMTYPEACTIVITYSUBTYPEONVOICE = 4;
|
||||
int KELEMTYPEACTIVITYSUBTYPESTARTMATCHTEAM = 13;
|
||||
int KELEMTYPEACTIVITYSUBTYPETARTGAME = 15;
|
||||
int KELEMTYPEACTIVITYSUBTYPEUNKNOWN = 0;
|
||||
int KELEMTYPEADELIEACTIONBAR = 44;
|
||||
int KELEMTYPEADELIERECOMMENDEDMSG = 43;
|
||||
int KELEMTYPEARKSTRUCT = 10;
|
||||
int KELEMTYPEAVRECORD = 21;
|
||||
int KELEMTYPECALENDAR = 19;
|
||||
int KELEMTYPEFACE = 6;
|
||||
int KELEMTYPEFACEBUBBLE = 27;
|
||||
int KELEMTYPEFEED = 22;
|
||||
int KELEMTYPEFILE = 3;
|
||||
int KELEMTYPEGIPHY = 15;
|
||||
int KELEMTYPEGRAYTIP = 8;
|
||||
int KELEMTYPEINLINEKEYBOARD = 17;
|
||||
int KELEMTYPEINTEXTGIFT = 18;
|
||||
int KELEMTYPELIVEGIFT = 12;
|
||||
int KELEMTYPEMARKDOWN = 14;
|
||||
int KELEMTYPEMARKETFACE = 11;
|
||||
int KELEMTYPEMULTIFORWARD = 16;
|
||||
int KELEMTYPEONLINEFILE = 23;
|
||||
int KELEMTYPEPIC = 2;
|
||||
int KELEMTYPEPROLOGUE = 46;
|
||||
int KELEMTYPEPTT = 4;
|
||||
int KELEMTYPEREPLY = 7;
|
||||
int KELEMTYPESHARELOCATION = 28;
|
||||
int KELEMTYPESTRUCTLONGMSG = 13;
|
||||
int KELEMTYPETASKTOPMSG = 29;
|
||||
int KELEMTYPETEXT = 1;
|
||||
int KELEMTYPETOFU = 26;
|
||||
int KELEMTYPEUNKNOWN = 0;
|
||||
int KELEMTYPEVIDEO = 5;
|
||||
int KELEMTYPEWALLET = 9;
|
||||
int KELEMTYPEYOLOGAMERESULT = 20;
|
||||
int KENTERAIO = 1;
|
||||
int KEXITAIO = 2;
|
||||
int KFEEDBACKBUTTONTYPEDISLIKE = 2;
|
||||
int KFEEDBACKBUTTONTYPELIKE = 1;
|
||||
int KFEEDBACKBUTTONTYPEPROMPTCLICK = 5;
|
||||
int KFEEDBACKBUTTONTYPEREGENERATE = 4;
|
||||
int KFEEDBACKBUTTONTYPEUNKNOWN = 0;
|
||||
int KFEEDBACKOPTLIKE = 1;
|
||||
int KFEEDBACKOPTUNKNOWN = 0;
|
||||
int KFEEDBACKOPTUNLIKE = 2;
|
||||
int KFRIENDNEWADDEDMSGTYPEINMSGBOX = 1008;
|
||||
int KGAMEBOXNEWMSGTYPEINMSGBOX = 3000;
|
||||
int KGIFTATMEMSGTYPEINMSGBOX = 1005;
|
||||
int KGROUPFILEATALLMSGTYPEINMSGBOX = 2001;
|
||||
int KGROUPHOMEWORK = 20000;
|
||||
int KGROUPHOMEWORKTASK = 20001;
|
||||
int KGROUPKEYWORDMSGTYPEINMSGBOX = 2006;
|
||||
int KGROUPMANNOUNCEATALLMSGTYPEINMSGBOX = 2004;
|
||||
int KGROUPTASKATALLMSGTYPEINMSGBOX = 2003;
|
||||
int KGROUPUNREADTYPEINMSGBOX = 2007;
|
||||
int KGUILDCHANNELLIST = 10;
|
||||
int KHIGHLIGHTWORDINTEMPCHATTYPEINMSGBOX = 1009;
|
||||
int KHOMEWORKREMINDER = 10000;
|
||||
int KLIKEORDISLIKESTATEDISLIKE = 2;
|
||||
int KLIKEORDISLIKESTATELIKE = 1;
|
||||
int KLIKEORDISLIKESTATENONESELECTED = 0;
|
||||
int KMARKETFACE = 17;
|
||||
int KMEMORYSTATEMSGTYPEADELIEWELCOME = 1;
|
||||
int KMEMORYSTATEMSGTYPEUNKNOWN = 0;
|
||||
int KMINIPROGRAMNOTICE = 114;
|
||||
int KMSGSUBTYPEARKGROUPANNOUNCE = 3;
|
||||
int KMSGSUBTYPEARKGROUPANNOUNCECONFIRMREQUIRED = 4;
|
||||
int KMSGSUBTYPEARKGROUPGIFTATME = 5;
|
||||
int KMSGSUBTYPEARKGROUPTASKATALL = 6;
|
||||
int KMSGSUBTYPEARKMULTIMSG = 7;
|
||||
int KMSGSUBTYPEARKNORMAL = 0;
|
||||
int KMSGSUBTYPEARKTENCENTDOCFROMMINIAPP = 1;
|
||||
int KMSGSUBTYPEARKTENCENTDOCFROMPLUSPANEL = 2;
|
||||
int KMSGSUBTYPEEMOTICON = 15;
|
||||
int KMSGSUBTYPEFILEAPP = 11;
|
||||
int KMSGSUBTYPEFILEAUDIO = 3;
|
||||
int KMSGSUBTYPEFILEDOC = 4;
|
||||
int KMSGSUBTYPEFILEEXCEL = 6;
|
||||
int KMSGSUBTYPEFILEFOLDER = 13;
|
||||
int KMSGSUBTYPEFILEHTML = 10;
|
||||
int KMSGSUBTYPEFILEIPA = 14;
|
||||
int KMSGSUBTYPEFILENORMAL = 0;
|
||||
int KMSGSUBTYPEFILEPDF = 7;
|
||||
int KMSGSUBTYPEFILEPIC = 1;
|
||||
int KMSGSUBTYPEFILEPPT = 5;
|
||||
int KMSGSUBTYPEFILEPSD = 12;
|
||||
int KMSGSUBTYPEFILETXT = 8;
|
||||
int KMSGSUBTYPEFILEVIDEO = 2;
|
||||
int KMSGSUBTYPEFILEZIP = 9;
|
||||
int KMSGSUBTYPELINK = 5;
|
||||
int KMSGSUBTYPEMARKETFACE = 1;
|
||||
int KMSGSUBTYPEMIXEMOTICON = 7;
|
||||
int KMSGSUBTYPEMIXFACE = 3;
|
||||
int KMSGSUBTYPEMIXMARKETFACE = 2;
|
||||
int KMSGSUBTYPEMIXPIC = 1;
|
||||
int KMSGSUBTYPEMIXREPLY = 4;
|
||||
int KMSGSUBTYPEMIXTEXT = 0;
|
||||
int KMSGSUBTYPETENCENTDOC = 6;
|
||||
int KMSGTYPEARKSTRUCT = 11;
|
||||
int KMSGTYPEFACEBUBBLE = 24;
|
||||
int KMSGTYPEFILE = 3;
|
||||
int KMSGTYPEGIFT = 14;
|
||||
int KMSGTYPEGIPHY = 13;
|
||||
int KMSGTYPEGRAYTIPS = 5;
|
||||
int KMSGTYPEMIX = 2;
|
||||
int KMSGTYPEMULTIMSGFORWARD = 8;
|
||||
int KMSGTYPENULL = 1;
|
||||
int KMSGTYPEONLINEFILE = 21;
|
||||
int KMSGTYPEONLINEFOLDER = 27;
|
||||
int KMSGTYPEPROLOGUE = 29;
|
||||
int KMSGTYPEPTT = 6;
|
||||
int KMSGTYPEREPLY = 9;
|
||||
int KMSGTYPESHARELOCATION = 25;
|
||||
int KMSGTYPESTRUCT = 4;
|
||||
int KMSGTYPESTRUCTLONGMSG = 12;
|
||||
int KMSGTYPETEXTGIFT = 15;
|
||||
int KMSGTYPEUNKNOWN = 0;
|
||||
int KMSGTYPEVIDEO = 7;
|
||||
int KMSGTYPEWALLET = 10;
|
||||
int KNEEDCONFIRMGROUPMANNOUNCEATALLMSGTYPEINMSGBOX = 2005;
|
||||
int KNOTPASSTHROUGHEVENTTYPEUPPERBOUNDARY = 9999;
|
||||
int KPTTFORMATTYPEAMR = 0;
|
||||
int KPTTFORMATTYPESILK = 1;
|
||||
int KPTTTRANSLATESTATUSFAIL = 3;
|
||||
int KPTTTRANSLATESTATUSSUC = 2;
|
||||
int KPTTTRANSLATESTATUSTRANSLATING = 1;
|
||||
int KPTTTRANSLATESTATUSUNKNOWN = 0;
|
||||
int KPTTVIPLEVELTYPENONE = 0;
|
||||
int KPTTVIPLEVELTYPEQQVIP = 0;
|
||||
int KPTTVIPLEVELTYPESVIP = 0;
|
||||
int KPTTVOICECHANGETYPEBEASTMACHINE = 7;
|
||||
int KPTTVOICECHANGETYPEBOY = 2;
|
||||
int KPTTVOICECHANGETYPECATCHCOLD = 13;
|
||||
int KPTTVOICECHANGETYPEECHO = 5;
|
||||
int KPTTVOICECHANGETYPEFATGUY = 16;
|
||||
int KPTTVOICECHANGETYPEFLASHING = 9;
|
||||
int KPTTVOICECHANGETYPEGIRL = 1;
|
||||
int KPTTVOICECHANGETYPEHORRIBLE = 3;
|
||||
int KPTTVOICECHANGETYPEKINDERGARTEN = 6;
|
||||
int KPTTVOICECHANGETYPEMEDAROT = 15;
|
||||
int KPTTVOICECHANGETYPENONE = 0;
|
||||
int KPTTVOICECHANGETYPEOPTIMUSPRIME = 8;
|
||||
int KPTTVOICECHANGETYPEOUTOFDATE = 14;
|
||||
int KPTTVOICECHANGETYPEPAPI = 11;
|
||||
int KPTTVOICECHANGETYPEQUICK = 4;
|
||||
int KPTTVOICECHANGETYPESTUTTER = 10;
|
||||
int KPTTVOICECHANGETYPETRAPPEDBEAST = 12;
|
||||
int KPTTVOICETYPEINTERCOM = 1;
|
||||
int KPTTVOICETYPESOUNDRECORD = 2;
|
||||
int KPTTVOICETYPEUNKNOW = 0;
|
||||
int KPTTVOICETYPEVOICECHANGE = 3;
|
||||
int KPUBLICACCOUNTTIANSHUHIGHLIGHTWORDTYPEINMSGBOX = 1010;
|
||||
int KREPLYABSELEMTYPEFACE = 2;
|
||||
int KREPLYABSELEMTYPEPIC = 3;
|
||||
int KREPLYABSELEMTYPETEXT = 1;
|
||||
int KREPLYABSELEMTYPEUNKNOWN = 0;
|
||||
int KREPLYATMEMSGTYPEINMSGBOX = 1002;
|
||||
int KRMDOWNTYPEORIG = 1;
|
||||
int KRMDOWNTYPETHUMB = 2;
|
||||
int KRMDOWNTYPEUNKNOWN = 0;
|
||||
int KRMFILETHUMBSIZE128 = 128;
|
||||
int KRMFILETHUMBSIZE320 = 320;
|
||||
int KRMFILETHUMBSIZE384 = 384;
|
||||
int KRMFILETHUMBSIZE750 = 750;
|
||||
int KRMPICAIOTHUMBSIZE = 0;
|
||||
int KRMPICTHUMBSIZE198 = 198;
|
||||
int KRMPICTHUMBSIZE720 = 720;
|
||||
int KRMPICTYPEBMP = 3;
|
||||
int KRMPICTYPECHECKOTHER = 900;
|
||||
int KRMPICTYPEGIF = 2;
|
||||
int KRMPICTYPEJPG = 0;
|
||||
int KRMPICTYPENEWPICAPNG = 2001;
|
||||
int KRMPICTYPENEWPICBMP = 1005;
|
||||
int KRMPICTYPENEWPICGIF = 2000;
|
||||
int KRMPICTYPENEWPICJPEG = 1000;
|
||||
int KRMPICTYPENEWPICPNG = 1001;
|
||||
int KRMPICTYPENEWPICPROGERSSIVJPEG = 1003;
|
||||
int KRMPICTYPENEWPICSHARPP = 1004;
|
||||
int KRMPICTYPENEWPICWEBP = 1002;
|
||||
int KRMPICTYPEPNG = 1;
|
||||
int KRMPICTYPEUNKOWN = 0;
|
||||
int KRMTHUMBSIZEZERO = 0;
|
||||
int KRMTRNASFERSTATUSDOWNLOADING = 3;
|
||||
int KRMTRNASFERSTATUSFAIL = 5;
|
||||
int KRMTRNASFERSTATUSINIT = 1;
|
||||
int KRMTRNASFERSTATUSSUC = 4;
|
||||
int KRMTRNASFERSTATUSUNKOW = 0;
|
||||
int KRMTRNASFERSTATUSUPLOADING = 2;
|
||||
int KRMTRNASFERSTATUSUSERCANCEL = 6;
|
||||
int KSEEKINGPARTNERFLAGSEEKING = 1;
|
||||
int KSEEKINGPARTNERFLAGUNKNOWN = 0;
|
||||
int KSENDSTATUSFAILED = 0;
|
||||
int KSENDSTATUSSENDING = 1;
|
||||
int KSENDSTATUSSUCCESS = 2;
|
||||
int KSENDSTATUSSUCCESSNOSEQ = 3;
|
||||
int KSENDTYPEDROPPED = 6;
|
||||
int KSENDTYPELOCAL = 3;
|
||||
int KSENDTYPEOTHERDEVICE = 2;
|
||||
int KSENDTYPERECV = 0;
|
||||
int KSENDTYPESELF = 1;
|
||||
int KSENDTYPESELFFORWARD = 4;
|
||||
int KSENDTYPESELFMULTIFORWARD = 5;
|
||||
int KSESSIONTYPEADDRESSBOOK = 5;
|
||||
int KSESSIONTYPEC2C = 1;
|
||||
int KSESSIONTYPEDISC = 3;
|
||||
int KSESSIONTYPEFAV = 41;
|
||||
int KSESSIONTYPEGROUP = 2;
|
||||
int KSESSIONTYPEGROUPBLESS = 52;
|
||||
int KSESSIONTYPEGUILD = 4;
|
||||
int KSESSIONTYPEGUILDMETA = 16;
|
||||
int KSESSIONTYPENEARBYPRO = 54;
|
||||
int KSESSIONTYPEQQNOTIFY = 51;
|
||||
int KSESSIONTYPERELATEACCOUNT = 50;
|
||||
int KSESSIONTYPESERVICEASSISTANT = 19;
|
||||
int KSESSIONTYPESUBSCRIBEFOLDER = 30;
|
||||
int KSESSIONTYPETYPEBUDDYNOTIFY = 7;
|
||||
int KSESSIONTYPETYPEGROUPHELPER = 9;
|
||||
int KSESSIONTYPETYPEGROUPNOTIFY = 8;
|
||||
int KSESSIONTYPEUNKNOWN = 0;
|
||||
int KSESSIONTYPEWEIYUN = 40;
|
||||
int KSPECIALCAREMSGTYPEINMSGBOX = 1006;
|
||||
int KSPECIFIEDREDENVELOPEATMEMSGTYPEINMSGBOX = 1004;
|
||||
int KSPECIFIEDREDENVELOPEATONEMSGTYPEINMSGBOX = 1003;
|
||||
int KTENCENTDOCTYPEADDON = 110;
|
||||
int KTENCENTDOCTYPEDOC = 0;
|
||||
int KTENCENTDOCTYPEDRAWING = 89;
|
||||
int KTENCENTDOCTYPEDRIVE = 101;
|
||||
int KTENCENTDOCTYPEFILE = 100;
|
||||
int KTENCENTDOCTYPEFLOWCHART = 91;
|
||||
int KTENCENTDOCTYPEFOLDER = 3;
|
||||
int KTENCENTDOCTYPEFORM = 2;
|
||||
int KTENCENTDOCTYPEMIND = 90;
|
||||
int KTENCENTDOCTYPENOTES = 5;
|
||||
int KTENCENTDOCTYPEPDF = 6;
|
||||
int KTENCENTDOCTYPEPROGRAM = 7;
|
||||
int KTENCENTDOCTYPESHEET = 1;
|
||||
int KTENCENTDOCTYPESLIDE = 4;
|
||||
int KTENCENTDOCTYPESMARTCANVAS = 8;
|
||||
int KTENCENTDOCTYPESMARTSHEET = 9;
|
||||
int KTENCENTDOCTYPESPEECH = 102;
|
||||
int KTENCENTDOCTYPEUNKNOWN = 10;
|
||||
int KTOFURECORDMSG = 23;
|
||||
int KTOPMSGTYPETASK = 1;
|
||||
int KTOPMSGTYPEUNKNOWN = 0;
|
||||
int KTRIGGERTYPEAUTO = 1;
|
||||
int KTRIGGERTYPEMANUAL = 0;
|
||||
int KUNKNOWN = 0;
|
||||
int KUNKNOWNTYPEINMSGBOX = 0;
|
||||
int KUNREADCNTUPTYPEALLDIRECTSESSION = 4;
|
||||
int KUNREADCNTUPTYPEALLFEEDSINGUILD = 6;
|
||||
int KUNREADCNTUPTYPEALLGUILD = 3;
|
||||
int KUNREADCNTUPTYPECATEGORY = 5;
|
||||
int KUNREADCNTUPTYPECHANNEL = 1;
|
||||
int KUNREADCNTUPTYPECONTACT = 0;
|
||||
int KUNREADCNTUPTYPEGUILD = 2;
|
||||
int KUNREADCNTUPTYPEGUILDGROUP = 7;
|
||||
int KUNREADSHOWTTYPEGRAYPOINT = 2;
|
||||
int KUNREADSHOWTYPEREDPOINT = 1;
|
||||
int KUNREADSHOWTYPESMALLGRAYPOINT = 4;
|
||||
int KUNREADSHOWTYPESMALLREDPOINT = 3;
|
||||
int KUNREADSHOWTYPEUNKNOWN = 0;
|
||||
int KVASGIFTCOINTYPECOIN = 0;
|
||||
int KVASGIFTCOINTYPEMARKETCOIN = 1;
|
||||
int KYOLOGAMERESULTMSG = 18;
|
||||
int PIC_800_RECOMMENDED = 7;
|
||||
int PIC_AIGC_EMOJI = 14;
|
||||
int PIC_ALBUM_GIF = 11;
|
||||
int PIC_COMMERCIAL_ADVERTISING = 9;
|
||||
int PIC_FIND = 10;
|
||||
int PIC_HOT = 2;
|
||||
int PIC_HOT_EMOJI = 13;
|
||||
int PIC_NORMAL = 0;
|
||||
int PIC_PK = 3;
|
||||
int PIC_QQZONE = 5;
|
||||
int PIC_SELFIE_GIF = 8;
|
||||
int PIC_SEND_FROM_TAB_SEARCH_BOX = 12;
|
||||
int PIC_USER = 1;
|
||||
int PIC_WISDOM_FIGURE = 4;
|
||||
int REPLYORIGINALMSGSTATEHASRECALL = 1;
|
||||
int REPLYORIGINALMSGSTATEUNKNOWN = 0;
|
||||
int SHARELOCATIONELEMSUBTYPENORMAL = 1;
|
||||
int SHARELOCATIONELEMSUBTYPEUNKNOWN = 0;
|
||||
int TEXTELEMENTSUBTYPELINK = 1;
|
||||
int TEXTELEMENTSUBTYPETENCENTDOC = 2;
|
||||
int TEXTELEMENTSUBTYPEUNKNOWN = 0;
|
||||
```
|
24
docs/develop/参与开发.md
Normal file
24
docs/develop/参与开发.md
Normal file
@@ -0,0 +1,24 @@
|
||||
# 前排提示
|
||||
由于Core未处于开源,非组织人员无法参与Core开发,此处为Core开发提示
|
||||
|
||||
# 准备工具
|
||||
frida ida-pro jadx x64dbg ce 内部调试脚本
|
||||
|
||||
## ida-pro
|
||||
1. 用于快速分析入参和返回类型
|
||||
2. 通过静态QLog推测语义
|
||||
3. 提取Listener与Service (常用)
|
||||
## frida
|
||||
1. 用于动态获取QLog推测语义
|
||||
2. 捕捉Native函数 实际入参与数据 分析中间流程
|
||||
|
||||
## jadx
|
||||
1. 通过其它平台实现 静态获取QLog推测语义
|
||||
2. 提供部分未调用代码 参考
|
||||
|
||||
## x64dbg
|
||||
1. 验证IDA的Hook点
|
||||
|
||||
## 内部脚本
|
||||
1. 提取Listener与Service (不调用无类型 不推荐)
|
||||
2. 获取NT调用流程
|
@@ -2,7 +2,7 @@
|
||||
"name": "napcat",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"version": "1.4.4",
|
||||
"version": "1.5.4",
|
||||
"scripts": {
|
||||
"watch:dev": "vite --mode development",
|
||||
"watch:prod": "vite --mode production",
|
||||
@@ -19,6 +19,7 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@log4js-node/log4js-api": "^1.0.2",
|
||||
"@protobuf-ts/plugin": "^2.9.4",
|
||||
"@rollup/plugin-node-resolve": "^15.2.3",
|
||||
"@rollup/plugin-typescript": "^11.1.6",
|
||||
"@types/cors": "^2.8.17",
|
||||
@@ -43,11 +44,11 @@
|
||||
"vite": "^5.2.6",
|
||||
"vite-plugin-cp": "^4.0.8",
|
||||
"vite-plugin-dts": "^3.8.2",
|
||||
"vite-tsconfig-paths": "^4.3.2",
|
||||
"@protobuf-ts/plugin": "^2.9.4"
|
||||
"vite-tsconfig-paths": "^4.3.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"ajv": "^8.13.0",
|
||||
"chalk": "^5.3.0",
|
||||
"commander": "^12.0.0",
|
||||
"cors": "^2.8.5",
|
||||
"express": "^5.0.0-beta.2",
|
||||
@@ -60,7 +61,7 @@
|
||||
"qrcode-terminal": "^0.12.0",
|
||||
"silk-wasm": "^3.3.4",
|
||||
"sqlite3": "^5.1.7",
|
||||
"uuid": "^9.0.1",
|
||||
"uuid": "^10.0.0",
|
||||
"ws": "^8.16.0"
|
||||
}
|
||||
}
|
||||
|
@@ -1,5 +1,5 @@
|
||||
import { sleep } from '@/common/utils/helper';
|
||||
|
||||
import { logError } from './log';
|
||||
type AsyncQueueTask = (() => void) | (()=>Promise<void>);
|
||||
|
||||
|
||||
@@ -26,7 +26,8 @@ export class AsyncQueue {
|
||||
await taskRet;
|
||||
}
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
// console.error(e);
|
||||
logError(e);
|
||||
}
|
||||
this.tasks.shift();
|
||||
await sleep(100);
|
||||
|
@@ -1,99 +1,182 @@
|
||||
import { randomUUID } from "crypto";
|
||||
export enum NTEventMode {
|
||||
Once = 1,
|
||||
Twice = 2
|
||||
}
|
||||
export interface NTEventType<U extends (...args: any[]) => any> {
|
||||
EventName: string,
|
||||
EventFunction: U,
|
||||
ListenerName: string,
|
||||
ListenerFunction: Function
|
||||
}
|
||||
interface Internal_MapKey {
|
||||
mode: NTEventMode,
|
||||
timeout: number,
|
||||
createtime: number,
|
||||
func: Function
|
||||
}
|
||||
export class NTEvent<T extends (...args: any[]) => any, R = any> {
|
||||
EventData: NTEventType<T>;
|
||||
EventTask: Map<string, Internal_MapKey> = new Map<string, Internal_MapKey>();
|
||||
constructor(params: NTEventType<T>) {
|
||||
params.ListenerFunction = this.DispatcherListener.bind(this);
|
||||
this.EventData = params;
|
||||
this.EventData.EventFunction = params.EventFunction.bind(this) as any;
|
||||
}
|
||||
async DispatcherListener(...args: any[]) {
|
||||
console.log(...args);
|
||||
this.EventTask.forEach((task, uuid) => {
|
||||
if (task.createtime + task.timeout > Date.now()) {
|
||||
this.EventTask.delete(uuid);
|
||||
return;
|
||||
}
|
||||
task.func(...args);
|
||||
})
|
||||
}
|
||||
async CallTwiceEvent(timeout: number = 3000, ...args: Parameters<T>) {
|
||||
return new Promise<R>((resolve, reject) => {
|
||||
const id = randomUUID();
|
||||
let complete = 0;
|
||||
let retData: R | undefined = undefined;
|
||||
let databack = () => {
|
||||
if (!complete) {
|
||||
this.EventTask.delete(id);
|
||||
reject(new Error('NTEvent EventName:' + this.EventData.EventName + ' EventListener:' + this.EventData.ListenerName + ' timeout'));
|
||||
} else {
|
||||
resolve(retData as R);
|
||||
}
|
||||
}
|
||||
|
||||
let Timeouter = setTimeout(databack, timeout);
|
||||
|
||||
this.EventTask.set(id, {
|
||||
mode: NTEventMode.Once,
|
||||
timeout: timeout,
|
||||
createtime: Date.now(),
|
||||
func: (...args: any[]) => {
|
||||
complete++;
|
||||
retData = args as R;
|
||||
if (complete == 2) {
|
||||
clearTimeout(Timeouter);
|
||||
databack();
|
||||
}
|
||||
}
|
||||
});
|
||||
this.EventData.EventFunction(...args);
|
||||
});
|
||||
}
|
||||
|
||||
async CallOnceEvent(timeout: number = 3000, ...args: Parameters<T>) {
|
||||
return new Promise<R>((resolve, reject) => {
|
||||
const id = randomUUID();
|
||||
let complete = false;
|
||||
let retData: R | undefined = undefined;
|
||||
let databack = () => {
|
||||
if (!complete) {
|
||||
this.EventTask.delete(id);
|
||||
reject(new Error('NTEvent EventName:' + this.EventData.EventName + ' EventListener:' + this.EventData.ListenerName + ' timeout'));
|
||||
} else {
|
||||
resolve(retData as R);
|
||||
}
|
||||
}
|
||||
let Timeouter = setTimeout(databack, timeout);
|
||||
|
||||
this.EventTask.set(id, {
|
||||
mode: NTEventMode.Once,
|
||||
timeout: timeout,
|
||||
createtime: Date.now(),
|
||||
func: (...args: any[]) => {
|
||||
clearTimeout(Timeouter);
|
||||
complete = true;
|
||||
retData = args as R;
|
||||
databack();
|
||||
}
|
||||
});
|
||||
this.EventData.EventFunction(...args);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
import { NodeIKernelMsgListener } from '@/core';
|
||||
import { NodeIQQNTWrapperSession } from '@/core/wrapper';
|
||||
import { randomUUID } from 'crypto';
|
||||
|
||||
interface Internal_MapKey {
|
||||
timeout: number,
|
||||
createtime: number,
|
||||
func: (...arg: any[]) => any,
|
||||
}
|
||||
|
||||
export class ListenerClassBase {
|
||||
[key: string]: string;
|
||||
}
|
||||
|
||||
export interface ListenerIBase {
|
||||
// eslint-disable-next-line @typescript-eslint/no-misused-new
|
||||
new(listener: any): ListenerClassBase;
|
||||
}
|
||||
|
||||
export class NTEventWrapper {
|
||||
|
||||
private ListenerMap: { [key: string]: ListenerIBase } | undefined;//ListenerName-Unique -> Listener构造函数
|
||||
private WrapperSession: NodeIQQNTWrapperSession | undefined;//WrapperSession
|
||||
private ListenerManger: Map<string, ListenerClassBase> = new Map<string, ListenerClassBase>(); //ListenerName-Unique -> Listener实例
|
||||
private EventTask = new Map<string, Map<string, Map<string, Internal_MapKey>>>();//tasks ListenerMainName -> ListenerSubName-> uuid -> {timeout,createtime,func}
|
||||
constructor() {
|
||||
|
||||
}
|
||||
createProxyDispatch(ListenerMainName: string) {
|
||||
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
||||
const current = this;
|
||||
return new Proxy({}, {
|
||||
get(target: any, prop: any, receiver: any) {
|
||||
// console.log('get', prop, typeof target[prop]);
|
||||
if (typeof target[prop] === 'undefined') {
|
||||
// 如果方法不存在,返回一个函数,这个函数调用existentMethod
|
||||
return (...args: any[]) => {
|
||||
current.DispatcherListener.apply(current, [ListenerMainName, prop, ...args]).then();
|
||||
};
|
||||
}
|
||||
// 如果方法存在,正常返回
|
||||
return Reflect.get(target, prop, receiver);
|
||||
}
|
||||
});
|
||||
}
|
||||
init({ ListenerMap, WrapperSession }: { ListenerMap: { [key: string]: typeof ListenerClassBase }, WrapperSession: NodeIQQNTWrapperSession }) {
|
||||
this.ListenerMap = ListenerMap;
|
||||
this.WrapperSession = WrapperSession;
|
||||
}
|
||||
CreatEventFunction<T extends (...args: any) => any>(eventName: string): T | undefined {
|
||||
const eventNameArr = eventName.split('/');
|
||||
type eventType = {
|
||||
[key: string]: () => { [key: string]: (...params: Parameters<T>) => Promise<ReturnType<T>> }
|
||||
}
|
||||
if (eventNameArr.length > 1) {
|
||||
const serviceName = 'get' + eventNameArr[0].replace('NodeIKernel', '');
|
||||
const eventName = eventNameArr[1];
|
||||
//getNodeIKernelGroupListener,GroupService
|
||||
//console.log('2', eventName);
|
||||
const services = (this.WrapperSession as unknown as eventType)[serviceName]();
|
||||
let event = services[eventName];
|
||||
//重新绑定this
|
||||
event = event.bind(services);
|
||||
if (event) {
|
||||
return event as T;
|
||||
}
|
||||
return undefined;
|
||||
}
|
||||
|
||||
}
|
||||
CreatListenerFunction<T>(listenerMainName: string, uniqueCode: string = ''): T {
|
||||
const ListenerType = this.ListenerMap![listenerMainName];
|
||||
let Listener = this.ListenerManger.get(listenerMainName + uniqueCode);
|
||||
if (!Listener && ListenerType) {
|
||||
Listener = new ListenerType(this.createProxyDispatch(listenerMainName));
|
||||
const ServiceSubName = listenerMainName.match(/^NodeIKernel(.*?)Listener$/)![1];
|
||||
const Service = 'NodeIKernel' + ServiceSubName + 'Service/addKernel' + ServiceSubName + 'Listener';
|
||||
const addfunc = this.CreatEventFunction<(listener: T) => number>(Service);
|
||||
addfunc!(Listener as T);
|
||||
//console.log(addfunc!(Listener as T));
|
||||
this.ListenerManger.set(listenerMainName + uniqueCode, Listener);
|
||||
}
|
||||
return Listener as T;
|
||||
}
|
||||
//统一回调清理事件
|
||||
async DispatcherListener(ListenerMainName: string, ListenerSubName: string, ...args: any[]) {
|
||||
//console.log(ListenerMainName, this.EventTask.get(ListenerMainName), ListenerSubName, this.EventTask.get(ListenerMainName)?.get(ListenerSubName));
|
||||
this.EventTask.get(ListenerMainName)?.get(ListenerSubName)?.forEach((task, uuid) => {
|
||||
//console.log(task.func, uuid, task.createtime, task.timeout);
|
||||
if (task.createtime + task.timeout < Date.now()) {
|
||||
this.EventTask.get(ListenerMainName)?.get(ListenerSubName)?.delete(uuid);
|
||||
return;
|
||||
}
|
||||
task.func(...args);
|
||||
});
|
||||
}
|
||||
async CallNoListenerEvent<EventType extends (...args: any[]) => Promise<any>,>(EventName = '', timeout: number = 3000, ...args: Parameters<EventType>) {
|
||||
return new Promise<Awaited<ReturnType<EventType>>>(async (resolve, reject) => {
|
||||
const EventFunc = this.CreatEventFunction<EventType>(EventName);
|
||||
let complete = false;
|
||||
const Timeouter = setTimeout(() => {
|
||||
if (!complete) {
|
||||
reject(new Error('NTEvent EventName:' + EventName + ' timeout'));
|
||||
}
|
||||
}, timeout);
|
||||
const retData = await EventFunc!(...args);
|
||||
complete = true;
|
||||
resolve(retData);
|
||||
});
|
||||
}
|
||||
async CallNormalEvent<EventType extends (...args: any[]) => Promise<any>, ListenerType extends (...args: any[]) => void>(EventName = '', ListenerName = '', waitTimes = 1, timeout: number = 3000, ...args: Parameters<EventType>) {
|
||||
return new Promise<[EventRet: Awaited<ReturnType<EventType>>, ...Parameters<ListenerType>]>(async (resolve, reject) => {
|
||||
const id = randomUUID();
|
||||
let complete = 0;
|
||||
let retData: Parameters<ListenerType> | undefined = undefined;
|
||||
let retEvent: any = {};
|
||||
const databack = () => {
|
||||
if (complete < waitTimes) {
|
||||
reject(new Error('NTEvent EventName:' + EventName + ' ListenerName:' + ListenerName + ' timeout'));
|
||||
} else {
|
||||
resolve([retEvent as Awaited<ReturnType<EventType>>, ...retData!]);
|
||||
}
|
||||
};
|
||||
const Timeouter = setTimeout(databack, timeout);
|
||||
|
||||
const ListenerNameList = ListenerName.split('/');
|
||||
const ListenerMainName = ListenerNameList[0];
|
||||
const ListenerSubName = ListenerNameList[1];
|
||||
const eventCallbak = {
|
||||
timeout: timeout,
|
||||
createtime: Date.now(),
|
||||
func: (...args: any[]) => {
|
||||
complete++;
|
||||
//console.log('func', ...args);
|
||||
retData = args as Parameters<ListenerType>;
|
||||
if (complete >= waitTimes) {
|
||||
clearTimeout(Timeouter);
|
||||
databack();
|
||||
}
|
||||
}
|
||||
};
|
||||
if (!this.EventTask.get(ListenerMainName)) {
|
||||
this.EventTask.set(ListenerMainName, new Map());
|
||||
}
|
||||
if (!(this.EventTask.get(ListenerMainName)?.get(ListenerSubName))) {
|
||||
this.EventTask.get(ListenerMainName)?.set(ListenerSubName, new Map());
|
||||
}
|
||||
this.EventTask.get(ListenerMainName)?.get(ListenerSubName)?.set(id, eventCallbak);
|
||||
this.CreatListenerFunction(ListenerMainName);
|
||||
const EventFunc = this.CreatEventFunction<EventType>(EventName);
|
||||
//console.log("测试打点", args);
|
||||
retEvent = await EventFunc!(...(args as any[]));
|
||||
});
|
||||
}
|
||||
}
|
||||
export const NTEventDispatch = new NTEventWrapper();
|
||||
|
||||
// 示例代码 快速创建事件
|
||||
// let NTEvent = new NTEventWrapper();
|
||||
// let TestEvent = NTEvent.CreatEventFunction<(force: boolean) => Promise<Number>>('NodeIKernelProfileLikeService/GetTest');
|
||||
// if (TestEvent) {
|
||||
// TestEvent(true);
|
||||
// }
|
||||
|
||||
// 示例代码 快速创建监听Listener类
|
||||
// let NTEvent = new NTEventWrapper();
|
||||
// NTEvent.CreatListenerFunction<NodeIKernelMsgListener>('NodeIKernelMsgListener', 'core')
|
||||
|
||||
|
||||
// 调用接口
|
||||
//let NTEvent = new NTEventWrapper();
|
||||
//let ret = await NTEvent.CallNormalEvent<(force: boolean) => Promise<Number>, (data1: string, data2: number) => void>('NodeIKernelProfileLikeService/GetTest', 'NodeIKernelMsgListener/onAddSendMsg', 1, 3000, true);
|
||||
|
||||
// 注册监听 解除监听
|
||||
// NTEventDispatch.RigisterListener('NodeIKernelMsgListener/onAddSendMsg','core',cb);
|
||||
// NTEventDispatch.UnRigisterListener('NodeIKernelMsgListener/onAddSendMsg','core');
|
||||
|
||||
// let GetTest = NTEventDispatch.CreatEvent('NodeIKernelProfileLikeService/GetTest','NodeIKernelMsgListener/onAddSendMsg',Mode);
|
||||
// GetTest('test');
|
||||
|
||||
// always模式
|
||||
// NTEventDispatch.CreatEvent('NodeIKernelProfileLikeService/GetTest','NodeIKernelMsgListener/onAddSendMsg',Mode,(...args:any[])=>{ console.log(args) });
|
@@ -1,145 +1,145 @@
|
||||
import { logError, logDebug } from "@/common/utils/log";
|
||||
|
||||
type group_id = number;
|
||||
type user_id = number;
|
||||
|
||||
class cacheNode<T> {
|
||||
value: T;
|
||||
groupId: group_id;
|
||||
userId: user_id;
|
||||
prev: cacheNode<T> | null;
|
||||
next: cacheNode<T> | null;
|
||||
timestamp: number;
|
||||
|
||||
constructor(groupId: group_id, userId: user_id, value: T) {
|
||||
this.groupId = groupId;
|
||||
this.userId = userId;
|
||||
this.value = value;
|
||||
this.prev = null;
|
||||
this.next = null;
|
||||
this.timestamp = Date.now();
|
||||
}
|
||||
}
|
||||
|
||||
type cache<T> = { [key: group_id]: { [key: user_id]: cacheNode<T> } };
|
||||
class LRU<T> {
|
||||
private maxAge: number;
|
||||
private maxSize: number;
|
||||
private currentSize: number;
|
||||
private cache: cache<T>;
|
||||
private head: cacheNode<T> | null = null;
|
||||
private tail: cacheNode<T> | null = null;
|
||||
private onFuncs: ((node: cacheNode<T>) => void)[] = [];
|
||||
|
||||
constructor(maxAge: number = 2e4, maxSize: number = 5e3) {
|
||||
this.maxAge = maxAge;
|
||||
this.maxSize = maxSize;
|
||||
this.cache = Object.create(null);
|
||||
this.currentSize = 0;
|
||||
|
||||
if (maxSize == 0) return;
|
||||
setInterval(() => this.removeExpired(), this.maxAge);
|
||||
}
|
||||
|
||||
// 移除LRU节点
|
||||
private removeLRUNode(node: cacheNode<T>) {
|
||||
logDebug(
|
||||
"removeLRUNode",
|
||||
node.groupId,
|
||||
node.userId,
|
||||
node.value,
|
||||
this.currentSize
|
||||
);
|
||||
node.prev = node.next = null;
|
||||
delete this.cache[node.groupId][node.userId];
|
||||
this.removeNode(node);
|
||||
this.onFuncs.forEach((func) => func(node));
|
||||
this.currentSize--;
|
||||
}
|
||||
|
||||
public on(func: (node: cacheNode<T>) => void) {
|
||||
this.onFuncs.push(func);
|
||||
}
|
||||
|
||||
private removeExpired() {
|
||||
const now = Date.now();
|
||||
let current = this.tail;
|
||||
const nodesToRemove: cacheNode<T>[] = [];
|
||||
let removedCount = 0;
|
||||
|
||||
// 收集需要删除的节点
|
||||
while (current && now - current.timestamp > this.maxAge) {
|
||||
nodesToRemove.push(current);
|
||||
current = current.prev;
|
||||
removedCount++;
|
||||
if (removedCount >= 100) break;
|
||||
}
|
||||
|
||||
// 更新链表指向
|
||||
if (nodesToRemove.length > 0) {
|
||||
const newTail = nodesToRemove[nodesToRemove.length - 1].prev;
|
||||
if (newTail) {
|
||||
newTail.next = null;
|
||||
} else {
|
||||
this.head = null;
|
||||
}
|
||||
this.tail = newTail;
|
||||
}
|
||||
|
||||
nodesToRemove.forEach((node) => {
|
||||
node.prev = node.next = null;
|
||||
delete this.cache[node.groupId][node.userId];
|
||||
|
||||
this.currentSize--;
|
||||
this.onFuncs.forEach((func) => func(node));
|
||||
});
|
||||
}
|
||||
|
||||
private addNode(node: cacheNode<T>) {
|
||||
node.next = this.head;
|
||||
if (this.head) this.head.prev = node;
|
||||
if (!this.tail) this.tail = node;
|
||||
this.head = node;
|
||||
}
|
||||
|
||||
private removeNode(node: cacheNode<T>) {
|
||||
if (node.prev) node.prev.next = node.next;
|
||||
if (node.next) node.next.prev = node.prev;
|
||||
if (node === this.head) this.head = node.next;
|
||||
if (node === this.tail) this.tail = node.prev;
|
||||
}
|
||||
|
||||
private moveToHead(node: cacheNode<T>) {
|
||||
if (this.head === node) return;
|
||||
|
||||
this.removeNode(node);
|
||||
this.addNode(node);
|
||||
node.prev = null;
|
||||
}
|
||||
|
||||
public set(groupId: group_id, userId: user_id, value: T) {
|
||||
if (!this.cache[groupId]) {
|
||||
this.cache[groupId] = Object.create(null);
|
||||
}
|
||||
|
||||
const groupObject = this.cache[groupId];
|
||||
|
||||
if (groupObject[userId]) {
|
||||
const node = groupObject[userId];
|
||||
node.value = value;
|
||||
node.timestamp = Date.now();
|
||||
this.moveToHead(node);
|
||||
} else {
|
||||
const node = new cacheNode(groupId, userId, value);
|
||||
groupObject[userId] = node;
|
||||
this.currentSize++;
|
||||
this.addNode(node);
|
||||
if (this.currentSize > this.maxSize) {
|
||||
const tail = this.tail!;
|
||||
this.removeLRUNode(tail);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export default LRU;
|
||||
import { logError, logDebug } from '@/common/utils/log';
|
||||
|
||||
type group_id = number;
|
||||
type user_id = number;
|
||||
|
||||
class cacheNode<T> {
|
||||
value: T;
|
||||
groupId: group_id;
|
||||
userId: user_id;
|
||||
prev: cacheNode<T> | null;
|
||||
next: cacheNode<T> | null;
|
||||
timestamp: number;
|
||||
|
||||
constructor(groupId: group_id, userId: user_id, value: T) {
|
||||
this.groupId = groupId;
|
||||
this.userId = userId;
|
||||
this.value = value;
|
||||
this.prev = null;
|
||||
this.next = null;
|
||||
this.timestamp = Date.now();
|
||||
}
|
||||
}
|
||||
|
||||
type cache<T> = { [key: group_id]: { [key: user_id]: cacheNode<T> } };
|
||||
class LRU<T> {
|
||||
private maxAge: number;
|
||||
private maxSize: number;
|
||||
private currentSize: number;
|
||||
private cache: cache<T>;
|
||||
private head: cacheNode<T> | null = null;
|
||||
private tail: cacheNode<T> | null = null;
|
||||
private onFuncs: ((node: cacheNode<T>) => void)[] = [];
|
||||
|
||||
constructor(maxAge: number = 2e4, maxSize: number = 5e3) {
|
||||
this.maxAge = maxAge;
|
||||
this.maxSize = maxSize;
|
||||
this.cache = Object.create(null);
|
||||
this.currentSize = 0;
|
||||
|
||||
if (maxSize == 0) return;
|
||||
setInterval(() => this.removeExpired(), this.maxAge);
|
||||
}
|
||||
|
||||
// 移除LRU节点
|
||||
private removeLRUNode(node: cacheNode<T>) {
|
||||
logDebug(
|
||||
'removeLRUNode',
|
||||
node.groupId,
|
||||
node.userId,
|
||||
node.value,
|
||||
this.currentSize
|
||||
);
|
||||
node.prev = node.next = null;
|
||||
delete this.cache[node.groupId][node.userId];
|
||||
this.removeNode(node);
|
||||
this.onFuncs.forEach((func) => func(node));
|
||||
this.currentSize--;
|
||||
}
|
||||
|
||||
public on(func: (node: cacheNode<T>) => void) {
|
||||
this.onFuncs.push(func);
|
||||
}
|
||||
|
||||
private removeExpired() {
|
||||
const now = Date.now();
|
||||
let current = this.tail;
|
||||
const nodesToRemove: cacheNode<T>[] = [];
|
||||
let removedCount = 0;
|
||||
|
||||
// 收集需要删除的节点
|
||||
while (current && now - current.timestamp > this.maxAge) {
|
||||
nodesToRemove.push(current);
|
||||
current = current.prev;
|
||||
removedCount++;
|
||||
if (removedCount >= 100) break;
|
||||
}
|
||||
|
||||
// 更新链表指向
|
||||
if (nodesToRemove.length > 0) {
|
||||
const newTail = nodesToRemove[nodesToRemove.length - 1].prev;
|
||||
if (newTail) {
|
||||
newTail.next = null;
|
||||
} else {
|
||||
this.head = null;
|
||||
}
|
||||
this.tail = newTail;
|
||||
}
|
||||
|
||||
nodesToRemove.forEach((node) => {
|
||||
node.prev = node.next = null;
|
||||
delete this.cache[node.groupId][node.userId];
|
||||
|
||||
this.currentSize--;
|
||||
this.onFuncs.forEach((func) => func(node));
|
||||
});
|
||||
}
|
||||
|
||||
private addNode(node: cacheNode<T>) {
|
||||
node.next = this.head;
|
||||
if (this.head) this.head.prev = node;
|
||||
if (!this.tail) this.tail = node;
|
||||
this.head = node;
|
||||
}
|
||||
|
||||
private removeNode(node: cacheNode<T>) {
|
||||
if (node.prev) node.prev.next = node.next;
|
||||
if (node.next) node.next.prev = node.prev;
|
||||
if (node === this.head) this.head = node.next;
|
||||
if (node === this.tail) this.tail = node.prev;
|
||||
}
|
||||
|
||||
private moveToHead(node: cacheNode<T>) {
|
||||
if (this.head === node) return;
|
||||
|
||||
this.removeNode(node);
|
||||
this.addNode(node);
|
||||
node.prev = null;
|
||||
}
|
||||
|
||||
public set(groupId: group_id, userId: user_id, value: T) {
|
||||
if (!this.cache[groupId]) {
|
||||
this.cache[groupId] = Object.create(null);
|
||||
}
|
||||
|
||||
const groupObject = this.cache[groupId];
|
||||
|
||||
if (groupObject[userId]) {
|
||||
const node = groupObject[userId];
|
||||
node.value = value;
|
||||
node.timestamp = Date.now();
|
||||
this.moveToHead(node);
|
||||
} else {
|
||||
const node = new cacheNode(groupId, userId, value);
|
||||
groupObject[userId] = node;
|
||||
this.currentSize++;
|
||||
this.addNode(node);
|
||||
if (this.currentSize > this.maxSize) {
|
||||
const tail = this.tail!;
|
||||
this.removeLRUNode(tail);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export default LRU;
|
||||
|
53
src/common/utils/MessageUnique.ts
Normal file
53
src/common/utils/MessageUnique.ts
Normal file
@@ -0,0 +1,53 @@
|
||||
import crypto from 'crypto';
|
||||
|
||||
class LimitedHashTable<K, V> {
|
||||
private keyToValue: Map<K, V> = new Map();
|
||||
private valueToKey: Map<V, K> = new Map();
|
||||
private maxSize: number;
|
||||
private KeyQueneList: K[] = [];
|
||||
private ValueQueneList: V[] = [];
|
||||
constructor(maxSize: number) {
|
||||
this.maxSize = maxSize;
|
||||
}
|
||||
set(key: K, value: V): void {
|
||||
this.keyToValue.set(key, value);
|
||||
this.valueToKey.set(value, key);
|
||||
if (this.KeyQueneList.length >= this.maxSize || this.ValueQueneList.length >= this.maxSize) {
|
||||
this.KeyQueneList.shift();
|
||||
this.ValueQueneList.shift();
|
||||
}
|
||||
}
|
||||
|
||||
getValue(key: K): V | undefined {
|
||||
return this.keyToValue.get(key);
|
||||
}
|
||||
|
||||
getKey(value: V): K | undefined {
|
||||
return this.valueToKey.get(value);
|
||||
}
|
||||
|
||||
delete(key: K): void {
|
||||
const value = this.keyToValue.get(key);
|
||||
if (value !== undefined) {
|
||||
this.keyToValue.delete(key);
|
||||
this.valueToKey.delete(value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class MessageUniqueWrapper {
|
||||
private msgIdMap: LimitedHashTable<number, string> = new LimitedHashTable(1000);
|
||||
createMsg(MsgId: string) {
|
||||
let ShortId = parseInt(crypto.createHash('sha1').update('2345').digest('hex').slice(0, 8), 16);
|
||||
this.msgIdMap.set(ShortId, MsgId);
|
||||
return ShortId;
|
||||
}
|
||||
getMsgIdByShortId(ShortId: number) {
|
||||
return this.msgIdMap.getValue(ShortId);
|
||||
}
|
||||
getShortIdByMsgId(MsgId: string) {
|
||||
return this.msgIdMap.getKey(MsgId);
|
||||
}
|
||||
}
|
||||
|
||||
export const MessageUnique = new MessageUniqueWrapper();
|
@@ -2,6 +2,7 @@ import path from 'node:path';
|
||||
import fs from 'node:fs';
|
||||
import os from 'node:os';
|
||||
import { systemPlatform } from '@/common/utils/system';
|
||||
import { logError } from '@/common/utils/log';
|
||||
|
||||
export const exePath = process.execPath;
|
||||
|
||||
@@ -49,7 +50,7 @@ if (fs.existsSync(configVersionInfoPath)) {
|
||||
const _ =JSON.parse(fs.readFileSync(configVersionInfoPath).toString());
|
||||
_qqVersionConfigInfo = Object.assign(_qqVersionConfigInfo, _);
|
||||
} catch (e) {
|
||||
console.error('Load QQ version config info failed, Use default version', e);
|
||||
logError('Load QQ version config info failed, Use default version', e);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -64,7 +65,7 @@ export const qqPkgInfo: QQPkgInfo = JSON.parse(fs.readFileSync(pkgInfoPath).toSt
|
||||
// platVer: '10.0.26100',
|
||||
// clientVer: '9.9.9-23159',
|
||||
|
||||
let _appid: string = '537213803'; // 默认为 Windows 平台的 appid
|
||||
let _appid: string = '537216417'; // 默认为 Windows 平台的 appid
|
||||
if (systemPlatform === 'linux') {
|
||||
_appid = '537213827';
|
||||
}
|
||||
|
@@ -24,7 +24,7 @@ export async function encodeSilk(filePath: string) {
|
||||
const fileHeader = buffer.toString('hex', 0, bytesToRead);
|
||||
return fileHeader;
|
||||
} catch (err) {
|
||||
console.error('读取文件错误:', err);
|
||||
logError('读取文件错误:', err);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@@ -4,7 +4,6 @@ import fs from 'fs';
|
||||
import { dirname } from 'node:path';
|
||||
import { fileURLToPath } from 'node:url';
|
||||
|
||||
|
||||
const __filename = fileURLToPath(import.meta.url);
|
||||
const __dirname = dirname(__filename);
|
||||
export function getModuleWithArchName(moduleName: string) {
|
||||
|
@@ -1,509 +1,449 @@
|
||||
import { ElementType, FileElement, PicElement, PttElement, RawMessage, VideoElement } from '../../core/src/entities';
|
||||
|
||||
import sqlite3 from 'sqlite3';
|
||||
import { log, logDebug, logError } from '@/common/utils/log';
|
||||
import { NTQQMsgApi } from '@/core';
|
||||
import LRU from "@/common/utils/LRUCache";
|
||||
|
||||
export interface IRember {
|
||||
last_sent_time: number;
|
||||
join_time: number;
|
||||
user_id: number;
|
||||
}
|
||||
|
||||
|
||||
type DBMsg = {
|
||||
id: number,
|
||||
shortId: number,
|
||||
longId: string,
|
||||
seq: number,
|
||||
peerUid: string,
|
||||
chatType: number,
|
||||
}
|
||||
|
||||
type DBFile = {
|
||||
name: string; // 文件名
|
||||
path: string;
|
||||
url: string;
|
||||
size: number;
|
||||
uuid: string;
|
||||
msgId: string;
|
||||
elementId: string;
|
||||
element: PicElement | VideoElement | FileElement | PttElement;
|
||||
elementType: ElementType.PIC | ElementType.VIDEO | ElementType.FILE | ElementType.PTT;
|
||||
}
|
||||
|
||||
|
||||
class DBUtilBase {
|
||||
protected db: sqlite3.Database | undefined;
|
||||
|
||||
async init(dbPath: string) {
|
||||
if (this.db) {
|
||||
return;
|
||||
}
|
||||
return new Promise<void>((resolve, reject) => {
|
||||
this.db = new sqlite3.Database(dbPath, sqlite3.OPEN_READWRITE | sqlite3.OPEN_CREATE, (err) => {
|
||||
if (err) {
|
||||
logError('Could not connect to database', err);
|
||||
reject(err);
|
||||
return;
|
||||
}
|
||||
this.createTable();
|
||||
resolve();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
protected createTable() {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
|
||||
close() {
|
||||
this.db?.close();
|
||||
}
|
||||
}
|
||||
|
||||
class DBUtil extends DBUtilBase {
|
||||
private msgCache: Map<string | number, RawMessage> = new Map<string | number, RawMessage>();
|
||||
private globalMsgShortId = -2147483640;
|
||||
private groupIds: number[] = [];
|
||||
private LURCache = new LRU<number>();
|
||||
private LastSentCache = new (class {
|
||||
private cache: { gid: number; uid: number }[] = [];
|
||||
private maxSize: number;
|
||||
|
||||
constructor(maxSize: number = 5000) {
|
||||
this.maxSize = maxSize;
|
||||
}
|
||||
|
||||
get(gid: number, uid: number): boolean {
|
||||
const exists = this.cache.some(
|
||||
(entry) => entry.gid === gid && entry.uid === uid
|
||||
);
|
||||
if (!exists) {
|
||||
this.cache.push({ gid, uid });
|
||||
if (this.cache.length > this.maxSize) {
|
||||
this.cache.shift();
|
||||
}
|
||||
}
|
||||
|
||||
return exists;
|
||||
}
|
||||
})();
|
||||
|
||||
constructor() {
|
||||
super();
|
||||
const interval = 1000 * 60 * 10; // 10分钟清理一次缓存
|
||||
setInterval(() => {
|
||||
logDebug('清理消息缓存');
|
||||
this.msgCache.forEach((msg, key) => {
|
||||
if ((Date.now() - parseInt(msg.msgTime) * 1000) > interval) {
|
||||
this.msgCache.delete(key);
|
||||
}
|
||||
});
|
||||
}, interval);
|
||||
}
|
||||
|
||||
async init(dbPath: string) {
|
||||
await super.init(dbPath);
|
||||
this.globalMsgShortId = await this.getCurrentMaxShortId();
|
||||
|
||||
|
||||
// 初始化群缓存列表
|
||||
this.db!.serialize(() => {
|
||||
const sql = `SELECT * FROM sqlite_master WHERE type='table'`;
|
||||
this.db!.all(sql, [], (err, rows: { name: string }[]) => {
|
||||
if (err) return logError(err);
|
||||
rows.forEach((row) => this.groupIds.push(parseInt(row.name)));
|
||||
//logDebug(`已加载 ${groupIds.length} 个群`);
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
this.LURCache.on(async (node) => {
|
||||
const { value: time, groupId, userId } = node;
|
||||
|
||||
logDebug("插入发言时间", userId, groupId);
|
||||
await this.createGroupInfoTimeTableIfNotExist(groupId);
|
||||
|
||||
const method = await this.getDataSetMethod(groupId, userId);
|
||||
logDebug("插入发言时间方法判断", userId, groupId, method);
|
||||
|
||||
const sql =
|
||||
method == "update"
|
||||
? `UPDATE "${groupId}" SET last_sent_time = ? WHERE user_id = ?`
|
||||
: `INSERT INTO "${groupId}" (last_sent_time, user_id) VALUES (?, ?)`;
|
||||
|
||||
this.db!.all(sql, [time, userId], (err) => {
|
||||
if (err) {
|
||||
return logError("插入/更新发言时间失败", userId, groupId);
|
||||
}
|
||||
logDebug("插入/更新发言时间成功", userId, groupId);
|
||||
});
|
||||
|
||||
});
|
||||
}
|
||||
async getDataSetMethod(groupId: number, userId: number) {
|
||||
// 缓存记录
|
||||
if (this.LastSentCache.get(groupId, userId)) {
|
||||
logDebug("缓存命中", userId, groupId);
|
||||
return "update";
|
||||
}
|
||||
|
||||
// 数据库判断
|
||||
return new Promise<"insert" | "update">((resolve, reject) => {
|
||||
this.db!.all(
|
||||
`SELECT * FROM "${groupId}" WHERE user_id = ?`,
|
||||
[userId],
|
||||
(err, rows) => {
|
||||
if (err) {
|
||||
logError("查询发言时间存在失败", userId, groupId, err);
|
||||
return logError("插入发言时间失败", userId, groupId, err);
|
||||
}
|
||||
|
||||
if (rows.length === 0) {
|
||||
logDebug("查询发言时间不存在", userId, groupId);
|
||||
return resolve("insert");
|
||||
}
|
||||
|
||||
logDebug("查询发言时间存在", userId, groupId);
|
||||
resolve("update");
|
||||
}
|
||||
);
|
||||
});
|
||||
}
|
||||
async createGroupInfoTimeTableIfNotExist(groupId: number) {
|
||||
const createTableSQL = (groupId: number) =>
|
||||
`CREATE TABLE IF NOT EXISTS "${groupId}" (
|
||||
user_id INTEGER,
|
||||
last_sent_time INTEGER,
|
||||
join_time INTEGER,
|
||||
PRIMARY KEY (user_id)
|
||||
);`;
|
||||
|
||||
if (this.groupIds.includes(groupId)) {
|
||||
return;
|
||||
}
|
||||
return new Promise((resolve, reject) => {
|
||||
const sql = createTableSQL(groupId);
|
||||
this.db!.all(sql, (err) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
return;
|
||||
}
|
||||
this.groupIds.push(groupId);
|
||||
resolve(true);
|
||||
});
|
||||
});
|
||||
}
|
||||
protected createTable() {
|
||||
// 消息记录
|
||||
const createTableSQL = `
|
||||
CREATE TABLE IF NOT EXISTS msgs (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
shortId INTEGER NOT NULL UNIQUE,
|
||||
longId TEXT NOT NULL UNIQUE,
|
||||
seq INTEGER NOT NULL,
|
||||
peerUid TEXT NOT NULL,
|
||||
chatType INTEGER NOT NULL
|
||||
)`;
|
||||
this.db!.run(createTableSQL, function (err) {
|
||||
if (err) {
|
||||
logError('Could not create table msgs', err.stack);
|
||||
}
|
||||
});
|
||||
|
||||
// 文件缓存
|
||||
const createFileTableSQL = `
|
||||
CREATE TABLE IF NOT EXISTS files (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
name TEXT NOT NULL,
|
||||
path TEXT NOT NULL,
|
||||
url TEXT,
|
||||
size INTEGER NOT NULL,
|
||||
uuid TEXT,
|
||||
elementType INTEGER,
|
||||
element TEXT NOT NULL,
|
||||
elementId TEXT NOT NULL,
|
||||
msgId TEXT NOT NULL
|
||||
)`;
|
||||
this.db!.run(createFileTableSQL, function (err) {
|
||||
if (err) {
|
||||
logError('Could not create table files', err);
|
||||
}
|
||||
});
|
||||
|
||||
// 接收到的临时会话消息uid
|
||||
const createTempUinTableSQL = `
|
||||
CREATE TABLE IF NOT EXISTS temp_uins (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
uid TEXT,
|
||||
uin TEXT
|
||||
)`;
|
||||
this.db!.run(createTempUinTableSQL, function (err) {
|
||||
if (err) {
|
||||
logError('Could not create table temp_uins', err);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private async getCurrentMaxShortId() {
|
||||
return new Promise<number>((resolve, reject) => {
|
||||
this.db!.get('SELECT MAX(shortId) as maxId FROM msgs', (err, row: { maxId: number }) => {
|
||||
if (err) {
|
||||
logDebug('Could not get max short id, Use default -2147483640', err);
|
||||
return resolve(-2147483640);
|
||||
}
|
||||
logDebug('数据库中消息最大短id', row?.maxId);
|
||||
resolve(row?.maxId ?? -2147483640);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
private async getMsg(query: string, params: any[]) {
|
||||
const stmt = this.db!.prepare(query);
|
||||
return new Promise<RawMessage | null>((resolve, reject) => {
|
||||
stmt.get(...params, (err: any, row: DBMsg) => {
|
||||
// log("getMsg", row, err);
|
||||
if (err) {
|
||||
logError('Could not get msg', err, query, params);
|
||||
return resolve(null);
|
||||
}
|
||||
if (!row) {
|
||||
// logDebug('不存在数据库中的消息,不进行处理', query, params);
|
||||
resolve(null);
|
||||
return;
|
||||
}
|
||||
const msgId = row.longId;
|
||||
NTQQMsgApi.getMsgsByMsgId({ peerUid: row.peerUid, chatType: row.chatType }, [msgId]).then(res => {
|
||||
const msg = res.msgList[0];
|
||||
if (!msg) {
|
||||
resolve(null);
|
||||
return;
|
||||
}
|
||||
msg.id = row.shortId;
|
||||
resolve(msg);
|
||||
}).catch(e => {
|
||||
resolve(null);
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
async getMsgByShortId(shortId: number): Promise<RawMessage | null> {
|
||||
if (this.msgCache.has(shortId)) {
|
||||
return this.msgCache.get(shortId)!;
|
||||
}
|
||||
const getStmt = 'SELECT * FROM msgs WHERE shortId = ?';
|
||||
return this.getMsg(getStmt, [shortId]);
|
||||
}
|
||||
|
||||
async getMsgByLongId(longId: string): Promise<RawMessage | null> {
|
||||
if (this.msgCache.has(longId)) {
|
||||
return this.msgCache.get(longId)!;
|
||||
}
|
||||
return this.getMsg('SELECT * FROM msgs WHERE longId = ?', [longId]);
|
||||
}
|
||||
|
||||
async getMsgBySeq(peerUid: string, seq: string): Promise<RawMessage | null> {
|
||||
const stmt = 'SELECT * FROM msgs WHERE peerUid = ? AND seq = ?';
|
||||
return this.getMsg(stmt, [peerUid, seq]);
|
||||
}
|
||||
|
||||
async addMsg(msg: RawMessage, update = true): Promise<number> {
|
||||
const existMsg = await this.getMsgByLongId(msg.msgId);
|
||||
if (existMsg) {
|
||||
// logDebug('消息已存在,更新数据库', msg.msgId);
|
||||
if (update) this.updateMsg(msg).then();
|
||||
return existMsg.id!;
|
||||
}
|
||||
const stmt = this.db!.prepare('INSERT INTO msgs (shortId, longId, seq, peerUid, chatType) VALUES (?, ?, ?, ?, ?)');
|
||||
// const runAsync = promisify(stmt.run.bind(stmt));
|
||||
const shortId = ++this.globalMsgShortId;
|
||||
msg.id = shortId;
|
||||
//logDebug(`记录消息到数据库, 消息长id: ${msg.msgId}, 短id: ${msg.id}`);
|
||||
this.msgCache.set(shortId, msg);
|
||||
this.msgCache.set(msg.msgId, msg);
|
||||
stmt.run(this.globalMsgShortId, msg.msgId, msg.msgSeq.toString(), msg.peerUid, msg.chatType, (err: any) => {
|
||||
if (err) {
|
||||
if (err.errno === 19) {
|
||||
this.getMsgByLongId(msg.msgId).then((msg: RawMessage | null) => {
|
||||
if (msg) {
|
||||
this.msgCache.set(shortId, msg);
|
||||
this.msgCache.set(msg.msgId, msg);
|
||||
// logDebug('获取消息短id成功', msg.id);
|
||||
} else {
|
||||
logError('db could not get msg by long id', err);
|
||||
}
|
||||
}).catch(e => logError('db getMsgByLongId error', e));
|
||||
} else {
|
||||
logError('db could not add msg', err);
|
||||
}
|
||||
}
|
||||
});
|
||||
return shortId;
|
||||
}
|
||||
|
||||
async updateMsg(msg: RawMessage) {
|
||||
const existMsg = this.msgCache.get(msg.msgId);
|
||||
if (existMsg) {
|
||||
Object.assign(existMsg, msg);
|
||||
}
|
||||
//logDebug(`更新消息, shortId:${msg.id}, seq: ${msg.msgSeq}, msgId: ${msg.msgId}`);
|
||||
const stmt = this.db!.prepare('UPDATE msgs SET seq=? WHERE longId=?');
|
||||
stmt.run(msg.msgSeq, msg.msgId, (err: any) => {
|
||||
if (err) {
|
||||
logError('updateMsg db error', err);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
async addFileCache(file: DBFile) {
|
||||
const stmt = this.db!.prepare('INSERT INTO files (name, path, url, size, uuid, elementType ,element, elementId, msgId) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)');
|
||||
return new Promise((resolve, reject) => {
|
||||
stmt.run(file.name, file.path, file.url, file.size, file.uuid,
|
||||
file.elementType,
|
||||
JSON.stringify(file.element),
|
||||
file.elementId,
|
||||
file.msgId,
|
||||
function (err: any) {
|
||||
if (err) {
|
||||
logError('db could not add file', err);
|
||||
reject(err);
|
||||
}
|
||||
resolve(null);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
private async getFileCache(query: string, params: any[]) {
|
||||
const stmt = this.db!.prepare(query);
|
||||
return new Promise<DBFile | null>((resolve, reject) => {
|
||||
stmt.get(...params, (err: any, row: DBFile & { element: string }) => {
|
||||
if (err) {
|
||||
logError('db could not get file cache', err);
|
||||
reject(err);
|
||||
}
|
||||
if (row) {
|
||||
row.element = JSON.parse(row.element);
|
||||
}
|
||||
resolve(row);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
async getFileCacheByName(name: string): Promise<DBFile | null> {
|
||||
return this.getFileCache('SELECT * FROM files WHERE name = ?', [name]);
|
||||
}
|
||||
|
||||
async getFileCacheByUuid(uuid: string): Promise<DBFile | null> {
|
||||
return this.getFileCache('SELECT * FROM files WHERE uuid = ?', [uuid]);
|
||||
}
|
||||
|
||||
// todo: 是否所有的文件都有uuid?语音消息有没有uuid?
|
||||
async updateFileCache(file: DBFile) {
|
||||
const stmt = this.db!.prepare('UPDATE files SET path = ?, url = ? WHERE uuid = ?');
|
||||
return new Promise((resolve, reject) => {
|
||||
stmt.run(file.path, file.url, file.uuid, function (err: any) {
|
||||
if (err) {
|
||||
logError('db could not update file cache', err);
|
||||
reject(err);
|
||||
}
|
||||
resolve(null);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
// 被动收到的临时会话消息uin->uid
|
||||
async getReceivedTempUinMap() {
|
||||
const stmt = 'SELECT * FROM temp_uins';
|
||||
return new Promise<Record<string, string>>((resolve, reject) => {
|
||||
this.db!.all(stmt, (err, rows: { uin: string, uid: string }[]) => {
|
||||
if (err) {
|
||||
logError('db could not get temp uin map', err);
|
||||
reject(err);
|
||||
}
|
||||
const map: Record<string, string> = {};
|
||||
rows.forEach(row => {
|
||||
map[row.uin] = row.uid;
|
||||
});
|
||||
resolve(map);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
// 通过uin获取临时会话消息uid
|
||||
async getUidByTempUin(uid: string) {
|
||||
const stmt = 'SELECT * FROM temp_uins WHERE uin = ?';
|
||||
return new Promise<string>((resolve, reject) => {
|
||||
this.db!.get(stmt, [uid], (err, row: { uin: string, uid: string }) => {
|
||||
if (err) {
|
||||
logError('db could not get temp uin map', err);
|
||||
reject(err);
|
||||
}
|
||||
resolve(row?.uid);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
async addTempUin(uin: string, uid: string) {
|
||||
const existUid = await this.getUidByTempUin(uin);
|
||||
if (!existUid) {
|
||||
const stmt = this.db!.prepare('INSERT INTO temp_uins (uin, uid) VALUES (?, ?)');
|
||||
return new Promise((resolve, reject) => {
|
||||
stmt.run(uin, uid, function (err: any) {
|
||||
if (err) {
|
||||
logError('db could not add temp uin', err);
|
||||
reject(err);
|
||||
}
|
||||
resolve(null);
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
async getLastSentTimeAndJoinTime(
|
||||
groupId: number
|
||||
): Promise<IRember[]> {
|
||||
logDebug("读取发言时间", groupId);
|
||||
return new Promise<IRember[]>((resolve, reject) => {
|
||||
this.db!.all(`SELECT * FROM "${groupId}" `, (err, rows: IRember[]) => {
|
||||
if (err) {
|
||||
logError("查询发言时间失败", groupId);
|
||||
return resolve([]);
|
||||
}
|
||||
logDebug("查询发言时间成功", groupId, rows);
|
||||
resolve(rows);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
insertLastSentTime(
|
||||
groupId: number,
|
||||
userId: number,
|
||||
time: number
|
||||
) {
|
||||
this.LURCache.set(groupId, userId, time)
|
||||
}
|
||||
async insertJoinTime(
|
||||
groupId: number,
|
||||
userId: number,
|
||||
time: number
|
||||
) {
|
||||
await this.createGroupInfoTimeTableIfNotExist(groupId);
|
||||
this.db!.all(
|
||||
`INSERT OR REPLACE INTO "${groupId}" (user_id, last_sent_time, join_time) VALUES (?,?,?)`,
|
||||
[userId, time, time],
|
||||
(err) => {
|
||||
if (err)
|
||||
logError(err),
|
||||
Promise.reject(),
|
||||
console.log("插入入群时间失败", userId, groupId);
|
||||
}
|
||||
);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
export const dbUtil = new DBUtil();
|
||||
import { ElementType, FileElement, PicElement, PttElement, RawMessage, VideoElement } from '../../core/src/entities';
|
||||
|
||||
import sqlite3 from 'sqlite3';
|
||||
import { log, logDebug, logError } from '@/common/utils/log';
|
||||
import { NTQQMsgApi } from '@/core';
|
||||
import LRU from '@/common/utils/LRUCache';
|
||||
|
||||
export interface IRember {
|
||||
last_sent_time: number;
|
||||
join_time: number;
|
||||
user_id: number;
|
||||
}
|
||||
|
||||
|
||||
type DBMsg = {
|
||||
id: number,
|
||||
shortId: number,
|
||||
longId: string,
|
||||
seq: number,
|
||||
peerUid: string,
|
||||
chatType: number,
|
||||
}
|
||||
|
||||
type DBFile = {
|
||||
name: string; // 文件名
|
||||
path: string;
|
||||
url: string;
|
||||
size: number;
|
||||
uuid: string;
|
||||
msgId: string;
|
||||
elementId: string;
|
||||
element: PicElement | VideoElement | FileElement | PttElement;
|
||||
elementType: ElementType.PIC | ElementType.VIDEO | ElementType.FILE | ElementType.PTT;
|
||||
}
|
||||
|
||||
|
||||
class DBUtilBase {
|
||||
protected db: sqlite3.Database | undefined;
|
||||
|
||||
async init(dbPath: string) {
|
||||
if (this.db) {
|
||||
return;
|
||||
}
|
||||
return new Promise<void>((resolve, reject) => {
|
||||
this.db = new sqlite3.Database(dbPath, sqlite3.OPEN_READWRITE | sqlite3.OPEN_CREATE, (err) => {
|
||||
if (err) {
|
||||
logError('Could not connect to database', err);
|
||||
reject(err);
|
||||
return;
|
||||
}
|
||||
this.createTable();
|
||||
resolve();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
protected createTable() {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
|
||||
close() {
|
||||
this.db?.close();
|
||||
}
|
||||
}
|
||||
|
||||
class DBUtil extends DBUtilBase {
|
||||
private msgCache: Map<string | number, RawMessage> = new Map<string | number, RawMessage>();
|
||||
private globalMsgShortId = -2147483640;
|
||||
private groupIds: number[] = [];
|
||||
private LURCache = new LRU<number>();
|
||||
private LastSentCache = new (class {
|
||||
private cache: { gid: number; uid: number }[] = [];
|
||||
private maxSize: number;
|
||||
|
||||
constructor(maxSize: number = 5000) {
|
||||
this.maxSize = maxSize;
|
||||
}
|
||||
|
||||
get(gid: number, uid: number): boolean {
|
||||
const exists = this.cache.some(
|
||||
(entry) => entry.gid === gid && entry.uid === uid
|
||||
);
|
||||
if (!exists) {
|
||||
this.cache.push({ gid, uid });
|
||||
if (this.cache.length > this.maxSize) {
|
||||
this.cache.shift();
|
||||
}
|
||||
}
|
||||
|
||||
return exists;
|
||||
}
|
||||
})();
|
||||
|
||||
constructor() {
|
||||
super();
|
||||
const interval = 1000 * 60 * 10; // 10分钟清理一次缓存
|
||||
setInterval(() => {
|
||||
logDebug('清理消息缓存');
|
||||
this.msgCache.forEach((msg, key) => {
|
||||
if ((Date.now() - parseInt(msg.msgTime) * 1000) > interval) {
|
||||
this.msgCache.delete(key);
|
||||
}
|
||||
});
|
||||
}, interval);
|
||||
}
|
||||
|
||||
async init(dbPath: string) {
|
||||
await super.init(dbPath);
|
||||
this.globalMsgShortId = await this.getCurrentMaxShortId();
|
||||
|
||||
|
||||
// 初始化群缓存列表
|
||||
this.db!.serialize(() => {
|
||||
const sql = 'SELECT * FROM sqlite_master WHERE type=\'table\'';
|
||||
this.db!.all(sql, [], (err, rows: { name: string }[]) => {
|
||||
if (err) return logError(err);
|
||||
rows.forEach((row) => this.groupIds.push(parseInt(row.name)));
|
||||
//logDebug(`已加载 ${groupIds.length} 个群`);
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
this.LURCache.on(async (node) => {
|
||||
const { value: time, groupId, userId } = node;
|
||||
|
||||
logDebug('插入发言时间', userId, groupId);
|
||||
await this.createGroupInfoTimeTableIfNotExist(groupId);
|
||||
|
||||
const method = await this.getDataSetMethod(groupId, userId);
|
||||
logDebug('插入发言时间方法判断', userId, groupId, method);
|
||||
|
||||
const sql =
|
||||
method == 'update'
|
||||
? `UPDATE "${groupId}" SET last_sent_time = ? WHERE user_id = ?`
|
||||
: `INSERT INTO "${groupId}" (last_sent_time, user_id) VALUES (?, ?)`;
|
||||
|
||||
this.db!.all(sql, [time, userId], (err) => {
|
||||
if (err) {
|
||||
return logError('插入/更新发言时间失败', userId, groupId);
|
||||
}
|
||||
logDebug('插入/更新发言时间成功', userId, groupId);
|
||||
});
|
||||
|
||||
});
|
||||
}
|
||||
async getDataSetMethod(groupId: number, userId: number) {
|
||||
// 缓存记录
|
||||
if (this.LastSentCache.get(groupId, userId)) {
|
||||
logDebug('缓存命中', userId, groupId);
|
||||
return 'update';
|
||||
}
|
||||
|
||||
// 数据库判断
|
||||
return new Promise<'insert' | 'update'>((resolve, reject) => {
|
||||
this.db!.all(
|
||||
`SELECT * FROM "${groupId}" WHERE user_id = ?`,
|
||||
[userId],
|
||||
(err, rows) => {
|
||||
if (err) {
|
||||
logError('查询发言时间存在失败', userId, groupId, err);
|
||||
return logError('插入发言时间失败', userId, groupId, err);
|
||||
}
|
||||
|
||||
if (rows.length === 0) {
|
||||
logDebug('查询发言时间不存在', userId, groupId);
|
||||
return resolve('insert');
|
||||
}
|
||||
|
||||
logDebug('查询发言时间存在', userId, groupId);
|
||||
resolve('update');
|
||||
}
|
||||
);
|
||||
});
|
||||
}
|
||||
async createGroupInfoTimeTableIfNotExist(groupId: number) {
|
||||
const createTableSQL = (groupId: number) =>
|
||||
`CREATE TABLE IF NOT EXISTS "${groupId}" (
|
||||
user_id INTEGER,
|
||||
last_sent_time INTEGER,
|
||||
join_time INTEGER,
|
||||
PRIMARY KEY (user_id)
|
||||
);`;
|
||||
|
||||
if (this.groupIds.includes(groupId)) {
|
||||
return;
|
||||
}
|
||||
return new Promise((resolve, reject) => {
|
||||
const sql = createTableSQL(groupId);
|
||||
this.db!.all(sql, (err) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
return;
|
||||
}
|
||||
this.groupIds.push(groupId);
|
||||
resolve(true);
|
||||
});
|
||||
});
|
||||
}
|
||||
protected createTable() {
|
||||
// 消息记录
|
||||
const createTableSQL = `
|
||||
CREATE TABLE IF NOT EXISTS msgs (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
shortId INTEGER NOT NULL UNIQUE,
|
||||
longId TEXT NOT NULL UNIQUE,
|
||||
seq INTEGER NOT NULL,
|
||||
peerUid TEXT NOT NULL,
|
||||
chatType INTEGER NOT NULL
|
||||
)`;
|
||||
this.db!.run(createTableSQL, function (err) {
|
||||
if (err) {
|
||||
logError('Could not create table msgs', err.stack);
|
||||
}
|
||||
});
|
||||
|
||||
// 文件缓存
|
||||
const createFileTableSQL = `
|
||||
CREATE TABLE IF NOT EXISTS files (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
name TEXT NOT NULL,
|
||||
path TEXT NOT NULL,
|
||||
url TEXT,
|
||||
size INTEGER NOT NULL,
|
||||
uuid TEXT,
|
||||
elementType INTEGER,
|
||||
element TEXT NOT NULL,
|
||||
elementId TEXT NOT NULL,
|
||||
msgId TEXT NOT NULL
|
||||
)`;
|
||||
this.db!.run(createFileTableSQL, function (err) {
|
||||
if (err) {
|
||||
logError('Could not create table files', err);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private async getCurrentMaxShortId() {
|
||||
return new Promise<number>((resolve, reject) => {
|
||||
this.db!.get('SELECT MAX(shortId) as maxId FROM msgs', (err, row: { maxId: number }) => {
|
||||
if (err) {
|
||||
logDebug('Could not get max short id, Use default -2147483640', err);
|
||||
return resolve(-2147483640);
|
||||
}
|
||||
logDebug('数据库中消息最大短id', row?.maxId);
|
||||
resolve(row?.maxId ?? -2147483640);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
private async getMsg(query: string, params: any[]) {
|
||||
const stmt = this.db!.prepare(query);
|
||||
return new Promise<RawMessage | null>((resolve, reject) => {
|
||||
stmt.get(...params, (err: any, row: DBMsg) => {
|
||||
// log("getMsg", row, err);
|
||||
if (err) {
|
||||
logError('Could not get msg', err, query, params);
|
||||
return resolve(null);
|
||||
}
|
||||
if (!row) {
|
||||
// logDebug('不存在数据库中的消息,不进行处理', query, params);
|
||||
resolve(null);
|
||||
return;
|
||||
}
|
||||
const msgId = row.longId;
|
||||
NTQQMsgApi.getMsgsByMsgId({ peerUid: row.peerUid, chatType: row.chatType }, [msgId]).then(res => {
|
||||
const msg = res.msgList[0];
|
||||
if (!msg) {
|
||||
resolve(null);
|
||||
return;
|
||||
}
|
||||
msg.id = row.shortId;
|
||||
resolve(msg);
|
||||
}).catch(e => {
|
||||
resolve(null);
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
async getMsgByShortId(shortId: number): Promise<RawMessage | null> {
|
||||
if (this.msgCache.has(shortId)) {
|
||||
return this.msgCache.get(shortId)!;
|
||||
}
|
||||
const getStmt = 'SELECT * FROM msgs WHERE shortId = ?';
|
||||
return this.getMsg(getStmt, [shortId]);
|
||||
}
|
||||
|
||||
async getMsgByLongId(longId: string): Promise<RawMessage | null> {
|
||||
if (this.msgCache.has(longId)) {
|
||||
return this.msgCache.get(longId)!;
|
||||
}
|
||||
return this.getMsg('SELECT * FROM msgs WHERE longId = ?', [longId]);
|
||||
}
|
||||
|
||||
async getMsgBySeq(peerUid: string, seq: string): Promise<RawMessage | null> {
|
||||
const stmt = 'SELECT * FROM msgs WHERE peerUid = ? AND seq = ?';
|
||||
return this.getMsg(stmt, [peerUid, seq]);
|
||||
}
|
||||
|
||||
async addMsg(msg: RawMessage, update = true): Promise<number> {
|
||||
const existMsg = await this.getMsgByLongId(msg.msgId);
|
||||
if (existMsg) {
|
||||
// logDebug('消息已存在,更新数据库', msg.msgId);
|
||||
if (update) this.updateMsg(msg).then();
|
||||
return existMsg.id!;
|
||||
}
|
||||
const stmt = this.db!.prepare('INSERT INTO msgs (shortId, longId, seq, peerUid, chatType) VALUES (?, ?, ?, ?, ?)');
|
||||
// const runAsync = promisify(stmt.run.bind(stmt));
|
||||
const shortId = ++this.globalMsgShortId;
|
||||
msg.id = shortId;
|
||||
//logDebug(`记录消息到数据库, 消息长id: ${msg.msgId}, 短id: ${msg.id}`);
|
||||
this.msgCache.set(shortId, msg);
|
||||
this.msgCache.set(msg.msgId, msg);
|
||||
stmt.run(this.globalMsgShortId, msg.msgId, msg.msgSeq.toString(), msg.peerUid, msg.chatType, (err: any) => {
|
||||
if (err) {
|
||||
if (err.errno === 19) {
|
||||
this.getMsgByLongId(msg.msgId).then((msg: RawMessage | null) => {
|
||||
if (msg) {
|
||||
this.msgCache.set(shortId, msg);
|
||||
this.msgCache.set(msg.msgId, msg);
|
||||
// logDebug('获取消息短id成功', msg.id);
|
||||
} else {
|
||||
logError('db could not get msg by long id', err);
|
||||
}
|
||||
}).catch(e => logError('db getMsgByLongId error', e));
|
||||
} else {
|
||||
logError('db could not add msg', err);
|
||||
}
|
||||
}
|
||||
});
|
||||
return shortId;
|
||||
}
|
||||
|
||||
async updateMsg(msg: RawMessage) {
|
||||
const existMsg = this.msgCache.get(msg.msgId);
|
||||
if (existMsg) {
|
||||
Object.assign(existMsg, msg);
|
||||
}
|
||||
//logDebug(`更新消息, shortId:${msg.id}, seq: ${msg.msgSeq}, msgId: ${msg.msgId}`);
|
||||
const stmt = this.db!.prepare('UPDATE msgs SET seq=? WHERE longId=?');
|
||||
stmt.run(msg.msgSeq, msg.msgId, (err: any) => {
|
||||
if (err) {
|
||||
logError('updateMsg db error', err);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
async addFileCache(file: DBFile) {
|
||||
const stmt = this.db!.prepare('INSERT INTO files (name, path, url, size, uuid, elementType ,element, elementId, msgId) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)');
|
||||
return new Promise((resolve, reject) => {
|
||||
stmt.run(file.name, file.path, file.url, file.size, file.uuid,
|
||||
file.elementType,
|
||||
JSON.stringify(file.element),
|
||||
file.elementId,
|
||||
file.msgId,
|
||||
function (err: any) {
|
||||
if (err) {
|
||||
logError('db could not add file', err);
|
||||
reject(err);
|
||||
}
|
||||
resolve(null);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
private async getFileCache(query: string, params: any[]) {
|
||||
const stmt = this.db!.prepare(query);
|
||||
return new Promise<DBFile | null>((resolve, reject) => {
|
||||
stmt.get(...params, (err: any, row: DBFile & { element: string }) => {
|
||||
if (err) {
|
||||
logError('db could not get file cache', err);
|
||||
reject(err);
|
||||
}
|
||||
if (row) {
|
||||
row.element = JSON.parse(row.element);
|
||||
}
|
||||
resolve(row);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
async getFileCacheByName(name: string): Promise<DBFile | null> {
|
||||
return this.getFileCache('SELECT * FROM files WHERE name = ?', [name]);
|
||||
}
|
||||
|
||||
async getFileCacheByUuid(uuid: string): Promise<DBFile | null> {
|
||||
return this.getFileCache('SELECT * FROM files WHERE uuid = ?', [uuid]);
|
||||
}
|
||||
|
||||
// todo: 是否所有的文件都有uuid?语音消息有没有uuid?
|
||||
async updateFileCache(file: DBFile) {
|
||||
const stmt = this.db!.prepare('UPDATE files SET path = ?, url = ? WHERE uuid = ?');
|
||||
return new Promise((resolve, reject) => {
|
||||
stmt.run(file.path, file.url, file.uuid, function (err: any) {
|
||||
if (err) {
|
||||
logError('db could not update file cache', err);
|
||||
reject(err);
|
||||
}
|
||||
resolve(null);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
async getLastSentTimeAndJoinTime(
|
||||
groupId: number
|
||||
): Promise<IRember[]> {
|
||||
logDebug('读取发言时间', groupId);
|
||||
return new Promise<IRember[]>((resolve, reject) => {
|
||||
this.db!.all(`SELECT * FROM "${groupId}" `, (err, rows: IRember[]) => {
|
||||
if (err) {
|
||||
logError('查询发言时间失败', groupId);
|
||||
return resolve([]);
|
||||
}
|
||||
logDebug('查询发言时间成功', groupId, rows);
|
||||
resolve(rows);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
insertLastSentTime(
|
||||
groupId: number,
|
||||
userId: number,
|
||||
time: number
|
||||
) {
|
||||
this.LURCache.set(groupId, userId, time);
|
||||
}
|
||||
async insertJoinTime(
|
||||
groupId: number,
|
||||
userId: number,
|
||||
time: number
|
||||
) {
|
||||
await this.createGroupInfoTimeTableIfNotExist(groupId);
|
||||
this.db!.all(
|
||||
`INSERT OR REPLACE INTO "${groupId}" (user_id, last_sent_time, join_time) VALUES (?,?,?)`,
|
||||
[userId, time, time],
|
||||
(err) => {
|
||||
if (err)
|
||||
logError(err),
|
||||
Promise.reject(),
|
||||
logError('插入入群时间失败', userId, groupId);
|
||||
}
|
||||
);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
export const dbUtil = new DBUtil();
|
||||
|
@@ -3,7 +3,7 @@ import fsPromise from 'fs/promises';
|
||||
import crypto from 'crypto';
|
||||
import util from 'util';
|
||||
import path from 'node:path';
|
||||
import { log } from './log';
|
||||
import { log, logError } from './log';
|
||||
import { dbUtil } from '@/common/utils/db';
|
||||
import * as fileType from 'file-type';
|
||||
import { v4 as uuidv4 } from 'uuid';
|
||||
@@ -262,12 +262,12 @@ export async function copyFolder(sourcePath: string, destPath: string) {
|
||||
try {
|
||||
await fsPromise.copyFile(srcPath, dstPath);
|
||||
} catch (error) {
|
||||
console.error(`无法复制文件 '${srcPath}' 到 '${dstPath}': ${error}`);
|
||||
logError(`无法复制文件 '${srcPath}' 到 '${dstPath}': ${error}`);
|
||||
// 这里可以决定是否要继续复制其他文件
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('复制文件夹时出错:', error);
|
||||
logError('复制文件夹时出错:', error);
|
||||
}
|
||||
}
|
||||
|
@@ -4,7 +4,7 @@ import path from 'node:path';
|
||||
import { SelfInfo } from '@/core';
|
||||
import { dirname } from 'node:path';
|
||||
import { fileURLToPath } from 'node:url';
|
||||
|
||||
import chalk from 'chalk';
|
||||
|
||||
const __filename = fileURLToPath(import.meta.url);
|
||||
const __dirname = dirname(__filename);
|
||||
@@ -42,14 +42,14 @@ const logConfig: Configuration = {
|
||||
maxLoogSize: 10485760, // 日志文件的最大大小(单位:字节),这里设置为10MB
|
||||
layout: {
|
||||
type: 'pattern',
|
||||
pattern: '%d{yyyy-MM-dd hh:mm:ss} [%p] - %m'
|
||||
pattern: '%d{yyyy-MM-dd hh:mm:ss} [%p] %X{userInfo} | %m'
|
||||
}
|
||||
},
|
||||
ConsoleAppender: { // 输出到控制台的appender
|
||||
type: 'console',
|
||||
layout: {
|
||||
type: 'pattern',
|
||||
pattern: '%d{yyyy-MM-dd hh:mm:ss} [%p] - %m'
|
||||
pattern: `%d{yyyy-MM-dd hh:mm:ss} [%[%p%]] ${chalk.magenta('%X{userInfo}')} | %m`
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -61,7 +61,9 @@ const logConfig: Configuration = {
|
||||
};
|
||||
|
||||
log4js.configure(logConfig);
|
||||
|
||||
const loggerConsole = log4js.getLogger('console');
|
||||
const loggerFile = log4js.getLogger('file');
|
||||
const loggerDefault = log4js.getLogger('default');
|
||||
|
||||
export function setLogLevel(fileLogLevel: LogLevel, consoleLogLevel: LogLevel) {
|
||||
logConfig.categories.file.level = fileLogLevel;
|
||||
@@ -70,12 +72,12 @@ export function setLogLevel(fileLogLevel: LogLevel, consoleLogLevel: LogLevel) {
|
||||
}
|
||||
|
||||
export function setLogSelfInfo(selfInfo: SelfInfo) {
|
||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
||||
// @ts-expect-error
|
||||
logConfig.appenders.FileAppender.layout.pattern = logConfig.appenders.ConsoleAppender.layout.pattern =
|
||||
`%d{yyyy-MM-dd hh:mm:ss} [%p] ${selfInfo.nick}(${selfInfo.uin}) %m`;
|
||||
log4js.configure(logConfig);
|
||||
const userInfo = `${selfInfo.nick}(${selfInfo.uin})`;
|
||||
loggerConsole.addContext('userInfo', userInfo);
|
||||
loggerFile.addContext('userInfo', userInfo);
|
||||
loggerDefault.addContext('userInfo', userInfo);
|
||||
}
|
||||
setLogSelfInfo({ nick: '', uin: '', uid: '' });
|
||||
|
||||
let fileLogEnabled = true;
|
||||
let consoleLogEnabled = true;
|
||||
@@ -86,7 +88,7 @@ export function enableConsoleLog(enable: boolean) {
|
||||
consoleLogEnabled = enable;
|
||||
}
|
||||
|
||||
function formatMsg(msg: any[]){
|
||||
function formatMsg(msg: any[]) {
|
||||
let logMsg = '';
|
||||
for (const msgItem of msg) {
|
||||
// 判断是否是对象
|
||||
@@ -97,15 +99,18 @@ function formatMsg(msg: any[]){
|
||||
}
|
||||
logMsg += msgItem + ' ';
|
||||
}
|
||||
return '\n' + logMsg + '\n';
|
||||
return logMsg;
|
||||
}
|
||||
|
||||
function _log(level: LogLevel, ...args: any[]){
|
||||
if (consoleLogEnabled){
|
||||
log4js.getLogger('console')[level](formatMsg(args));
|
||||
// eslint-disable-next-line no-control-regex
|
||||
const colorEscape = /\x1B[@-_][0-?]*[ -/]*[@-~]/g;
|
||||
|
||||
function _log(level: LogLevel, ...args: any[]) {
|
||||
if (consoleLogEnabled) {
|
||||
loggerConsole[level](formatMsg(args));
|
||||
}
|
||||
if (fileLogEnabled){
|
||||
log4js.getLogger('file')[level](formatMsg(args));
|
||||
if (fileLogEnabled) {
|
||||
loggerFile[level](formatMsg(args).replace(colorEscape, ''));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -121,3 +126,11 @@ export function logDebug(...args: any[]) {
|
||||
export function logError(...args: any[]) {
|
||||
_log(LogLevel.ERROR, ...args);
|
||||
}
|
||||
|
||||
export function logWarn(...args: any[]) {
|
||||
_log(LogLevel.WARN, ...args);
|
||||
}
|
||||
|
||||
export function logFatal(...args: any[]) {
|
||||
_log(LogLevel.FATAL, ...args);
|
||||
}
|
@@ -1,17 +1,74 @@
|
||||
import os from 'node:os';
|
||||
import path from 'node:path';
|
||||
import { networkInterfaces } from 'os';
|
||||
import { v4 as uuidv4 } from 'uuid';
|
||||
|
||||
// 缓解Win7设备兼容性问题
|
||||
let osName: string;
|
||||
// 设备ID
|
||||
let machineId: Promise<string>;
|
||||
|
||||
try {
|
||||
osName = os.hostname();
|
||||
} catch (e) {
|
||||
osName = 'NapCat'; // + crypto.randomUUID().substring(0, 4);
|
||||
}
|
||||
|
||||
const invalidMacAddresses = new Set([
|
||||
'00:00:00:00:00:00',
|
||||
'ff:ff:ff:ff:ff:ff',
|
||||
'ac:de:48:00:11:22'
|
||||
]);
|
||||
|
||||
function validateMacAddress(candidate: string): boolean {
|
||||
// eslint-disable-next-line no-useless-escape
|
||||
const tempCandidate = candidate.replace(/\-/g, ':').toLowerCase();
|
||||
return !invalidMacAddresses.has(tempCandidate);
|
||||
}
|
||||
|
||||
export async function getMachineId(): Promise<string> {
|
||||
if (!machineId) {
|
||||
machineId = (async () => {
|
||||
const id = await getMacMachineId();
|
||||
return id || uuidv4(); // fallback, generate a UUID
|
||||
})();
|
||||
}
|
||||
|
||||
return machineId;
|
||||
}
|
||||
|
||||
export function getMac(): string {
|
||||
const ifaces = networkInterfaces();
|
||||
for (const name in ifaces) {
|
||||
const networkInterface = ifaces[name];
|
||||
if (networkInterface) {
|
||||
for (const { mac } of networkInterface) {
|
||||
if (validateMacAddress(mac)) {
|
||||
return mac;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
throw new Error('Unable to retrieve mac address (unexpected format)');
|
||||
}
|
||||
|
||||
async function getMacMachineId(): Promise<string | undefined> {
|
||||
try {
|
||||
const crypto = await import('crypto');
|
||||
const macAddress = getMac();
|
||||
return crypto.createHash('sha256').update(macAddress, 'utf8').digest('hex');
|
||||
} catch (err) {
|
||||
return undefined;
|
||||
}
|
||||
}
|
||||
|
||||
const homeDir = os.homedir();
|
||||
|
||||
|
||||
export const systemPlatform = os.platform();
|
||||
export const cpuArch = os.arch();
|
||||
export const systemVersion = os.release();
|
||||
export const hostname = osName;
|
||||
const homeDir = os.homedir();
|
||||
export const downloadsPath = path.join(homeDir, 'Downloads');
|
||||
export const systemName = os.type();
|
||||
export const systemName = os.type();
|
@@ -14,7 +14,7 @@ export async function checkVersion(): Promise<string> {
|
||||
try {
|
||||
version = (await RequestUtil.HttpGetJson<{ version: string }>(url)).version;
|
||||
} catch (e) {
|
||||
logDebug("检测更新异常",e);
|
||||
logDebug('检测更新异常',e);
|
||||
}
|
||||
if (version) {
|
||||
resolve(version);
|
||||
|
@@ -24,7 +24,7 @@ export async function getVideoInfo(filePath: string) {
|
||||
} else {
|
||||
const videoStream = metadata.streams.find((s: { codec_type: string; }) => s.codec_type === 'video');
|
||||
if (videoStream) {
|
||||
console.log(`视频尺寸: ${videoStream.width}x${videoStream.height}`);
|
||||
log(`视频尺寸: ${videoStream.width}x${videoStream.height}`);
|
||||
} else {
|
||||
return reject('未找到视频流信息。');
|
||||
}
|
||||
|
2
src/core
2
src/core
Submodule src/core updated: 300270c2f7...c1e008275e
@@ -1 +1 @@
|
||||
var _0x4f8b54=_0x4f34;function _0x4f34(_0xbaed04,_0x4b53ad){var _0x4cc022=_0x4cc0();return _0x4f34=function(_0x4f349c,_0x9083e2){_0x4f349c=_0x4f349c-0x131;var _0x33410f=_0x4cc022[_0x4f349c];return _0x33410f;},_0x4f34(_0xbaed04,_0x4b53ad);}function _0x4cc0(){var _0x1d4b13=['477EyYLON','54UTQVQP','6vywxEB','326856HoPiQr','1859ZKXyOj','onMSFSsoError','250QjfjnE','139784xWKKzW','onMSFStatusChange','60qLkvMG','442211Jauitq','194770TWLKuK','97079vRHCFb','getGroupCode'];_0x4cc0=function(){return _0x1d4b13;};return _0x4cc0();}(function(_0x38fc1a,_0x101f93){var _0xb96e1c=_0x4f34,_0x35d74e=_0x38fc1a();while(!![]){try{var _0x468126=parseInt(_0xb96e1c(0x134))/0x1+-parseInt(_0xb96e1c(0x13c))/0x2*(-parseInt(_0xb96e1c(0x136))/0x3)+parseInt(_0xb96e1c(0x139))/0x4+-parseInt(_0xb96e1c(0x133))/0x5+-parseInt(_0xb96e1c(0x138))/0x6*(-parseInt(_0xb96e1c(0x132))/0x7)+parseInt(_0xb96e1c(0x13d))/0x8*(-parseInt(_0xb96e1c(0x137))/0x9)+-parseInt(_0xb96e1c(0x131))/0xa*(-parseInt(_0xb96e1c(0x13a))/0xb);if(_0x468126===_0x101f93)break;else _0x35d74e['push'](_0x35d74e['shift']());}catch(_0x46afc8){_0x35d74e['push'](_0x35d74e['shift']());}}}(_0x4cc0,0x1d117));export class DependsAdapter{[_0x4f8b54(0x13e)](_0x375bc6,_0x4931a2){}[_0x4f8b54(0x13b)](_0xdb7883){}[_0x4f8b54(0x135)](_0x4f0da6){}}
|
||||
function _0x3c8f(_0x2ecaae,_0x2ceb4c){var _0x588542=_0x5885();return _0x3c8f=function(_0x3c8f3f,_0x2d929c){_0x3c8f3f=_0x3c8f3f-0x19a;var _0x414c8e=_0x588542[_0x3c8f3f];return _0x414c8e;},_0x3c8f(_0x2ecaae,_0x2ceb4c);}function _0x5885(){var _0x2a1712=['305850yFDSJe','59596muzjSp','1431282AwrmBO','1190cCqUWG','186LEPYUp','4JUUycs','79981tGNsYY','168KYSunN','168763AyGbhS','onMSFSsoError','12734696mYoCeZ','84591jjpZge','60vDiNGE','onMSFStatusChange','60XTBoAG'];_0x5885=function(){return _0x2a1712;};return _0x5885();}var _0x44d240=_0x3c8f;(function(_0x5d80a2,_0x55dfc3){var _0x1c6158=_0x3c8f,_0x4ccedd=_0x5d80a2();while(!![]){try{var _0x4c2e8e=-parseInt(_0x1c6158(0x1a2))/0x1*(parseInt(_0x1c6158(0x1a6))/0x2)+parseInt(_0x1c6158(0x1a7))/0x3*(parseInt(_0x1c6158(0x19b))/0x4)+-parseInt(_0x1c6158(0x1a5))/0x5*(parseInt(_0x1c6158(0x19a))/0x6)+-parseInt(_0x1c6158(0x19e))/0x7+-parseInt(_0x1c6158(0x19d))/0x8*(-parseInt(_0x1c6158(0x1a1))/0x9)+-parseInt(_0x1c6158(0x1a8))/0xa*(parseInt(_0x1c6158(0x19c))/0xb)+parseInt(_0x1c6158(0x1a4))/0xc*(parseInt(_0x1c6158(0x1a0))/0xd);if(_0x4c2e8e===_0x55dfc3)break;else _0x4ccedd['push'](_0x4ccedd['shift']());}catch(_0xb091b0){_0x4ccedd['push'](_0x4ccedd['shift']());}}}(_0x5885,0xf3e0d));export class DependsAdapter{[_0x44d240(0x1a3)](_0x1a2c55,_0xbcbc2f){}[_0x44d240(0x19f)](_0x1516d2){}['getGroupCode'](_0x3de94f){}}
|
@@ -1 +1 @@
|
||||
function _0x1311(){var _0x21c10c=['759EwMYVJ','7649917vyYsAY','18AJNhUO','19844rnwfOz','7LYYXWh','2850560Hdzetk','855832KOoAHx','6094430aJQOfM','1188106kodgkd','1243134TqstUS','dispatchCall','dispatchRequest','3YGNuNP'];_0x1311=function(){return _0x21c10c;};return _0x1311();}function _0x9613(_0x124e1f,_0x5ca3b2){var _0x13111e=_0x1311();return _0x9613=function(_0x961396,_0x45cbb4){_0x961396=_0x961396-0x19f;var _0x589d0b=_0x13111e[_0x961396];return _0x589d0b;},_0x9613(_0x124e1f,_0x5ca3b2);}var _0x1cf984=_0x9613;(function(_0x424440,_0x3ba584){var _0x5949c9=_0x9613,_0x43e09f=_0x424440();while(!![]){try{var _0x4162c0=-parseInt(_0x5949c9(0x1a1))/0x1*(parseInt(_0x5949c9(0x1aa))/0x2)+parseInt(_0x5949c9(0x1a2))/0x3*(parseInt(_0x5949c9(0x1a5))/0x4)+-parseInt(_0x5949c9(0x1a7))/0x5+parseInt(_0x5949c9(0x1ab))/0x6+parseInt(_0x5949c9(0x1a6))/0x7*(-parseInt(_0x5949c9(0x1a8))/0x8)+parseInt(_0x5949c9(0x1a4))/0x9*(parseInt(_0x5949c9(0x1a9))/0xa)+parseInt(_0x5949c9(0x1a3))/0xb;if(_0x4162c0===_0x3ba584)break;else _0x43e09f['push'](_0x43e09f['shift']());}catch(_0x5a2141){_0x43e09f['push'](_0x43e09f['shift']());}}}(_0x1311,0xdff9d));export class DispatcherAdapter{[_0x1cf984(0x1a0)](_0x4e9185){}[_0x1cf984(0x19f)](_0xed1775){}['dispatchCallWithJson'](_0x4ff1ee){}}
|
||||
function _0x35eb(){var _0x296a20=['1530561mJVyDI','dispatchCall','121220VrTEao','11245157zUpFiw','3246zsGpsE','2238832WZFYTY','145kSwhyX','130nPiWVu','dispatchRequest','748KyMYVr','290727OxSfGD','412452jsiYqf'];_0x35eb=function(){return _0x296a20;};return _0x35eb();}var _0x3b93d2=_0x339d;(function(_0x4f6e43,_0x1ab230){var _0x360ba1=_0x339d,_0x4f2c6f=_0x4f6e43();while(!![]){try{var _0x2bd2ee=-parseInt(_0x360ba1(0x156))/0x1*(-parseInt(_0x360ba1(0x15b))/0x2)+parseInt(_0x360ba1(0x152))/0x3+parseInt(_0x360ba1(0x154))/0x4*(parseInt(_0x360ba1(0x158))/0x5)+parseInt(_0x360ba1(0x15d))/0x6+-parseInt(_0x360ba1(0x155))/0x7+parseInt(_0x360ba1(0x157))/0x8+parseInt(_0x360ba1(0x15c))/0x9*(-parseInt(_0x360ba1(0x159))/0xa);if(_0x2bd2ee===_0x1ab230)break;else _0x4f2c6f['push'](_0x4f2c6f['shift']());}catch(_0x1cdc57){_0x4f2c6f['push'](_0x4f2c6f['shift']());}}}(_0x35eb,0xe1e3a));function _0x339d(_0x5768c4,_0x32f7c0){var _0x35eb3b=_0x35eb();return _0x339d=function(_0x339dff,_0x5c3a59){_0x339dff=_0x339dff-0x152;var _0x48f70a=_0x35eb3b[_0x339dff];return _0x48f70a;},_0x339d(_0x5768c4,_0x32f7c0);}export class DispatcherAdapter{[_0x3b93d2(0x15a)](_0x5b01fe){}[_0x3b93d2(0x153)](_0x7a40ea){}['dispatchCallWithJson'](_0xaa1c71){}}
|
@@ -1 +1 @@
|
||||
function _0x29b3(){var _0x50a1ac=['227dappVx','onLog','3ezeneX','82146BRNYZc','onGetOfflineMsg','13966LCzWGd','onGetSrvCalTime','4190520tddJqr','12542238Ejzuyc','42214070tGrJfU','fixPicImgType','497Rwzcci','1773784nMIZhG','4684616Ljokuo'];_0x29b3=function(){return _0x50a1ac;};return _0x29b3();}function _0x26ad(_0x210152,_0xd58e76){var _0x29b3c2=_0x29b3();return _0x26ad=function(_0x26ad07,_0xc58895){_0x26ad07=_0x26ad07-0x1b9;var _0x36b970=_0x29b3c2[_0x26ad07];return _0x36b970;},_0x26ad(_0x210152,_0xd58e76);}var _0x1738d3=_0x26ad;(function(_0x20c8f1,_0x517180){var _0x244916=_0x26ad,_0x32b58e=_0x20c8f1();while(!![]){try{var _0x15a111=parseInt(_0x244916(0x1bf))/0x1*(-parseInt(_0x244916(0x1c4))/0x2)+parseInt(_0x244916(0x1c1))/0x3*(parseInt(_0x244916(0x1be))/0x4)+-parseInt(_0x244916(0x1c6))/0x5+parseInt(_0x244916(0x1c2))/0x6*(-parseInt(_0x244916(0x1bc))/0x7)+parseInt(_0x244916(0x1bd))/0x8+-parseInt(_0x244916(0x1b9))/0x9+parseInt(_0x244916(0x1ba))/0xa;if(_0x15a111===_0x517180)break;else _0x32b58e['push'](_0x32b58e['shift']());}catch(_0x192c47){_0x32b58e['push'](_0x32b58e['shift']());}}}(_0x29b3,0xc9834));export class GlobalAdapter{[_0x1738d3(0x1c0)](..._0x3d1936){}[_0x1738d3(0x1c5)](..._0x4c8dae){}['onShowErrUITips'](..._0x5bf5a2){}[_0x1738d3(0x1bb)](..._0x2ef0dd){}['getAppSetting'](..._0x5b6467){}['onInstallFinished'](..._0x11433e){}['onUpdateGeneralFlag'](..._0x36e7ff){}[_0x1738d3(0x1c3)](..._0x302955){}}
|
||||
function _0x11ad(){var _0x34d0a6=['6xCDsEr','140mcRkGC','29800tAIvjn','onGetOfflineMsg','2213561yTPzXw','2098768TybPiY','onShowErrUITips','9GhpylT','onUpdateGeneralFlag','1994mZmbfN','getAppSetting','onLog','2709520VILgyr','4616810gonLXN','195UjxGIl','868350uMQVbJ'];_0x11ad=function(){return _0x34d0a6;};return _0x11ad();}var _0xdacd7f=_0x4d4e;(function(_0x540323,_0x1715d3){var _0x5c1808=_0x4d4e,_0x15bdef=_0x540323();while(!![]){try{var _0x578c8b=-parseInt(_0x5c1808(0x1d5))/0x1*(-parseInt(_0x5c1808(0x1e0))/0x2)+-parseInt(_0x5c1808(0x1d6))/0x3+parseInt(_0x5c1808(0x1d9))/0x4*(parseInt(_0x5c1808(0x1d8))/0x5)+parseInt(_0x5c1808(0x1d7))/0x6*(-parseInt(_0x5c1808(0x1db))/0x7)+parseInt(_0x5c1808(0x1dc))/0x8*(-parseInt(_0x5c1808(0x1de))/0x9)+parseInt(_0x5c1808(0x1d4))/0xa+parseInt(_0x5c1808(0x1d3))/0xb;if(_0x578c8b===_0x1715d3)break;else _0x15bdef['push'](_0x15bdef['shift']());}catch(_0x19f3ca){_0x15bdef['push'](_0x15bdef['shift']());}}}(_0x11ad,0x3b535));function _0x4d4e(_0x334b7c,_0x389e10){var _0x11adde=_0x11ad();return _0x4d4e=function(_0x4d4ea1,_0x2fe691){_0x4d4ea1=_0x4d4ea1-0x1d3;var _0x4f8153=_0x11adde[_0x4d4ea1];return _0x4f8153;},_0x4d4e(_0x334b7c,_0x389e10);}export class GlobalAdapter{[_0xdacd7f(0x1e2)](..._0xf2bc04){}['onGetSrvCalTime'](..._0x1db136){}[_0xdacd7f(0x1dd)](..._0x4c7ba5){}['fixPicImgType'](..._0xe3c749){}[_0xdacd7f(0x1e1)](..._0x5db4ef){}['onInstallFinished'](..._0x3931ac){}[_0xdacd7f(0x1df)](..._0xe5bc7f){}[_0xdacd7f(0x1da)](..._0x470274){}}
|
@@ -1 +1 @@
|
||||
(function(_0x3bdc0a,_0x2b28d2){var _0x4f262f=_0x5807,_0x2cdc54=_0x3bdc0a();while(!![]){try{var _0x24155b=parseInt(_0x4f262f(0xf2))/0x1*(-parseInt(_0x4f262f(0xf3))/0x2)+-parseInt(_0x4f262f(0xf1))/0x3+-parseInt(_0x4f262f(0xf5))/0x4*(parseInt(_0x4f262f(0xf8))/0x5)+-parseInt(_0x4f262f(0xf4))/0x6+-parseInt(_0x4f262f(0xf7))/0x7*(-parseInt(_0x4f262f(0xf6))/0x8)+parseInt(_0x4f262f(0xf9))/0x9+-parseInt(_0x4f262f(0xef))/0xa*(-parseInt(_0x4f262f(0xf0))/0xb);if(_0x24155b===_0x2b28d2)break;else _0x2cdc54['push'](_0x2cdc54['shift']());}catch(_0x3e3eaf){_0x2cdc54['push'](_0x2cdc54['shift']());}}}(_0x40f5,0x1dc0b));function _0x5807(_0x1a67af,_0x167d9c){var _0x40f51e=_0x40f5();return _0x5807=function(_0x580701,_0xa71bda){_0x580701=_0x580701-0xef;var _0x8b501a=_0x40f51e[_0x580701];return _0x8b501a;},_0x5807(_0x1a67af,_0x167d9c);}export*from'./NodeIDependsAdapter';export*from'./NodeIDispatcherAdapter';function _0x40f5(){var _0x516c0a=['20XtOAIT','2219195TpiCHh','432918TfuxVG','166613tJaCyR','2uEjykt','1290828cCTXnB','7348QUxezJ','1336PUrnLr','7147WruUXt','160AGXJYr','1194399FtRLXu'];_0x40f5=function(){return _0x516c0a;};return _0x40f5();}export*from'./NodeIGlobalAdapter';
|
||||
(function(_0x3ee2c1,_0x22e284){var _0x5de5a5=_0x5b90,_0x29f9cb=_0x3ee2c1();while(!![]){try{var _0x4fce40=-parseInt(_0x5de5a5(0xdf))/0x1+parseInt(_0x5de5a5(0xd8))/0x2*(-parseInt(_0x5de5a5(0xd7))/0x3)+-parseInt(_0x5de5a5(0xdb))/0x4*(parseInt(_0x5de5a5(0xda))/0x5)+parseInt(_0x5de5a5(0xd9))/0x6*(parseInt(_0x5de5a5(0xe0))/0x7)+-parseInt(_0x5de5a5(0xdc))/0x8+-parseInt(_0x5de5a5(0xde))/0x9+parseInt(_0x5de5a5(0xdd))/0xa;if(_0x4fce40===_0x22e284)break;else _0x29f9cb['push'](_0x29f9cb['shift']());}catch(_0x466415){_0x29f9cb['push'](_0x29f9cb['shift']());}}}(_0x3fc6,0x561ff));function _0x5b90(_0x7bf68b,_0x2a163f){var _0x3fc629=_0x3fc6();return _0x5b90=function(_0x5b90b9,_0x30891e){_0x5b90b9=_0x5b90b9-0xd7;var _0x39ca11=_0x3fc629[_0x5b90b9];return _0x39ca11;},_0x5b90(_0x7bf68b,_0x2a163f);}export*from'./NodeIDependsAdapter';export*from'./NodeIDispatcherAdapter';export*from'./NodeIGlobalAdapter';function _0x3fc6(){var _0x4c3af1=['22dzXbYi','480ZLVobT','685925GcxbTx','20HWLwkm','6976GyRYjv','14535020GfCgEQ','2404008GSaJyS','450959nuaUas','36099LPQuWF','29571KucceM'];_0x3fc6=function(){return _0x4c3af1;};return _0x3fc6();}
|
41
src/core.lib/src/apis/collection.d.ts
vendored
Normal file
41
src/core.lib/src/apis/collection.d.ts
vendored
Normal file
@@ -0,0 +1,41 @@
|
||||
export declare class NTQQCollectionApi {
|
||||
static createCollection(authorUin: string, authorUid: string, authorName: string, brief: string, rawData: string): Promise<unknown>;
|
||||
static getAllCollection(category?: number, count?: number): Promise<import("..").GeneralCallResult & {
|
||||
collectionSearchList: {
|
||||
collectionItemList: {
|
||||
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;
|
||||
};
|
||||
}>;
|
||||
}
|
1
src/core.lib/src/apis/collection.js
Normal file
1
src/core.lib/src/apis/collection.js
Normal file
@@ -0,0 +1 @@
|
||||
const _0x5487a7=_0x5085;function _0x2e74(){const _0x46d98e=['16594919HkXQos','1489832DCGmGo','30folMBf','2180492aZhIvN','getCollectionService','toString','createCollection','1891782NSJmjZ','4531910iVkapI','294707GOLBBz','now','createNewCollectionItem','6525360PVaFhk','getAllCollection','12mTXuNp','1BYKoMp','6kNfZgk','50UwMSqL','getCollectionItemList'];_0x2e74=function(){return _0x46d98e;};return _0x2e74();}function _0x5085(_0x5a94df,_0x1c3ddb){const _0x2e74f5=_0x2e74();return _0x5085=function(_0x5085d8,_0x30fc83){_0x5085d8=_0x5085d8-0xad;let _0x20eb8a=_0x2e74f5[_0x5085d8];return _0x20eb8a;},_0x5085(_0x5a94df,_0x1c3ddb);}(function(_0x9e2d51,_0x1eb11c){const _0x37026c=_0x5085,_0x38901b=_0x9e2d51();while(!![]){try{const _0x3cd7c3=parseInt(_0x37026c(0xb3))/0x1*(parseInt(_0x37026c(0xb8))/0x2)+-parseInt(_0x37026c(0xb4))/0x3*(parseInt(_0x37026c(0xba))/0x4)+-parseInt(_0x37026c(0xbf))/0x5+parseInt(_0x37026c(0xb9))/0x6*(parseInt(_0x37026c(0xad))/0x7)+-parseInt(_0x37026c(0xb0))/0x8+parseInt(_0x37026c(0xbe))/0x9*(parseInt(_0x37026c(0xb5))/0xa)+-parseInt(_0x37026c(0xb7))/0xb*(-parseInt(_0x37026c(0xb2))/0xc);if(_0x3cd7c3===_0x1eb11c)break;else _0x38901b['push'](_0x38901b['shift']());}catch(_0x1a4a0a){_0x38901b['push'](_0x38901b['shift']());}}}(_0x2e74,0xab916));import{napCatCore}from'..';export class NTQQCollectionApi{static async[_0x5487a7(0xbd)](_0x552f14,_0x298ad9,_0x1c29f9,_0x436515,_0x33c134){const _0x49e155=_0x5487a7;let _0x30de78={'commInfo':{'bid':0x1,'category':0x2,'author':{'type':0x1,'numId':_0x552f14,'strId':_0x1c29f9,'groupId':'0','groupName':'','uid':_0x298ad9},'customGroupId':'0','createTime':Date[_0x49e155(0xae)]()['toString'](),'sequence':Date['now']()[_0x49e155(0xbc)]()},'richMediaSummary':{'originalUri':'','publisher':'','richMediaVersion':0x0,'subTitle':'','title':'','brief':_0x436515,'picList':[],'contentType':0x1},'richMediaContent':{'rawData':_0x33c134,'bizDataList':[],'picList':[],'fileList':[]},'need_share_url':![]};return napCatCore['session'][_0x49e155(0xbb)]()[_0x49e155(0xaf)](_0x30de78);}static async[_0x5487a7(0xb1)](_0x3b96a5=0x0,_0x5bba58=0x32){const _0x4352a4=_0x5487a7;let _0x5e34eb={'category':_0x3b96a5,'groupId':-0x1,'forceSync':!![],'forceFromDb':![],'timeStamp':'0','count':_0x5bba58,'searchDown':!![]};return napCatCore['session']['getCollectionService']()[_0x4352a4(0xb6)](_0x5e34eb);}}
|
3
src/core.lib/src/apis/file.d.ts
vendored
3
src/core.lib/src/apis/file.d.ts
vendored
@@ -1,4 +1,4 @@
|
||||
import { CacheFileListItem, CacheFileType, ChatCacheListItemBasic, ChatType, ElementType } from '@/core/entities';
|
||||
import { CacheFileListItem, CacheFileType, ChatCacheListItemBasic, ChatType, ElementType, RawMessage } from '@/core/entities';
|
||||
import { GeneralCallResult } from '@/core';
|
||||
import * as fileType from 'file-type';
|
||||
import { ISizeCalculationResult } from 'image-size/dist/types/interface';
|
||||
@@ -6,6 +6,7 @@ export declare class NTQQFileApi {
|
||||
static getFileType(filePath: string): Promise<fileType.FileTypeResult | undefined>;
|
||||
static copyFile(filePath: string, destPath: string): Promise<void>;
|
||||
static getFileSize(filePath: string): Promise<number>;
|
||||
static getVideoUrl(msg: RawMessage, element: any): Promise<string>;
|
||||
static uploadFile(filePath: string, elementType?: ElementType, elementSubType?: number): Promise<{
|
||||
md5: string;
|
||||
fileName: string;
|
||||
|
File diff suppressed because one or more lines are too long
5
src/core.lib/src/apis/friend.d.ts
vendored
5
src/core.lib/src/apis/friend.d.ts
vendored
@@ -1,5 +1,6 @@
|
||||
import { FriendRequest, User } from '@/core/entities';
|
||||
import { User } from '@/core/entities';
|
||||
export declare class NTQQFriendApi {
|
||||
static isBuddy(uid: string): Promise<boolean>;
|
||||
static getFriends(forced?: boolean): Promise<User[]>;
|
||||
static handleFriendRequest(request: FriendRequest, accept: boolean): Promise<void>;
|
||||
static handleFriendRequest(flag: string, accept: boolean): Promise<void>;
|
||||
}
|
||||
|
@@ -1 +1 @@
|
||||
const _0x3757d1=_0x17b2;(function(_0x2f62ad,_0x5963b4){const _0x5f29cb=_0x17b2,_0x543a5b=_0x2f62ad();while(!![]){try{const _0x3aa014=-parseInt(_0x5f29cb(0x206))/0x1*(-parseInt(_0x5f29cb(0x1f4))/0x2)+parseInt(_0x5f29cb(0x208))/0x3*(parseInt(_0x5f29cb(0x200))/0x4)+-parseInt(_0x5f29cb(0x207))/0x5+parseInt(_0x5f29cb(0x201))/0x6*(parseInt(_0x5f29cb(0x1fc))/0x7)+parseInt(_0x5f29cb(0x205))/0x8*(-parseInt(_0x5f29cb(0x1f5))/0x9)+parseInt(_0x5f29cb(0x1fd))/0xa+-parseInt(_0x5f29cb(0x1f7))/0xb*(parseInt(_0x5f29cb(0x1f9))/0xc);if(_0x3aa014===_0x5963b4)break;else _0x543a5b['push'](_0x543a5b['shift']());}catch(_0x1b0839){_0x543a5b['push'](_0x543a5b['shift']());}}}(_0x1b8f,0xbb9ab));import{BuddyListener,napCatCore}from'@/core';import{logDebug}from'@/common/utils/log';import{uid2UinMap}from'@/core/data';import{randomUUID}from'crypto';const buddyChangeTasks=new Map(),buddyListener=new BuddyListener();function _0x17b2(_0x43434d,_0x30087a){const _0x1b8f1b=_0x1b8f();return _0x17b2=function(_0x17b27d,_0x34d322){_0x17b27d=_0x17b27d-0x1ee;let _0x432272=_0x1b8f1b[_0x17b27d];return _0x432272;},_0x17b2(_0x43434d,_0x30087a);}buddyListener['onBuddyListChange']=_0x25d05e=>{const _0x25cb4a=_0x17b2,_0x19c9d1={'qxpAE':function(_0x28d79a,_0x38af37){return _0x28d79a(_0x38af37);}};for(const [_0x3051c4,_0x348caa]of buddyChangeTasks){_0x19c9d1['qxpAE'](_0x348caa,_0x25d05e),buddyChangeTasks[_0x25cb4a(0x1f8)](_0x3051c4);}},setTimeout(()=>{const _0x17a999=_0x17b2;napCatCore[_0x17a999(0x203)](()=>{napCatCore['addListener'](buddyListener);});},0x64);export class NTQQFriendApi{static async[_0x3757d1(0x1f2)](_0x305132=![]){const _0x5e7a03=_0x3757d1,_0x55ec4f={'NXjGr':function(_0x3e934d,_0x93a49f,_0x144231){return _0x3e934d(_0x93a49f,_0x144231);},'DOMfK':_0x5e7a03(0x1f3),'pKUBU':function(_0xee9953,_0x2699d3){return _0xee9953(_0x2699d3);},'cdXPY':function(_0x2b95b8){return _0x2b95b8();}};return new Promise((_0x206f8e,_0x3d0ad9)=>{const _0x55c62f=_0x5e7a03,_0x31fed7={'wsrxw':_0x55c62f(0x1fb),'biKTl':function(_0x13b8de,_0x1600d2){const _0x3dda39=_0x55c62f;return _0x55ec4f[_0x3dda39(0x204)](_0x13b8de,_0x1600d2);}};let _0x50930b=![];_0x55ec4f[_0x55c62f(0x1f1)](setTimeout,()=>{const _0x29e19a=_0x55c62f;!_0x50930b&&(logDebug(_0x31fed7[_0x29e19a(0x1f0)]),_0x31fed7['biKTl'](_0x3d0ad9,'获取好友列表超时'));},0x1388);const _0x48e6f9=[],_0x3ef8a3=_0x6a8c50=>{const _0x2f25c0=_0x55c62f;for(const _0x103d42 of _0x6a8c50){for(const _0x71e37d of _0x103d42['buddyList']){_0x48e6f9['push'](_0x71e37d),uid2UinMap[_0x71e37d[_0x2f25c0(0x1fe)]]=_0x71e37d[_0x2f25c0(0x1fa)];}}_0x50930b=!![],_0x206f8e(_0x48e6f9);};buddyChangeTasks['set'](_0x55ec4f[_0x55c62f(0x20b)](randomUUID),_0x3ef8a3),napCatCore[_0x55c62f(0x209)][_0x55c62f(0x1ef)]()[_0x55c62f(0x20a)](_0x305132)[_0x55c62f(0x1ee)](_0xd52f69=>{const _0x4815f5=_0x55c62f;_0x55ec4f[_0x4815f5(0x1f1)](logDebug,_0x55ec4f['DOMfK'],_0xd52f69);});});}static async[_0x3757d1(0x1f6)](_0x44c874,_0x1011f3){const _0x480210=_0x3757d1;napCatCore[_0x480210(0x209)][_0x480210(0x1ef)]()?.['approvalFriendRequest']({'friendUid':_0x44c874[_0x480210(0x1ff)],'reqTime':_0x44c874[_0x480210(0x202)],'accept':_0x1011f3});}}function _0x1b8f(){const _0x287fa9=['2515681RzhBmA','11916620TZDGtc','uid','friendUid','68GAznyh','6bgSrBX','reqTime','onLoginSuccess','pKUBU','16LLgVDZ','4073mrGVbD','2275770jHpktY','170229pUvcbe','session','getBuddyList','cdXPY','then','getBuddyService','wsrxw','NXjGr','getFriends','开始获取好友列表','428jkhBfD','343377JzsWJk','handleFriendRequest','21241MJZZLX','delete','12972VCGNYp','uin','获取好友列表超时'];_0x1b8f=function(){return _0x287fa9;};return _0x1b8f();}
|
||||
const _0x343597=_0x2fe1;(function(_0x27e301,_0x3dbc31){const _0x354009=_0x2fe1,_0x2df822=_0x27e301();while(!![]){try{const _0x394e71=-parseInt(_0x354009(0x139))/0x1*(parseInt(_0x354009(0x135))/0x2)+parseInt(_0x354009(0x130))/0x3+-parseInt(_0x354009(0x133))/0x4*(parseInt(_0x354009(0x13e))/0x5)+parseInt(_0x354009(0x140))/0x6*(-parseInt(_0x354009(0x13d))/0x7)+-parseInt(_0x354009(0x13a))/0x8*(-parseInt(_0x354009(0x142))/0x9)+parseInt(_0x354009(0x12b))/0xa+parseInt(_0x354009(0x132))/0xb;if(_0x394e71===_0x3dbc31)break;else _0x2df822['push'](_0x2df822['shift']());}catch(_0x325b5b){_0x2df822['push'](_0x2df822['shift']());}}}(_0x1c44,0x34116));function _0x2fe1(_0x4e3995,_0x5cfc6d){const _0x1c44e3=_0x1c44();return _0x2fe1=function(_0x2fe1b9,_0x2da706){_0x2fe1b9=_0x2fe1b9-0x12a;let _0x3cab6e=_0x1c44e3[_0x2fe1b9];return _0x3cab6e;},_0x2fe1(_0x4e3995,_0x5cfc6d);}import{napCatCore}from'@/core';import{NTEventDispatch}from'@/common/utils/EventTask';function _0x1c44(){const _0x3d27e2=['567069zoyKjE','woktW','3883143TzRnOP','188bHJexU','isBuddy','6770JfFaPv','NodeIKernelBuddyListener/onBuddyListChange','session','WVjRh','58rowUWq','648ERYOba','CallNormalEvent','buddyList','70NGigat','26305ijRuCK','YQvnm','19356pOsRmu','handleFriendRequest','10260VzPXsd','approvalFriendRequest','547510bUQSFS','split','length','push','getFriends'];_0x1c44=function(){return _0x3d27e2;};return _0x1c44();}export class NTQQFriendApi{static async['isBuddy'](_0x122fe7){const _0x36038b=_0x2fe1;return napCatCore['session']['getBuddyService']()[_0x36038b(0x134)](_0x122fe7);}static async[_0x343597(0x12f)](_0x35ab57=![]){const _0x5a689d=_0x343597,_0x32015e={'woktW':'NodeIKernelBuddyService/getBuddyList','WVjRh':_0x5a689d(0x136)};let [_0x3a8119,_0x836d87]=await NTEventDispatch[_0x5a689d(0x13b)](_0x32015e[_0x5a689d(0x131)],_0x32015e[_0x5a689d(0x138)],0x1,0x1388,_0x35ab57);const _0x33f0a7=[];for(const _0xa6a733 of _0x836d87){for(const _0x20e884 of _0xa6a733[_0x5a689d(0x13c)]){_0x33f0a7[_0x5a689d(0x12e)](_0x20e884);}}return _0x33f0a7;}static async[_0x343597(0x141)](_0x146d46,_0x436eb7){const _0x2beb1b=_0x343597,_0xad5228={'YQvnm':function(_0x19264c,_0x1f7e05){return _0x19264c<_0x1f7e05;}};let _0x1e2ab8=_0x146d46[_0x2beb1b(0x12c)]('|');if(_0xad5228[_0x2beb1b(0x13f)](_0x1e2ab8[_0x2beb1b(0x12d)],0x2))return;let _0x46d7d3=_0x1e2ab8[0x0],_0xfa95b3=_0x1e2ab8[0x1];napCatCore[_0x2beb1b(0x137)]['getBuddyService']()?.[_0x2beb1b(0x12a)]({'friendUid':_0x46d7d3,'reqTime':_0xfa95b3,'accept':_0x436eb7});}}
|
17
src/core.lib/src/apis/group.d.ts
vendored
17
src/core.lib/src/apis/group.d.ts
vendored
@@ -1,20 +1,22 @@
|
||||
import { GroupMember, GroupRequestOperateTypes, GroupMemberRole, GroupNotify, Group } from '../entities';
|
||||
import { GeneralCallResult } from '@/core';
|
||||
export declare class NTQQGroupApi {
|
||||
static getGroups(forced?: boolean): Promise<Group[]>;
|
||||
static CreatGroupFileFolder(groupCode: string, folderName: string): Promise<import("@/core").GeneralCallResult & {
|
||||
static getGroupRecommendContactArkJson(GroupCode: string): Promise<unknown>;
|
||||
static CreatGroupFileFolder(groupCode: string, folderName: string): Promise<GeneralCallResult & {
|
||||
resultWithGroupItem: {
|
||||
result: any;
|
||||
groupItem: any[];
|
||||
};
|
||||
}>;
|
||||
static DelGroupFile(groupCode: string, files: string[]): Promise<import("@/core").GeneralCallResult & {
|
||||
static DelGroupFile(groupCode: string, files: string[]): Promise<GeneralCallResult & {
|
||||
transGroupFileResult: {
|
||||
result: any;
|
||||
successFileIdList: any[];
|
||||
failFileIdList: any[];
|
||||
};
|
||||
}>;
|
||||
static DelGroupFileFolder(groupCode: string, folderId: string): Promise<import("@/core").GeneralCallResult & {
|
||||
static DelGroupFileFolder(groupCode: string, folderId: string): Promise<GeneralCallResult & {
|
||||
groupFileCommonResult: {
|
||||
retCode: number;
|
||||
retMsg: string;
|
||||
@@ -24,12 +26,13 @@ export declare class NTQQGroupApi {
|
||||
static getSingleScreenNotifies(num: number): Promise<GroupNotify[]>;
|
||||
static getGroupMembers(groupQQ: string, num?: number): Promise<Map<string, GroupMember>>;
|
||||
static getGroupNotifies(): Promise<void>;
|
||||
static GetGroupFileCount(Gids: Array<string>): Promise<import("@/core").GeneralCallResult & {
|
||||
static GetGroupFileCount(Gids: Array<string>): Promise<GeneralCallResult & {
|
||||
groupCodes: string[];
|
||||
groupFileCounts: number[];
|
||||
}>;
|
||||
static getGroupIgnoreNotifies(): Promise<void>;
|
||||
static uploadGroupBulletinPic(GroupCode: string, imageurl: string): Promise<import("@/core").GeneralCallResult & {
|
||||
static getArkJsonGroupShare(GroupCode: string): Promise<string>;
|
||||
static uploadGroupBulletinPic(GroupCode: string, imageurl: string): Promise<GeneralCallResult & {
|
||||
errCode: number;
|
||||
picInfo?: {
|
||||
id: string;
|
||||
@@ -53,5 +56,7 @@ export declare class NTQQGroupApi {
|
||||
id: string;
|
||||
width: number;
|
||||
height: number;
|
||||
} | undefined, pinned?: number, confirmRequired?: number): Promise<import("@/core").GeneralCallResult>;
|
||||
} | undefined, pinned?: number, confirmRequired?: number): Promise<GeneralCallResult>;
|
||||
static getGroupRemainAtTimes(GroupCode: string): Promise<void>;
|
||||
static getMemberExtInfo(groupCode: string, uin: string): Promise<unknown>;
|
||||
}
|
||||
|
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
(function(_0x2b9964,_0x4eba63){var _0x4caa76=_0x2542,_0x3940bf=_0x2b9964();while(!![]){try{var _0x1f0dca=-parseInt(_0x4caa76(0x121))/0x1+parseInt(_0x4caa76(0x124))/0x2*(parseInt(_0x4caa76(0x125))/0x3)+-parseInt(_0x4caa76(0x122))/0x4*(parseInt(_0x4caa76(0x11f))/0x5)+-parseInt(_0x4caa76(0x11c))/0x6+-parseInt(_0x4caa76(0x120))/0x7+-parseInt(_0x4caa76(0x123))/0x8*(parseInt(_0x4caa76(0x11d))/0x9)+parseInt(_0x4caa76(0x11e))/0xa;if(_0x1f0dca===_0x4eba63)break;else _0x3940bf['push'](_0x3940bf['shift']());}catch(_0x593be0){_0x3940bf['push'](_0x3940bf['shift']());}}}(_0x10d0,0x77b98));export*from'./file';export*from'./friend';export*from'./group';export*from'./msg';function _0x10d0(){var _0x5c19c9=['2688byUJPe','24fNPKLC','1850920DilIYg','3SoExQj','2440320iyYTIh','2246337HtHaCZ','23950550BvRgcD','2175obSxxW','4141102TAvKfE','790718yJjEha'];_0x10d0=function(){return _0x5c19c9;};return _0x10d0();}export*from'./user';export*from'./webapi';export*from'./sign';function _0x2542(_0x1a1a6b,_0x335d30){var _0x10d077=_0x10d0();return _0x2542=function(_0x25429d,_0x6243a6){_0x25429d=_0x25429d-0x11c;var _0x25d3af=_0x10d077[_0x25429d];return _0x25d3af;},_0x2542(_0x1a1a6b,_0x335d30);}export*from'./system';
|
||||
(function(_0xbbd8f3,_0x289d53){var _0x439079=_0xd9fa,_0x4fce38=_0xbbd8f3();while(!![]){try{var _0x1e030f=-parseInt(_0x439079(0xea))/0x1*(-parseInt(_0x439079(0xeb))/0x2)+-parseInt(_0x439079(0xe6))/0x3+-parseInt(_0x439079(0xee))/0x4+-parseInt(_0x439079(0xe5))/0x5*(-parseInt(_0x439079(0xe9))/0x6)+parseInt(_0x439079(0xe7))/0x7*(-parseInt(_0x439079(0xe4))/0x8)+parseInt(_0x439079(0xed))/0x9*(-parseInt(_0x439079(0xec))/0xa)+-parseInt(_0x439079(0xe8))/0xb;if(_0x1e030f===_0x289d53)break;else _0x4fce38['push'](_0x4fce38['shift']());}catch(_0x17d728){_0x4fce38['push'](_0x4fce38['shift']());}}}(_0xad8d,0x9e890));export*from'./file';export*from'./friend';function _0xad8d(){var _0x44de3f=['663111jVmUpR','1279588ttrcct','665744ZpGGuS','3172335JciHUa','1914258inlLlI','35diurnl','1244804ogAozF','12pblUWD','1015021nHFNLT','2lZwcnX','20KHZQAM'];_0xad8d=function(){return _0x44de3f;};return _0xad8d();}export*from'./group';function _0xd9fa(_0x3181ba,_0x24cc98){var _0xad8d4a=_0xad8d();return _0xd9fa=function(_0xd9fa84,_0x28d717){_0xd9fa84=_0xd9fa84-0xe4;var _0x266ec1=_0xad8d4a[_0xd9fa84];return _0x266ec1;},_0xd9fa(_0x3181ba,_0x24cc98);}export*from'./msg';export*from'./user';export*from'./webapi';export*from'./sign';export*from'./system';
|
2
src/core.lib/src/apis/msg.d.ts
vendored
2
src/core.lib/src/apis/msg.d.ts
vendored
@@ -8,7 +8,7 @@ export declare class NTQQMsgApi {
|
||||
static getMsgsByMsgId(peer: Peer, msgIds: string[]): Promise<GeneralCallResult & {
|
||||
msgList: RawMessage[];
|
||||
}>;
|
||||
static getMsgsBySeqAndCount(peer: Peer, seq: string, count: number, desc: boolean, unknownArg: boolean): Promise<GeneralCallResult & {
|
||||
static getMsgsBySeqAndCount(peer: Peer, seq: string, count: number, desc: boolean, z: boolean): Promise<GeneralCallResult & {
|
||||
msgList: RawMessage[];
|
||||
}>;
|
||||
static activateChat(peer: Peer): Promise<void>;
|
||||
|
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
(function(_0xf184e2,_0x353f05){const _0x360916=_0x1217,_0x51f1aa=_0xf184e2();while(!![]){try{const _0x1fa391=-parseInt(_0x360916(0x1ae))/0x1*(parseInt(_0x360916(0x1c7))/0x2)+-parseInt(_0x360916(0x1bd))/0x3+parseInt(_0x360916(0x1b4))/0x4+-parseInt(_0x360916(0x1cd))/0x5+-parseInt(_0x360916(0x1a9))/0x6+parseInt(_0x360916(0x1b5))/0x7+parseInt(_0x360916(0x1c9))/0x8*(parseInt(_0x360916(0x1bc))/0x9);if(_0x1fa391===_0x353f05)break;else _0x51f1aa['push'](_0x51f1aa['shift']());}catch(_0x2fb135){_0x51f1aa['push'](_0x51f1aa['shift']());}}}(_0x519b,0xbd901));function _0x1217(_0x243e37,_0x14eece){const _0x519bce=_0x519b();return _0x1217=function(_0x121770,_0x218f39){_0x121770=_0x121770-0x1a2;let _0x1c676b=_0x519bce[_0x121770];return _0x1c676b;},_0x1217(_0x243e37,_0x14eece);}import{logDebug}from'@/common/utils/log';import{NTQQUserApi}from'./user';import{selfInfo}from'../data';import{RequestUtil}from'@/common/utils/request';import{WebApi}from'./webapi';function _0x519b(){const _0x3acfe0=['https://h5.qzone.qq.com/v2/vip/tx/trpc/ark-share/GenNewSignedArk?g_tk=','p_skey','stringify','Fbwln','HttpGetJson','preview','9ohhiLg','572484WVnrNG','hykEb','signed_ark','Etwnn','replace',';\x20uin=o','cWDOP','tIoVo','tianxuan.imgJumpArk','tag','1082FCzudd',';\x20skey=','4267680nAfGHu','trInk','miniapp','MiniApp\x20JSON\x20消息生成失败','2060540eLrksV',';\x20p_uin=o','\x5c/\x5c/','tagIcon','com.tencent.miniapp.lua','rlerq','p_skey=','skey','2568414VIIckq','getQzoneCookies','IFxkW','jumpUrl','uin','1483bLAqSf','iovEi','data','normal','prompt','GET','3147876iymtOz','9025296wVgeQQ'];_0x519b=function(){return _0x3acfe0;};return _0x519b();}export async function SignMiniApp(_0x2e61d0){const _0x5cdd20=_0x1217,_0x3ec84b={'rlerq':_0x5cdd20(0x1cb),'IFxkW':_0x5cdd20(0x1b1),'Fbwln':'\x5c/\x5c/','qthrA':function(_0x38a6e8,_0x141303){return _0x38a6e8+_0x141303;},'Etwnn':function(_0x5b92aa,_0x213e63){return _0x5b92aa+_0x213e63;},'cWDOP':function(_0x1d0dc9,_0x5a06c0){return _0x1d0dc9+_0x5a06c0;},'trInk':_0x5cdd20(0x1a7),'hykEb':_0x5cdd20(0x1c8),'tIoVo':_0x5cdd20(0x1a2),'iovEi':_0x5cdd20(0x1c2),'PvXyV':function(_0x2d534b,_0x441eed){return _0x2d534b+_0x441eed;}};let _0x275de2={'app':_0x5cdd20(0x1a5),'bizsrc':_0x5cdd20(0x1c5),'view':_0x3ec84b[_0x5cdd20(0x1a6)],'prompt':_0x2e61d0[_0x5cdd20(0x1b2)],'config':{'type':_0x3ec84b[_0x5cdd20(0x1ab)],'forward':0x1,'autosize':0x0},'meta':{'miniapp':{'title':_0x2e61d0['title'],'preview':_0x2e61d0[_0x5cdd20(0x1bb)]['replace'](/\\/g,_0x5cdd20(0x1a3)),'jumpUrl':_0x2e61d0[_0x5cdd20(0x1ac)]['replace'](/\\/g,_0x3ec84b[_0x5cdd20(0x1b9)]),'tag':_0x2e61d0[_0x5cdd20(0x1c6)],'tagIcon':_0x2e61d0[_0x5cdd20(0x1a4)][_0x5cdd20(0x1c1)](/\\/g,_0x3ec84b[_0x5cdd20(0x1b9)]),'source':_0x2e61d0['source'],'sourcelogo':_0x2e61d0['sourcelogo'][_0x5cdd20(0x1c1)](/\\/g,_0x3ec84b['Fbwln'])}}};const _0x590261=await NTQQUserApi['getSkey']();let _0x3697ae=await NTQQUserApi[_0x5cdd20(0x1aa)]();const _0x20bcb8=WebApi['genBkn'](_0x3697ae[_0x5cdd20(0x1b7)]),_0x8c35b5=_0x3ec84b['qthrA'](_0x3ec84b[_0x5cdd20(0x1c0)](_0x3ec84b['cWDOP'](_0x3ec84b[_0x5cdd20(0x1c3)](_0x3ec84b[_0x5cdd20(0x1c0)](_0x3ec84b[_0x5cdd20(0x1ca)],_0x3697ae[_0x5cdd20(0x1b7)])+_0x3ec84b[_0x5cdd20(0x1be)],_0x3697ae[_0x5cdd20(0x1a8)])+_0x3ec84b[_0x5cdd20(0x1c4)],selfInfo[_0x5cdd20(0x1ad)]),_0x3ec84b[_0x5cdd20(0x1af)]),selfInfo[_0x5cdd20(0x1ad)]);let _0x3bbda1=_0x3ec84b['PvXyV'](_0x3ec84b[_0x5cdd20(0x1c0)](_0x3ec84b[_0x5cdd20(0x1c3)](_0x5cdd20(0x1b6),_0x20bcb8),'&ark='),encodeURIComponent(JSON[_0x5cdd20(0x1b8)](_0x275de2))),_0x35a841='';try{let _0x100935=await RequestUtil[_0x5cdd20(0x1ba)](_0x3bbda1,_0x5cdd20(0x1b3),undefined,{'Cookie':_0x8c35b5});_0x35a841=_0x100935[_0x5cdd20(0x1b0)][_0x5cdd20(0x1bf)];}catch(_0x3c6532){logDebug(_0x5cdd20(0x1cc),_0x3c6532);}return _0x35a841;}
|
||||
(function(_0x27eb39,_0x542bba){const _0x12a1af=_0xe1fa,_0x175cf9=_0x27eb39();while(!![]){try{const _0x38f769=parseInt(_0x12a1af(0x205))/0x1*(-parseInt(_0x12a1af(0x1f8))/0x2)+parseInt(_0x12a1af(0x1ec))/0x3+-parseInt(_0x12a1af(0x1f0))/0x4+parseInt(_0x12a1af(0x1fe))/0x5*(-parseInt(_0x12a1af(0x1fc))/0x6)+parseInt(_0x12a1af(0x1fa))/0x7*(parseInt(_0x12a1af(0x209))/0x8)+-parseInt(_0x12a1af(0x1f7))/0x9+-parseInt(_0x12a1af(0x1ee))/0xa*(-parseInt(_0x12a1af(0x1fb))/0xb);if(_0x38f769===_0x542bba)break;else _0x175cf9['push'](_0x175cf9['shift']());}catch(_0x5544a5){_0x175cf9['push'](_0x175cf9['shift']());}}}(_0x2672,0xcfa11));function _0xe1fa(_0xf6f19f,_0x32e6da){const _0x267226=_0x2672();return _0xe1fa=function(_0xe1fa92,_0x36c397){_0xe1fa92=_0xe1fa92-0x1e8;let _0x5ca5de=_0x267226[_0xe1fa92];return _0x5ca5de;},_0xe1fa(_0xf6f19f,_0x32e6da);}import{logDebug}from'@/common/utils/log';import{NTQQUserApi}from'./user';import{selfInfo}from'../data';import{RequestUtil}from'@/common/utils/request';function _0x2672(){const _0x106989=['594298oubhrF','miniapp','2487737HHIxEf','33mIJSlL','2478vAEjzy','&ark=','2465uHqgON','MlPMD','title','XUYjE','getSkey','adqAQ','jumpUrl','2bPoHyP','source','p_skey','RKvGm','8PqfPGb','https://h5.qzone.qq.com/v2/vip/tx/trpc/ark-share/GenNewSignedArk?g_tk=','com.tencent.miniapp.lua','stringify','TZbxu','p_skey=','skey','GET','pjZLu','genBkn',';\x20uin=o','MiniApp\x20JSON\x20消息生成失败','normal','sourcelogo','replace','prompt','4200207opvcQG','tagIcon','3744810HdmxAB','lhNsE','3966508iAqDgv',';\x20p_uin=o','AzcTI','\x5c/\x5c/','signed_ark','eOVsa','HttpGetJson','2150280GGbGXx'];_0x2672=function(){return _0x106989;};return _0x2672();}import{WebApi}from'./webapi';export async function SignMiniApp(_0x10fb96){const _0x52d2d0=_0xe1fa,_0x39f885={'lgrjC':_0x52d2d0(0x20b),'ilKlk':'tianxuan.imgJumpArk','pjZLu':_0x52d2d0(0x1e8),'eOVsa':_0x52d2d0(0x1f3),'TZbxu':function(_0x15c78d,_0x18c2bb){return _0x15c78d+_0x18c2bb;},'adqAQ':function(_0x345eab,_0x5c3670){return _0x345eab+_0x5c3670;},'XUYjE':function(_0x16c3e6,_0x2741a7){return _0x16c3e6+_0x2741a7;},'lhNsE':_0x52d2d0(0x20e),'MlPMD':';\x20skey=','UJUgU':function(_0x25ea5d,_0x46f011){return _0x25ea5d+_0x46f011;},'AzcTI':_0x52d2d0(0x20a),'RKvGm':_0x52d2d0(0x210),'drexj':function(_0x367153,_0x10fa1e,_0x5eed6b){return _0x367153(_0x10fa1e,_0x5eed6b);},'tHuRn':_0x52d2d0(0x214)};let _0x325284={'app':_0x39f885['lgrjC'],'bizsrc':_0x39f885['ilKlk'],'view':_0x52d2d0(0x1f9),'prompt':_0x10fb96[_0x52d2d0(0x1eb)],'config':{'type':_0x39f885[_0x52d2d0(0x211)],'forward':0x1,'autosize':0x0},'meta':{'miniapp':{'title':_0x10fb96[_0x52d2d0(0x200)],'preview':_0x10fb96['preview']['replace'](/\\/g,_0x39f885['eOVsa']),'jumpUrl':_0x10fb96[_0x52d2d0(0x204)][_0x52d2d0(0x1ea)](/\\/g,_0x39f885['eOVsa']),'tag':_0x10fb96['tag'],'tagIcon':_0x10fb96[_0x52d2d0(0x1ed)][_0x52d2d0(0x1ea)](/\\/g,_0x39f885[_0x52d2d0(0x1f5)]),'source':_0x10fb96[_0x52d2d0(0x206)],'sourcelogo':_0x10fb96[_0x52d2d0(0x1e9)][_0x52d2d0(0x1ea)](/\\/g,_0x39f885[_0x52d2d0(0x1f5)])}}};const _0x4adfae=await NTQQUserApi[_0x52d2d0(0x202)]();let _0x379f9a=await NTQQUserApi['getQzoneCookies']();const _0x298193=WebApi[_0x52d2d0(0x212)](_0x379f9a['p_skey']),_0x5a071d=_0x39f885['TZbxu'](_0x39f885[_0x52d2d0(0x203)](_0x39f885[_0x52d2d0(0x20d)](_0x39f885[_0x52d2d0(0x20d)](_0x39f885[_0x52d2d0(0x201)](_0x39f885[_0x52d2d0(0x203)](_0x39f885[_0x52d2d0(0x1ef)],_0x379f9a[_0x52d2d0(0x207)]),_0x39f885[_0x52d2d0(0x1ff)])+_0x379f9a[_0x52d2d0(0x20f)],_0x52d2d0(0x1f1)),selfInfo['uin']),_0x52d2d0(0x213)),selfInfo['uin']);let _0x572d7b=_0x39f885['adqAQ'](_0x39f885['UJUgU'](_0x39f885[_0x52d2d0(0x1f2)],_0x298193),_0x52d2d0(0x1fd))+encodeURIComponent(JSON[_0x52d2d0(0x20c)](_0x325284)),_0x22a2b5='';try{let _0x3027d7=await RequestUtil[_0x52d2d0(0x1f6)](_0x572d7b,_0x39f885[_0x52d2d0(0x208)],undefined,{'Cookie':_0x5a071d});_0x22a2b5=_0x3027d7['data'][_0x52d2d0(0x1f4)];}catch(_0x4a59cb){_0x39f885['drexj'](logDebug,_0x39f885['tHuRn'],_0x4a59cb);}return _0x22a2b5;}
|
9
src/core.lib/src/apis/system.d.ts
vendored
9
src/core.lib/src/apis/system.d.ts
vendored
@@ -1,7 +1,12 @@
|
||||
import { GeneralCallResult } from '@/core';
|
||||
export declare class NTQQSystemApi {
|
||||
static hasOtherRunningQQProcess(): Promise<boolean>;
|
||||
static ORCImage(filePath: string): Promise<import("@/core").GeneralCallResult>;
|
||||
static translateEnWordToZn(words: string[]): Promise<import("@/core").GeneralCallResult & {
|
||||
static ORCImage(filePath: string): Promise<GeneralCallResult>;
|
||||
static translateEnWordToZn(words: string[]): Promise<GeneralCallResult & {
|
||||
words: string[];
|
||||
}>;
|
||||
static getOnlineDev(): Promise<any>;
|
||||
static getArkJsonCollection(cid: string): Promise<GeneralCallResult & {
|
||||
arkJson: string;
|
||||
}>;
|
||||
}
|
||||
|
@@ -1 +1 @@
|
||||
var _0x58874f=_0x499f;function _0x5bf6(){var _0x338222=['getRichMediaService','hasOtherRunningQQProcess','translateEnWordToZn','7812650SpaTIF','5IdOQKP','197463EOJGfS','getNodeMiscService','292KwunWF','24707826yYbHNa','1bDqocx','9245007XIPlWy','1503434WQmtZG','819GtruOw','wantWinScreenOCR','96fYPIaM','4578870IcAIKN','ORCImage'];_0x5bf6=function(){return _0x338222;};return _0x5bf6();}(function(_0x3c1b48,_0x4d0fc0){var _0x179f54=_0x499f,_0x240c82=_0x3c1b48();while(!![]){try{var _0x2dcffb=parseInt(_0x179f54(0xed))/0x1*(-parseInt(_0x179f54(0xef))/0x2)+-parseInt(_0x179f54(0xf0))/0x3*(-parseInt(_0x179f54(0xeb))/0x4)+-parseInt(_0x179f54(0xe8))/0x5*(parseInt(_0x179f54(0xf3))/0x6)+-parseInt(_0x179f54(0xe9))/0x7*(parseInt(_0x179f54(0xf2))/0x8)+parseInt(_0x179f54(0xee))/0x9+-parseInt(_0x179f54(0xe7))/0xa+parseInt(_0x179f54(0xec))/0xb;if(_0x2dcffb===_0x4d0fc0)break;else _0x240c82['push'](_0x240c82['shift']());}catch(_0x1ce6ea){_0x240c82['push'](_0x240c82['shift']());}}}(_0x5bf6,0xa0cfb));import{napCatCore}from'@/core';function _0x499f(_0x40b4d5,_0x1dd6b5){var _0x5bf6d3=_0x5bf6();return _0x499f=function(_0x499f35,_0x359f9a){_0x499f35=_0x499f35-0xe6;var _0x210e1c=_0x5bf6d3[_0x499f35];return _0x210e1c;},_0x499f(_0x40b4d5,_0x1dd6b5);}export class NTQQSystemApi{static async[_0x58874f(0xf6)](){var _0x2d3916=_0x58874f;return napCatCore['util'][_0x2d3916(0xf6)]();}static async[_0x58874f(0xf4)](_0x20b49c){var _0x20ca46=_0x58874f;return napCatCore['session'][_0x20ca46(0xea)]()[_0x20ca46(0xf1)](_0x20b49c);}static async['translateEnWordToZn'](_0x441891){var _0x815a7e=_0x58874f;return napCatCore['session'][_0x815a7e(0xf5)]()[_0x815a7e(0xe6)](_0x441891);}}
|
||||
const _0x3fc7b9=_0x384a;function _0x384a(_0x50589e,_0xbd758d){const _0x47095a=_0x4709();return _0x384a=function(_0x384a3d,_0x1b02dd){_0x384a3d=_0x384a3d-0x76;let _0x4b165e=_0x47095a[_0x384a3d];return _0x4b165e;},_0x384a(_0x50589e,_0xbd758d);}(function(_0x49bff2,_0x2ebc1e){const _0x3c9f83=_0x384a,_0x32eaff=_0x49bff2();while(!![]){try{const _0x3cc04d=parseInt(_0x3c9f83(0x7f))/0x1*(-parseInt(_0x3c9f83(0x7e))/0x2)+-parseInt(_0x3c9f83(0x87))/0x3+-parseInt(_0x3c9f83(0x81))/0x4*(-parseInt(_0x3c9f83(0x84))/0x5)+parseInt(_0x3c9f83(0x83))/0x6*(parseInt(_0x3c9f83(0x8c))/0x7)+-parseInt(_0x3c9f83(0x89))/0x8+parseInt(_0x3c9f83(0x7d))/0x9*(-parseInt(_0x3c9f83(0x8b))/0xa)+parseInt(_0x3c9f83(0x79))/0xb;if(_0x3cc04d===_0x2ebc1e)break;else _0x32eaff['push'](_0x32eaff['shift']());}catch(_0x1fee33){_0x32eaff['push'](_0x32eaff['shift']());}}}(_0x4709,0xae877));function _0x4709(){const _0x12cba7=['19896404jcGDXb','wantWinScreenOCR','translateEnWordToZn','TaqkD','522mgYaaa','654CCYpUT','1419VLNTQE','session','668Kzvzab','getArkJsonCollection','8138226uemieZ','31375PGVfOl','getRichMediaService','1717662698058','1456713HSlLvt','getOnlineDev','9512216qPGtpU','CallNoListenerEvent','234410omYkWn','7liviFl','util','getNodeMiscService','ORCImage','hasOtherRunningQQProcess'];_0x4709=function(){return _0x12cba7;};return _0x4709();}import{NTEventDispatch}from'@/common/utils/EventTask';import{napCatCore}from'@/core';export class NTQQSystemApi{static async[_0x3fc7b9(0x78)](){const _0x214987=_0x3fc7b9;return napCatCore[_0x214987(0x8d)][_0x214987(0x78)]();}static async[_0x3fc7b9(0x77)](_0x3d1f2f){const _0x7fc008=_0x3fc7b9;return napCatCore[_0x7fc008(0x80)][_0x7fc008(0x76)]()[_0x7fc008(0x7a)](_0x3d1f2f);}static async[_0x3fc7b9(0x7b)](_0x2294ed){const _0x589fdf=_0x3fc7b9;return napCatCore[_0x589fdf(0x80)][_0x589fdf(0x85)]()[_0x589fdf(0x7b)](_0x2294ed);}static async[_0x3fc7b9(0x88)](){const _0x188b11=_0x3fc7b9;return napCatCore[_0x188b11(0x80)]['getMsgService']()['getOnLineDev']();}static async[_0x3fc7b9(0x82)](_0xec65a2){const _0x1f9ecd=_0x3fc7b9,_0x28aba4={'TaqkD':'NodeIKernelCollectionService/collectionArkShare','tVFFZ':_0x1f9ecd(0x86)};let _0x1e6bde=await NTEventDispatch[_0x1f9ecd(0x8a)](_0x28aba4[_0x1f9ecd(0x7c)],0x1388,_0x28aba4['tVFFZ']);return _0x1e6bde;}}
|
8
src/core.lib/src/apis/user.d.ts
vendored
8
src/core.lib/src/apis/user.d.ts
vendored
@@ -1,7 +1,9 @@
|
||||
import { User } from '@/core/entities';
|
||||
import { ModifyProfileParams, User, UserDetailInfoByUin } from '@/core/entities';
|
||||
import { GeneralCallResult } from '@/core';
|
||||
export declare class NTQQUserApi {
|
||||
static setLongNick(longNick: string): Promise<unknown>;
|
||||
static setSelfOnlineStatus(status: number, extStatus: number, batteryStatus: number): Promise<GeneralCallResult>;
|
||||
static getBuddyRecommendContactArkJson(uin: string, sencenID?: string): Promise<unknown>;
|
||||
static like(uid: string, count?: number): Promise<{
|
||||
result: number;
|
||||
errMsg: string;
|
||||
@@ -14,6 +16,7 @@ export declare class NTQQUserApi {
|
||||
static getSelfInfo(): Promise<void>;
|
||||
static getUserInfo(uid: string): Promise<void>;
|
||||
static getUserDetailInfo(uid: string): Promise<User>;
|
||||
static modifySelfProfile(param: ModifyProfileParams): Promise<GeneralCallResult>;
|
||||
static getPSkey(domainList: string[], cached?: boolean): Promise<{
|
||||
[key: string]: string;
|
||||
}>;
|
||||
@@ -22,4 +25,7 @@ export declare class NTQQUserApi {
|
||||
[key: string]: string;
|
||||
}>;
|
||||
static getSkey(cached?: boolean): Promise<string | undefined>;
|
||||
static getUidByUin(Uin: string): Promise<string | undefined>;
|
||||
static getUinByUid(Uid: string | undefined): Promise<string | undefined>;
|
||||
static getUserDetailInfoByUin(Uin: string): Promise<UserDetailInfoByUin>;
|
||||
}
|
||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
11
src/core.lib/src/apis/window.d.ts
vendored
11
src/core.lib/src/apis/window.d.ts
vendored
@@ -1,11 +0,0 @@
|
||||
export interface NTQQWindow {
|
||||
windowName: string;
|
||||
windowUrlHash: string;
|
||||
}
|
||||
export declare class NTQQWindows {
|
||||
static GroupHomeWorkWindow: NTQQWindow;
|
||||
static GroupNotifyFilterWindow: NTQQWindow;
|
||||
static GroupEssenceWindow: NTQQWindow;
|
||||
}
|
||||
export declare class NTQQWindowApi {
|
||||
}
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
12
src/core.lib/src/data.d.ts
vendored
12
src/core.lib/src/data.d.ts
vendored
@@ -1,4 +1,4 @@
|
||||
import { type Friend, type FriendRequest, type Group, type GroupMember, GroupNotify, type SelfInfo, BuddyCategoryType } from './entities';
|
||||
import { type Friend, type Group, type GroupMember, GroupNotify, type SelfInfo, BuddyCategoryType } from './entities';
|
||||
import { WebApiGroupMember } from '@/core/apis';
|
||||
export declare const Credentials: {
|
||||
Skey: string;
|
||||
@@ -18,19 +18,9 @@ export declare const groups: Map<string, Group>;
|
||||
export declare function deleteGroup(groupQQ: string): void;
|
||||
export declare const groupMembers: Map<string, Map<string, GroupMember>>;
|
||||
export declare const friends: Map<string, Friend>;
|
||||
export declare const friendRequests: Record<string, FriendRequest>;
|
||||
export declare const groupNotifies: Record<string, GroupNotify>;
|
||||
export declare const napCatError: {
|
||||
ffmpegError: string;
|
||||
httpServerError: string;
|
||||
wsServerError: string;
|
||||
otherError: string;
|
||||
};
|
||||
export declare function getFriend(uinOrUid: string): Promise<Friend | undefined>;
|
||||
export declare function getGroup(qq: string | number): Promise<Group | undefined>;
|
||||
export declare function getGroupMember(groupQQ: string | number, memberUinOrUid: string | number): Promise<GroupMember | null | undefined>;
|
||||
export declare const uid2UinMap: Record<string, string>;
|
||||
export declare function getUidByUin(uin: string): string | undefined;
|
||||
export declare const tempGroupCodeMap: Record<string, string>;
|
||||
export declare const rawFriends: Array<BuddyCategoryType>;
|
||||
export declare const stat: {
|
||||
|
@@ -1 +1 @@
|
||||
const _0x2f143c=_0x4db3;(function(_0x6dcd91,_0x29429b){const _0x4a8a26=_0x4db3,_0x4fb3fa=_0x6dcd91();while(!![]){try{const _0x464690=parseInt(_0x4a8a26(0x180))/0x1*(-parseInt(_0x4a8a26(0x17f))/0x2)+parseInt(_0x4a8a26(0x18f))/0x3+-parseInt(_0x4a8a26(0x196))/0x4+parseInt(_0x4a8a26(0x184))/0x5*(-parseInt(_0x4a8a26(0x19a))/0x6)+-parseInt(_0x4a8a26(0x18d))/0x7+-parseInt(_0x4a8a26(0x190))/0x8*(-parseInt(_0x4a8a26(0x188))/0x9)+parseInt(_0x4a8a26(0x18b))/0xa*(parseInt(_0x4a8a26(0x187))/0xb);if(_0x464690===_0x29429b)break;else _0x4fb3fa['push'](_0x4fb3fa['shift']());}catch(_0x337e37){_0x4fb3fa['push'](_0x4fb3fa['shift']());}}}(_0x5784,0x5eba8));import{isNumeric}from'@/common/utils/helper';function _0x4db3(_0x48cfa0,_0x3a59e5){const _0x578412=_0x5784();return _0x4db3=function(_0x4db31f,_0x27eebd){_0x4db31f=_0x4db31f-0x17f;let _0x4f003c=_0x578412[_0x4db31f];return _0x4f003c;},_0x4db3(_0x48cfa0,_0x3a59e5);}import{NTQQGroupApi}from'@/core/apis';export const Credentials={'Skey':'','CreatTime':0x0,'Cookies':new Map(),'ClientKey':'','KeyIndex':'','PskeyData':new Map(),'PskeyTime':new Map()};export const WebGroupData={'GroupData':new Map(),'GroupTime':new Map()};export const selfInfo={'uid':'','uin':'','nick':'','online':!![]};function _0x5784(){const _0x42541c=['getGroups','groupCode','set','15765qlBhPu','get','delete','418RUuFVk','2107962BErqQv','forEach','length','459870rTLZoE','RJZnh','5085563AexJrI','uin','1060161rqBOtm','16ARissP','NapCat未能正常启动,请检查日志查看错误','from','zdmFc','getGroupMembers','find','2468796ZDIKVR','values','BqMqQ','gEpWX','846MopRqQ','toString','9248sSCRwC','85WiAhpP'];_0x5784=function(){return _0x42541c;};return _0x5784();}export const groups=new Map();export function deleteGroup(_0x429f1e){const _0x4ef735=_0x4db3;groups['delete'](_0x429f1e),groupMembers[_0x4ef735(0x186)](_0x429f1e);}export const groupMembers=new Map();export const friends=new Map();export const friendRequests={};export const groupNotifies={};export const napCatError={'ffmpegError':'','httpServerError':'','wsServerError':'','otherError':_0x2f143c(0x191)};export async function getFriend(_0x2b2ada){const _0x568b3d=_0x2f143c,_0x376f2c={'BqMqQ':function(_0x29fa15,_0x4472a5){return _0x29fa15(_0x4472a5);}};_0x2b2ada=_0x2b2ada['toString']();if(_0x376f2c[_0x568b3d(0x198)](isNumeric,_0x2b2ada)){const _0x1614c3=Array[_0x568b3d(0x192)](friends[_0x568b3d(0x197)]());return _0x1614c3[_0x568b3d(0x195)](_0x372792=>_0x372792[_0x568b3d(0x18e)]===_0x2b2ada);}else return friends[_0x568b3d(0x185)](_0x2b2ada);}export async function getGroup(_0x308df6){const _0xb82bdc=_0x2f143c;let _0x482e6e=groups[_0xb82bdc(0x185)](_0x308df6[_0xb82bdc(0x19b)]());if(!_0x482e6e)try{const _0x3de901=await NTQQGroupApi[_0xb82bdc(0x181)]();_0x3de901[_0xb82bdc(0x18a)]&&_0x3de901[_0xb82bdc(0x189)](_0x3e0e1c=>{const _0x3933f4=_0xb82bdc;groups[_0x3933f4(0x183)](_0x3e0e1c[_0x3933f4(0x182)],_0x3e0e1c);});}catch(_0x52729b){return undefined;}return _0x482e6e=groups['get'](_0x308df6[_0xb82bdc(0x19b)]()),_0x482e6e;}export async function getGroupMember(_0x5dab24,_0x158535){const _0x33cfc0=_0x2f143c,_0x922ff7={'RJZnh':function(_0x3db2aa,_0x38db5b){return _0x3db2aa(_0x38db5b);},'zdmFc':function(_0x4a96cd){return _0x4a96cd();}};_0x5dab24=_0x5dab24['toString'](),_0x158535=_0x158535[_0x33cfc0(0x19b)]();let _0x34f961=groupMembers[_0x33cfc0(0x185)](_0x5dab24);if(!_0x34f961)try{_0x34f961=await NTQQGroupApi[_0x33cfc0(0x194)](_0x5dab24),groupMembers[_0x33cfc0(0x183)](_0x5dab24,_0x34f961);}catch(_0x4bd608){return null;}const _0x42a152=()=>{const _0x3790ee=_0x33cfc0;let _0x33f1de=undefined;return _0x922ff7[_0x3790ee(0x18c)](isNumeric,_0x158535)?_0x33f1de=Array[_0x3790ee(0x192)](_0x34f961[_0x3790ee(0x197)]())['find'](_0x91b924=>_0x91b924[_0x3790ee(0x18e)]===_0x158535):_0x33f1de=_0x34f961[_0x3790ee(0x185)](_0x158535),_0x33f1de;};let _0x5d9468=_0x42a152();return!_0x5d9468&&(_0x34f961=await NTQQGroupApi['getGroupMembers'](_0x5dab24),_0x5d9468=_0x922ff7[_0x33cfc0(0x193)](_0x42a152)),_0x5d9468;}export const uid2UinMap={};export function getUidByUin(_0x27ee8c){const _0x5cc43c=_0x2f143c,_0x1d3f59={'gEpWX':function(_0x3ceb76,_0xb8a37a){return _0x3ceb76===_0xb8a37a;}};for(const _0x1d348e in uid2UinMap){if(_0x1d3f59[_0x5cc43c(0x199)](uid2UinMap[_0x1d348e],_0x27ee8c))return _0x1d348e;}}export const tempGroupCodeMap={};export const rawFriends=[];export const stat={'packet_received':0x0,'packet_sent':0x0,'message_received':0x0,'message_sent':0x0,'last_message_time':0x0,'disconnect_times':0x0,'lost_times':0x0,'packet_lost':0x0};
|
||||
(function(_0x507c55,_0xe76747){const _0x4e4e9e=_0x2e30,_0x4b62ac=_0x507c55();while(!![]){try{const _0x386c5f=-parseInt(_0x4e4e9e(0x17f))/0x1*(parseInt(_0x4e4e9e(0x189))/0x2)+parseInt(_0x4e4e9e(0x18b))/0x3*(parseInt(_0x4e4e9e(0x183))/0x4)+parseInt(_0x4e4e9e(0x184))/0x5+-parseInt(_0x4e4e9e(0x191))/0x6+parseInt(_0x4e4e9e(0x185))/0x7*(-parseInt(_0x4e4e9e(0x18f))/0x8)+-parseInt(_0x4e4e9e(0x180))/0x9+parseInt(_0x4e4e9e(0x192))/0xa;if(_0x386c5f===_0xe76747)break;else _0x4b62ac['push'](_0x4b62ac['shift']());}catch(_0x254d56){_0x4b62ac['push'](_0x4b62ac['shift']());}}}(_0x1961,0x4906a));import{isNumeric}from'@/common/utils/helper';import{NTQQGroupApi}from'@/core/apis';export const Credentials={'Skey':'','CreatTime':0x0,'Cookies':new Map(),'ClientKey':'','KeyIndex':'','PskeyData':new Map(),'PskeyTime':new Map()};export const WebGroupData={'GroupData':new Map(),'GroupTime':new Map()};function _0x2e30(_0x3bed39,_0x5b4501){const _0x1961d0=_0x1961();return _0x2e30=function(_0x2e30f1,_0x15de76){_0x2e30f1=_0x2e30f1-0x17e;let _0x310a9f=_0x1961d0[_0x2e30f1];return _0x310a9f;},_0x2e30(_0x3bed39,_0x5b4501);}export const selfInfo={'uid':'','uin':'','nick':'','online':!![]};export const groups=new Map();export function deleteGroup(_0x37e81e){const _0x30124f=_0x2e30;groups[_0x30124f(0x187)](_0x37e81e),groupMembers['delete'](_0x37e81e);}export const groupMembers=new Map();export const friends=new Map();export const groupNotifies={};export async function getGroup(_0x467c99){const _0x23a892=_0x2e30;let _0x36554b=groups['get'](_0x467c99[_0x23a892(0x188)]());if(!_0x36554b)try{const _0x31841e=await NTQQGroupApi[_0x23a892(0x17e)]();_0x31841e[_0x23a892(0x190)]&&_0x31841e[_0x23a892(0x18d)](_0x163452=>{const _0x35cc3b=_0x23a892;groups['set'](_0x163452[_0x35cc3b(0x182)],_0x163452);});}catch(_0x404582){return undefined;}return _0x36554b=groups['get'](_0x467c99[_0x23a892(0x188)]()),_0x36554b;}export async function getGroupMember(_0x431789,_0x1ee32c){const _0x6ce565=_0x2e30,_0x5b8518={'dhdHT':function(_0x212e55){return _0x212e55();}};_0x431789=_0x431789[_0x6ce565(0x188)](),_0x1ee32c=_0x1ee32c[_0x6ce565(0x188)]();let _0x3189b5=groupMembers[_0x6ce565(0x181)](_0x431789);if(!_0x3189b5)try{_0x3189b5=await NTQQGroupApi[_0x6ce565(0x18e)](_0x431789),groupMembers[_0x6ce565(0x18c)](_0x431789,_0x3189b5);}catch(_0xe7c056){return null;}const _0x58b980=()=>{const _0x623f3c=_0x6ce565;let _0x30c57c=undefined;return isNumeric(_0x1ee32c)?_0x30c57c=Array[_0x623f3c(0x186)](_0x3189b5[_0x623f3c(0x193)]())['find'](_0xefd20f=>_0xefd20f['uin']===_0x1ee32c):_0x30c57c=_0x3189b5[_0x623f3c(0x181)](_0x1ee32c),_0x30c57c;};let _0x646ab1=_0x5b8518[_0x6ce565(0x18a)](_0x58b980);return!_0x646ab1&&(_0x3189b5=await NTQQGroupApi[_0x6ce565(0x18e)](_0x431789),_0x646ab1=_0x58b980()),_0x646ab1;}export const tempGroupCodeMap={};export const rawFriends=[];export const stat={'packet_received':0x0,'packet_sent':0x0,'message_received':0x0,'message_sent':0x0,'last_message_time':0x0,'disconnect_times':0x0,'lost_times':0x0,'packet_lost':0x0};function _0x1961(){const _0x131a36=['4KMlbfN','dhdHT','249HgUmyg','set','forEach','getGroupMembers','8IIghPA','length','492744JRBlUl','10601600sCtxlA','values','getGroups','133906asyCis','4975263mosbVX','get','groupCode','11668XcxsSc','576015bFXbfL','1509319ZecXRM','from','delete','toString'];_0x1961=function(){return _0x131a36;};return _0x1961();}
|
@@ -1 +1 @@
|
||||
(function(_0x4b175e,_0x452713){var _0x404486=_0x35b6,_0x4481cc=_0x4b175e();while(!![]){try{var _0x40b0ac=parseInt(_0x404486(0x1c9))/0x1+-parseInt(_0x404486(0x1ce))/0x2*(parseInt(_0x404486(0x1cb))/0x3)+-parseInt(_0x404486(0x1c5))/0x4+parseInt(_0x404486(0x1c3))/0x5*(parseInt(_0x404486(0x1ca))/0x6)+parseInt(_0x404486(0x1c7))/0x7*(parseInt(_0x404486(0x1bf))/0x8)+parseInt(_0x404486(0x1bb))/0x9*(-parseInt(_0x404486(0x1cf))/0xa)+parseInt(_0x404486(0x1bd))/0xb*(parseInt(_0x404486(0x1cd))/0xc);if(_0x40b0ac===_0x452713)break;else _0x4481cc['push'](_0x4481cc['shift']());}catch(_0x1e1964){_0x4481cc['push'](_0x4481cc['shift']());}}}(_0x1730,0x4cfc6));;function _0x1730(){var _0x386f4a=['27hhgRWY','sITvM','967087wLIDnb','split','8Auensn','qfLgq','AUDIO','VIDEO','10MCZkne','IMAGE','1574844WDzRid','DOCUMENT','349937NbFSsB','OTHER','386302HKiqRN','838368fymGmy','3fwpTnC','RjXbr','132AufSvg','737076fvznmL','2017510uDaNMA'];_0x1730=function(){return _0x386f4a;};return _0x1730();}function _0x35b6(_0x377741,_0x6f7eb5){var _0x1730f1=_0x1730();return _0x35b6=function(_0x35b67e,_0x23361f){_0x35b67e=_0x35b67e-0x1bb;var _0x427dc3=_0x1730f1[_0x35b67e];return _0x427dc3;},_0x35b6(_0x377741,_0x6f7eb5);}export var CacheFileType;(function(_0x4459eb){var _0xc5079e=_0x35b6,_0x1e9f17={'RjXbr':'1|2|4|3|0','qfLgq':_0xc5079e(0x1c8),'VHPiP':_0xc5079e(0x1c4),'sITvM':_0xc5079e(0x1c2),'ioWiG':_0xc5079e(0x1c6),'ytjzY':_0xc5079e(0x1c1)},_0x2549df=_0x1e9f17[_0xc5079e(0x1cc)][_0xc5079e(0x1be)]('|'),_0x5eedeb=0x0;while(!![]){switch(_0x2549df[_0x5eedeb++]){case'0':_0x4459eb[_0x4459eb[_0x1e9f17[_0xc5079e(0x1c0)]]=0x4]=_0x1e9f17['qfLgq'];continue;case'1':_0x4459eb[_0x4459eb[_0xc5079e(0x1c4)]=0x0]=_0x1e9f17['VHPiP'];continue;case'2':_0x4459eb[_0x4459eb[_0x1e9f17[_0xc5079e(0x1bc)]]=0x1]=_0x1e9f17[_0xc5079e(0x1bc)];continue;case'3':_0x4459eb[_0x4459eb[_0x1e9f17['ioWiG']]=0x3]=_0xc5079e(0x1c6);continue;case'4':_0x4459eb[_0x4459eb[_0x1e9f17['ytjzY']]=0x2]=_0x1e9f17['ytjzY'];continue;}break;}}(CacheFileType||(CacheFileType={})));
|
||||
(function(_0x3f1f62,_0x2ee11c){var _0x4f4168=_0x1a36,_0x13f90b=_0x3f1f62();while(!![]){try{var _0x2671fe=-parseInt(_0x4f4168(0x18f))/0x1+-parseInt(_0x4f4168(0x19b))/0x2+parseInt(_0x4f4168(0x191))/0x3*(-parseInt(_0x4f4168(0x195))/0x4)+parseInt(_0x4f4168(0x190))/0x5*(-parseInt(_0x4f4168(0x19d))/0x6)+-parseInt(_0x4f4168(0x18d))/0x7*(parseInt(_0x4f4168(0x197))/0x8)+parseInt(_0x4f4168(0x196))/0x9+parseInt(_0x4f4168(0x18e))/0xa;if(_0x2671fe===_0x2ee11c)break;else _0x13f90b['push'](_0x13f90b['shift']());}catch(_0x3dff2d){_0x13f90b['push'](_0x13f90b['shift']());}}}(_0x1645,0x957be));function _0x1645(){var _0x474b8a=['5769VVKndC','4|2|3|1|0','BgcgY','IMAGE','1652VUUNFo','9129204TwgQGp','264200vEySjN','split','vUSKZ','GltZX','441688MlxfaN','VIDEO','66dXPnvb','AUDIO','OTHER','119YQvYnT','21765840vhRuVh','696529ktOaZd','138935zZMdZa'];_0x1645=function(){return _0x474b8a;};return _0x1645();};export var CacheFileType;function _0x1a36(_0x50e87d,_0x5dac65){var _0x164580=_0x1645();return _0x1a36=function(_0x1a3616,_0x3ccc21){_0x1a3616=_0x1a3616-0x18c;var _0x54aac9=_0x164580[_0x1a3616];return _0x54aac9;},_0x1a36(_0x50e87d,_0x5dac65);}(function(_0x1145cd){var _0x820379=_0x1a36,_0x25420a={'ANFeE':_0x820379(0x192),'BgcgY':'DOCUMENT','vUSKZ':_0x820379(0x19e),'GltZX':_0x820379(0x194)},_0x3fc4af=_0x25420a['ANFeE'][_0x820379(0x198)]('|'),_0x257f09=0x0;while(!![]){switch(_0x3fc4af[_0x257f09++]){case'0':_0x1145cd[_0x1145cd[_0x820379(0x18c)]=0x4]=_0x820379(0x18c);continue;case'1':_0x1145cd[_0x1145cd['DOCUMENT']=0x3]=_0x25420a[_0x820379(0x193)];continue;case'2':_0x1145cd[_0x1145cd[_0x820379(0x19c)]=0x1]=_0x820379(0x19c);continue;case'3':_0x1145cd[_0x1145cd[_0x25420a[_0x820379(0x199)]]=0x2]=_0x25420a['vUSKZ'];continue;case'4':_0x1145cd[_0x1145cd[_0x25420a[_0x820379(0x19a)]]=0x0]=_0x820379(0x194);continue;}break;}}(CacheFileType||(CacheFileType={})));
|
2
src/core.lib/src/entities/constructor.d.ts
vendored
2
src/core.lib/src/entities/constructor.d.ts
vendored
@@ -5,7 +5,7 @@ export declare class SendMsgElementConstructor {
|
||||
static at(atUid: string, atNtUid: string, atType: AtType, atName: string): SendTextElement;
|
||||
static reply(msgSeq: string, msgId: string, senderUin: string, senderUinStr: string): SendReplyElement;
|
||||
static pic(picPath: string, summary?: string, subType?: 0 | 1): Promise<SendPicElement>;
|
||||
static file(filePath: string, fileName?: string): Promise<SendFileElement>;
|
||||
static file(filePath: string, fileName?: string, folderId?: string): Promise<SendFileElement>;
|
||||
static video(filePath: string, fileName?: string, diyThumbPath?: string): Promise<SendVideoElement>;
|
||||
static ptt(pttPath: string): Promise<SendPttElement>;
|
||||
static face(faceId: number): SendFaceElement;
|
||||
|
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
(function(_0x2629d1,_0x1746d3){var _0x181451=_0x20bc,_0x108b02=_0x2629d1();while(!![]){try{var _0x1681bc=parseInt(_0x181451(0x7f))/0x1*(parseInt(_0x181451(0x85))/0x2)+-parseInt(_0x181451(0x80))/0x3+-parseInt(_0x181451(0x83))/0x4+parseInt(_0x181451(0x7a))/0x5+-parseInt(_0x181451(0x7e))/0x6+parseInt(_0x181451(0x81))/0x7*(parseInt(_0x181451(0x82))/0x8)+parseInt(_0x181451(0x7d))/0x9;if(_0x1681bc===_0x1746d3)break;else _0x108b02['push'](_0x108b02['shift']());}catch(_0x26cca1){_0x108b02['push'](_0x108b02['shift']());}}}(_0x73c7,0x29b06));export var GroupMemberRole;function _0x73c7(){var _0x41f620=['4655214RMHLAw','749034NyxcBU','1zXuUYy','998340vAazLm','28LhXqGW','431272UOyzjL','1123168iPPRvo','owner','6398sMMcyX','wRNWM','eUskL','normal','865440STWwdT','admin','kvlaV'];_0x73c7=function(){return _0x41f620;};return _0x73c7();}function _0x20bc(_0x46f0ba,_0x5d6a8d){var _0x73c76f=_0x73c7();return _0x20bc=function(_0x20bc9f,_0x39efe7){_0x20bc9f=_0x20bc9f-0x79;var _0x385b90=_0x73c76f[_0x20bc9f];return _0x385b90;},_0x20bc(_0x46f0ba,_0x5d6a8d);}(function(_0x1bdbef){var _0x32a4a3=_0x20bc,_0xff7650={'kvlaV':_0x32a4a3(0x79),'wRNWM':'admin','eUskL':_0x32a4a3(0x84)};_0x1bdbef[_0x1bdbef[_0x32a4a3(0x79)]=0x2]=_0xff7650[_0x32a4a3(0x7c)],_0x1bdbef[_0x1bdbef[_0x32a4a3(0x7b)]=0x3]=_0xff7650[_0x32a4a3(0x86)],_0x1bdbef[_0x1bdbef[_0x32a4a3(0x84)]=0x4]=_0xff7650[_0x32a4a3(0x87)];}(GroupMemberRole||(GroupMemberRole={})));
|
||||
function _0x4fa9(_0x1b8aa4,_0xe764b9){var _0x574dc5=_0x574d();return _0x4fa9=function(_0x4fa96d,_0xa41fd1){_0x4fa96d=_0x4fa96d-0x18d;var _0x1e1e67=_0x574dc5[_0x4fa96d];return _0x1e1e67;},_0x4fa9(_0x1b8aa4,_0xe764b9);}(function(_0x27cc84,_0x27d8d5){var _0x42e11a=_0x4fa9,_0x310382=_0x27cc84();while(!![]){try{var _0x1ebcec=-parseInt(_0x42e11a(0x192))/0x1*(-parseInt(_0x42e11a(0x198))/0x2)+-parseInt(_0x42e11a(0x191))/0x3+parseInt(_0x42e11a(0x19a))/0x4*(parseInt(_0x42e11a(0x18e))/0x5)+parseInt(_0x42e11a(0x18f))/0x6+-parseInt(_0x42e11a(0x197))/0x7+parseInt(_0x42e11a(0x18d))/0x8+parseInt(_0x42e11a(0x193))/0x9;if(_0x1ebcec===_0x27d8d5)break;else _0x310382['push'](_0x310382['shift']());}catch(_0x222867){_0x310382['push'](_0x310382['shift']());}}}(_0x574d,0x74020));export var GroupMemberRole;(function(_0x437fbe){var _0x3fd34e=_0x4fa9,_0x419352={'qinqD':_0x3fd34e(0x199),'TRIDz':_0x3fd34e(0x190),'fjWzM':_0x3fd34e(0x19b)};_0x437fbe[_0x437fbe[_0x419352[_0x3fd34e(0x194)]]=0x2]=_0x419352[_0x3fd34e(0x194)],_0x437fbe[_0x437fbe[_0x419352[_0x3fd34e(0x195)]]=0x3]=_0x419352[_0x3fd34e(0x195)],_0x437fbe[_0x437fbe['owner']=0x4]=_0x419352[_0x3fd34e(0x196)];}(GroupMemberRole||(GroupMemberRole={})));function _0x574d(){var _0x5ab7f4=['1277586OHOfft','admin','2027889ZIVNBv','19993BIGMwG','2169621YDVhPi','qinqD','TRIDz','fjWzM','3525746GeiZUe','44VqhrQR','normal','1802172GkXOoH','owner','2483360aEVIHp','5ttzTHk'];_0x574d=function(){return _0x5ab7f4;};return _0x574d();}
|
@@ -1 +1 @@
|
||||
(function(_0x3eeb70,_0x20726b){var _0x4e0a62=_0x45ed,_0x5d24d3=_0x3eeb70();while(!![]){try{var _0x24a9a9=-parseInt(_0x4e0a62(0x1d1))/0x1*(-parseInt(_0x4e0a62(0x1d2))/0x2)+parseInt(_0x4e0a62(0x1d8))/0x3*(parseInt(_0x4e0a62(0x1d0))/0x4)+-parseInt(_0x4e0a62(0x1d5))/0x5+parseInt(_0x4e0a62(0x1d3))/0x6+-parseInt(_0x4e0a62(0x1cf))/0x7+-parseInt(_0x4e0a62(0x1d4))/0x8+parseInt(_0x4e0a62(0x1d6))/0x9*(-parseInt(_0x4e0a62(0x1d7))/0xa);if(_0x24a9a9===_0x20726b)break;else _0x5d24d3['push'](_0x5d24d3['shift']());}catch(_0x26adba){_0x5d24d3['push'](_0x5d24d3['shift']());}}}(_0x3535,0x2535d));export*from'./user';export*from'./group';export*from'./msg';export*from'./notify';function _0x3535(){var _0x205547=['1mmqEBQ','344224jhMupL','629478JzYVFn','1819312lOyRbI','339535cdzRkR','478917sgjIAV','10SSmTVa','15ZmGVnF','116291sPfHbC','192428Gfzgwg'];_0x3535=function(){return _0x205547;};return _0x3535();}export*from'./cache';function _0x45ed(_0xd044b6,_0x188143){var _0x3535da=_0x3535();return _0x45ed=function(_0x45ed5d,_0x3ad035){_0x45ed5d=_0x45ed5d-0x1cf;var _0x1a9f0b=_0x3535da[_0x45ed5d];return _0x1a9f0b;},_0x45ed(_0xd044b6,_0x188143);}export*from'./constructor';
|
||||
(function(_0x398a76,_0x4edc0d){var _0x1febae=_0x15a8,_0x7ccf83=_0x398a76();while(!![]){try{var _0x288ef6=-parseInt(_0x1febae(0xfe))/0x1*(parseInt(_0x1febae(0xf8))/0x2)+parseInt(_0x1febae(0xfa))/0x3+parseInt(_0x1febae(0xfd))/0x4*(-parseInt(_0x1febae(0xfc))/0x5)+-parseInt(_0x1febae(0xf9))/0x6+-parseInt(_0x1febae(0x100))/0x7+-parseInt(_0x1febae(0xff))/0x8+-parseInt(_0x1febae(0xf7))/0x9*(-parseInt(_0x1febae(0xfb))/0xa);if(_0x288ef6===_0x4edc0d)break;else _0x7ccf83['push'](_0x7ccf83['shift']());}catch(_0xe88819){_0x7ccf83['push'](_0x7ccf83['shift']());}}}(_0x4607,0x45a64));function _0x15a8(_0x543c74,_0x494cdd){var _0x460773=_0x4607();return _0x15a8=function(_0x15a843,_0x34a8bd){_0x15a843=_0x15a843-0xf7;var _0x23446a=_0x460773[_0x15a843];return _0x23446a;},_0x15a8(_0x543c74,_0x494cdd);}function _0x4607(){var _0x1d7141=['550EjbNQG','63435lAeZpw','24wNkwXj','563147CknCoR','3543824KPiNeO','1742727PvunvK','257625HjFBnz','2GSqeQw','758706HCAzzU','505704CasaQC'];_0x4607=function(){return _0x1d7141;};return _0x4607();}export*from'./user';export*from'./group';export*from'./msg';export*from'./notify';export*from'./cache';export*from'./constructor';
|
56
src/core.lib/src/entities/msg.d.ts
vendored
56
src/core.lib/src/entities/msg.d.ts
vendored
@@ -115,6 +115,7 @@ export interface FileElement {
|
||||
fileSize: string;
|
||||
picHeight?: number;
|
||||
picWidth?: number;
|
||||
folderId?: string;
|
||||
picThumbPath?: Map<number, string>;
|
||||
file10MMd5?: string;
|
||||
fileSha?: string;
|
||||
@@ -156,6 +157,48 @@ export declare enum ChatType {
|
||||
chatDevice = 8,//移动设备?
|
||||
temp = 100
|
||||
}
|
||||
export declare 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;
|
||||
@@ -272,6 +315,19 @@ export interface VideoElement {
|
||||
import_rich_media_context?: null;
|
||||
sourceVideoCodecFormat?: number;
|
||||
}
|
||||
export declare 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;
|
||||
}
|
||||
|
File diff suppressed because one or more lines are too long
54
src/core.lib/src/entities/notify.d.ts
vendored
54
src/core.lib/src/entities/notify.d.ts
vendored
@@ -54,8 +54,26 @@ export declare enum GroupRequestOperateTypes {
|
||||
approve = 1,
|
||||
reject = 2
|
||||
}
|
||||
export declare enum BuddyReqType {
|
||||
KMEINITIATOR = 0,
|
||||
KPEERINITIATOR = 1,
|
||||
KMEAGREED = 2,
|
||||
KMEAGREEDANDADDED = 3,
|
||||
KPEERAGREED = 4,
|
||||
KPEERAGREEDANDADDED = 5,
|
||||
KPEERREFUSED = 6,
|
||||
KMEREFUSED = 7,
|
||||
KMEIGNORED = 8,
|
||||
KMEAGREEANYONE = 9,
|
||||
KMESETQUESTION = 10,
|
||||
KMEAGREEANDADDFAILED = 11,
|
||||
KMSGINFO = 12,
|
||||
KMEINITIATORWAITPEERCONFIRM = 13
|
||||
}
|
||||
export interface FriendRequest {
|
||||
isDecide: boolean;
|
||||
friendUid: string;
|
||||
reqType: BuddyReqType;
|
||||
reqTime: string;
|
||||
extWords: string;
|
||||
isUnread: boolean;
|
||||
@@ -67,3 +85,39 @@ export interface FriendRequestNotify {
|
||||
unreadNums: number;
|
||||
buddyReqs: FriendRequest[];
|
||||
}
|
||||
export declare 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;
|
||||
};
|
||||
}
|
||||
|
File diff suppressed because one or more lines are too long
84
src/core.lib/src/entities/user.d.ts
vendored
84
src/core.lib/src/entities/user.d.ts
vendored
@@ -9,6 +9,17 @@ export interface BuddyCategoryType {
|
||||
categroyMbCount: number;
|
||||
buddyList: User[];
|
||||
}
|
||||
export interface ModifyProfileParams {
|
||||
nick: string;
|
||||
longNick: string;
|
||||
sex: Sex;
|
||||
birthday: {
|
||||
birthday_year: string;
|
||||
birthday_month: string;
|
||||
birthday_day: string;
|
||||
};
|
||||
location: any;
|
||||
}
|
||||
export interface BuddyProfileLikeReq {
|
||||
friendUids: string[];
|
||||
basic: number;
|
||||
@@ -87,3 +98,76 @@ export interface SelfInfo extends User {
|
||||
}
|
||||
export interface Friend extends User {
|
||||
}
|
||||
export declare enum BizKey {
|
||||
KPRIVILEGEICON = 0,
|
||||
KPHOTOWALL = 1
|
||||
}
|
||||
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;
|
||||
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;
|
||||
};
|
||||
}
|
||||
|
@@ -1 +1 @@
|
||||
(function(_0x4f031d,_0x410210){var _0x43b4ee=_0x4444,_0x29e1a1=_0x4f031d();while(!![]){try{var _0x5ed45e=parseInt(_0x43b4ee(0xd8))/0x1+parseInt(_0x43b4ee(0xd0))/0x2+parseInt(_0x43b4ee(0xd7))/0x3*(parseInt(_0x43b4ee(0xd1))/0x4)+-parseInt(_0x43b4ee(0xda))/0x5+-parseInt(_0x43b4ee(0xd2))/0x6+parseInt(_0x43b4ee(0xdb))/0x7+parseInt(_0x43b4ee(0xd3))/0x8;if(_0x5ed45e===_0x410210)break;else _0x29e1a1['push'](_0x29e1a1['shift']());}catch(_0x958326){_0x29e1a1['push'](_0x29e1a1['shift']());}}}(_0x400d,0x2b8b3));export var Sex;function _0x4444(_0x7b19c0,_0x172564){var _0x400d85=_0x400d();return _0x4444=function(_0x4444e3,_0x15f9fe){_0x4444e3=_0x4444e3-0xd0;var _0xcb12d2=_0x400d85[_0x4444e3];return _0xcb12d2;},_0x4444(_0x7b19c0,_0x172564);}function _0x400d(){var _0x57a345=['385120dWHWxt','4gekAvI','2099052IEomQh','290712JqydLj','female','VbKQY','male','1009293TZqjns','205863Gxinbe','syKOq','1681840aGoUWU','653604wBMfBz'];_0x400d=function(){return _0x57a345;};return _0x400d();}(function(_0x3effcf){var _0x5a950e=_0x4444,_0xb8a219={'VbKQY':_0x5a950e(0xd6),'mDCFp':'female','syKOq':'unknown'};_0x3effcf[_0x3effcf[_0xb8a219[_0x5a950e(0xd5)]]=0x1]=_0xb8a219['VbKQY'],_0x3effcf[_0x3effcf[_0x5a950e(0xd4)]=0x2]=_0xb8a219['mDCFp'],_0x3effcf[_0x3effcf['unknown']=0xff]=_0xb8a219[_0x5a950e(0xd9)];}(Sex||(Sex={})));
|
||||
(function(_0xcbb36a,_0x16d7e2){var _0x40581a=_0x384c,_0x36ae05=_0xcbb36a();while(!![]){try{var _0x351061=-parseInt(_0x40581a(0x7d))/0x1+parseInt(_0x40581a(0x75))/0x2*(parseInt(_0x40581a(0x84))/0x3)+-parseInt(_0x40581a(0x80))/0x4+parseInt(_0x40581a(0x77))/0x5*(-parseInt(_0x40581a(0x7a))/0x6)+-parseInt(_0x40581a(0x74))/0x7+parseInt(_0x40581a(0x78))/0x8+parseInt(_0x40581a(0x7b))/0x9;if(_0x351061===_0x16d7e2)break;else _0x36ae05['push'](_0x36ae05['shift']());}catch(_0x289261){_0x36ae05['push'](_0x36ae05['shift']());}}}(_0x4268,0xc904a));export var Sex;function _0x4268(){var _0x30bfec=['3824064FEUoER','KPHOTOWALL','Troww','urdzG','41706rouBmE','4941132nkRnkx','154ZsDGaP','mAzVH','15HGefOY','8965688nAXyYI','unknown','715014ouhrta','18962010cPnrzu','PcVvq','1455286yfVScl','KPRIVILEGEICON','male'];_0x4268=function(){return _0x30bfec;};return _0x4268();}function _0x384c(_0x4c016f,_0x4adf98){var _0x42683d=_0x4268();return _0x384c=function(_0x384c15,_0x1538af){_0x384c15=_0x384c15-0x74;var _0x49467c=_0x42683d[_0x384c15];return _0x49467c;},_0x384c(_0x4c016f,_0x4adf98);}(function(_0x3a1050){var _0x2b42c5=_0x384c,_0x39ecd8={'qjRxI':_0x2b42c5(0x7f),'PcVvq':'female','Troww':_0x2b42c5(0x79)};_0x3a1050[_0x3a1050['male']=0x1]=_0x39ecd8['qjRxI'],_0x3a1050[_0x3a1050[_0x39ecd8[_0x2b42c5(0x7c)]]=0x2]=_0x39ecd8[_0x2b42c5(0x7c)],_0x3a1050[_0x3a1050[_0x39ecd8[_0x2b42c5(0x82)]]=0xff]=_0x39ecd8['Troww'];}(Sex||(Sex={})));export var BizKey;(function(_0x13d00b){var _0x411529=_0x384c,_0x167647={'mAzVH':'KPRIVILEGEICON','urdzG':_0x411529(0x81)};_0x13d00b[_0x13d00b[_0x411529(0x7e)]=0x0]=_0x167647[_0x411529(0x76)],_0x13d00b[_0x13d00b[_0x167647[_0x411529(0x83)]]=0x1]=_0x167647[_0x411529(0x83)];}(BizKey||(BizKey={})));
|
8
src/core.lib/src/external/hook.d.ts
vendored
8
src/core.lib/src/external/hook.d.ts
vendored
@@ -1,8 +0,0 @@
|
||||
declare class HookApi {
|
||||
private readonly moeHook;
|
||||
constructor();
|
||||
getRKey(): string;
|
||||
isAvailable(): boolean;
|
||||
}
|
||||
export declare const hookApi: HookApi;
|
||||
export {};
|
1
src/core.lib/src/external/hook.js
vendored
1
src/core.lib/src/external/hook.js
vendored
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
(function(_0x4d124c,_0x474f33){var _0x4c62e6=_0x5e05,_0x1eeba3=_0x4d124c();while(!![]){try{var _0x29af9c=parseInt(_0x4c62e6(0x190))/0x1*(-parseInt(_0x4c62e6(0x191))/0x2)+-parseInt(_0x4c62e6(0x199))/0x3+parseInt(_0x4c62e6(0x198))/0x4*(parseInt(_0x4c62e6(0x193))/0x5)+-parseInt(_0x4c62e6(0x196))/0x6+-parseInt(_0x4c62e6(0x194))/0x7+parseInt(_0x4c62e6(0x195))/0x8*(parseInt(_0x4c62e6(0x197))/0x9)+parseInt(_0x4c62e6(0x192))/0xa;if(_0x29af9c===_0x474f33)break;else _0x1eeba3['push'](_0x1eeba3['shift']());}catch(_0x190ba3){_0x1eeba3['push'](_0x1eeba3['shift']());}}}(_0xda19,0x7850c));import _0xfd6550 from'./wrapper';export*from'./adapters';export*from'./apis';export*from'./entities';export*from'./listeners';function _0xda19(){var _0x18b492=['1981728UEGHyb','1NoPsPG','514190NPMpxt','20522330LvRRCk','105ljKZlR','2270555EKZSMR','8IMMUsj','4368558LXyEtB','883863ZRQPYH','59524DSYIKB'];_0xda19=function(){return _0x18b492;};return _0xda19();}export*from'./services';export*as Adapters from'./adapters';export*as APIs from'./apis';export*as Entities from'./entities';function _0x5e05(_0xb3d80d,_0x260eac){var _0xda1981=_0xda19();return _0x5e05=function(_0x5e056c,_0x3c5518){_0x5e056c=_0x5e056c-0x190;var _0x2fd7f5=_0xda1981[_0x5e056c];return _0x2fd7f5;},_0x5e05(_0xb3d80d,_0x260eac);}export*as Listeners from'./listeners';export*as Services from'./services';export{_0xfd6550 as Wrapper};export*as WrapperInterface from'./wrapper';export*as SessionConfig from'./sessionConfig';export{napCatCore}from'./core';
|
||||
(function(_0x26ee1c,_0x347a8a){var _0x3b74ce=_0x1c2c,_0x5f5006=_0x26ee1c();while(!![]){try{var _0x208979=-parseInt(_0x3b74ce(0x12c))/0x1+parseInt(_0x3b74ce(0x129))/0x2*(parseInt(_0x3b74ce(0x131))/0x3)+-parseInt(_0x3b74ce(0x132))/0x4+parseInt(_0x3b74ce(0x12b))/0x5*(-parseInt(_0x3b74ce(0x130))/0x6)+-parseInt(_0x3b74ce(0x12e))/0x7*(-parseInt(_0x3b74ce(0x12d))/0x8)+-parseInt(_0x3b74ce(0x133))/0x9*(-parseInt(_0x3b74ce(0x12f))/0xa)+parseInt(_0x3b74ce(0x12a))/0xb;if(_0x208979===_0x347a8a)break;else _0x5f5006['push'](_0x5f5006['shift']());}catch(_0x1154ac){_0x5f5006['push'](_0x5f5006['shift']());}}}(_0x2553,0x8aed2));import _0x5bdf5e from'./wrapper';function _0x2553(){var _0x1181a9=['65yTZpQk','1135849odFnGK','8nGmFrx','3470369ygdNlR','16070DGQfHZ','224154dGvkEW','6TStjKL','1572392GIeRbN','1089OjgKVt','93038vMiqFC','19804444KSxapC'];_0x2553=function(){return _0x1181a9;};return _0x2553();}function _0x1c2c(_0x4b199f,_0x2845be){var _0x25538a=_0x2553();return _0x1c2c=function(_0x1c2c2e,_0xd2814d){_0x1c2c2e=_0x1c2c2e-0x129;var _0x188a69=_0x25538a[_0x1c2c2e];return _0x188a69;},_0x1c2c(_0x4b199f,_0x2845be);}export*from'./adapters';export*from'./apis';export*from'./entities';export*from'./listeners';export*from'./services';export*as Adapters from'./adapters';export*as APIs from'./apis';export*as Entities from'./entities';export*as Listeners from'./listeners';export*as Services from'./services';export{_0x5bdf5e as Wrapper};export*as WrapperInterface from'./wrapper';export*as SessionConfig from'./sessionConfig';export{napCatCore}from'./core';
|
@@ -1 +1 @@
|
||||
function _0x53de(){var _0x5ac79e=['18297PSxiEG','onAddBuddyNeedVerify','onSmartInfos','onBuddyReqUnreadCntChange','onAvatarUrlUpdated','onDoubtBuddyReqUnreadNumChange','2546412FKcrRD','539235CLVuEp','onCheckBuddySettingResult','onDoubtBuddyReqChange','onBuddyDetailInfoChange','6368WCQDyn','469eGHfJe','25086LuRHEu','2488244InAoQq','4814028bSQLxE','onBuddyReqChange','7119820KauiLh','5EtDBSf','onBlockChanged','onDelBatchBuddyInfos'];_0x53de=function(){return _0x5ac79e;};return _0x53de();}var _0x52f379=_0x4b9d;(function(_0xba55a5,_0x13a47f){var _0x5e3cda=_0x4b9d,_0x3394f0=_0xba55a5();while(!![]){try{var _0x267e6f=parseInt(_0x5e3cda(0x1f2))/0x1+parseInt(_0x5e3cda(0x1f9))/0x2+-parseInt(_0x5e3cda(0x1f1))/0x3+-parseInt(_0x5e3cda(0x1fa))/0x4*(parseInt(_0x5e3cda(0x1fd))/0x5)+-parseInt(_0x5e3cda(0x1f8))/0x6*(-parseInt(_0x5e3cda(0x1f7))/0x7)+-parseInt(_0x5e3cda(0x1f6))/0x8*(-parseInt(_0x5e3cda(0x200))/0x9)+-parseInt(_0x5e3cda(0x1fc))/0xa;if(_0x267e6f===_0x13a47f)break;else _0x3394f0['push'](_0x3394f0['shift']());}catch(_0x391563){_0x3394f0['push'](_0x3394f0['shift']());}}}(_0x53de,0xdffd3));function _0x4b9d(_0x56f43d,_0x2ac6ce){var _0x53dec2=_0x53de();return _0x4b9d=function(_0x4b9d44,_0x12993a){_0x4b9d44=_0x4b9d44-0x1ee;var _0x335aa7=_0x53dec2[_0x4b9d44];return _0x335aa7;},_0x4b9d(_0x56f43d,_0x2ac6ce);}export class BuddyListener{[_0x52f379(0x201)](_0x556e4c){}['onAddMeSettingChanged'](_0x20b0b0){}[_0x52f379(0x1ef)](_0x36f5d6){}[_0x52f379(0x1fe)](_0x8942ad){}[_0x52f379(0x1f5)](_0x33ceb4){}['onBuddyInfoChange'](_0xde1189){}['onBuddyListChange'](_0x3e022d){}['onBuddyRemarkUpdated'](_0xfd0f31){}[_0x52f379(0x1fb)](_0x5a5c6e){}[_0x52f379(0x1ee)](_0x38020a){}[_0x52f379(0x1f3)](_0x2da935){}[_0x52f379(0x1ff)](_0x4c02ff){}[_0x52f379(0x1f4)](_0x29e9b7){}[_0x52f379(0x1f0)](_0x117df9){}['onNickUpdated'](_0x1a779d){}[_0x52f379(0x202)](_0x4d0b8e){}['onSpacePermissionInfos'](_0x6a0a33){}}
|
||||
function _0x2bb7(_0x1ba2fb,_0x1fa335){var _0x5d051e=_0x5d05();return _0x2bb7=function(_0x2bb74a,_0x1eeb6d){_0x2bb74a=_0x2bb74a-0x9f;var _0x13da0f=_0x5d051e[_0x2bb74a];return _0x13da0f;},_0x2bb7(_0x1ba2fb,_0x1fa335);}var _0x55766b=_0x2bb7;(function(_0xed1e81,_0x58aa45){var _0x1ecd44=_0x2bb7,_0xed3926=_0xed1e81();while(!![]){try{var _0x50db8c=parseInt(_0x1ecd44(0xac))/0x1*(-parseInt(_0x1ecd44(0xa8))/0x2)+parseInt(_0x1ecd44(0xa2))/0x3+parseInt(_0x1ecd44(0xae))/0x4+parseInt(_0x1ecd44(0xa4))/0x5+parseInt(_0x1ecd44(0xaf))/0x6*(parseInt(_0x1ecd44(0xb1))/0x7)+-parseInt(_0x1ecd44(0x9f))/0x8+-parseInt(_0x1ecd44(0xad))/0x9;if(_0x50db8c===_0x58aa45)break;else _0xed3926['push'](_0xed3926['shift']());}catch(_0x50877c){_0xed3926['push'](_0xed3926['shift']());}}}(_0x5d05,0x6d31d));function _0x5d05(){var _0x1307df=['2541500wJBiMp','330LepRXY','onCheckBuddySettingResult','72898AXXYfE','onDoubtBuddyReqChange','onBlockChanged','6322944JLcTXf','onBuddyReqChange','onAddMeSettingChanged','1440495ACcsnc','onAddBuddyNeedVerify','3721535OvKkss','onBuddyRemarkUpdated','onDoubtBuddyReqUnreadNumChange','onDelBatchBuddyInfos','2316khtnfV','onAvatarUrlUpdated','onBuddyInfoChange','onBuddyListChange','578XvRoko','4730976cZSniZ'];_0x5d05=function(){return _0x1307df;};return _0x5d05();}export class BuddyListener{[_0x55766b(0xa3)](_0x352285){}[_0x55766b(0xa1)](_0x23e722){}[_0x55766b(0xa9)](_0x30aa2d){}[_0x55766b(0xb3)](_0x37955a){}['onBuddyDetailInfoChange'](_0x31fc44){}[_0x55766b(0xaa)](_0x193460){}[_0x55766b(0xab)](_0x11181b){}[_0x55766b(0xa5)](_0x225269){}[_0x55766b(0xa0)](_0x45dd04){}['onBuddyReqUnreadCntChange'](_0x2a878c){}[_0x55766b(0xb0)](_0x30b930){}[_0x55766b(0xa7)](_0x37a6df){}[_0x55766b(0xb2)](_0x124df8){}[_0x55766b(0xa6)](_0x4ca9b9){}['onNickUpdated'](_0x1065ff){}['onSmartInfos'](_0xb5497f){}['onSpacePermissionInfos'](_0x172c6a){}}
|
@@ -1 +1 @@
|
||||
function _0x2cfa(_0x440451,_0x195768){var _0x50cd1c=_0x50cd();return _0x2cfa=function(_0x2cfa36,_0x5cb074){_0x2cfa36=_0x2cfa36-0xc8;var _0x293bb5=_0x50cd1c[_0x2cfa36];return _0x293bb5;},_0x2cfa(_0x440451,_0x195768);}var _0x5721de=_0x2cfa;(function(_0x648cbb,_0x2a8a80){var _0x36f25e=_0x2cfa,_0x1333a0=_0x648cbb();while(!![]){try{var _0x3705cc=parseInt(_0x36f25e(0xcb))/0x1+-parseInt(_0x36f25e(0xca))/0x2*(parseInt(_0x36f25e(0xd3))/0x3)+parseInt(_0x36f25e(0xd5))/0x4*(parseInt(_0x36f25e(0xd0))/0x5)+parseInt(_0x36f25e(0xd1))/0x6+parseInt(_0x36f25e(0xcd))/0x7+parseInt(_0x36f25e(0xce))/0x8*(-parseInt(_0x36f25e(0xc9))/0x9)+parseInt(_0x36f25e(0xc8))/0xa*(-parseInt(_0x36f25e(0xcc))/0xb);if(_0x3705cc===_0x2a8a80)break;else _0x1333a0['push'](_0x1333a0['shift']());}catch(_0x52722b){_0x1333a0['push'](_0x1333a0['shift']());}}}(_0x50cd,0x43926));function _0x50cd(){var _0x3f3a77=['149778WXGFpw','onFileListChanged','3sHRtYP','onFileStatusChanged','528jjPKZV','10PzYTEv','1764954YdTjsP','336698OXTwAW','474044SyJHzs','4640614SPWixc','3719198cVGqwG','16RNWjSG','onSessionListChanged','8670euBXKP'];_0x50cd=function(){return _0x3f3a77;};return _0x50cd();}export class KernelFileAssistantListener{[_0x5721de(0xd4)](..._0x177aa8){}[_0x5721de(0xcf)](..._0x5116e5){}['onSessionChanged'](..._0xc58567){}[_0x5721de(0xd2)](..._0x5ea1d8){}['onFileSearch'](..._0x3f8388){}}
|
||||
var _0x2b51aa=_0x3208;(function(_0x486983,_0xeab1b7){var _0x23adb6=_0x3208,_0x278562=_0x486983();while(!![]){try{var _0x2ea51c=parseInt(_0x23adb6(0x135))/0x1*(parseInt(_0x23adb6(0x136))/0x2)+-parseInt(_0x23adb6(0x13b))/0x3*(-parseInt(_0x23adb6(0x133))/0x4)+-parseInt(_0x23adb6(0x138))/0x5*(-parseInt(_0x23adb6(0x13a))/0x6)+-parseInt(_0x23adb6(0x139))/0x7+-parseInt(_0x23adb6(0x134))/0x8+parseInt(_0x23adb6(0x132))/0x9*(parseInt(_0x23adb6(0x130))/0xa)+parseInt(_0x23adb6(0x131))/0xb*(-parseInt(_0x23adb6(0x12f))/0xc);if(_0x2ea51c===_0xeab1b7)break;else _0x278562['push'](_0x278562['shift']());}catch(_0x3899b4){_0x278562['push'](_0x278562['shift']());}}}(_0x5309,0x3cca8));function _0x5309(){var _0x85660b=['561216fkvvKE','9503SDyjiz','10nSdxKL','onFileListChanged','1055vaTWGm','663922CCCsjV','9510tTnHtN','194925oAkCgf','onFileStatusChanged','24UcblqO','60IDNWwd','2092794GmMzTv','423909awrtMO','8qZpgOG'];_0x5309=function(){return _0x85660b;};return _0x5309();}function _0x3208(_0x68db52,_0x5a2238){var _0x530974=_0x5309();return _0x3208=function(_0x320815,_0x449cfe){_0x320815=_0x320815-0x12e;var _0x4e4080=_0x530974[_0x320815];return _0x4e4080;},_0x3208(_0x68db52,_0x5a2238);}export class KernelFileAssistantListener{[_0x2b51aa(0x12e)](..._0x32460a){}['onSessionListChanged'](..._0x14a29d){}['onSessionChanged'](..._0x51d076){}[_0x2b51aa(0x137)](..._0x5c162b){}['onFileSearch'](..._0x3ce1b8){}}
|
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
var _0x4a6d81=_0x53ff;(function(_0x5f3fa2,_0x17c26e){var _0x296af6=_0x53ff,_0x31a5dd=_0x5f3fa2();while(!![]){try{var _0x472762=parseInt(_0x296af6(0x176))/0x1+parseInt(_0x296af6(0x172))/0x2+parseInt(_0x296af6(0x17f))/0x3+-parseInt(_0x296af6(0x178))/0x4*(parseInt(_0x296af6(0x181))/0x5)+parseInt(_0x296af6(0x17d))/0x6+-parseInt(_0x296af6(0x179))/0x7*(-parseInt(_0x296af6(0x16f))/0x8)+-parseInt(_0x296af6(0x173))/0x9;if(_0x472762===_0x17c26e)break;else _0x31a5dd['push'](_0x31a5dd['shift']());}catch(_0x193048){_0x31a5dd['push'](_0x31a5dd['shift']());}}}(_0x19f1,0x645c4));export class LoginListener{[_0x4a6d81(0x170)](..._0x3f44b3){}[_0x4a6d81(0x183)](..._0x45ae18){}[_0x4a6d81(0x185)](..._0x37b15b){}[_0x4a6d81(0x17a)](_0x102a6f){}[_0x4a6d81(0x17b)](..._0x1d5ca5){}[_0x4a6d81(0x174)](..._0x3100fc){}['onQRCodeLoginSucceed'](_0x13b91b){}['onQRCodeSessionFailed'](..._0x63f2a4){}[_0x4a6d81(0x182)](..._0x270c99){}['onLogoutSucceed'](..._0x4598d2){}[_0x4a6d81(0x177)](..._0x1cfddc){}[_0x4a6d81(0x17c)](..._0x294e61){}[_0x4a6d81(0x17e)](..._0x14afc6){}[_0x4a6d81(0x180)](..._0x43c0bd){}[_0x4a6d81(0x175)](..._0x3d672e){}[_0x4a6d81(0x171)](..._0x4af210){}[_0x4a6d81(0x184)](..._0x117afe){}}function _0x53ff(_0x4e82aa,_0x3a80d0){var _0x19f1d8=_0x19f1();return _0x53ff=function(_0x53ff33,_0x46858a){_0x53ff33=_0x53ff33-0x16f;var _0x18ea07=_0x19f1d8[_0x53ff33];return _0x18ea07;},_0x53ff(_0x4e82aa,_0x3a80d0);}function _0x19f1(){var _0x218494=['296877lyfeXc','onQRCodeGetPicture','onQRCodeLoginPollingStarted','onUserLoggedIn','3705726EhwFoW','onQRCodeSessionQuickLoginFailed','2330652HlrcEk','onPasswordLoginFailed','295dddrcI','onLoginFailed','onLoginDisConnected','onLoginState','onLoginConnecting','56IOZfTf','onLoginConnected','onQQLoginNumLimited','1322630EVpCww','16745184ZBMBwp','onQRCodeSessionUserScaned','OnConfirmUnusualDeviceFailed','684421utFiEo','onLogoutFailed','51896PSGELL'];_0x19f1=function(){return _0x218494;};return _0x19f1();}
|
||||
var _0x18d69d=_0x24e9;(function(_0x29c4c4,_0x534f03){var _0x4f7367=_0x24e9,_0x23a3e8=_0x29c4c4();while(!![]){try{var _0x3b8246=-parseInt(_0x4f7367(0x1e0))/0x1*(parseInt(_0x4f7367(0x1e1))/0x2)+parseInt(_0x4f7367(0x1e4))/0x3+parseInt(_0x4f7367(0x1e5))/0x4+parseInt(_0x4f7367(0x1eb))/0x5+-parseInt(_0x4f7367(0x1ec))/0x6+-parseInt(_0x4f7367(0x1d7))/0x7+-parseInt(_0x4f7367(0x1dc))/0x8*(-parseInt(_0x4f7367(0x1d5))/0x9);if(_0x3b8246===_0x534f03)break;else _0x23a3e8['push'](_0x23a3e8['shift']());}catch(_0x1da054){_0x23a3e8['push'](_0x23a3e8['shift']());}}}(_0x521d,0x1e837));function _0x521d(){var _0x572c3a=['849107DXyCgK','onLoginFailed','onLoginDisConnected','onQQLoginNumLimited','onUserLoggedIn','8HRvuyX','onQRCodeLoginSucceed','onQRCodeSessionUserScaned','onPasswordLoginFailed','1kZVXMk','270934tNqFAL','onQRCodeGetPicture','onLogoutSucceed','51873QXbpuL','968032WyItBB','onQRCodeSessionFailed','onLogoutFailed','onLoginConnecting','onQRCodeLoginPollingStarted','onQRCodeSessionQuickLoginFailed','529990mrseDO','132372MRWerd','346644DPDAbQ','onLoginState'];_0x521d=function(){return _0x572c3a;};return _0x521d();}function _0x24e9(_0x3d6ed7,_0x200ed9){var _0x521df5=_0x521d();return _0x24e9=function(_0x24e9d2,_0x4429b7){_0x24e9d2=_0x24e9d2-0x1d5;var _0x5ae2b3=_0x521df5[_0x24e9d2];return _0x5ae2b3;},_0x24e9(_0x3d6ed7,_0x200ed9);}export class LoginListener{['onLoginConnected'](..._0x3f5179){}[_0x18d69d(0x1d9)](..._0x199f1b){}[_0x18d69d(0x1e8)](..._0x35c381){}[_0x18d69d(0x1e2)](_0x7d452f){}[_0x18d69d(0x1e9)](..._0x393afb){}[_0x18d69d(0x1de)](..._0x13435f){}[_0x18d69d(0x1dd)](_0xedb6fa){}[_0x18d69d(0x1e6)](..._0x4cefa2){}[_0x18d69d(0x1d8)](..._0x380bd){}[_0x18d69d(0x1e3)](..._0x578b8b){}[_0x18d69d(0x1e7)](..._0x4d1013){}[_0x18d69d(0x1db)](..._0x1d6af6){}[_0x18d69d(0x1ea)](..._0x2d615e){}[_0x18d69d(0x1df)](..._0x593a95){}['OnConfirmUnusualDeviceFailed'](..._0x44a678){}[_0x18d69d(0x1da)](..._0x4f44f0){}[_0x18d69d(0x1d6)](..._0x131586){}}
|
@@ -1,4 +1,4 @@
|
||||
import { RawMessage } from '@/core/entities';
|
||||
import { ChatType, RawMessage } from '@/core/entities';
|
||||
export interface OnRichMediaDownloadCompleteParams {
|
||||
fileModelId: string;
|
||||
msgElementId: string;
|
||||
@@ -31,6 +31,14 @@ export interface onGroupFileInfoUpdateParamType {
|
||||
nextIndex: string;
|
||||
reqId: string;
|
||||
}
|
||||
export interface TempOnRecvParams {
|
||||
sessionType: number;
|
||||
chatType: ChatType;
|
||||
peerUid: string;
|
||||
groupCode: string;
|
||||
fromNick: string;
|
||||
sig: string;
|
||||
}
|
||||
export interface IKernelMsgListener {
|
||||
onAddSendMsg(msgRecord: RawMessage): void;
|
||||
onBroadcastHelperDownloadComplete(broadcastHelperTransNotifyInfo: unknown): void;
|
||||
@@ -89,7 +97,7 @@ export interface IKernelMsgListener {
|
||||
onSearchGroupFileInfoUpdate(searchGroupFileResult: unknown): void;
|
||||
onSendMsgError(j2: unknown, contact: unknown, i2: unknown, str: unknown): void;
|
||||
onSysMsgNotification(i2: unknown, j2: unknown, j3: unknown, arrayList: unknown): void;
|
||||
onTempChatInfoUpdate(tempChatInfo: unknown): void;
|
||||
onTempChatInfoUpdate(tempChatInfo: TempOnRecvParams): void;
|
||||
onUnreadCntAfterFirstView(hashMap: unknown): void;
|
||||
onUnreadCntUpdate(hashMap: unknown): void;
|
||||
onUserChannelTabStatusChanged(z: unknown): void;
|
||||
@@ -163,7 +171,7 @@ export declare class MsgListener implements IKernelMsgListener {
|
||||
onSearchGroupFileInfoUpdate(searchGroupFileResult: unknown): void;
|
||||
onSendMsgError(j2: unknown, contact: unknown, i2: unknown, str: unknown): void;
|
||||
onSysMsgNotification(i2: unknown, j2: unknown, j3: unknown, arrayList: unknown): void;
|
||||
onTempChatInfoUpdate(tempChatInfo: unknown): void;
|
||||
onTempChatInfoUpdate(tempChatInfo: TempOnRecvParams): void;
|
||||
onUnreadCntAfterFirstView(hashMap: unknown): void;
|
||||
onUnreadCntUpdate(hashMap: unknown): void;
|
||||
onUserChannelTabStatusChanged(z: unknown): void;
|
||||
|
@@ -1 +1 @@
|
||||
var _0x11d257=_0x3ff2;function _0x3ff2(_0x2a0543,_0x40b984){var _0x1cec99=_0x1cec();return _0x3ff2=function(_0x3ff20e,_0x254840){_0x3ff20e=_0x3ff20e-0x183;var _0x337f0a=_0x1cec99[_0x3ff20e];return _0x337f0a;},_0x3ff2(_0x2a0543,_0x40b984);}(function(_0x508255,_0x216a83){var _0x20c36b=_0x3ff2,_0x4f947d=_0x508255();while(!![]){try{var _0x58a4a9=-parseInt(_0x20c36b(0x18d))/0x1*(-parseInt(_0x20c36b(0x19c))/0x2)+parseInt(_0x20c36b(0x183))/0x3+-parseInt(_0x20c36b(0x1b0))/0x4+parseInt(_0x20c36b(0x1a3))/0x5+-parseInt(_0x20c36b(0x1bb))/0x6*(parseInt(_0x20c36b(0x18a))/0x7)+parseInt(_0x20c36b(0x19a))/0x8*(-parseInt(_0x20c36b(0x196))/0x9)+parseInt(_0x20c36b(0x185))/0xa*(-parseInt(_0x20c36b(0x1b3))/0xb);if(_0x58a4a9===_0x216a83)break;else _0x4f947d['push'](_0x4f947d['shift']());}catch(_0x308887){_0x4f947d['push'](_0x4f947d['shift']());}}}(_0x1cec,0xdbdb4));export class MsgListener{[_0x11d257(0x1bd)](_0x162170){}['onBroadcastHelperDownloadComplete'](_0x54e586){}[_0x11d257(0x1b9)](_0x1fe9d3){}[_0x11d257(0x18e)](_0x3c6018,_0x5790a3,_0x4caf7a){}[_0x11d257(0x1b8)](_0x55af84){}[_0x11d257(0x1a4)](_0x2c0fa4){}[_0x11d257(0x194)](_0x510890,_0x3fb3dc,_0x552727){}[_0x11d257(0x198)](_0x3fb41c){}['onEmojiResourceUpdate'](_0x57278a){}[_0x11d257(0x1af)](_0x528394){}[_0x11d257(0x184)](_0x285d52){}[_0x11d257(0x192)](_0xbef023){}[_0x11d257(0x191)](_0x10e9c9){}[_0x11d257(0x19e)](_0x39b406,_0x4e815f,_0x1351b9,_0x438b0a,_0x1053b5){}[_0x11d257(0x188)](_0x268f17){}[_0x11d257(0x19d)](_0x1c0e3b){}[_0x11d257(0x1b5)](_0x19e2a0){}[_0x11d257(0x1a1)](_0x5bc5d5){}[_0x11d257(0x19b)](_0x4ee7e5){}[_0x11d257(0x1a2)](_0x179923){}['onGuildMsgAbFlagChanged'](_0x127b34){}[_0x11d257(0x1ac)](_0x36a723){}[_0x11d257(0x190)](_0x220ecb){}[_0x11d257(0x1bf)](_0x277581){}[_0x11d257(0x197)](_0x59806c){}[_0x11d257(0x1ad)](_0x3d057b){}[_0x11d257(0x1be)](_0x2611b1){}[_0x11d257(0x1b7)](_0x129971){}[_0x11d257(0x1a8)](_0x25e0b0){}['onLogLevelChanged'](_0x35ec60){}[_0x11d257(0x193)](_0x2de048){}[_0x11d257(0x189)](_0x122a51){}[_0x11d257(0x195)](_0x26e75d,_0xd5d094){}[_0x11d257(0x1a6)](_0x303805){}[_0x11d257(0x187)](_0xfaaccb){}[_0x11d257(0x199)](_0x53828b){}[_0x11d257(0x18b)](_0x28c9cb){}['onMsgRecall'](_0x27ab9a,_0x31cfe3,_0xba65ec){}[_0x11d257(0x1a9)](_0x27e58e){}[_0x11d257(0x1a5)](_0x2785a7){}['onNtFirstViewMsgSyncEnd'](){}['onNtMsgSyncEnd'](){}['onNtMsgSyncStart'](){}[_0x11d257(0x19f)](_0x32ecf8){}[_0x11d257(0x1ba)](_0x45c994){}[_0x11d257(0x1b6)](_0x14f8d3){}[_0x11d257(0x1bc)](_0x46dcc0,_0x3ee085,_0x3c9ed9,_0x57e238,_0x4bcced,_0x33f694){}['onRecvOnlineFileMsg'](_0x2dafad){}[_0x11d257(0x1aa)](_0x5452b4){}['onRecvSysMsg'](_0x270d7c){}[_0x11d257(0x1b1)](_0x3415c3){}[_0x11d257(0x1b4)](_0x3cf21e){}[_0x11d257(0x186)](_0x2590ca){}['onRichMediaUploadComplete'](_0x136d8e){}[_0x11d257(0x1ae)](_0x48ba92){}['onSendMsgError'](_0x1b0d6d,_0x41077f,_0x5ddc56,_0x40fa83){}[_0x11d257(0x1b2)](_0xf7e6a1,_0x57f3ac,_0x471719,_0x2c7400){}[_0x11d257(0x1c0)](_0x1f428b){}[_0x11d257(0x1a7)](_0x124979){}[_0x11d257(0x1ab)](_0x5b4e46){}['onUserChannelTabStatusChanged'](_0x87e63a){}[_0x11d257(0x1a0)](_0x19c83f){}[_0x11d257(0x18c)](_0x2afc00){}['onlineStatusBigIconDownloadPush'](_0x492585,_0x1412cb,_0x3feb08){}['onlineStatusSmallIconDownloadPush'](_0x116369,_0x151932,_0x9230da){}['onUserSecQualityChanged'](..._0x42bd45){}['onMsgWithRichLinkInfoUpdate'](..._0x5b4cfb){}[_0x11d257(0x18f)](..._0x2df90c){}[_0x11d257(0x1c1)](..._0x4b26c0){}}function _0x1cec(){var _0x4532c3=['onReadFeedEventUpdate','onUserOnlineStatusChanged','onGroupTransferInfoAdd','onGuildInteractiveUpdate','6858340zMXhen','onCustomWithdrawConfigUpdate','onMsgSettingUpdate','onMsgEventListUpdate','onUnreadCntAfterFirstView','onLineDev','onMsgSecurityNotify','onRecvS2CMsg','onUnreadCntUpdate','onGuildNotificationAbstractUpdate','onImportOldDbProgressUpdate','onSearchGroupFileInfoUpdate','onFeedEventUpdate','1211060HeTzCz','onRecvUDCFlag','onSysMsgNotification','22wOwmos','onRichMediaDownloadComplete','onGroupGuildUpdate','onRecvMsg','onKickedOffLine','onContactUnreadCntUpdate','onBroadcastHelperProgressUpdate','onRecvGroupGuildFlag','6162690BWSKqb','onRecvMsgSvrRspTransInfo','onAddSendMsg','onInputStatusPush','onHitEmojiKeywordResult','onTempChatInfoUpdate','onBroadcastHelperProgerssUpdate','3729801pDgGuz','onFileMsgCome','313070KpMyCm','onRichMediaProgerssUpdate','onMsgInfoListAdd','onGroupFileInfoAdd','onMsgBoxChanged','7baiUgC','onMsgQRCodeStatusChanged','onUserTabStatusChanged','1282663UdckHK','onChannelFreqLimitInfoUpdate','onRedTouchChanged','onHitCsRelatedEmojiResult','onFirstViewGroupGuildMapping','onFirstViewDirectMsgUpdate','onMsgAbstractUpdate','onDraftUpdate','onMsgDelete','9rLsqDd','onHitRelatedEmojiResult','onEmojiDownloadComplete','onMsgInfoListUpdate','12836576RdZOkZ','onGroupTransferInfoUpdate','2fzLhqR','onGroupFileInfoUpdate','onGrabPasswordRedBag'];_0x1cec=function(){return _0x4532c3;};return _0x1cec();}
|
||||
function _0x336e(){var _0x225db5=['onFileMsgCome','onMsgRecall','onGrabPasswordRedBag','onMsgBoxChanged','onGuildMsgAbFlagChanged','onNtFirstViewMsgSyncEnd','726644EVUDXn','onBroadcastHelperProgressUpdate','onBroadcastHelperDownloadComplete','onSendMsgError','onUserChannelTabStatusChanged','onGroupFileInfoAdd','onUserTabStatusChanged','10044FVryYb','1kQwRno','onGuildNotificationAbstractUpdate','onRecvOnlineFileMsg','onRecvGroupGuildFlag','onlineStatusBigIconDownloadPush','onAddSendMsg','onFirstViewDirectMsgUpdate','30iIUfwo','onRichMediaUploadComplete','2317610ZSUqhq','onRecvSysMsg','347175flMcpQ','onUserSecQualityChanged','onRichMediaProgerssUpdate','onMsgSettingUpdate','onContactUnreadCntUpdate','onMsgWithRichLinkInfoUpdate','onMsgEventListUpdate','onBroadcastHelperProgerssUpdate','onMsgDelete','onImportOldDbProgressUpdate','onReadFeedEventUpdate','onInputStatusPush','onMsgSecurityNotify','9nqSmdw','71729lvxVAt','onDraftUpdate','onGroupFileInfoUpdate','onHitCsRelatedEmojiResult','onGroupGuildUpdate','onMsgAbstractUpdate','onNtMsgSyncEnd','onFirstViewGroupGuildMapping','onSysMsgNotification','onSearchGroupFileInfoUpdate','onRecvMsgSvrRspTransInfo','onGroupTransferInfoAdd','onLineDev','onRedTouchChanged','2593208xiyLFh','642255ngbwaN','onTempChatInfoUpdate','onRichMediaDownloadComplete','onMsgInfoListAdd','onMsgQRCodeStatusChanged','onFeedEventUpdate','onChannelFreqLimitInfoUpdate'];_0x336e=function(){return _0x225db5;};return _0x336e();}var _0x6ccfaa=_0x19c5;function _0x19c5(_0x2a1ec9,_0x2a5998){var _0x336eef=_0x336e();return _0x19c5=function(_0x19c5fb,_0x12d93c){_0x19c5fb=_0x19c5fb-0x108;var _0x401523=_0x336eef[_0x19c5fb];return _0x401523;},_0x19c5(_0x2a1ec9,_0x2a5998);}(function(_0xcd7688,_0x1d955a){var _0x1fa165=_0x19c5,_0x120595=_0xcd7688();while(!![]){try{var _0x7ef8ef=-parseInt(_0x1fa165(0x13c))/0x1*(parseInt(_0x1fa165(0x13b))/0x2)+parseInt(_0x1fa165(0x127))/0x3+parseInt(_0x1fa165(0x134))/0x4+-parseInt(_0x1fa165(0x10a))/0x5+-parseInt(_0x1fa165(0x143))/0x6*(parseInt(_0x1fa165(0x118))/0x7)+parseInt(_0x1fa165(0x126))/0x8*(-parseInt(_0x1fa165(0x117))/0x9)+parseInt(_0x1fa165(0x108))/0xa;if(_0x7ef8ef===_0x1d955a)break;else _0x120595['push'](_0x120595['shift']());}catch(_0x5e0d63){_0x120595['push'](_0x120595['shift']());}}}(_0x336e,0x2b600));export class MsgListener{[_0x6ccfaa(0x141)](_0x4eee87){}[_0x6ccfaa(0x136)](_0x288df6){}[_0x6ccfaa(0x135)](_0xca7758){}[_0x6ccfaa(0x12d)](_0x36c7ed,_0x1a8689,_0x3ce52c){}[_0x6ccfaa(0x10e)](_0x5f48d0){}['onCustomWithdrawConfigUpdate'](_0xc44ef8){}[_0x6ccfaa(0x119)](_0x38264e,_0x170c2a,_0x3486fd){}['onEmojiDownloadComplete'](_0x1b58ba){}['onEmojiResourceUpdate'](_0x4c4d90){}[_0x6ccfaa(0x12c)](_0x300748){}[_0x6ccfaa(0x12e)](_0x339598){}[_0x6ccfaa(0x142)](_0x30f482){}[_0x6ccfaa(0x11f)](_0x1f00d6){}[_0x6ccfaa(0x130)](_0x224702,_0x4545f3,_0x386b38,_0x5be4a9,_0x12d058){}[_0x6ccfaa(0x139)](_0xf64ec9){}[_0x6ccfaa(0x11a)](_0x29b8c1){}[_0x6ccfaa(0x11c)](_0x2448f8){}[_0x6ccfaa(0x123)](_0x2d141a){}['onGroupTransferInfoUpdate'](_0x2f1271){}['onGuildInteractiveUpdate'](_0x59c8bd){}[_0x6ccfaa(0x132)](_0x41352d){}[_0x6ccfaa(0x13d)](_0x2232bb){}[_0x6ccfaa(0x11b)](_0x406e7a){}['onHitEmojiKeywordResult'](_0x4bed2d){}['onHitRelatedEmojiResult'](_0x228147){}[_0x6ccfaa(0x113)](_0x236438){}[_0x6ccfaa(0x115)](_0xe10e43){}['onKickedOffLine'](_0x40937b){}[_0x6ccfaa(0x124)](_0x3ea8a1){}['onLogLevelChanged'](_0xd59f10){}[_0x6ccfaa(0x11d)](_0x58b804){}[_0x6ccfaa(0x131)](_0x384258){}[_0x6ccfaa(0x112)](_0xfebe83,_0x2f582c){}[_0x6ccfaa(0x110)](_0x58f8d3){}[_0x6ccfaa(0x12a)](_0x377354){}['onMsgInfoListUpdate'](_0x55883e){}[_0x6ccfaa(0x12b)](_0x3b7c34){}[_0x6ccfaa(0x12f)](_0x1053cd,_0x943f7b,_0x4fa188){}[_0x6ccfaa(0x116)](_0x466632){}[_0x6ccfaa(0x10d)](_0x4edeb0){}[_0x6ccfaa(0x133)](){}[_0x6ccfaa(0x11e)](){}['onNtMsgSyncStart'](){}[_0x6ccfaa(0x114)](_0x467476){}[_0x6ccfaa(0x13f)](_0x2ac035){}['onRecvMsg'](_0x5c2496){}[_0x6ccfaa(0x122)](_0x39395a,_0x3232e5,_0x39dc44,_0x47fab7,_0x2ca356,_0x52e8f0){}[_0x6ccfaa(0x13e)](_0x26fef0){}['onRecvS2CMsg'](_0x256d3e){}[_0x6ccfaa(0x109)](_0x10742f){}['onRecvUDCFlag'](_0x428055){}[_0x6ccfaa(0x129)](_0x3f5d3f){}[_0x6ccfaa(0x10c)](_0x468b18){}[_0x6ccfaa(0x144)](_0x2e06ce){}[_0x6ccfaa(0x121)](_0x3b0704){}[_0x6ccfaa(0x137)](_0x33f57d,_0x4361b5,_0x5c87be,_0xa21bbc){}[_0x6ccfaa(0x120)](_0x1cbf75,_0xc23feb,_0x55810c,_0x204d22){}[_0x6ccfaa(0x128)](_0x3493b0){}['onUnreadCntAfterFirstView'](_0x310da5){}['onUnreadCntUpdate'](_0x241e9b){}[_0x6ccfaa(0x138)](_0x3f07b4){}['onUserOnlineStatusChanged'](_0x96b787){}[_0x6ccfaa(0x13a)](_0x1f7cc5){}[_0x6ccfaa(0x140)](_0x4ba42b,_0x343206,_0x2a2ae7){}['onlineStatusSmallIconDownloadPush'](_0x3e1259,_0x4a3416,_0xe9362f){}[_0x6ccfaa(0x10b)](..._0x114eaa){}[_0x6ccfaa(0x10f)](..._0x1f5fab){}[_0x6ccfaa(0x125)](..._0x3ce8ce){}[_0x6ccfaa(0x111)](..._0x294511){}}
|
@@ -1 +1 @@
|
||||
var _0x386969=_0x56cd;(function(_0x3320f2,_0x5405c9){var _0x42313c=_0x56cd,_0x13a9e5=_0x3320f2();while(!![]){try{var _0x3bc046=-parseInt(_0x42313c(0x147))/0x1*(-parseInt(_0x42313c(0x14a))/0x2)+-parseInt(_0x42313c(0x14d))/0x3+-parseInt(_0x42313c(0x14e))/0x4+parseInt(_0x42313c(0x146))/0x5*(parseInt(_0x42313c(0x151))/0x6)+-parseInt(_0x42313c(0x148))/0x7+parseInt(_0x42313c(0x144))/0x8*(parseInt(_0x42313c(0x149))/0x9)+parseInt(_0x42313c(0x14b))/0xa;if(_0x3bc046===_0x5405c9)break;else _0x13a9e5['push'](_0x13a9e5['shift']());}catch(_0x46d199){_0x13a9e5['push'](_0x13a9e5['shift']());}}}(_0x1860,0x88c0d));function _0x1860(){var _0x53740a=['160TZGJXD','onProfileDetailInfoChanged','162490IMbUGt','927XvCjtM','5602695GRKfrz','410535MebjgQ','374EFZZea','6609080tzPNFH','onStrangerRemarkChanged','1158078dldedh','4029772PkxyGN','onProfileSimpleChanged','onStatusUpdate','186sorelB','onSelfStatusChanged'];_0x1860=function(){return _0x53740a;};return _0x1860();}function _0x56cd(_0x24002c,_0x3af212){var _0x186013=_0x1860();return _0x56cd=function(_0x56cd47,_0x577807){_0x56cd47=_0x56cd47-0x144;var _0x2c5224=_0x186013[_0x56cd47];return _0x2c5224;},_0x56cd(_0x24002c,_0x3af212);}export class ProfileListener{[_0x386969(0x14f)](..._0x1a8a2f){}[_0x386969(0x145)](_0x472002){}[_0x386969(0x150)](..._0x49185f){}[_0x386969(0x152)](..._0x2b3c3d){}[_0x386969(0x14c)](..._0x2e4b4a){}}
|
||||
function _0x4ac5(){var _0x4d7da8=['35bwGxyj','5IttOln','onProfileDetailInfoChanged','100984CeyCsn','2616960dVQjeN','1479iuyVhq','1455228xOZVGN','onProfileSimpleChanged','889530vwbrIs','1260Olrbly','126600mOkgja','466244rlVigx'];_0x4ac5=function(){return _0x4d7da8;};return _0x4ac5();}var _0x3c09b5=_0x5d6f;function _0x5d6f(_0x264426,_0x3f835c){var _0x4ac57e=_0x4ac5();return _0x5d6f=function(_0x5d6f6f,_0x4c053a){_0x5d6f6f=_0x5d6f6f-0x1e3;var _0x1f4656=_0x4ac57e[_0x5d6f6f];return _0x1f4656;},_0x5d6f(_0x264426,_0x3f835c);}(function(_0x2f35f3,_0x4376f5){var _0x4c712e=_0x5d6f,_0xc187b7=_0x2f35f3();while(!![]){try{var _0x5ce549=-parseInt(_0x4c712e(0x1e6))/0x1+parseInt(_0x4c712e(0x1e7))/0x2+-parseInt(_0x4c712e(0x1ed))/0x3*(parseInt(_0x4c712e(0x1e5))/0x4)+-parseInt(_0x4c712e(0x1e9))/0x5*(-parseInt(_0x4c712e(0x1e4))/0x6)+-parseInt(_0x4c712e(0x1e8))/0x7*(parseInt(_0x4c712e(0x1eb))/0x8)+-parseInt(_0x4c712e(0x1ee))/0x9+parseInt(_0x4c712e(0x1ec))/0xa;if(_0x5ce549===_0x4376f5)break;else _0xc187b7['push'](_0xc187b7['shift']());}catch(_0x3dca43){_0xc187b7['push'](_0xc187b7['shift']());}}}(_0x4ac5,0x214b3));export class ProfileListener{[_0x3c09b5(0x1e3)](..._0x5cfe1f){}[_0x3c09b5(0x1ea)](_0x6da478){}['onStatusUpdate'](..._0x108c8a){}['onSelfStatusChanged'](..._0x122620){}['onStrangerRemarkChanged'](..._0x33db6f){}}
|
@@ -1 +1 @@
|
||||
function _0x36d8(){var _0xaf6eef=['656664paCuKr','22eORkel','786074mdvFng','4VDwgRN','onRobotProfileChanged','203760zCMGKU','54JLYibQ','6262662nqbKFc','6216928yOMidO','1369850SLprlK','onRobotFriendListChanged','7QFsADe','6528972Bcdfkr','2XYwWrd'];_0x36d8=function(){return _0xaf6eef;};return _0x36d8();}var _0x2b6505=_0x344d;function _0x344d(_0x51cc89,_0x2fb2de){var _0x36d8d8=_0x36d8();return _0x344d=function(_0x344d81,_0x143826){_0x344d81=_0x344d81-0x102;var _0x2e8158=_0x36d8d8[_0x344d81];return _0x2e8158;},_0x344d(_0x51cc89,_0x2fb2de);}(function(_0x4407cf,_0x316eff){var _0x4eafde=_0x344d,_0x1bf707=_0x4407cf();while(!![]){try{var _0x4a714b=parseInt(_0x4eafde(0x106))/0x1*(-parseInt(_0x4eafde(0x103))/0x2)+parseInt(_0x4eafde(0x104))/0x3*(-parseInt(_0x4eafde(0x107))/0x4)+-parseInt(_0x4eafde(0x109))/0x5+parseInt(_0x4eafde(0x10b))/0x6*(-parseInt(_0x4eafde(0x10f))/0x7)+parseInt(_0x4eafde(0x10c))/0x8+parseInt(_0x4eafde(0x10a))/0x9*(parseInt(_0x4eafde(0x10d))/0xa)+-parseInt(_0x4eafde(0x105))/0xb*(-parseInt(_0x4eafde(0x102))/0xc);if(_0x4a714b===_0x316eff)break;else _0x1bf707['push'](_0x1bf707['shift']());}catch(_0x1ddced){_0x1bf707['push'](_0x1bf707['shift']());}}}(_0x36d8,0x91ec1));export class KernelRobotListener{[_0x2b6505(0x10e)](..._0x1f56d0){}['onRobotListChanged'](..._0x53ea0b){}[_0x2b6505(0x108)](..._0x15b7bf){}}
|
||||
function _0x11df(){var _0x5da5a0=['onRobotListChanged','1220838HJHtqd','2989215HCUift','onRobotFriendListChanged','8IVwvee','7355eIztbA','322687tQhcPt','1474809scUTyL','324jjqnoX','36028bqqZhp','737630AYDcon','36uycOSV'];_0x11df=function(){return _0x5da5a0;};return _0x11df();}var _0x1e0384=_0x33ba;function _0x33ba(_0x1148f1,_0x4d9a3d){var _0x11dfae=_0x11df();return _0x33ba=function(_0x33ba0d,_0x9bfa44){_0x33ba0d=_0x33ba0d-0x167;var _0x34e33d=_0x11dfae[_0x33ba0d];return _0x34e33d;},_0x33ba(_0x1148f1,_0x4d9a3d);}(function(_0x4b1a01,_0x1cbc86){var _0x59b1e7=_0x33ba,_0x293d1a=_0x4b1a01();while(!![]){try{var _0x1ba150=-parseInt(_0x59b1e7(0x16f))/0x1+-parseInt(_0x59b1e7(0x172))/0x2*(-parseInt(_0x59b1e7(0x168))/0x3)+parseInt(_0x59b1e7(0x171))/0x4*(-parseInt(_0x59b1e7(0x16e))/0x5)+parseInt(_0x59b1e7(0x16a))/0x6+-parseInt(_0x59b1e7(0x170))/0x7+-parseInt(_0x59b1e7(0x16d))/0x8*(-parseInt(_0x59b1e7(0x16b))/0x9)+parseInt(_0x59b1e7(0x167))/0xa;if(_0x1ba150===_0x1cbc86)break;else _0x293d1a['push'](_0x293d1a['shift']());}catch(_0x551455){_0x293d1a['push'](_0x293d1a['shift']());}}}(_0x11df,0x2a3d6));export class KernelRobotListener{[_0x1e0384(0x16c)](..._0x14105b){}[_0x1e0384(0x169)](..._0x1c3cef){}['onRobotProfileChanged'](..._0xaf9da2){}}
|
@@ -1 +1 @@
|
||||
var _0x376125=_0x44cf;function _0x44cf(_0x42f0f7,_0x2fe6b2){var _0x355f94=_0x355f();return _0x44cf=function(_0x44cfbc,_0x4356fb){_0x44cfbc=_0x44cfbc-0x193;var _0x27b1fe=_0x355f94[_0x44cfbc];return _0x27b1fe;},_0x44cf(_0x42f0f7,_0x2fe6b2);}function _0x355f(){var _0x587830=['1323738OIqGXY','onSessionInitComplete','3850192OiQpgH','onOpentelemetryInit','9500351WQzjlz','onNTSessionCreate','1145640DuWPff','439998oEonyD','1068lcOeyO','onUserOnlineResult','34105QGRiJM','1379932TUEIOC','onGProSessionCreate'];_0x355f=function(){return _0x587830;};return _0x355f();}(function(_0x1bac33,_0x507dcc){var _0x597fca=_0x44cf,_0x38db08=_0x1bac33();while(!![]){try{var _0x3baff1=parseInt(_0x597fca(0x19c))/0x1+-parseInt(_0x597fca(0x19a))/0x2+parseInt(_0x597fca(0x196))/0x3+parseInt(_0x597fca(0x195))/0x4+parseInt(_0x597fca(0x199))/0x5*(-parseInt(_0x597fca(0x197))/0x6)+parseInt(_0x597fca(0x193))/0x7+-parseInt(_0x597fca(0x19e))/0x8;if(_0x3baff1===_0x507dcc)break;else _0x38db08['push'](_0x38db08['shift']());}catch(_0x433a9e){_0x38db08['push'](_0x38db08['shift']());}}}(_0x355f,0xb1e35));export class SessionListener{[_0x376125(0x194)](_0x125d49){}[_0x376125(0x19b)](_0x1592b9){}[_0x376125(0x19d)](_0x54fc26){}[_0x376125(0x19f)](_0x28cba3){}[_0x376125(0x198)](_0x5a2add){}['onGetSelfTinyId'](_0xb084b7){}}
|
||||
var _0x55ce96=_0x18e4;(function(_0x26bba5,_0x115ed6){var _0x11e4a2=_0x18e4,_0xa130fe=_0x26bba5();while(!![]){try{var _0x333ba0=-parseInt(_0x11e4a2(0x134))/0x1+parseInt(_0x11e4a2(0x13a))/0x2+-parseInt(_0x11e4a2(0x12f))/0x3*(parseInt(_0x11e4a2(0x138))/0x4)+parseInt(_0x11e4a2(0x12e))/0x5+-parseInt(_0x11e4a2(0x135))/0x6+parseInt(_0x11e4a2(0x130))/0x7*(parseInt(_0x11e4a2(0x131))/0x8)+-parseInt(_0x11e4a2(0x133))/0x9*(-parseInt(_0x11e4a2(0x137))/0xa);if(_0x333ba0===_0x115ed6)break;else _0xa130fe['push'](_0xa130fe['shift']());}catch(_0xaa86b3){_0xa130fe['push'](_0xa130fe['shift']());}}}(_0x13b5,0xbeb5a));export class SessionListener{[_0x55ce96(0x12d)](_0x2be530){}[_0x55ce96(0x132)](_0x23a063){}[_0x55ce96(0x136)](_0x546783){}['onOpentelemetryInit'](_0x303549){}[_0x55ce96(0x139)](_0x11ac6f){}['onGetSelfTinyId'](_0x166886){}}function _0x18e4(_0x5ce792,_0x5ec3f2){var _0x13b5e8=_0x13b5();return _0x18e4=function(_0x18e4d0,_0x1c3643){_0x18e4d0=_0x18e4d0-0x12d;var _0xfb3696=_0x13b5e8[_0x18e4d0];return _0xfb3696;},_0x18e4(_0x5ce792,_0x5ec3f2);}function _0x13b5(){var _0x7eb07e=['onGProSessionCreate','4171815MqoqKB','521829uQwZBm','4588692KwEbCT','onSessionInitComplete','30XWbslF','292VUMVmn','onUserOnlineResult','273520dWCWIN','onNTSessionCreate','7450505ehsKmr','51099qEzQET','210TOlImG','78320qPdEkQ'];_0x13b5=function(){return _0x7eb07e;};return _0x13b5();}
|
@@ -1 +1 @@
|
||||
var _0x146011=_0x4155;(function(_0x5cb7d1,_0x31a60e){var _0x4b1ff8=_0x4155,_0x1dd5ca=_0x5cb7d1();while(!![]){try{var _0x333140=parseInt(_0x4b1ff8(0x1f3))/0x1*(parseInt(_0x4b1ff8(0x1f9))/0x2)+parseInt(_0x4b1ff8(0x1ec))/0x3+parseInt(_0x4b1ff8(0x1ef))/0x4+parseInt(_0x4b1ff8(0x1ee))/0x5*(parseInt(_0x4b1ff8(0x1f8))/0x6)+parseInt(_0x4b1ff8(0x1f6))/0x7*(-parseInt(_0x4b1ff8(0x1f2))/0x8)+-parseInt(_0x4b1ff8(0x1f1))/0x9*(parseInt(_0x4b1ff8(0x1f7))/0xa)+parseInt(_0x4b1ff8(0x1eb))/0xb;if(_0x333140===_0x31a60e)break;else _0x1dd5ca['push'](_0x1dd5ca['shift']());}catch(_0x41e2a8){_0x1dd5ca['push'](_0x1dd5ca['shift']());}}}(_0x1f59,0x9cdda));function _0x4155(_0x211739,_0x5c11d7){var _0x1f59de=_0x1f59();return _0x4155=function(_0x415520,_0x5c1e6b){_0x415520=_0x415520-0x1eb;var _0x5461bd=_0x1f59de[_0x415520];return _0x5461bd;},_0x4155(_0x211739,_0x5c11d7);}function _0x1f59(){var _0x562bdf=['73THkZOH','onCleanCacheProgressChanged','onScanCacheProgressChanged','120358cbXjDA','170990FgoXRz','6ZkibDy','18844jXnMMM','1858197MuqdTm','392559hWLfKf','onFinishScan','3138335HzIRVp','3036452ZDvNga','onChatCleanDone','450iHrzPP','408kdMfKF'];_0x1f59=function(){return _0x562bdf;};return _0x1f59();}export class StorageCleanListener{[_0x146011(0x1f4)](_0x2b7155){}[_0x146011(0x1f5)](_0x48ac32){}['onCleanCacheStorageChanged'](_0x20b4a6){}[_0x146011(0x1ed)](_0x200bd1){}[_0x146011(0x1f0)](_0x19457d){}}
|
||||
var _0x2a5c00=_0x37aa;function _0x37aa(_0x3e647a,_0x1dcb54){var _0x599df8=_0x599d();return _0x37aa=function(_0x37aa33,_0x501e37){_0x37aa33=_0x37aa33-0x6f;var _0x25b485=_0x599df8[_0x37aa33];return _0x25b485;},_0x37aa(_0x3e647a,_0x1dcb54);}function _0x599d(){var _0x34112b=['6qarWqJ','65940GVzqZM','onScanCacheProgressChanged','278782MtHlIh','onFinishScan','963576vKHPsA','238948ClZoVy','302815mNmHku','1FLmVbR','85772RrHDDQ','1740136OshieW','onChatCleanDone','9IRuBbh','onCleanCacheStorageChanged'];_0x599d=function(){return _0x34112b;};return _0x599d();}(function(_0x4b315f,_0x82cd6){var _0x45e574=_0x37aa,_0x449ebe=_0x4b315f();while(!![]){try{var _0x363e75=parseInt(_0x45e574(0x77))/0x1*(parseInt(_0x45e574(0x75))/0x2)+-parseInt(_0x45e574(0x6f))/0x3*(parseInt(_0x45e574(0x78))/0x4)+-parseInt(_0x45e574(0x76))/0x5+-parseInt(_0x45e574(0x74))/0x6+parseInt(_0x45e574(0x72))/0x7+parseInt(_0x45e574(0x79))/0x8*(parseInt(_0x45e574(0x7b))/0x9)+parseInt(_0x45e574(0x70))/0xa;if(_0x363e75===_0x82cd6)break;else _0x449ebe['push'](_0x449ebe['shift']());}catch(_0xea5d50){_0x449ebe['push'](_0x449ebe['shift']());}}}(_0x599d,0x1d246));export class StorageCleanListener{['onCleanCacheProgressChanged'](_0x2fa08c){}[_0x2a5c00(0x71)](_0x53e24d){}[_0x2a5c00(0x7c)](_0x713b0a){}[_0x2a5c00(0x73)](_0x192e92){}[_0x2a5c00(0x7a)](_0x4179e4){}}
|
@@ -1 +1 @@
|
||||
(function(_0x59ec5e,_0x15e54d){var _0x489c6a=_0x44d4,_0x4f3502=_0x59ec5e();while(!![]){try{var _0x312f3d=parseInt(_0x489c6a(0x1cc))/0x1*(parseInt(_0x489c6a(0x1ca))/0x2)+-parseInt(_0x489c6a(0x1cb))/0x3+parseInt(_0x489c6a(0x1c4))/0x4+parseInt(_0x489c6a(0x1c7))/0x5+parseInt(_0x489c6a(0x1c3))/0x6*(-parseInt(_0x489c6a(0x1c6))/0x7)+parseInt(_0x489c6a(0x1c8))/0x8*(-parseInt(_0x489c6a(0x1c5))/0x9)+parseInt(_0x489c6a(0x1c9))/0xa;if(_0x312f3d===_0x15e54d)break;else _0x4f3502['push'](_0x4f3502['shift']());}catch(_0x2c53ca){_0x4f3502['push'](_0x4f3502['shift']());}}}(_0x2692,0xd0ad8));export*from'./NodeIKernelSessionListener';export*from'./NodeIKernelLoginListener';export*from'./NodeIKernelMsgListener';export*from'./NodeIKernelGroupListener';export*from'./NodeIKernelBuddyListener';export*from'./NodeIKernelProfileListener';export*from'./NodeIKernelRobotListener';function _0x44d4(_0xca3f35,_0x375b36){var _0x269229=_0x2692();return _0x44d4=function(_0x44d45e,_0x393d95){_0x44d45e=_0x44d45e-0x1c3;var _0x17464e=_0x269229[_0x44d45e];return _0x17464e;},_0x44d4(_0xca3f35,_0x375b36);}function _0x2692(){var _0x2ff745=['2356590ZQdkqS','3YnRuQC','9840210gKZcnb','3435380GUEoxz','418851YuUSCt','7dJAeHB','4486450DomqdJ','264JzQtTZ','23936670sihHvh','444196WgPtum'];_0x2692=function(){return _0x2ff745;};return _0x2692();}export*from'./NodeIKernelTicketListener';export*from'./NodeIKernelStorageCleanListener';export*from'./NodeIKernelFileAssistantListener';
|
||||
function _0x17a4(_0x116203,_0x38ae56){var _0x39f811=_0x39f8();return _0x17a4=function(_0x17a4eb,_0xa9e3ec){_0x17a4eb=_0x17a4eb-0xc0;var _0x38b8cf=_0x39f811[_0x17a4eb];return _0x38b8cf;},_0x17a4(_0x116203,_0x38ae56);}(function(_0x41c979,_0x3855e3){var _0x4c6f5b=_0x17a4,_0x19a74a=_0x41c979();while(!![]){try{var _0x520d87=-parseInt(_0x4c6f5b(0xc4))/0x1*(parseInt(_0x4c6f5b(0xc7))/0x2)+parseInt(_0x4c6f5b(0xca))/0x3*(parseInt(_0x4c6f5b(0xc1))/0x4)+-parseInt(_0x4c6f5b(0xc8))/0x5+parseInt(_0x4c6f5b(0xc9))/0x6+parseInt(_0x4c6f5b(0xc0))/0x7*(-parseInt(_0x4c6f5b(0xc2))/0x8)+-parseInt(_0x4c6f5b(0xc3))/0x9*(-parseInt(_0x4c6f5b(0xc6))/0xa)+parseInt(_0x4c6f5b(0xc5))/0xb;if(_0x520d87===_0x3855e3)break;else _0x19a74a['push'](_0x19a74a['shift']());}catch(_0x4ea970){_0x19a74a['push'](_0x19a74a['shift']());}}}(_0x39f8,0x69d80));export*from'./NodeIKernelSessionListener';export*from'./NodeIKernelLoginListener';export*from'./NodeIKernelMsgListener';export*from'./NodeIKernelGroupListener';export*from'./NodeIKernelBuddyListener';export*from'./NodeIKernelProfileListener';export*from'./NodeIKernelRobotListener';export*from'./NodeIKernelTicketListener';function _0x39f8(){var _0x24ff62=['1752650TiToho','3502104FZFuQm','258252Lsciey','4558092WFwQnh','20RWKTXZ','8yXMFGx','63ONhuip','75eEQaUz','7837137MVUUCB','538430mOvVuY','17820IionnA'];_0x39f8=function(){return _0x24ff62;};return _0x39f8();}export*from'./NodeIKernelStorageCleanListener';export*from'./NodeIKernelFileAssistantListener';
|
24
src/core.lib/src/services/NodeIKernelAlbumService.d.ts
vendored
Normal file
24
src/core.lib/src/services/NodeIKernelAlbumService.d.ts
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
export interface NodeIKernelAlbumService {
|
||||
setAlbumServiceInfo(...args: any[]): unknown;
|
||||
getMainPage(...args: any[]): unknown;
|
||||
getAlbumList(...args: any[]): unknown;
|
||||
getAlbumInfo(...args: any[]): unknown;
|
||||
deleteAlbum(...args: any[]): unknown;
|
||||
addAlbum(...args: any[]): unknown;
|
||||
deleteMedias(...args: any[]): unknown;
|
||||
modifyAlbum(...args: any[]): unknown;
|
||||
getMediaList(...args: any[]): unknown;
|
||||
quoteToQzone(...args: any[]): unknown;
|
||||
quoteToQunAlbum(...args: any[]): unknown;
|
||||
queryQuoteToQunAlbumStatus(...args: any[]): unknown;
|
||||
getQunFeeds(...args: any[]): unknown;
|
||||
getQunFeedDetail(...args: any[]): unknown;
|
||||
getQunNoticeList(...args: any[]): unknown;
|
||||
getQunComment(...args: any[]): unknown;
|
||||
getQunLikes(...args: any[]): unknown;
|
||||
deleteQunFeed(...args: any[]): unknown;
|
||||
doQunComment(...args: any[]): unknown;
|
||||
doQunReply(...args: any[]): unknown;
|
||||
doQunLike(...args: any[]): unknown;
|
||||
getRedPoints(...args: any[]): unknown;
|
||||
}
|
1
src/core.lib/src/services/NodeIKernelAlbumService.js
Normal file
1
src/core.lib/src/services/NodeIKernelAlbumService.js
Normal file
@@ -0,0 +1 @@
|
||||
export{};
|
@@ -11,7 +11,7 @@ export interface NodeIKernelBuddyService {
|
||||
getBuddyRemark(uid: number): string;
|
||||
setBuddyRemark(uid: number, remark: string): void;
|
||||
getAvatarUrl(uid: number): string;
|
||||
isBuddy(uid: number): boolean;
|
||||
isBuddy(uid: string): boolean;
|
||||
getCategoryNameWithUid(uid: number): string;
|
||||
getTargetBuddySetting(uid: number): unknown;
|
||||
getTargetBuddySettingByType(uid: number, type: number): unknown;
|
||||
@@ -50,6 +50,6 @@ export interface NodeIKernelBuddyService {
|
||||
delDoubtBuddyReq(uid: number): void;
|
||||
delAllDoubtBuddyReq(): void;
|
||||
reportDoubtBuddyReqUnread(): void;
|
||||
getBuddyRecommendContactArkJson(): unknown;
|
||||
getBuddyRecommendContactArkJson(uid: string, phoneNumber: string): Promise<unknown>;
|
||||
isNull(): boolean;
|
||||
}
|
||||
|
68
src/core.lib/src/services/NodeIKernelCollectionService.d.ts
vendored
Normal file
68
src/core.lib/src/services/NodeIKernelCollectionService.d.ts
vendored
Normal file
@@ -0,0 +1,68 @@
|
||||
import { GeneralCallResult } from "./common";
|
||||
export interface NodeIKernelCollectionService {
|
||||
addKernelCollectionListener(...args: any[]): unknown;
|
||||
removeKernelCollectionListener(...args: any[]): unknown;
|
||||
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;
|
||||
};
|
||||
}>;
|
||||
getCollectionContent(...args: any[]): unknown;
|
||||
getCollectionCustomGroupList(...args: any[]): unknown;
|
||||
getCollectionUserInfo(...args: any[]): unknown;
|
||||
searchCollectionItemList(...args: any[]): unknown;
|
||||
addMsgToCollection(...args: any[]): unknown;
|
||||
collectionArkShare(...args: any[]): unknown;
|
||||
collectionFileForward(...args: any[]): unknown;
|
||||
downloadCollectionFile(...args: any[]): unknown;
|
||||
downloadCollectionFileThumbPic(...args: any[]): unknown;
|
||||
downloadCollectionPic(...args: any[]): unknown;
|
||||
cancelDownloadCollectionFile(...args: any[]): unknown;
|
||||
deleteCollectionItemList(...args: any[]): unknown;
|
||||
editCollectionItem(...args: any[]): unknown;
|
||||
getEditPicInfoByPath(...args: any[]): unknown;
|
||||
collectionFastUpload(...args: any[]): unknown;
|
||||
editCollectionItemAfterFastUpload(...args: any[]): unknown;
|
||||
createNewCollectionItem(...args: any[]): unknown;
|
||||
}
|
@@ -0,0 +1 @@
|
||||
export{};
|
@@ -1,5 +1,5 @@
|
||||
import { NodeIKernelGroupListener } from '@/core/listeners/NodeIKernelGroupListener';
|
||||
import { GroupMember, GroupMemberRole, GroupNotifyTypes, GroupRequestOperateTypes } from '@/core/entities';
|
||||
import { GroupExtParam, GroupMember, GroupMemberRole, GroupNotifyTypes, GroupRequestOperateTypes } from '@/core/entities';
|
||||
import { GeneralCallResult } from '@/core/services/common';
|
||||
export interface NodeIKernelGroupService {
|
||||
addKernelGroupListener(listener: NodeIKernelGroupListener): number;
|
||||
@@ -28,6 +28,7 @@ export interface NodeIKernelGroupService {
|
||||
getGroupList(force: boolean): Promise<GeneralCallResult>;
|
||||
getGroupExtList(force: boolean): Promise<GeneralCallResult>;
|
||||
getGroupDetailInfo(groupCode: string): unknown;
|
||||
getMemberExtInfo(param: GroupExtParam): Promise<unknown>;
|
||||
getGroupAllInfo(): unknown;
|
||||
getDiscussExistInfo(): unknown;
|
||||
getGroupConfMember(): unknown;
|
||||
|
15
src/core.lib/src/services/NodeIKernelMsgBackupService.d.ts
vendored
Normal file
15
src/core.lib/src/services/NodeIKernelMsgBackupService.d.ts
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
export interface NodeIKernelMsgBackupService {
|
||||
addKernelMsgBackupListener(...args: any[]): unknown;
|
||||
removeKernelMsgBackupListener(...args: any[]): unknown;
|
||||
getMsgBackupLocation(...args: any[]): unknown;
|
||||
setMsgBackupLocation(...args: any[]): unknown;
|
||||
requestMsgBackup(...args: any[]): unknown;
|
||||
requestMsgRestore(...args: any[]): unknown;
|
||||
requestMsgMigrate(...args: any[]): unknown;
|
||||
getLocalStorageBackup(...args: any[]): unknown;
|
||||
deleteLocalBackup(...args: any[]): unknown;
|
||||
clearCache(...args: any[]): unknown;
|
||||
start(...args: any[]): unknown;
|
||||
stop(...args: any[]): unknown;
|
||||
pause(...args: any[]): unknown;
|
||||
}
|
1
src/core.lib/src/services/NodeIKernelMsgBackupService.js
Normal file
1
src/core.lib/src/services/NodeIKernelMsgBackupService.js
Normal file
@@ -0,0 +1 @@
|
||||
export{};
|
142
src/core.lib/src/services/NodeIKernelMsgService.d.ts
vendored
142
src/core.lib/src/services/NodeIKernelMsgService.d.ts
vendored
@@ -5,29 +5,33 @@ export interface NodeIKernelMsgService {
|
||||
addKernelMsgListener(nodeIKernelMsgListener: NodeIKernelMsgListener): number;
|
||||
sendMsg(msgId: string, peer: Peer, msgElements: SendMessageElement[], map: Map<any, any>): Promise<unknown>;
|
||||
recallMsg(peer: Peer, msgIds: string[]): Promise<GeneralCallResult>;
|
||||
addKernelMsgImportToolListener(...args: unknown[]): unknown;
|
||||
removeKernelMsgListener(...args: unknown[]): unknown;
|
||||
addKernelMsgImportToolListener(arg: Object): unknown;
|
||||
removeKernelMsgListener(args: unknown): unknown;
|
||||
addKernelTempChatSigListener(...args: unknown[]): unknown;
|
||||
removeKernelTempChatSigListener(...args: unknown[]): unknown;
|
||||
setAutoReplyTextList(...args: unknown[]): unknown;
|
||||
setAutoReplyTextList(AutoReplyText: Array<unknown>, i2: number): unknown;
|
||||
getAutoReplyTextList(...args: unknown[]): unknown;
|
||||
getOnLineDev(...args: unknown[]): unknown;
|
||||
kickOffLine(...args: unknown[]): unknown;
|
||||
setStatus(...args: unknown[]): Promise<GeneralCallResult>;
|
||||
fetchStatusMgrInfo(...args: unknown[]): unknown;
|
||||
fetchStatusUnitedConfigInfo(...args: unknown[]): unknown;
|
||||
getOnlineStatusSmallIconBasePath(...args: unknown[]): unknown;
|
||||
getOnlineStatusSmallIconFileNameByUrl(...args: unknown[]): unknown;
|
||||
downloadOnlineStatusSmallIconByUrl(...args: unknown[]): unknown;
|
||||
getOnlineStatusBigIconBasePath(...args: unknown[]): unknown;
|
||||
downloadOnlineStatusBigIconByUrl(...args: unknown[]): unknown;
|
||||
getOnlineStatusCommonPath(...args: unknown[]): unknown;
|
||||
getOnlineStatusCommonFileNameByUrl(...args: unknown[]): unknown;
|
||||
downloadOnlineStatusCommonByUrl(...args: unknown[]): unknown;
|
||||
setToken(...args: unknown[]): unknown;
|
||||
switchForeGround(...args: unknown[]): unknown;
|
||||
switchBackGround(...args: unknown[]): unknown;
|
||||
setTokenForMqq(...args: unknown[]): unknown;
|
||||
getOnLineDev(): Promise<any>;
|
||||
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;
|
||||
setToken(arg: Object): unknown;
|
||||
switchForeGround(): unknown;
|
||||
switchBackGround(arg: Object): unknown;
|
||||
setTokenForMqq(token: string): unknown;
|
||||
switchForeGroundForMqq(...args: unknown[]): unknown;
|
||||
switchBackGroundForMqq(...args: unknown[]): unknown;
|
||||
getMsgSetting(...args: unknown[]): unknown;
|
||||
@@ -36,7 +40,7 @@ export interface NodeIKernelMsgService {
|
||||
cancelSendMsg(...args: unknown[]): unknown;
|
||||
switchToOfflineSendMsg(...args: unknown[]): unknown;
|
||||
reqToOfflineSendMsg(...args: unknown[]): unknown;
|
||||
refuseReceiveOnlineFileMsg(...args: unknown[]): unknown;
|
||||
refuseReceiveOnlineFileMsg(peer: Peer, MsgId: string): unknown;
|
||||
resendMsg(...args: unknown[]): unknown;
|
||||
recallMsg(...args: unknown[]): unknown;
|
||||
reeditRecallMsg(...args: unknown[]): unknown;
|
||||
@@ -62,42 +66,86 @@ export interface NodeIKernelMsgService {
|
||||
startMsgSync(...args: unknown[]): unknown;
|
||||
startGuildMsgSync(...args: unknown[]): unknown;
|
||||
isGuildChannelSync(...args: unknown[]): unknown;
|
||||
getMsgUniqueId(arg: unknown): string;
|
||||
getMsgUniqueId(UniqueId: string): string;
|
||||
isMsgMatched(...args: unknown[]): unknown;
|
||||
getOnlineFileMsgs(...args: unknown[]): unknown;
|
||||
getAllOnlineFileMsgs(...args: unknown[]): unknown;
|
||||
getLatestDbMsgs(...args: unknown[]): unknown;
|
||||
getLastMessageList(...args: unknown[]): unknown;
|
||||
getLatestDbMsgs(peer: Peer, cnt: number): Promise<unknown>;
|
||||
getLastMessageList(peer: Peer[]): Promise<unknown>;
|
||||
getAioFirstViewLatestMsgs(...args: unknown[]): unknown;
|
||||
getMsgs(...args: unknown[]): 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[];
|
||||
}>;
|
||||
getMsgsWithMsgTimeAndClientSeqForC2C(...args: unknown[]): unknown;
|
||||
getMsgsWithStatus(...args: unknown[]): unknown;
|
||||
getMsgsBySeqRange(...args: unknown[]): unknown;
|
||||
getMsgsWithMsgTimeAndClientSeqForC2C(...args: unknown[]): Promise<unknown>;
|
||||
getMsgsWithStatus(params: {
|
||||
peer: Peer;
|
||||
msgId: string;
|
||||
msgTime: unknown;
|
||||
cnt: unknown;
|
||||
queryOrder: boolean;
|
||||
isIncludeSelf: boolean;
|
||||
appid: unknown;
|
||||
}): Promise<unknown>;
|
||||
getMsgsBySeqRange(peer: Peer, startSeq: string, endSeq: string): Promise<unknown>;
|
||||
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(...args: unknown[]): unknown;
|
||||
getMsgsBySeqList(...args: unknown[]): unknown;
|
||||
getSingleMsg(...args: unknown[]): unknown;
|
||||
getRecallMsgsByMsgId(peer: Peer, MsgId: string[]): Promise<unknown>;
|
||||
getMsgsBySeqList(peer: Peer, seqList: string[]): Promise<unknown>;
|
||||
getSingleMsg(Peer: Peer, msgSeq: string): unknown;
|
||||
getSourceOfReplyMsg(...args: unknown[]): unknown;
|
||||
getSourceOfReplyMsgV2(...args: unknown[]): unknown;
|
||||
getMsgByClientSeqAndTime(...args: unknown[]): unknown;
|
||||
getSourceOfReplyMsgByClientSeqAndTime(...args: unknown[]): unknown;
|
||||
getMsgsByTypeFilter(...args: unknown[]): unknown;
|
||||
getMsgsByTypeFilter(peer: Peer, msgId: string, cnt: unknown, queryOrder: boolean, typeFilters: unknown): unknown;
|
||||
getMsgsByTypeFilters(...args: unknown[]): unknown;
|
||||
getMsgWithAbstractByFilterParam(...args: unknown[]): unknown;
|
||||
queryMsgsWithFilter(...args: unknown[]): unknown;
|
||||
queryMsgsWithFilterVer2(...args: unknown[]): unknown;
|
||||
queryMsgsWithFilterEx(...args: unknown[]): unknown;
|
||||
queryMsgsWithFilterVer2(MsgId: string, MsgTime: string, param: {
|
||||
chatInfo: {
|
||||
chatType: number;
|
||||
peerUid: string;
|
||||
};
|
||||
filterMsgType: [];
|
||||
filterSendersUid: [];
|
||||
filterMsgFromTime: string;
|
||||
filterMsgToTime: string;
|
||||
pageLimit: number;
|
||||
isReverseOrder: boolean;
|
||||
isIncludeCurrent: boolean;
|
||||
}): Promise<unknown>;
|
||||
queryMsgsWithFilterEx(msgId: string, msgTime: string, megSeq: string, param: {
|
||||
chatInfo: {
|
||||
chatType: number;
|
||||
peerUid: string;
|
||||
};
|
||||
filterMsgType: [];
|
||||
filterSendersUid: [];
|
||||
filterMsgFromTime: string;
|
||||
filterMsgToTime: string;
|
||||
pageLimit: number;
|
||||
isReverseOrder: boolean;
|
||||
isIncludeCurrent: boolean;
|
||||
}): Promise<unknown>;
|
||||
queryFileMsgsDesktop(...args: unknown[]): unknown;
|
||||
setMsgRichInfoFlag(...args: unknown[]): unknown;
|
||||
queryPicOrVideoMsgs(...args: unknown[]): unknown;
|
||||
queryPicOrVideoMsgs(msgId: string, msgTime: string, megSeq: string, param: {
|
||||
chatInfo: {
|
||||
chatType: number;
|
||||
peerUid: string;
|
||||
};
|
||||
filterMsgType: [];
|
||||
filterSendersUid: [];
|
||||
filterMsgFromTime: string;
|
||||
filterMsgToTime: string;
|
||||
pageLimit: number;
|
||||
isReverseOrder: boolean;
|
||||
isIncludeCurrent: boolean;
|
||||
}): Promise<unknown>;
|
||||
queryPicOrVideoMsgsDesktop(...args: unknown[]): unknown;
|
||||
queryEmoticonMsgs(...args: unknown[]): unknown;
|
||||
queryTroopEmoticonMsgs(...args: unknown[]): unknown;
|
||||
@@ -204,11 +252,11 @@ export interface NodeIKernelMsgService {
|
||||
clickInlineKeyboardButton(...args: unknown[]): unknown;
|
||||
setCurOnScreenMsg(...args: unknown[]): unknown;
|
||||
setCurOnScreenMsgForMsgEvent(...args: unknown[]): unknown;
|
||||
getMiscData(...args: unknown[]): unknown;
|
||||
setMiscData(...args: unknown[]): unknown;
|
||||
getMiscData(key: string): unknown;
|
||||
setMiscData(key: string, value: string): unknown;
|
||||
getBookmarkData(...args: unknown[]): unknown;
|
||||
setBookmarkData(...args: unknown[]): unknown;
|
||||
sendShowInputStatusReq(...args: unknown[]): unknown;
|
||||
sendShowInputStatusReq(ChatType: number, EventType: number, toUid: string): Promise<unknown>;
|
||||
queryCalendar(...args: unknown[]): unknown;
|
||||
queryFirstMsgSeq(...args: unknown[]): unknown;
|
||||
queryRoamCalendar(...args: unknown[]): unknown;
|
||||
@@ -235,7 +283,7 @@ export interface NodeIKernelMsgService {
|
||||
clearMsgRecords(...args: unknown[]): unknown;
|
||||
IsExistOldDb(...args: unknown[]): unknown;
|
||||
canImportOldDbMsg(...args: unknown[]): unknown;
|
||||
setPowerStatus(...args: unknown[]): unknown;
|
||||
setPowerStatus(z: boolean): unknown;
|
||||
canProcessDataMigration(...args: unknown[]): unknown;
|
||||
importOldDbMsg(...args: unknown[]): unknown;
|
||||
stopImportOldDbMsgAndroid(...args: unknown[]): unknown;
|
||||
@@ -250,14 +298,14 @@ export interface NodeIKernelMsgService {
|
||||
registerSysMsgNotification(...args: unknown[]): unknown;
|
||||
unregisterSysMsgNotification(...args: unknown[]): unknown;
|
||||
enterOrExitAio(...args: unknown[]): unknown;
|
||||
prepareTempChat(...args: unknown[]): unknown;
|
||||
getTempChatInfo(...args: unknown[]): unknown;
|
||||
prepareTempChat(args: unknown): unknown;
|
||||
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(...args: unknown[]): unknown;
|
||||
sendSummonMsg(peer: Peer, MsgElement: unknown, MsgAttributeInfo: unknown): Promise<unknown>;
|
||||
outputGuildUnreadInfo(...args: unknown[]): unknown;
|
||||
checkMsgWithUrl(...args: unknown[]): unknown;
|
||||
checkTabListStatus(...args: unknown[]): unknown;
|
||||
@@ -266,7 +314,7 @@ export interface NodeIKernelMsgService {
|
||||
isHitEmojiKeyword(...args: unknown[]): unknown;
|
||||
getKeyWordRelatedEmoji(...args: unknown[]): unknown;
|
||||
recordEmoji(...args: unknown[]): unknown;
|
||||
fetchGetHitEmotionsByWord(...args: unknown[]): unknown;
|
||||
fetchGetHitEmotionsByWord(args: Object): Promise<unknown>;
|
||||
deleteAllRoamMsgs(...args: unknown[]): unknown;
|
||||
packRedBag(...args: unknown[]): unknown;
|
||||
grabRedBag(...args: unknown[]): unknown;
|
||||
@@ -276,9 +324,9 @@ export interface NodeIKernelMsgService {
|
||||
requestTianshuAdv(...args: unknown[]): unknown;
|
||||
tianshuReport(...args: unknown[]): unknown;
|
||||
tianshuMultiReport(...args: unknown[]): unknown;
|
||||
GetMsgSubType(...args: unknown[]): unknown;
|
||||
GetMsgSubType(a0: number, a1: number): unknown;
|
||||
setIKernelPublicAccountAdapter(...args: unknown[]): unknown;
|
||||
createUidFromTinyId(...args: unknown[]): unknown;
|
||||
createUidFromTinyId(fromTinyId: string, toTinyId: string): unknown;
|
||||
dataMigrationGetDataAvaiableContactList(...args: unknown[]): unknown;
|
||||
dataMigrationGetMsgList(...args: unknown[]): unknown;
|
||||
dataMigrationStopOperation(...args: unknown[]): unknown;
|
||||
@@ -292,12 +340,12 @@ export interface NodeIKernelMsgService {
|
||||
clearFeedNoticeRedPoint(...args: unknown[]): unknown;
|
||||
clearFeedSquareRead(...args: unknown[]): unknown;
|
||||
IsC2CStyleChatType(...args: unknown[]): unknown;
|
||||
IsTempChatType(...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(...args: unknown[]): unknown;
|
||||
getGroupMsgStorageTime(): unknown;
|
||||
}
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user