Compare commits

..

113 Commits

Author SHA1 Message Date
手瓜一十雪
27fa319b2a release: LinuxAppid 24568 2024-06-14 18:43:56 +08:00
手瓜一十雪
d95ac894f4 release: 1.5.6-复活下win 2024-06-14 17:00:35 +08:00
手瓜一十雪
ae84a8dd11 docs: v1.5.6 change 2024-06-14 16:53:26 +08:00
手瓜一十雪
2fc963f986 build: v1.5.6-紧急测试 2024-06-14 16:43:32 +08:00
手瓜一十雪
be1f938ebd fix 2024-06-14 16:42:39 +08:00
手瓜一十雪
cccf4d503d docs: v1.5.6 2024-06-14 15:50:22 +08:00
手瓜一十雪
9dad2a8ac6 remove: debug 2024-06-11 18:11:32 +08:00
手瓜一十雪
75af104f07 release: v1.5.5 2024-06-11 18:10:22 +08:00
手瓜一十雪
76ecba245b fix: error 2024-06-11 18:09:46 +08:00
手瓜一十雪
3697c2ced8 refactor: 移除无缝升级函数 2024-06-11 15:46:27 +08:00
手瓜一十雪
b9d1d84716 release: v1.5.4 2024-06-11 15:20:11 +08:00
手瓜一十雪
64b2d547ce refactor: friend 2024-06-11 12:34:04 +08:00
手瓜一十雪
d8d2ff7e4e chore:appid 2024-06-10 19:00:05 +08:00
手瓜一十雪
8aa5dc6482 Merge pull request #62 from NapNeko/dependabot/npm_and_yarn/uuid-10.0.0
build(deps): bump uuid from 9.0.1 to 10.0.0
2024-06-10 16:46:05 +08:00
dependabot[bot]
474ba20e61 build(deps): bump uuid from 9.0.1 to 10.0.0
Bumps [uuid](https://github.com/uuidjs/uuid) from 9.0.1 to 10.0.0.
- [Changelog](https://github.com/uuidjs/uuid/blob/main/CHANGELOG.md)
- [Commits](https://github.com/uuidjs/uuid/compare/v9.0.1...v10.0.0)

---
updated-dependencies:
- dependency-name: uuid
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-10 08:12:09 +00:00
手瓜一十雪
bdea2d02a9 release: v1.5.3 2024-06-09 20:09:14 +08:00
手瓜一十雪
c4307481f1 build: 1.5.3-beta4 2024-06-09 19:47:16 +08:00
手瓜一十雪
b8ac1b28bd build: v1.5.3-beta3 2024-06-09 19:41:27 +08:00
手瓜一十雪
24038cda95 refactor: video url 2024-06-09 19:40:34 +08:00
手瓜一十雪
86c82e9608 build: 1.5.3-beta2 2024-06-09 19:14:27 +08:00
手瓜一十雪
daab5d150b refactor: friend add 2024-06-09 19:13:49 +08:00
手瓜一十雪
9ff82bdb90 feat: support SetLongNick 2024-06-09 18:28:09 +08:00
手瓜一十雪
c6d70ef1cf build: 1.5.3-beta1 2024-06-09 17:46:32 +08:00
手瓜一十雪
15d4bb3c76 feat: new api 2024-06-09 17:30:30 +08:00
手瓜一十雪
3e698981fd chore: sync core 2024-06-09 14:26:02 +08:00
手瓜一十雪
9d45c934a5 chore: sync core 2024-06-08 22:13:05 +08:00
手瓜一十雪
c2bf9cf93e chore: sync core 2024-06-08 12:11:04 +08:00
手瓜一十雪
b3c6fd7f26 chore: sync core 2024-06-07 17:59:33 +08:00
手瓜一十雪
ccd155de71 feat: 推荐联系人ArkJson 2024-06-07 17:57:33 +08:00
手瓜一十雪
1f90d2e46b feat: 支持专属头衔获取 2024-06-07 17:26:00 +08:00
手瓜一十雪
4c5d974c22 feat: 支持专属头衔获取 2024-06-07 17:25:34 +08:00
手瓜一十雪
392eda1cbc fix: typo 2024-06-07 13:19:22 +08:00
手瓜一十雪
a9da3279e8 docs: change 2024-06-07 13:01:15 +08:00
手瓜一十雪
1ce8351180 docs: develop 2024-06-07 09:49:31 +08:00
手瓜一十雪
96c334478a docs: todo 2024-06-07 00:39:09 +08:00
手瓜一十雪
f1b0875b05 feat: ArkJsonGroupShare 2024-06-06 17:20:34 +08:00
手瓜一十雪
cea9e11c83 docs: add 2024-06-06 14:31:45 +08:00
手瓜一十雪
f098b39200 refactor: uins 2024-06-06 13:34:05 +08:00
手瓜一十雪
012d948b59 chore: sync 2024-06-06 13:23:15 +08:00
手瓜一十雪
3334cd0a71 docs: change 2024-06-06 12:18:17 +08:00
手瓜一十雪
d63d53fd88 docs: move 2024-06-06 11:05:30 +08:00
手瓜一十雪
a7fa39b2fd fix: message_id error 2024-06-06 11:03:29 +08:00
Version
40bb42e193 chore:version change 2024-06-05 10:30:26 +00:00
手瓜一十雪
9c382c639b build: v1.5.2-api兼容 2024-06-05 15:04:04 +08:00
手瓜一十雪
a43cde38f1 refactor: SetMsgEmojiLike 2024-06-05 15:03:14 +08:00
手瓜一十雪
c35d2e08cd refactor: reboot req params 2024-06-05 14:25:21 +08:00
手瓜一十雪
3377c383c1 build: v1.5.2 - GetMsg兼容 2024-06-05 12:14:41 +08:00
手瓜一十雪
c00e6d95cd build: v1.5.2-beta3 2024-06-05 11:23:42 +08:00
手瓜一十雪
725fccf4ed refactor: GoCQHTTP_GetStrangerInfo 2024-06-05 11:19:34 +08:00
手瓜一十雪
13129bd219 build: v1.5.2-beta2 2024-06-05 10:41:40 +08:00
手瓜一十雪
4561977bcf chore: sync core 2024-06-05 10:36:39 +08:00
手瓜一十雪
40be8a91f5 fix 2024-06-05 10:33:36 +08:00
手瓜一十雪
2a04d5830b fix: kick member 2024-06-04 23:52:46 +08:00
手瓜一十雪
82a38574f3 build: v1.5.2-beta 2024-06-04 23:16:33 +08:00
手瓜一十雪
fea3a33c2b refactor: Uid <-> Uin & Remove Cached 2024-06-04 23:13:18 +08:00
手瓜一十雪
9a502cdf6f refactor: uin - > uid 2024-06-04 23:06:53 +08:00
手瓜一十雪
4b616299cf refactor: uin -> uid 2024-06-04 22:50:16 +08:00
手瓜一十雪
102243e064 sync: core 2024-06-04 21:15:29 +08:00
手瓜一十雪
4b21ac5ebe fix: nt event 2024-06-04 21:09:19 +08:00
手瓜一十雪
4dd7363dd3 Merge branch 'main' of https://github.com/NapNeko/NapCatQQ 2024-06-04 12:39:08 +08:00
手瓜一十雪
3d5e5ab78f release: v1.5.1 2024-06-04 12:38:54 +08:00
手瓜一十雪
73045a1b21 Merge pull request #57 from Icexbb/main
fix: 整理日志、添加颜色、使用统一的日志函数以提高日志可读性
2024-06-04 12:37:54 +08:00
手瓜一十雪
871173a7cf fix: 二维码显示 2024-06-04 12:37:35 +08:00
手瓜一十雪
0002313093 Merge branch 'main' into pr/57 2024-06-04 12:31:43 +08:00
手瓜一十雪
948cf5cca6 refactror: cpmoudle
此处非NC运行时的代码 用于打包时运行
2024-06-04 12:26:19 +08:00
手瓜一十雪
d40230879c fix: 玄学的问题 2024-06-04 12:20:42 +08:00
XBB
ab22b775f1 fix: 整理日志、添加颜色、使用统一的日志函数以提高日志可读性 2024-06-04 02:59:35 +08:00
手瓜一十雪
42c85224ba build: v1.5.1-beta1 2024-06-03 21:18:24 +08:00
手瓜一十雪
e57444a353 sync: core 2024-06-03 21:11:21 +08:00
手瓜一十雪
3c6503d495 feat: support SetSelfProfile 2024-06-03 21:02:43 +08:00
手瓜一十雪
149b518f48 release: v1.5.0 2024-06-03 17:15:43 +08:00
手瓜一十雪
74621447ff fix: 提高兼容性 2024-06-03 17:12:53 +08:00
手瓜一十雪
3280952931 fix: 提高Api兼容性 2024-06-03 17:09:23 +08:00
手瓜一十雪
9e670e2736 Merge branch 'main' of https://github.com/NapNeko/NapCatQQ 2024-06-03 16:56:28 +08:00
手瓜一十雪
9fc6347a2f fix: 进一步标准化 2024-06-03 16:56:08 +08:00
Version
ec7a15a192 chore:version change 2024-06-03 08:50:25 +00:00
手瓜一十雪
7f99982810 release: v1.4.9 2024-06-03 16:49:08 +08:00
Version
935d83aaf8 chore:version change 2024-06-02 13:01:32 +00:00
手瓜一十雪
0ff6edd546 style: lint 2024-06-02 20:49:09 +08:00
手瓜一十雪
94f629585a build: v1.4.8-beta2 2024-06-02 20:40:41 +08:00
手瓜一十雪
89c04be02f fix 2024-06-02 13:58:51 +08:00
手瓜一十雪
3151965ea8 build: 1.3.8-beta1 2024-06-02 13:45:48 +08:00
手瓜一十雪
bdf5159be1 refactor: guid 2024-06-02 13:38:33 +08:00
手瓜一十雪
0499ebbea3 release: v1.4.7 2024-06-01 15:52:06 +08:00
手瓜一十雪
d5843b7236 refactor: v1.4.6 2024-06-01 14:09:16 +08:00
手瓜一十雪
1c9c574a90 refactor: v1.4.6 2024-06-01 14:08:10 +08:00
手瓜一十雪
39acf20e48 release: v1.4.6 2024-06-01 14:05:44 +08:00
手瓜一十雪
52eb6ed5ab refactor: group call 2024-06-01 14:02:43 +08:00
手瓜一十雪
ee78d2d59d fix: type hint 2024-06-01 12:14:37 +08:00
手瓜一十雪
60dc5c4a38 refactor: re groupList 2024-06-01 12:10:50 +08:00
手瓜一十雪
50a0dc0355 refactor: GroupListGet 2024-06-01 11:38:50 +08:00
手瓜一十雪
3f681ec914 refactor:NT Event Finish 2024-05-31 23:33:23 +08:00
手瓜一十雪
0bf499f191 release: v1.4.5 2024-05-31 21:25:47 +08:00
手瓜一十雪
389695a0d6 fix: 1.4.5 2024-05-31 21:22:17 +08:00
手瓜一十雪
07f1afb312 fix 2024-05-31 21:03:00 +08:00
手瓜一十雪
ae91e61304 refactor:NTEvent 2024-05-31 21:02:39 +08:00
手瓜一十雪
6248991b01 refactor: NTEvent 2024-05-31 20:38:31 +08:00
手瓜一十雪
7f2d57ef62 refactor: event 2024-05-31 20:29:01 +08:00
手瓜一十雪
31f8f884f1 refactor: NTEvent 2024-05-31 19:09:03 +08:00
手瓜一十雪
4f4af5985a fix: type check & type output 2024-05-31 18:55:18 +08:00
手瓜一十雪
a716fdf6d4 refactor:NTEventDispatch 2024-05-31 14:07:35 +08:00
手瓜一十雪
9717f64abd refactor:NTEvent 2024-05-31 13:55:28 +08:00
手瓜一十雪
adf239183a docs: change 2024-05-31 10:12:59 +08:00
手瓜一十雪
6cf209c79c release: v1.4.4 2024-05-30 22:45:57 +08:00
手瓜一十雪
decc5fb3c0 refactor: checkDate 2024-05-30 22:41:51 +08:00
手瓜一十雪
1e0820d613 refactor: send rate 2024-05-30 22:38:02 +08:00
手瓜一十雪
70124d5177 refactor: GoCQHTTPUploadGroupFile 2024-05-30 22:32:09 +08:00
手瓜一十雪
269de65201 fix: undel 2024-05-30 20:53:58 +08:00
手瓜一十雪
1d11abbfb6 refactor: NTEvent 2024-05-30 19:40:40 +08:00
手瓜一十雪
700f308d6e feat: wrap NT-Event 2024-05-30 17:28:08 +08:00
手瓜一十雪
21b6928ca6 chore: sync core 2024-05-30 16:24:09 +08:00
手瓜一十雪
998c67a649 release: v1.4.3 2024-05-30 16:21:39 +08:00
Version
fb99e878b0 chore:version change 2024-05-30 04:36:42 +00:00
189 changed files with 3665 additions and 2039 deletions

View File

@@ -0,0 +1,11 @@
# v1.5.7
QQ Version: Windows 9.9.11-24568 / Linux 3.2.9-24568
## 修复与优化
* 修复一些问题
## 新增与调整
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)

View File

@@ -0,0 +1,11 @@
# v1.4.3
QQ Version: Windows 9.9.10-24108 / Linux 3.2.7-23361
## 修复与优化
* 修复名片通知
## 新增与调整
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)

View File

@@ -0,0 +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)

View 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)

View 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)

View 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)

View 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)

View File

@@ -0,0 +1,11 @@
# v1.4.9
QQ Version: Windows 9.9.10-24108 / Linux 3.2.7-23361
## 修复与优化
* 修复接口调用问题 接口标准化 APIset_group_add_request
## 新增与调整
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)

View 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)

View 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)

View 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)

View 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)

View 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)

View File

@@ -0,0 +1,11 @@
# v1.5.5
QQ Version: Windows 9.9.11-24568 / Linux 3.2.9-23568
## 修复与优化
* 紧急修复一些问题
## 新增与调整
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)

2
docs/develop/Android.md Normal file
View File

@@ -0,0 +1,2 @@
# 开始
jadx 跳转于 `com.tencent.qqnt.kernel.*`

View 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
```

View 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";

View 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;
```

View 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调用流程

View File

@@ -2,7 +2,7 @@
"name": "napcat",
"private": true,
"type": "module",
"version": "1.4.1",
"version": "1.5.7",
"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"
}
}

View File

@@ -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);

View File

@@ -0,0 +1,182 @@
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) });

View File

@@ -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;

View 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();

View File

@@ -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;
@@ -37,11 +38,11 @@ type QQVersionConfigInfo = {
}
let _qqVersionConfigInfo: QQVersionConfigInfo = {
'baseVersion': '9.9.9-23361',
'curVersion': '9.9.9-23361',
'baseVersion': '9.9.11-24568',
'curVersion': '9.9.11-24568',
'prevVersion': '',
'onErrorVersions': [],
'buildId': '23361'
'buildId': '24568'
};
if (fs.existsSync(configVersionInfoPath)) {
@@ -49,12 +50,12 @@ 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);
}
}
export const qqVersionConfigInfo: QQVersionConfigInfo = _qqVersionConfigInfo;
//V1_WIN_NQ_9.9.11_24568_GW_B
export const qqPkgInfo: QQPkgInfo = JSON.parse(fs.readFileSync(pkgInfoPath).toString());
// platform_type: 3,
// app_type: 4,
@@ -64,9 +65,13 @@ 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
// Linux
// app_version: '3.2.9-24568',
// qua: 'V1_LNX_NQ_3.2.9_24568_GW_B',
let _appid: string = '537226369'; // 默认为 Windows 平台的 appid
if (systemPlatform === 'linux') {
_appid = '537213827';
_appid = '537226441';
}
// todo: mac 平台的 appid
export const appid = _appid;

View File

@@ -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;
}
}

View File

@@ -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) {

View File

@@ -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();

View File

@@ -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);
}
}

View File

@@ -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);
}

View File

@@ -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();

View File

@@ -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);

View File

@@ -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('未找到视频流信息。');
}

View File

@@ -1 +1 @@
function _0x25a6(){var _0xdd7643=['171480fTSZGd','13mTAWhM','212UxsLaG','218104NjVwMP','176PerDSv','6gTIyto','999355ASHHIg','4114uTcLFG','getGroupCode','188488EaPnYY','11621736UKRGew','35SooqVm','onMSFSsoError','157848LdBgRG','45VADGBR'];_0x25a6=function(){return _0xdd7643;};return _0x25a6();}var _0x4edd10=_0x5825;function _0x5825(_0x3ca2ee,_0x2ea4bb){var _0x25a61d=_0x25a6();return _0x5825=function(_0x58250a,_0x450460){_0x58250a=_0x58250a-0x18b;var _0x304a6d=_0x25a61d[_0x58250a];return _0x304a6d;},_0x5825(_0x3ca2ee,_0x2ea4bb);}(function(_0x34a7e7,_0x28e4cb){var _0x5cd101=_0x5825,_0xfe3b98=_0x34a7e7();while(!![]){try{var _0x48368d=-parseInt(_0x5cd101(0x18f))/0x1*(parseInt(_0x5cd101(0x199))/0x2)+parseInt(_0x5cd101(0x18d))/0x3*(-parseInt(_0x5cd101(0x191))/0x4)+-parseInt(_0x5cd101(0x18e))/0x5+-parseInt(_0x5cd101(0x195))/0x6*(parseInt(_0x5cd101(0x193))/0x7)+-parseInt(_0x5cd101(0x18b))/0x8*(parseInt(_0x5cd101(0x196))/0x9)+parseInt(_0x5cd101(0x197))/0xa*(parseInt(_0x5cd101(0x18c))/0xb)+-parseInt(_0x5cd101(0x192))/0xc*(-parseInt(_0x5cd101(0x198))/0xd);if(_0x48368d===_0x28e4cb)break;else _0xfe3b98['push'](_0xfe3b98['shift']());}catch(_0x2b3d8b){_0xfe3b98['push'](_0xfe3b98['shift']());}}}(_0x25a6,0x3bc38));export class DependsAdapter{['onMSFStatusChange'](_0x3c4517,_0x2bacbb){}[_0x4edd10(0x194)](_0x185a15){}[_0x4edd10(0x190)](_0x16e148){}}
var _0x5daf60=_0xf130;function _0xf130(_0x5aba6b,_0x2da99a){var _0x33d41a=_0x33d4();return _0xf130=function(_0xf13007,_0x22a283){_0xf13007=_0xf13007-0xe5;var _0x3c4d22=_0x33d41a[_0xf13007];return _0x3c4d22;},_0xf130(_0x5aba6b,_0x2da99a);}(function(_0x766d05,_0x3fb57d){var _0x53e091=_0xf130,_0x489945=_0x766d05();while(!![]){try{var _0xe36748=-parseInt(_0x53e091(0xed))/0x1+parseInt(_0x53e091(0xea))/0x2+-parseInt(_0x53e091(0xe9))/0x3*(-parseInt(_0x53e091(0xeb))/0x4)+-parseInt(_0x53e091(0xe8))/0x5+parseInt(_0x53e091(0xf0))/0x6*(-parseInt(_0x53e091(0xe7))/0x7)+-parseInt(_0x53e091(0xee))/0x8+parseInt(_0x53e091(0xec))/0x9;if(_0xe36748===_0x3fb57d)break;else _0x489945['push'](_0x489945['shift']());}catch(_0x30aacf){_0x489945['push'](_0x489945['shift']());}}}(_0x33d4,0x1ead7));export class DependsAdapter{[_0x5daf60(0xe5)](_0xa0058e,_0x3600a1){}[_0x5daf60(0xe6)](_0x348363){}[_0x5daf60(0xef)](_0x204292){}}function _0x33d4(){var _0x49d45c=['219395XymPAD','33xKAgLL','159856uAUczW','34268fiVkzX','3445191kRIxPL','228722umUXvP','1128496fVpmLM','getGroupCode','18FwcbMu','onMSFStatusChange','onMSFSsoError','41174mHKvzA'];_0x33d4=function(){return _0x49d45c;};return _0x33d4();}

View File

@@ -1 +1 @@
function _0x5ae8(_0x5671e6,_0x1b7701){var _0x5d8967=_0x5d89();return _0x5ae8=function(_0x5ae8cf,_0x13afaf){_0x5ae8cf=_0x5ae8cf-0xf6;var _0x3b9185=_0x5d8967[_0x5ae8cf];return _0x3b9185;},_0x5ae8(_0x5671e6,_0x1b7701);}var _0x5676ef=_0x5ae8;function _0x5d89(){var _0x4251a7=['2390jmWPaL','75892IwWhIs','9IyWOXX','2212231YLtLBE','1434865bwkTfO','5592464yunGFX','16935220QmZfLP','dispatchCallWithJson','6cmAJYT','dispatchCall','75507iVSdbn','41BKOKcG'];_0x5d89=function(){return _0x4251a7;};return _0x5d89();}(function(_0x14c371,_0x3171b4){var _0x45f357=_0x5ae8,_0x1dbbc3=_0x14c371();while(!![]){try{var _0x24695c=parseInt(_0x45f357(0xf7))/0x1*(-parseInt(_0x45f357(0xf8))/0x2)+parseInt(_0x45f357(0xf6))/0x3+parseInt(_0x45f357(0xf9))/0x4+-parseInt(_0x45f357(0xfc))/0x5+parseInt(_0x45f357(0x100))/0x6*(-parseInt(_0x45f357(0xfb))/0x7)+-parseInt(_0x45f357(0xfd))/0x8+parseInt(_0x45f357(0xfa))/0x9*(parseInt(_0x45f357(0xfe))/0xa);if(_0x24695c===_0x3171b4)break;else _0x1dbbc3['push'](_0x1dbbc3['shift']());}catch(_0x36c716){_0x1dbbc3['push'](_0x1dbbc3['shift']());}}}(_0x5d89,0x5e62d));export class DispatcherAdapter{['dispatchRequest'](_0x5ed5e9){}[_0x5676ef(0x101)](_0xf81cc4){}[_0x5676ef(0xff)](_0x5e48a7){}}
var _0x214073=_0x2b60;(function(_0x5e20f9,_0x20e9be){var _0x454329=_0x2b60,_0x300af1=_0x5e20f9();while(!![]){try{var _0x43a03a=-parseInt(_0x454329(0x1ed))/0x1+parseInt(_0x454329(0x1ee))/0x2*(-parseInt(_0x454329(0x1ec))/0x3)+parseInt(_0x454329(0x1f2))/0x4*(-parseInt(_0x454329(0x1f6))/0x5)+-parseInt(_0x454329(0x1f7))/0x6+parseInt(_0x454329(0x1f5))/0x7*(parseInt(_0x454329(0x1f0))/0x8)+parseInt(_0x454329(0x1f3))/0x9*(parseInt(_0x454329(0x1ef))/0xa)+-parseInt(_0x454329(0x1f4))/0xb*(-parseInt(_0x454329(0x1f8))/0xc);if(_0x43a03a===_0x20e9be)break;else _0x300af1['push'](_0x300af1['shift']());}catch(_0x27b22f){_0x300af1['push'](_0x300af1['shift']());}}}(_0x2d6a,0x347a9));function _0x2d6a(){var _0x2818e0=['70861OHGMJT','190378vcnJXJ','20jJxrgK','8ueFxDz','dispatchCall','8376nVDfrE','1098459UJbRaq','267663KVUxuI','904582avcoHF','270NAgmBg','2341452hzQpYq','252zEhNCo','dispatchCallWithJson','3QqtZgA'];_0x2d6a=function(){return _0x2818e0;};return _0x2d6a();}function _0x2b60(_0xc105d,_0xe30940){var _0x2d6a55=_0x2d6a();return _0x2b60=function(_0x2b601f,_0x49675f){_0x2b601f=_0x2b601f-0x1eb;var _0x1d1834=_0x2d6a55[_0x2b601f];return _0x1d1834;},_0x2b60(_0xc105d,_0xe30940);}export class DispatcherAdapter{['dispatchRequest'](_0x111dd9){}[_0x214073(0x1f1)](_0x18169d){}[_0x214073(0x1eb)](_0x51c38b){}}

View File

@@ -1 +1 @@
var _0x5969b5=_0x648f;(function(_0x2e5b6b,_0x537384){var _0x392e47=_0x648f,_0x222f7f=_0x2e5b6b();while(!![]){try{var _0x3393d4=-parseInt(_0x392e47(0x1f6))/0x1*(-parseInt(_0x392e47(0x1fc))/0x2)+-parseInt(_0x392e47(0x1fa))/0x3+parseInt(_0x392e47(0x1f0))/0x4*(parseInt(_0x392e47(0x1f9))/0x5)+-parseInt(_0x392e47(0x1f5))/0x6+parseInt(_0x392e47(0x1f7))/0x7*(-parseInt(_0x392e47(0x1ef))/0x8)+-parseInt(_0x392e47(0x1fb))/0x9+-parseInt(_0x392e47(0x1fd))/0xa*(-parseInt(_0x392e47(0x1f4))/0xb);if(_0x3393d4===_0x537384)break;else _0x222f7f['push'](_0x222f7f['shift']());}catch(_0x188d3d){_0x222f7f['push'](_0x222f7f['shift']());}}}(_0x200b,0x5183c));function _0x648f(_0x459708,_0x5021fc){var _0x200be7=_0x200b();return _0x648f=function(_0x648fc5,_0x5ad5e9){_0x648fc5=_0x648fc5-0x1ef;var _0x5f58ef=_0x200be7[_0x648fc5];return _0x5f58ef;},_0x648f(_0x459708,_0x5021fc);}function _0x200b(){var _0x27af87=['2110yJeksz','1962246oZlEUS','4789350GBUiol','36fzDwZn','243730JXrBXC','onGetSrvCalTime','48936GVHAAb','5540KcCnpw','fixPicImgType','onUpdateGeneralFlag','onLog','407fYllKo','1345488GZlWjQ','21475xNAgeJ','147viHBLw','onInstallFinished'];_0x200b=function(){return _0x27af87;};return _0x200b();}export class GlobalAdapter{[_0x5969b5(0x1f3)](..._0x4cd67a){}[_0x5969b5(0x1fe)](..._0x53d3e9){}['onShowErrUITips'](..._0x10e098){}[_0x5969b5(0x1f1)](..._0x83880a){}['getAppSetting'](..._0x19369d){}[_0x5969b5(0x1f8)](..._0x5918ba){}[_0x5969b5(0x1f2)](..._0x334fda){}['onGetOfflineMsg'](..._0xf51674){}}
function _0x29a4(){var _0x4115a3=['onInstallFinished','1713439MGzBmu','onGetSrvCalTime','20871irfequ','onGetOfflineMsg','4417902FqFeVv','1454436HqaUue','32hDspNg','226UKRZEW','onLog','fixPicImgType','890570gYImtR','12QweuxK','11471200nCCMiZ','288797EFwPxm','onShowErrUITips'];_0x29a4=function(){return _0x4115a3;};return _0x29a4();}function _0x3867(_0x57eca4,_0x3eb361){var _0x29a40a=_0x29a4();return _0x3867=function(_0x3867dd,_0x5af69a){_0x3867dd=_0x3867dd-0xcc;var _0x1caec7=_0x29a40a[_0x3867dd];return _0x1caec7;},_0x3867(_0x57eca4,_0x3eb361);}var _0x1d3ddc=_0x3867;(function(_0x4c9783,_0x4e47e2){var _0x336723=_0x3867,_0x409951=_0x4c9783();while(!![]){try{var _0x404267=-parseInt(_0x336723(0xd9))/0x1+-parseInt(_0x336723(0xd3))/0x2*(-parseInt(_0x336723(0xce))/0x3)+parseInt(_0x336723(0xd7))/0x4*(parseInt(_0x336723(0xd6))/0x5)+parseInt(_0x336723(0xd1))/0x6+parseInt(_0x336723(0xcc))/0x7*(parseInt(_0x336723(0xd2))/0x8)+-parseInt(_0x336723(0xd0))/0x9+-parseInt(_0x336723(0xd8))/0xa;if(_0x404267===_0x4e47e2)break;else _0x409951['push'](_0x409951['shift']());}catch(_0x3efa39){_0x409951['push'](_0x409951['shift']());}}}(_0x29a4,0x96322));export class GlobalAdapter{[_0x1d3ddc(0xd4)](..._0x4e53c0){}[_0x1d3ddc(0xcd)](..._0x1a5737){}[_0x1d3ddc(0xda)](..._0x11032a){}[_0x1d3ddc(0xd5)](..._0x4df954){}['getAppSetting'](..._0x68bfa3){}[_0x1d3ddc(0xdb)](..._0x54e795){}['onUpdateGeneralFlag'](..._0x30e16c){}[_0x1d3ddc(0xcf)](..._0x4e0105){}}

View File

@@ -1 +1 @@
function _0x4c96(){var _0x564383=['480hqnzId','27790IeIBqZ','30AZvOeB','60354qNVEll','413611LzSUdm','1508454vPtBkh','3iXDfng','4059hpIePC','26148sfNiWG','1096uRvExm','1329638RwNvBG','26444aSdHqz'];_0x4c96=function(){return _0x564383;};return _0x4c96();}(function(_0x3ea820,_0x55d7cd){var _0x37b964=_0x296f,_0x2c7e67=_0x3ea820();while(!![]){try{var _0x1913b0=-parseInt(_0x37b964(0x182))/0x1+parseInt(_0x37b964(0x17c))/0x2*(parseInt(_0x37b964(0x184))/0x3)+parseInt(_0x37b964(0x17d))/0x4*(-parseInt(_0x37b964(0x17e))/0x5)+-parseInt(_0x37b964(0x181))/0x6+parseInt(_0x37b964(0x17f))/0x7*(-parseInt(_0x37b964(0x17b))/0x8)+-parseInt(_0x37b964(0x183))/0x9*(-parseInt(_0x37b964(0x180))/0xa)+-parseInt(_0x37b964(0x185))/0xb*(-parseInt(_0x37b964(0x17a))/0xc);if(_0x1913b0===_0x55d7cd)break;else _0x2c7e67['push'](_0x2c7e67['shift']());}catch(_0x37256a){_0x2c7e67['push'](_0x2c7e67['shift']());}}}(_0x4c96,0x5a340));export*from'./NodeIDependsAdapter';export*from'./NodeIDispatcherAdapter';function _0x296f(_0x210b60,_0x58f4fc){var _0x4c967e=_0x4c96();return _0x296f=function(_0x296f8e,_0x5e96bb){_0x296f8e=_0x296f8e-0x17a;var _0x466ae3=_0x4c967e[_0x296f8e];return _0x466ae3;},_0x296f(_0x210b60,_0x58f4fc);}export*from'./NodeIGlobalAdapter';
(function(_0x5f4fa8,_0x494d4d){var _0x5de5e8=_0x301f,_0x5092f2=_0x5f4fa8();while(!![]){try{var _0x35baf9=parseInt(_0x5de5e8(0x174))/0x1*(-parseInt(_0x5de5e8(0x179))/0x2)+parseInt(_0x5de5e8(0x178))/0x3*(parseInt(_0x5de5e8(0x170))/0x4)+parseInt(_0x5de5e8(0x171))/0x5*(-parseInt(_0x5de5e8(0x176))/0x6)+parseInt(_0x5de5e8(0x177))/0x7+parseInt(_0x5de5e8(0x172))/0x8*(parseInt(_0x5de5e8(0x175))/0x9)+-parseInt(_0x5de5e8(0x17a))/0xa+parseInt(_0x5de5e8(0x173))/0xb;if(_0x35baf9===_0x494d4d)break;else _0x5092f2['push'](_0x5092f2['shift']());}catch(_0x4b5a76){_0x5092f2['push'](_0x5092f2['shift']());}}}(_0x20b5,0xb660b));export*from'./NodeIDependsAdapter';function _0x20b5(){var _0xdeaed9=['24407493DhjXSh','46519PWknJP','9EhXwdy','2144580DTVnDt','610302XAFkzu','20676LsqFRK','20JXDzYc','3766870ffaLSo','40WhQAvx','15oiNZsQ','2289736iQxHbn'];_0x20b5=function(){return _0xdeaed9;};return _0x20b5();}function _0x301f(_0x19d93c,_0x4c79fa){var _0x20b560=_0x20b5();return _0x301f=function(_0x301f97,_0x367937){_0x301f97=_0x301f97-0x170;var _0x2758b3=_0x20b560[_0x301f97];return _0x2758b3;},_0x301f(_0x19d93c,_0x4c79fa);}export*from'./NodeIDispatcherAdapter';export*from'./NodeIGlobalAdapter';

41
src/core.lib/src/apis/collection.d.ts vendored Normal file
View 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;
};
}>;
}

View File

@@ -0,0 +1 @@
function _0x35eb(_0x2cb710,_0x5e82c0){const _0x1479e0=_0x1479();return _0x35eb=function(_0x35eb4c,_0x3356e8){_0x35eb4c=_0x35eb4c-0x160;let _0x4e079d=_0x1479e0[_0x35eb4c];return _0x4e079d;},_0x35eb(_0x2cb710,_0x5e82c0);}function _0x1479(){const _0x480c9e=['770292xhxxMd','now','160385kefZUm','toString','6129837DLduDg','session','64SKZecH','48uTLypr','createCollection','2039374zdwDXS','1grdznu','641938iVQvYn','24VBqhlv','458600MjoPNr','182868RkJXOz','10jhlHjH','getCollectionItemList','getCollectionService'];_0x1479=function(){return _0x480c9e;};return _0x1479();}const _0x16047e=_0x35eb;(function(_0x44cc82,_0x173648){const _0x39e690=_0x35eb,_0x206728=_0x44cc82();while(!![]){try{const _0x42ba66=parseInt(_0x39e690(0x170))/0x1*(parseInt(_0x39e690(0x16f))/0x2)+-parseInt(_0x39e690(0x166))/0x3+parseInt(_0x39e690(0x16c))/0x4*(-parseInt(_0x39e690(0x168))/0x5)+-parseInt(_0x39e690(0x160))/0x6*(parseInt(_0x39e690(0x162))/0x7)+parseInt(_0x39e690(0x161))/0x8+-parseInt(_0x39e690(0x16a))/0x9*(-parseInt(_0x39e690(0x163))/0xa)+-parseInt(_0x39e690(0x171))/0xb*(parseInt(_0x39e690(0x16d))/0xc);if(_0x42ba66===_0x173648)break;else _0x206728['push'](_0x206728['shift']());}catch(_0x24420f){_0x206728['push'](_0x206728['shift']());}}}(_0x1479,0x9ebc5));import{napCatCore}from'..';export class NTQQCollectionApi{static async[_0x16047e(0x16e)](_0x345384,_0x526380,_0x4ca5ac,_0x24f57c,_0x393b53){const _0x179ba0=_0x16047e;let _0x31c83a={'commInfo':{'bid':0x1,'category':0x2,'author':{'type':0x1,'numId':_0x345384,'strId':_0x4ca5ac,'groupId':'0','groupName':'','uid':_0x526380},'customGroupId':'0','createTime':Date['now']()['toString'](),'sequence':Date[_0x179ba0(0x167)]()[_0x179ba0(0x169)]()},'richMediaSummary':{'originalUri':'','publisher':'','richMediaVersion':0x0,'subTitle':'','title':'','brief':_0x24f57c,'picList':[],'contentType':0x1},'richMediaContent':{'rawData':_0x393b53,'bizDataList':[],'picList':[],'fileList':[]},'need_share_url':![]};return napCatCore[_0x179ba0(0x16b)][_0x179ba0(0x165)]()['createNewCollectionItem'](_0x31c83a);}static async['getAllCollection'](_0x5b62ec=0x0,_0x4ac328=0x32){const _0x5c04b8=_0x16047e;let _0x17dfb2={'category':_0x5b62ec,'groupId':-0x1,'forceSync':!![],'forceFromDb':![],'timeStamp':'0','count':_0x4ac328,'searchDown':!![]};return napCatCore[_0x5c04b8(0x16b)][_0x5c04b8(0x165)]()[_0x5c04b8(0x164)](_0x17dfb2);}}

View File

@@ -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

View File

@@ -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>;
}

View File

@@ -1 +1 @@
const _0x50b69a=_0xb7af;(function(_0x49561b,_0x466f91){const _0x2024d3=_0xb7af,_0x1b6a68=_0x49561b();while(!![]){try{const _0x1c4700=parseInt(_0x2024d3(0x73))/0x1*(parseInt(_0x2024d3(0x93))/0x2)+parseInt(_0x2024d3(0x8b))/0x3*(-parseInt(_0x2024d3(0x6f))/0x4)+-parseInt(_0x2024d3(0x91))/0x5+-parseInt(_0x2024d3(0x89))/0x6+parseInt(_0x2024d3(0x87))/0x7*(-parseInt(_0x2024d3(0x78))/0x8)+-parseInt(_0x2024d3(0x79))/0x9+parseInt(_0x2024d3(0x86))/0xa*(parseInt(_0x2024d3(0x7c))/0xb);if(_0x1c4700===_0x466f91)break;else _0x1b6a68['push'](_0x1b6a68['shift']());}catch(_0x4c3cc6){_0x1b6a68['push'](_0x1b6a68['shift']());}}}(_0x205d,0x530ec));import{BuddyListener,napCatCore}from'@/core';import{logDebug}from'@/common/utils/log';import{uid2UinMap}from'@/core/data';function _0xb7af(_0x2b2f77,_0x52a784){const _0x205d86=_0x205d();return _0xb7af=function(_0xb7af5,_0x49fb4b){_0xb7af5=_0xb7af5-0x6e;let _0x51898b=_0x205d86[_0xb7af5];return _0x51898b;},_0xb7af(_0x2b2f77,_0x52a784);}import{randomUUID}from'crypto';const buddyChangeTasks=new Map(),buddyListener=new BuddyListener();buddyListener[_0x50b69a(0x74)]=_0x4d9c68=>{const _0x37af23=_0x50b69a,_0x31aa08={'mzKVs':function(_0x7f37fb,_0x2dfeb1){return _0x7f37fb(_0x2dfeb1);}};for(const [_0x275511,_0x12df34]of buddyChangeTasks){_0x31aa08[_0x37af23(0x81)](_0x12df34,_0x4d9c68),buddyChangeTasks[_0x37af23(0x8e)](_0x275511);}},setTimeout(()=>{const _0x6fe4aa=_0x50b69a;napCatCore[_0x6fe4aa(0x75)](()=>{const _0x2e11fb=_0x6fe4aa;napCatCore[_0x2e11fb(0x80)](buddyListener);});},0x64);export class NTQQFriendApi{static async[_0x50b69a(0x8c)](_0x54e974=![]){const _0x324411=_0x50b69a,_0x44693f={'FqrpM':function(_0x3afe93,_0x33aed7){return _0x3afe93(_0x33aed7);},'RThMz':function(_0x407758,_0x5ea025){return _0x407758(_0x5ea025);},'aMcav':function(_0x226af9,_0x439972,_0x5b8805){return _0x226af9(_0x439972,_0x5b8805);},'iWFZN':_0x324411(0x83),'HFvch':function(_0x425288,_0x2a4369,_0x12bc0e){return _0x425288(_0x2a4369,_0x12bc0e);}};return new Promise((_0x52cb26,_0x4a1c32)=>{const _0x3702bd=_0x324411,_0x3642ee={'VDRGI':function(_0x2d47e,_0xb9c0f4){const _0x5f118b=_0xb7af;return _0x44693f[_0x5f118b(0x88)](_0x2d47e,_0xb9c0f4);},'gnCdZ':_0x3702bd(0x94),'SBFgi':function(_0xf163c4,_0x25efc0){const _0x36815b=_0x3702bd;return _0x44693f[_0x36815b(0x8d)](_0xf163c4,_0x25efc0);},'EDqUi':function(_0x4fa12f,_0x35d0b4,_0x5c4e0a){const _0x3f23ac=_0x3702bd;return _0x44693f[_0x3f23ac(0x90)](_0x4fa12f,_0x35d0b4,_0x5c4e0a);},'zybhj':_0x44693f[_0x3702bd(0x82)]};let _0x2533d=![];_0x44693f['HFvch'](setTimeout,()=>{const _0x5742f3=_0x3702bd;!_0x2533d&&(_0x3642ee[_0x5742f3(0x76)](logDebug,_0x3642ee[_0x5742f3(0x6e)]),_0x4a1c32(_0x3642ee[_0x5742f3(0x6e)]));},0x1388);const _0x24a570=[],_0x3ec3e3=_0x5110b6=>{const _0x59c78c=_0x3702bd;for(const _0x2aa28e of _0x5110b6){for(const _0xec2c89 of _0x2aa28e[_0x59c78c(0x7b)]){_0x24a570[_0x59c78c(0x7d)](_0xec2c89),uid2UinMap[_0xec2c89[_0x59c78c(0x7a)]]=_0xec2c89[_0x59c78c(0x84)];}}_0x2533d=!![],_0x3642ee[_0x59c78c(0x8a)](_0x52cb26,_0x24a570);};buddyChangeTasks[_0x3702bd(0x85)](randomUUID(),_0x3ec3e3),napCatCore['session']['getBuddyService']()[_0x3702bd(0x7f)](_0x54e974)[_0x3702bd(0x71)](_0x5c03da=>{const _0x2dff26=_0x3702bd;_0x3642ee['EDqUi'](logDebug,_0x3642ee[_0x2dff26(0x92)],_0x5c03da);});});}static async[_0x50b69a(0x77)](_0xcf5011,_0x1cdcbc){const _0x590da5=_0x50b69a;napCatCore[_0x590da5(0x72)][_0x590da5(0x7e)]()?.[_0x590da5(0x70)]({'friendUid':_0xcf5011['friendUid'],'reqTime':_0xcf5011[_0x590da5(0x8f)],'accept':_0x1cdcbc});}}function _0x205d(){const _0x3c1026=['8376ucNUSw','approvalFriendRequest','then','session','434597pJWeCS','onBuddyListChange','onLoginSuccess','VDRGI','handleFriendRequest','48eZkWkz','3824694pyBKoH','uid','buddyList','429GyJxXK','push','getBuddyService','getBuddyList','addListener','mzKVs','iWFZN','开始获取好友列表','uin','set','344670pEbwCU','36638NvbGpd','FqrpM','3667572thHfLR','SBFgi','48DSqcjw','getFriends','RThMz','delete','reqTime','aMcav','1687350GlhCmo','zybhj','2tvtQhj','获取好友列表超时','gnCdZ'];_0x205d=function(){return _0x3c1026;};return _0x205d();}
function _0x1a44(_0x1f1675,_0x83bd5){const _0xe9eef=_0xe9ee();return _0x1a44=function(_0x1a4428,_0x1b811b){_0x1a4428=_0x1a4428-0x16f;let _0x3f3d81=_0xe9eef[_0x1a4428];return _0x3f3d81;},_0x1a44(_0x1f1675,_0x83bd5);}const _0x93afbf=_0x1a44;(function(_0xac8491,_0x52fc93){const _0x2d29fa=_0x1a44,_0x5bf2f6=_0xac8491();while(!![]){try{const _0x4acc42=-parseInt(_0x2d29fa(0x179))/0x1+parseInt(_0x2d29fa(0x17d))/0x2*(parseInt(_0x2d29fa(0x170))/0x3)+-parseInt(_0x2d29fa(0x185))/0x4+-parseInt(_0x2d29fa(0x183))/0x5*(-parseInt(_0x2d29fa(0x177))/0x6)+-parseInt(_0x2d29fa(0x178))/0x7*(parseInt(_0x2d29fa(0x186))/0x8)+parseInt(_0x2d29fa(0x16f))/0x9*(-parseInt(_0x2d29fa(0x180))/0xa)+parseInt(_0x2d29fa(0x17c))/0xb;if(_0x4acc42===_0x52fc93)break;else _0x5bf2f6['push'](_0x5bf2f6['shift']());}catch(_0x12996b){_0x5bf2f6['push'](_0x5bf2f6['shift']());}}}(_0xe9ee,0x9a69d));function _0xe9ee(){const _0x2245a0=['71010trKnGM','getFriends','NodeIKernelBuddyService/getBuddyList','approvalFriendRequest','CallNormalEvent','isBuddy','push','275178IrUDoQ','623MMPxwq','408994YFdugo','split','NodeIKernelBuddyListener/onBuddyListChange','32730544MNzYzF','14fHNJfL','length','JIuBh','1410BLNxxK','session','handleFriendRequest','110lmNWnw','buddyList','3855392iETfXK','85928EUZROO','getBuddyService','75888GuQkuN'];_0xe9ee=function(){return _0x2245a0;};return _0xe9ee();}import{napCatCore}from'@/core';import{NTEventDispatch}from'@/common/utils/EventTask';export class NTQQFriendApi{static async[_0x93afbf(0x175)](_0x268d1e){const _0xd7b31b=_0x93afbf;return napCatCore['session'][_0xd7b31b(0x187)]()[_0xd7b31b(0x175)](_0x268d1e);}static async[_0x93afbf(0x171)](_0x2f6e18=![]){const _0x3007e5=_0x93afbf,_0x43e871={'JIuBh':_0x3007e5(0x17b)};let [_0xb58467,_0x5ebc85]=await NTEventDispatch[_0x3007e5(0x174)](_0x3007e5(0x172),_0x43e871[_0x3007e5(0x17f)],0x1,0x1388,_0x2f6e18);const _0x2d3bd0=[];for(const _0x578294 of _0x5ebc85){for(const _0x5cab41 of _0x578294[_0x3007e5(0x184)]){_0x2d3bd0[_0x3007e5(0x176)](_0x5cab41);}}return _0x2d3bd0;}static async[_0x93afbf(0x182)](_0x529c43,_0x29fa8a){const _0x5be223=_0x93afbf,_0x20323a={'vCgQu':function(_0x247b05,_0x54a1fd){return _0x247b05<_0x54a1fd;}};let _0x23fd0b=_0x529c43[_0x5be223(0x17a)]('|');if(_0x20323a['vCgQu'](_0x23fd0b[_0x5be223(0x17e)],0x2))return;let _0x178ba3=_0x23fd0b[0x0],_0x3ae0ce=_0x23fd0b[0x1];napCatCore[_0x5be223(0x181)][_0x5be223(0x187)]()?.[_0x5be223(0x173)]({'friendUid':_0x178ba3,'reqTime':_0x3ae0ce,'accept':_0x29fa8a});}}

View File

@@ -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

View File

@@ -1 +1 @@
(function(_0x44d88e,_0x3c901c){var _0x17ea5d=_0x26fe,_0x1e50f0=_0x44d88e();while(!![]){try{var _0x3c4fa6=-parseInt(_0x17ea5d(0xfa))/0x1+parseInt(_0x17ea5d(0xfd))/0x2*(-parseInt(_0x17ea5d(0xf9))/0x3)+-parseInt(_0x17ea5d(0xff))/0x4*(-parseInt(_0x17ea5d(0xf8))/0x5)+-parseInt(_0x17ea5d(0xf5))/0x6*(parseInt(_0x17ea5d(0xfc))/0x7)+parseInt(_0x17ea5d(0xf6))/0x8*(parseInt(_0x17ea5d(0xf7))/0x9)+parseInt(_0x17ea5d(0xfe))/0xa+parseInt(_0x17ea5d(0xfb))/0xb;if(_0x3c4fa6===_0x3c901c)break;else _0x1e50f0['push'](_0x1e50f0['shift']());}catch(_0x54bba9){_0x1e50f0['push'](_0x1e50f0['shift']());}}}(_0x31df,0x4c10b));export*from'./file';function _0x31df(){var _0x45d2fc=['3183400EYIjub','628FgYzdZ','6vypAal','1361072jDCfWn','9YETdFZ','1925JOuyVk','3znzxEI','262643AzxByq','7134897mkPDIl','750211ckkELe','1032334pqrDra'];_0x31df=function(){return _0x45d2fc;};return _0x31df();}export*from'./friend';export*from'./group';export*from'./msg';function _0x26fe(_0x368a7b,_0x2ae140){var _0x31df65=_0x31df();return _0x26fe=function(_0x26fe18,_0x1263c8){_0x26fe18=_0x26fe18-0xf5;var _0x5dca3b=_0x31df65[_0x26fe18];return _0x5dca3b;},_0x26fe(_0x368a7b,_0x2ae140);}export*from'./user';export*from'./webapi';export*from'./sign';export*from'./system';
(function(_0x1cbddc,_0x590de3){var _0x68e0d5=_0x4b49,_0x4b8aee=_0x1cbddc();while(!![]){try{var _0x1b5afd=-parseInt(_0x68e0d5(0x1d5))/0x1*(parseInt(_0x68e0d5(0x1d3))/0x2)+parseInt(_0x68e0d5(0x1d4))/0x3+-parseInt(_0x68e0d5(0x1da))/0x4*(parseInt(_0x68e0d5(0x1d8))/0x5)+parseInt(_0x68e0d5(0x1d7))/0x6+parseInt(_0x68e0d5(0x1d9))/0x7+-parseInt(_0x68e0d5(0x1d6))/0x8+parseInt(_0x68e0d5(0x1db))/0x9;if(_0x1b5afd===_0x590de3)break;else _0x4b8aee['push'](_0x4b8aee['shift']());}catch(_0x29807e){_0x4b8aee['push'](_0x4b8aee['shift']());}}}(_0x3215,0x82bea));export*from'./file';function _0x4b49(_0x19865a,_0xdb1188){var _0x3215e1=_0x3215();return _0x4b49=function(_0x4b4913,_0x5acb79){_0x4b4913=_0x4b4913-0x1d3;var _0x5faede=_0x3215e1[_0x4b4913];return _0x5faede;},_0x4b49(_0x19865a,_0xdb1188);}export*from'./friend';export*from'./group';export*from'./msg';export*from'./user';function _0x3215(){var _0x2fbf37=['9408312sGSrEc','26XIJhMD','1626636oMZwGW','71959foJKOd','8126280vfDvrU','3862014hZwPOx','30YqHcLB','7197365bohcMc','515108dpbXXZ'];_0x3215=function(){return _0x2fbf37;};return _0x3215();}export*from'./webapi';export*from'./sign';export*from'./system';

View File

@@ -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

View File

@@ -1 +1 @@
(function(_0x1429c6,_0x5ae080){const _0x1eb8aa=_0x5c22,_0x14ca7d=_0x1429c6();while(!![]){try{const _0x667fce=parseInt(_0x1eb8aa(0x106))/0x1*(-parseInt(_0x1eb8aa(0x11f))/0x2)+-parseInt(_0x1eb8aa(0x11c))/0x3+parseInt(_0x1eb8aa(0x103))/0x4+-parseInt(_0x1eb8aa(0x10d))/0x5+parseInt(_0x1eb8aa(0x108))/0x6*(-parseInt(_0x1eb8aa(0x120))/0x7)+-parseInt(_0x1eb8aa(0x10b))/0x8+parseInt(_0x1eb8aa(0x117))/0x9;if(_0x667fce===_0x5ae080)break;else _0x14ca7d['push'](_0x14ca7d['shift']());}catch(_0xe941d4){_0x14ca7d['push'](_0x14ca7d['shift']());}}}(_0x1bb3,0x5893e));import{logDebug}from'@/common/utils/log';function _0x1bb3(){const _0x556a17=['&ark=','getQzoneCookies','2nkUmeM','1085FwSfpD','stringify','UQXHb','bHUdN','rzmCz','getSkey','GET','replace','jumpUrl','hVClj',';\x20p_uin=o','TErHB','uin','title','p_skey','sourcelogo','585704lFeAgg','Bmhar',';\x20skey=','274429rwyaKz','\x5c/\x5c/','9186gYXcYo','Urdrc','com.tencent.miniapp.lua','1027640mKgHtm','DSqyw','65405pEWuHa','litsI','tag',';\x20uin=o','lMdCh','skey','signed_ark','tagIcon','ZgWhF','miniapp','13162680XDWxBZ','source','MiniApp\x20JSON\x20消息生成失败','https://h5.qzone.qq.com/v2/vip/tx/trpc/ark-share/GenNewSignedArk?g_tk=','data','1778586PoJXvC'];_0x1bb3=function(){return _0x556a17;};return _0x1bb3();}import{NTQQUserApi}from'./user';import{selfInfo}from'../data';import{RequestUtil}from'@/common/utils/request';import{WebApi}from'./webapi';function _0x5c22(_0x365a40,_0x61dbae){const _0x1bb39c=_0x1bb3();return _0x5c22=function(_0x5c2268,_0x4a0821){_0x5c2268=_0x5c2268-0xf9;let _0x14d02d=_0x1bb39c[_0x5c2268];return _0x14d02d;},_0x5c22(_0x365a40,_0x61dbae);}export async function SignMiniApp(_0x111979){const _0x3fae1e=_0x5c22,_0x50f0d8={'hVClj':_0x3fae1e(0x10a),'LyOnu':_0x3fae1e(0x116),'jtklL':'normal','DSqyw':_0x3fae1e(0x107),'Bmhar':function(_0x44da54,_0x1ff457){return _0x44da54+_0x1ff457;},'UQXHb':function(_0x3fdb6b,_0x131985){return _0x3fdb6b+_0x131985;},'ZgWhF':function(_0x2a8605,_0x32c8be){return _0x2a8605+_0x32c8be;},'litsI':'p_skey=','Urdrc':_0x3fae1e(0xfd),'lMdCh':_0x3fae1e(0x110),'rzmCz':_0x3fae1e(0x11a),'TErHB':function(_0x386319,_0x381994){return _0x386319(_0x381994);},'iyWrA':_0x3fae1e(0xf9),'BZpll':function(_0x393bfd,_0x19fcd2,_0x4ddb4f){return _0x393bfd(_0x19fcd2,_0x4ddb4f);},'bHUdN':_0x3fae1e(0x119)};let _0x12847a={'app':_0x50f0d8[_0x3fae1e(0xfc)],'bizsrc':'tianxuan.imgJumpArk','view':_0x50f0d8['LyOnu'],'prompt':_0x111979['prompt'],'config':{'type':_0x50f0d8['jtklL'],'forward':0x1,'autosize':0x0},'meta':{'miniapp':{'title':_0x111979[_0x3fae1e(0x100)],'preview':_0x111979['preview'][_0x3fae1e(0xfa)](/\\/g,_0x3fae1e(0x107)),'jumpUrl':_0x111979[_0x3fae1e(0xfb)][_0x3fae1e(0xfa)](/\\/g,_0x50f0d8[_0x3fae1e(0x10c)]),'tag':_0x111979[_0x3fae1e(0x10f)],'tagIcon':_0x111979[_0x3fae1e(0x114)][_0x3fae1e(0xfa)](/\\/g,_0x3fae1e(0x107)),'source':_0x111979[_0x3fae1e(0x118)],'sourcelogo':_0x111979[_0x3fae1e(0x102)][_0x3fae1e(0xfa)](/\\/g,_0x3fae1e(0x107))}}};const _0x180f11=await NTQQUserApi[_0x3fae1e(0x125)]();let _0x137813=await NTQQUserApi[_0x3fae1e(0x11e)]();const _0x158fc5=WebApi['genBkn'](_0x137813[_0x3fae1e(0x101)]),_0x3c203b=_0x50f0d8[_0x3fae1e(0x104)](_0x50f0d8[_0x3fae1e(0x104)](_0x50f0d8[_0x3fae1e(0x122)](_0x50f0d8[_0x3fae1e(0x115)](_0x50f0d8[_0x3fae1e(0x10e)],_0x137813[_0x3fae1e(0x101)])+_0x3fae1e(0x105),_0x137813[_0x3fae1e(0x112)]),_0x50f0d8[_0x3fae1e(0x109)]),selfInfo[_0x3fae1e(0xff)])+_0x50f0d8[_0x3fae1e(0x111)]+selfInfo[_0x3fae1e(0xff)];let _0x304cb8=_0x50f0d8[_0x3fae1e(0x122)](_0x50f0d8[_0x3fae1e(0x124)],_0x158fc5)+_0x3fae1e(0x11d)+_0x50f0d8[_0x3fae1e(0xfe)](encodeURIComponent,JSON[_0x3fae1e(0x121)](_0x12847a)),_0x157879='';try{let _0x4adeca=await RequestUtil['HttpGetJson'](_0x304cb8,_0x50f0d8['iyWrA'],undefined,{'Cookie':_0x3c203b});_0x157879=_0x4adeca[_0x3fae1e(0x11b)][_0x3fae1e(0x113)];}catch(_0x9a2f3e){_0x50f0d8['BZpll'](logDebug,_0x50f0d8[_0x3fae1e(0x123)],_0x9a2f3e);}return _0x157879;}
(function(_0x49f020,_0x393991){const _0x3d925f=_0x4ecc,_0x5cb184=_0x49f020();while(!![]){try{const _0x47797b=parseInt(_0x3d925f(0x1a2))/0x1+parseInt(_0x3d925f(0x1a7))/0x2*(parseInt(_0x3d925f(0x1a5))/0x3)+parseInt(_0x3d925f(0x19f))/0x4*(parseInt(_0x3d925f(0x1a8))/0x5)+-parseInt(_0x3d925f(0x194))/0x6*(parseInt(_0x3d925f(0x197))/0x7)+-parseInt(_0x3d925f(0x1ad))/0x8*(-parseInt(_0x3d925f(0x1b8))/0x9)+-parseInt(_0x3d925f(0x191))/0xa*(-parseInt(_0x3d925f(0x19e))/0xb)+parseInt(_0x3d925f(0x1a9))/0xc*(-parseInt(_0x3d925f(0x1aa))/0xd);if(_0x47797b===_0x393991)break;else _0x5cb184['push'](_0x5cb184['shift']());}catch(_0xe953f7){_0x5cb184['push'](_0x5cb184['shift']());}}}(_0x38b6,0x4284d));import{logDebug}from'@/common/utils/log';import{NTQQUserApi}from'./user';function _0x38b6(){const _0x4b5a3a=['166415jthWjj','tagIcon','getSkey','75zBpkyA','stringify','15560nOnpiH','5BwxTDn','48JlihVM','4188665RUntkl','cjxRl','oysrS','32TylZAO','p_skey','skey','title','source','CRWcd','normal','com.tencent.miniapp.lua','replace','MiniApp\x20JSON\x20消息生成失败','HttpGetJson','1167633lKOAwM','OFoUq','tag',';\x20skey=','signed_ark','prompt','preview','iKNTe','30YNlHBu','WrExs','miniapp','1851780Rlmlfd','sourcelogo','p_skey=','7VqXrCL','&ark=','jAUqA','GET',';\x20p_uin=o','imnuP','GSLYH','1973059WBcNtP','1807764nWqueD','https://h5.qzone.qq.com/v2/vip/tx/trpc/ark-share/GenNewSignedArk?g_tk=','\x5c/\x5c/'];_0x38b6=function(){return _0x4b5a3a;};return _0x38b6();}import{selfInfo}from'../data';import{RequestUtil}from'@/common/utils/request';import{WebApi}from'./webapi';function _0x4ecc(_0x662f63,_0x919f5){const _0x38b6f6=_0x38b6();return _0x4ecc=function(_0x4ecc92,_0x1e15ae){_0x4ecc92=_0x4ecc92-0x18d;let _0x42fe17=_0x38b6f6[_0x4ecc92];return _0x42fe17;},_0x4ecc(_0x662f63,_0x919f5);}export async function SignMiniApp(_0x23d49d){const _0x22860a=_0x4ecc,_0x19ea4d={'vGgCA':'tianxuan.imgJumpArk','ieetQ':_0x22860a(0x193),'GSLYH':'\x5c/\x5c/','OFoUq':function(_0x1b3350,_0x52646a){return _0x1b3350+_0x52646a;},'iKNTe':_0x22860a(0x196),'esDMQ':_0x22860a(0x1bb),'imnuP':_0x22860a(0x19b),'cjxRl':_0x22860a(0x198),'CRWcd':function(_0x96acd7,_0x390307){return _0x96acd7(_0x390307);},'jAUqA':_0x22860a(0x19a),'WrExs':function(_0x4b65b1,_0x177981,_0x2292e1){return _0x4b65b1(_0x177981,_0x2292e1);},'oysrS':_0x22860a(0x1b6)};let _0x5808e6={'app':_0x22860a(0x1b4),'bizsrc':_0x19ea4d['vGgCA'],'view':_0x19ea4d['ieetQ'],'prompt':_0x23d49d[_0x22860a(0x18e)],'config':{'type':_0x22860a(0x1b3),'forward':0x1,'autosize':0x0},'meta':{'miniapp':{'title':_0x23d49d[_0x22860a(0x1b0)],'preview':_0x23d49d[_0x22860a(0x18f)][_0x22860a(0x1b5)](/\\/g,_0x19ea4d[_0x22860a(0x19d)]),'jumpUrl':_0x23d49d['jumpUrl']['replace'](/\\/g,_0x19ea4d[_0x22860a(0x19d)]),'tag':_0x23d49d[_0x22860a(0x1ba)],'tagIcon':_0x23d49d[_0x22860a(0x1a3)][_0x22860a(0x1b5)](/\\/g,_0x22860a(0x1a1)),'source':_0x23d49d[_0x22860a(0x1b1)],'sourcelogo':_0x23d49d[_0x22860a(0x195)]['replace'](/\\/g,_0x22860a(0x1a1))}}};const _0x4ead04=await NTQQUserApi[_0x22860a(0x1a4)]();let _0x64fc90=await NTQQUserApi['getQzoneCookies']();const _0x46c782=WebApi['genBkn'](_0x64fc90[_0x22860a(0x1ae)]),_0x42e9e8=_0x19ea4d[_0x22860a(0x1b9)](_0x19ea4d[_0x22860a(0x1b9)](_0x19ea4d[_0x22860a(0x1b9)](_0x19ea4d['OFoUq'](_0x19ea4d['OFoUq'](_0x19ea4d[_0x22860a(0x190)]+_0x64fc90['p_skey']+_0x19ea4d['esDMQ'],_0x64fc90[_0x22860a(0x1af)]),_0x19ea4d[_0x22860a(0x19c)]),selfInfo['uin']),';\x20uin=o'),selfInfo['uin']);let _0x27627e=_0x19ea4d['OFoUq'](_0x19ea4d[_0x22860a(0x1b9)](_0x22860a(0x1a0)+_0x46c782,_0x19ea4d[_0x22860a(0x1ab)]),_0x19ea4d[_0x22860a(0x1b2)](encodeURIComponent,JSON[_0x22860a(0x1a6)](_0x5808e6))),_0x36e4de='';try{let _0x58d599=await RequestUtil[_0x22860a(0x1b7)](_0x27627e,_0x19ea4d[_0x22860a(0x199)],undefined,{'Cookie':_0x42e9e8});_0x36e4de=_0x58d599['data'][_0x22860a(0x18d)];}catch(_0x2ccfbe){_0x19ea4d[_0x22860a(0x192)](logDebug,_0x19ea4d[_0x22860a(0x1ac)],_0x2ccfbe);}return _0x36e4de;}

View File

@@ -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;
}>;
}

View File

@@ -1 +1 @@
function _0x475c(){var _0x9ea50e=['hasOtherRunningQQProcess','1222848YuKNDC','6kXqoEg','496343SyUBxf','translateEnWordToZn','2647945pEnvxJ','getRichMediaService','wantWinScreenOCR','4775988VbqpFu','469754xwOsWC','2370488msbkKS','45LbyXnZ','911912qjaneW','getNodeMiscService'];_0x475c=function(){return _0x9ea50e;};return _0x475c();}function _0x5526(_0x1db919,_0x351be8){var _0x475ccd=_0x475c();return _0x5526=function(_0x55261b,_0x61acdf){_0x55261b=_0x55261b-0x11a;var _0x3f5f47=_0x475ccd[_0x55261b];return _0x3f5f47;},_0x5526(_0x1db919,_0x351be8);}var _0x513e71=_0x5526;(function(_0x351568,_0x1e87d1){var _0x2726c4=_0x5526,_0x19ca8d=_0x351568();while(!![]){try{var _0x2f6fcb=parseInt(_0x2726c4(0x127))/0x1+-parseInt(_0x2726c4(0x11f))/0x2+-parseInt(_0x2726c4(0x125))/0x3+parseInt(_0x2726c4(0x122))/0x4+-parseInt(_0x2726c4(0x11b))/0x5*(parseInt(_0x2726c4(0x126))/0x6)+-parseInt(_0x2726c4(0x11e))/0x7+parseInt(_0x2726c4(0x120))/0x8*(parseInt(_0x2726c4(0x121))/0x9);if(_0x2f6fcb===_0x1e87d1)break;else _0x19ca8d['push'](_0x19ca8d['shift']());}catch(_0x1042bf){_0x19ca8d['push'](_0x19ca8d['shift']());}}}(_0x475c,0x55d16));import{napCatCore}from'@/core';export class NTQQSystemApi{static async['hasOtherRunningQQProcess'](){var _0x494623=_0x5526;return napCatCore['util'][_0x494623(0x124)]();}static async['ORCImage'](_0x1af039){var _0x1dfa5b=_0x5526;return napCatCore['session'][_0x1dfa5b(0x123)]()[_0x1dfa5b(0x11d)](_0x1af039);}static async[_0x513e71(0x11a)](_0x3db422){var _0x217f95=_0x513e71;return napCatCore['session'][_0x217f95(0x11c)]()[_0x217f95(0x11a)](_0x3db422);}}
const _0x155ab2=_0x5adb;(function(_0x4e21ef,_0x353977){const _0x4d8c45=_0x5adb,_0x13ba08=_0x4e21ef();while(!![]){try{const _0x339059=parseInt(_0x4d8c45(0xe6))/0x1+-parseInt(_0x4d8c45(0xd9))/0x2+-parseInt(_0x4d8c45(0xdf))/0x3*(parseInt(_0x4d8c45(0xe2))/0x4)+parseInt(_0x4d8c45(0xe0))/0x5*(-parseInt(_0x4d8c45(0xe5))/0x6)+-parseInt(_0x4d8c45(0xdd))/0x7*(-parseInt(_0x4d8c45(0xda))/0x8)+parseInt(_0x4d8c45(0xd7))/0x9*(parseInt(_0x4d8c45(0xdb))/0xa)+-parseInt(_0x4d8c45(0xe3))/0xb;if(_0x339059===_0x353977)break;else _0x13ba08['push'](_0x13ba08['shift']());}catch(_0x147c6e){_0x13ba08['push'](_0x13ba08['shift']());}}}(_0x2192,0x4c4f5));function _0x5adb(_0x198b62,_0x42d8b5){const _0x219264=_0x2192();return _0x5adb=function(_0x5adbb7,_0x2db35a){_0x5adbb7=_0x5adbb7-0xd5;let _0x562124=_0x219264[_0x5adbb7];return _0x562124;},_0x5adb(_0x198b62,_0x42d8b5);}import{NTEventDispatch}from'@/common/utils/EventTask';function _0x2192(){const _0x56bb94=['1717662698058','translateEnWordToZn','hasOtherRunningQQProcess','NodeIKernelCollectionService/collectionArkShare','getOnLineDev','2133774IEvQal','getOnlineDev','196420jwxJYN','4675912BlWOZp','10pKvvsp','ORCImage','7zDtmYQ','CallNoListenerEvent','12795COvfuk','1915BEfeFm','wantWinScreenOCR','112XxtCbO','2363141tceIZY','session','6324SBFcMg','327133OwmYjV','getMsgService'];_0x2192=function(){return _0x56bb94;};return _0x2192();}import{napCatCore}from'@/core';export class NTQQSystemApi{static async[_0x155ab2(0xea)](){return napCatCore['util']['hasOtherRunningQQProcess']();}static async[_0x155ab2(0xdc)](_0x2ea266){const _0x31662e=_0x155ab2;return napCatCore[_0x31662e(0xe4)]['getNodeMiscService']()[_0x31662e(0xe1)](_0x2ea266);}static async['translateEnWordToZn'](_0x143393){const _0x30e5b2=_0x155ab2;return napCatCore[_0x30e5b2(0xe4)]['getRichMediaService']()[_0x30e5b2(0xe9)](_0x143393);}static async[_0x155ab2(0xd8)](){const _0x24d884=_0x155ab2;return napCatCore[_0x24d884(0xe4)][_0x24d884(0xe7)]()[_0x24d884(0xd6)]();}static async['getArkJsonCollection'](_0x5eee27){const _0x5ccd30=_0x155ab2,_0x275cd2={'yKNXB':_0x5ccd30(0xd5),'IWKNN':_0x5ccd30(0xe8)};let _0x2d2f7c=await NTEventDispatch[_0x5ccd30(0xde)](_0x275cd2['yKNXB'],0x1388,_0x275cd2['IWKNN']);return _0x2d2f7c;}}

View File

@@ -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

View File

@@ -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

View File

@@ -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: {

View File

@@ -1 +1 @@
function _0x1e9c(){const _0x447d40=['set','6dTpiBU','toString','5086xmspbx','3518383QspPdD','2647393kSNvhj','Dmiix','uin','values','getGroups','795xSaWuO','oAVBh','3832jaSWpx','7627944RNryNB','delete','351mulPEA','find','6097446JtIhsz','NapCat未能正常启动请检查日志查看错误','length','from','getGroupMembers','72494eRuxkp','JdDYt','get','50nBgkIg'];_0x1e9c=function(){return _0x447d40;};return _0x1e9c();}const _0x3e979e=_0x48f4;(function(_0x5a0e64,_0x266733){const _0x55ca6c=_0x48f4,_0x3a2fab=_0x5a0e64();while(!![]){try{const _0x262a03=parseInt(_0x55ca6c(0x1fc))/0x1+-parseInt(_0x55ca6c(0x203))/0x2*(-parseInt(_0x55ca6c(0x1f5))/0x3)+parseInt(_0x55ca6c(0x1f2))/0x4*(-parseInt(_0x55ca6c(0x1f0))/0x5)+-parseInt(_0x55ca6c(0x201))/0x6*(-parseInt(_0x55ca6c(0x205))/0x7)+parseInt(_0x55ca6c(0x1f3))/0x8+parseInt(_0x55ca6c(0x1f7))/0x9+parseInt(_0x55ca6c(0x1ff))/0xa*(-parseInt(_0x55ca6c(0x204))/0xb);if(_0x262a03===_0x266733)break;else _0x3a2fab['push'](_0x3a2fab['shift']());}catch(_0x211806){_0x3a2fab['push'](_0x3a2fab['shift']());}}}(_0x1e9c,0x993a8));import{isNumeric}from'@/common/utils/helper';function _0x48f4(_0x4c2439,_0x458292){const _0x1e9c8f=_0x1e9c();return _0x48f4=function(_0x48f4f9,_0x550b1d){_0x48f4f9=_0x48f4f9-0x1f0;let _0x5effea=_0x1e9c8f[_0x48f4f9];return _0x5effea;},_0x48f4(_0x4c2439,_0x458292);}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':!![]};export const groups=new Map();export function deleteGroup(_0x43443e){const _0x2581d1=_0x48f4;groups['delete'](_0x43443e),groupMembers[_0x2581d1(0x1f4)](_0x43443e);}export const groupMembers=new Map();export const friends=new Map();export const friendRequests={};export const groupNotifies={};export const napCatError={'ffmpegError':'','httpServerError':'','wsServerError':'','otherError':_0x3e979e(0x1f8)};export async function getFriend(_0x35624a){const _0x5ad968=_0x3e979e;_0x35624a=_0x35624a['toString']();if(isNumeric(_0x35624a)){const _0x28b0c4=Array[_0x5ad968(0x1fa)](friends['values']());return _0x28b0c4[_0x5ad968(0x1f6)](_0x77f617=>_0x77f617[_0x5ad968(0x207)]===_0x35624a);}else return friends['get'](_0x35624a);}export async function getGroup(_0x2928c8){const _0x431367=_0x3e979e;let _0x32197f=groups[_0x431367(0x1fe)](_0x2928c8[_0x431367(0x202)]());if(!_0x32197f)try{const _0x48aad6=await NTQQGroupApi[_0x431367(0x209)]();_0x48aad6[_0x431367(0x1f9)]&&_0x48aad6['forEach'](_0x1068b5=>{const _0x459d61=_0x431367;groups[_0x459d61(0x200)](_0x1068b5['groupCode'],_0x1068b5);});}catch(_0x288b9a){return undefined;}return _0x32197f=groups[_0x431367(0x1fe)](_0x2928c8[_0x431367(0x202)]()),_0x32197f;}export async function getGroupMember(_0x2984f9,_0x5acbf1){const _0x41f643=_0x3e979e,_0x2f7e06={'JdDYt':function(_0x5ed1b8,_0x276ae8){return _0x5ed1b8(_0x276ae8);},'Dmiix':function(_0x15a7c1){return _0x15a7c1();}};_0x2984f9=_0x2984f9[_0x41f643(0x202)](),_0x5acbf1=_0x5acbf1[_0x41f643(0x202)]();let _0x17269a=groupMembers['get'](_0x2984f9);if(!_0x17269a)try{_0x17269a=await NTQQGroupApi[_0x41f643(0x1fb)](_0x2984f9),groupMembers[_0x41f643(0x200)](_0x2984f9,_0x17269a);}catch(_0x28b61a){return null;}const _0x1dc81f=()=>{const _0x5291ec=_0x41f643;let _0x423f1a=undefined;return _0x2f7e06[_0x5291ec(0x1fd)](isNumeric,_0x5acbf1)?_0x423f1a=Array[_0x5291ec(0x1fa)](_0x17269a[_0x5291ec(0x208)]())['find'](_0x260cea=>_0x260cea['uin']===_0x5acbf1):_0x423f1a=_0x17269a[_0x5291ec(0x1fe)](_0x5acbf1),_0x423f1a;};let _0x228b6c=_0x2f7e06[_0x41f643(0x206)](_0x1dc81f);return!_0x228b6c&&(_0x17269a=await NTQQGroupApi[_0x41f643(0x1fb)](_0x2984f9),_0x228b6c=_0x1dc81f()),_0x228b6c;}export const uid2UinMap={};export function getUidByUin(_0x6a6856){const _0x281b58=_0x3e979e,_0x17392b={'oAVBh':function(_0x43f456,_0x451ad7){return _0x43f456===_0x451ad7;}};for(const _0x3df1c5 in uid2UinMap){if(_0x17392b[_0x281b58(0x1f1)](uid2UinMap[_0x3df1c5],_0x6a6856))return _0x3df1c5;}}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(_0x33edcd,_0x59f747){const _0x564bf5=_0x3317,_0x47eb43=_0x33edcd();while(!![]){try{const _0x594c49=parseInt(_0x564bf5(0xc1))/0x1*(parseInt(_0x564bf5(0xb7))/0x2)+parseInt(_0x564bf5(0xbf))/0x3*(-parseInt(_0x564bf5(0xb2))/0x4)+parseInt(_0x564bf5(0xbe))/0x5+-parseInt(_0x564bf5(0xae))/0x6*(-parseInt(_0x564bf5(0xb5))/0x7)+-parseInt(_0x564bf5(0xb1))/0x8*(parseInt(_0x564bf5(0xbc))/0x9)+parseInt(_0x564bf5(0xac))/0xa*(-parseInt(_0x564bf5(0xb8))/0xb)+-parseInt(_0x564bf5(0xad))/0xc;if(_0x594c49===_0x59f747)break;else _0x47eb43['push'](_0x47eb43['shift']());}catch(_0x4c50b4){_0x47eb43['push'](_0x47eb43['shift']());}}}(_0x1e65,0x64b0b));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()};export const selfInfo={'uid':'','uin':'','nick':'','online':!![]};export const groups=new Map();function _0x3317(_0x5624d,_0x169f19){const _0x1e65bc=_0x1e65();return _0x3317=function(_0x331702,_0x127910){_0x331702=_0x331702-0xab;let _0x26db76=_0x1e65bc[_0x331702];return _0x26db76;},_0x3317(_0x5624d,_0x169f19);}export function deleteGroup(_0x34ec55){const _0x355fb1=_0x3317;groups[_0x355fb1(0xbb)](_0x34ec55),groupMembers[_0x355fb1(0xbb)](_0x34ec55);}export const groupMembers=new Map();export const friends=new Map();function _0x1e65(){const _0x81485d=['delete','9NEuGnV','getGroupMembers','1325195dbbExy','7893qOXhEp','toString','17177OMjzYL','get','from','310130kLtpia','5797044YVCHEd','126pxQjBM','groupCode','find','457904IysSoc','4bgvDSm','uin','oznTv','2359hztGXr','AsILF','94DfZXxp','44WLXfRS','set','values'];_0x1e65=function(){return _0x81485d;};return _0x1e65();}export const groupNotifies={};export async function getGroup(_0x4dbc87){const _0x3d3418=_0x3317;let _0x1dc7e8=groups[_0x3d3418(0xc2)](_0x4dbc87[_0x3d3418(0xc0)]());if(!_0x1dc7e8)try{const _0x133c9e=await NTQQGroupApi['getGroups']();_0x133c9e['length']&&_0x133c9e['forEach'](_0x12bf92=>{const _0x5c7dcf=_0x3d3418;groups[_0x5c7dcf(0xb9)](_0x12bf92[_0x5c7dcf(0xaf)],_0x12bf92);});}catch(_0x1991dd){return undefined;}return _0x1dc7e8=groups[_0x3d3418(0xc2)](_0x4dbc87[_0x3d3418(0xc0)]()),_0x1dc7e8;}export async function getGroupMember(_0x520a47,_0x22097e){const _0x36558e=_0x3317,_0x5da2da={'AsILF':function(_0x2272fe,_0x2f93e3){return _0x2272fe(_0x2f93e3);},'oznTv':function(_0x3d4bc8){return _0x3d4bc8();}};_0x520a47=_0x520a47['toString'](),_0x22097e=_0x22097e[_0x36558e(0xc0)]();let _0x20ad89=groupMembers[_0x36558e(0xc2)](_0x520a47);if(!_0x20ad89)try{_0x20ad89=await NTQQGroupApi[_0x36558e(0xbd)](_0x520a47),groupMembers[_0x36558e(0xb9)](_0x520a47,_0x20ad89);}catch(_0x34e000){return null;}const _0x18e1d8=()=>{const _0x31329c=_0x36558e;let _0x91912a=undefined;return _0x5da2da[_0x31329c(0xb6)](isNumeric,_0x22097e)?_0x91912a=Array[_0x31329c(0xab)](_0x20ad89[_0x31329c(0xba)]())[_0x31329c(0xb0)](_0x8b699b=>_0x8b699b[_0x31329c(0xb3)]===_0x22097e):_0x91912a=_0x20ad89[_0x31329c(0xc2)](_0x22097e),_0x91912a;};let _0x4faf63=_0x5da2da['oznTv'](_0x18e1d8);return!_0x4faf63&&(_0x20ad89=await NTQQGroupApi[_0x36558e(0xbd)](_0x520a47),_0x4faf63=_0x5da2da[_0x36558e(0xb4)](_0x18e1d8)),_0x4faf63;}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};

View File

@@ -1 +1 @@
function _0x2785(_0x53a375,_0x5ad036){var _0xea5dc3=_0xea5d();return _0x2785=function(_0x27858a,_0xc4f20f){_0x27858a=_0x27858a-0x1b3;var _0xb85139=_0xea5dc3[_0x27858a];return _0xb85139;},_0x2785(_0x53a375,_0x5ad036);}(function(_0xa9ba95,_0x2d8d2b){var _0x24af7d=_0x2785,_0x4b628c=_0xa9ba95();while(!![]){try{var _0x40c8f8=parseInt(_0x24af7d(0x1bd))/0x1*(-parseInt(_0x24af7d(0x1b5))/0x2)+-parseInt(_0x24af7d(0x1b8))/0x3+parseInt(_0x24af7d(0x1c5))/0x4+parseInt(_0x24af7d(0x1c0))/0x5+parseInt(_0x24af7d(0x1b4))/0x6*(parseInt(_0x24af7d(0x1c1))/0x7)+-parseInt(_0x24af7d(0x1ba))/0x8*(parseInt(_0x24af7d(0x1b9))/0x9)+-parseInt(_0x24af7d(0x1c6))/0xa;if(_0x40c8f8===_0x2d8d2b)break;else _0x4b628c['push'](_0x4b628c['shift']());}catch(_0x3970b){_0x4b628c['push'](_0x4b628c['shift']());}}}(_0xea5d,0x52f94));function _0xea5d(){var _0x1dc2c0=['2038940AyFeQR','ejEHv','223134givfsc','10pJuhtm','IMriL','AUDIO','138051FrTync','477dOtuPj','16144xcnwwD','0|3|1|4|2','lDvXO','37775uEIhvB','uYeNv','split','833065LRDNfU','98wgeBtc','KXJaw','DOCUMENT','IMAGE','793364lWHHle'];_0xea5d=function(){return _0x1dc2c0;};return _0xea5d();};export var CacheFileType;(function(_0x228ea3){var _0x1c26c0=_0x2785,_0xe76f57={'KXJaw':_0x1c26c0(0x1c4),'lDvXO':_0x1c26c0(0x1b7),'IMriL':'OTHER','ejEHv':'VIDEO','uYeNv':_0x1c26c0(0x1c3)},_0x32bb0c=_0x1c26c0(0x1bb)[_0x1c26c0(0x1bf)]('|'),_0x15d8b9=0x0;while(!![]){switch(_0x32bb0c[_0x15d8b9++]){case'0':_0x228ea3[_0x228ea3[_0xe76f57[_0x1c26c0(0x1c2)]]=0x0]=_0xe76f57[_0x1c26c0(0x1c2)];continue;case'1':_0x228ea3[_0x228ea3[_0xe76f57[_0x1c26c0(0x1bc)]]=0x2]=_0xe76f57['lDvXO'];continue;case'2':_0x228ea3[_0x228ea3[_0xe76f57[_0x1c26c0(0x1b6)]]=0x4]=_0xe76f57[_0x1c26c0(0x1b6)];continue;case'3':_0x228ea3[_0x228ea3[_0xe76f57[_0x1c26c0(0x1b3)]]=0x1]=_0xe76f57['ejEHv'];continue;case'4':_0x228ea3[_0x228ea3[_0xe76f57[_0x1c26c0(0x1be)]]=0x3]=_0xe76f57[_0x1c26c0(0x1be)];continue;}break;}}(CacheFileType||(CacheFileType={})));
(function(_0x8c32a6,_0x1f8dc1){var _0x31c6bc=_0x5b94,_0x14550f=_0x8c32a6();while(!![]){try{var _0x26cfb0=parseInt(_0x31c6bc(0xce))/0x1*(-parseInt(_0x31c6bc(0xcd))/0x2)+parseInt(_0x31c6bc(0xd6))/0x3*(-parseInt(_0x31c6bc(0xdf))/0x4)+-parseInt(_0x31c6bc(0xdd))/0x5*(-parseInt(_0x31c6bc(0xdb))/0x6)+parseInt(_0x31c6bc(0xd4))/0x7+parseInt(_0x31c6bc(0xd1))/0x8*(-parseInt(_0x31c6bc(0xcc))/0x9)+parseInt(_0x31c6bc(0xc9))/0xa*(-parseInt(_0x31c6bc(0xd9))/0xb)+parseInt(_0x31c6bc(0xd5))/0xc;if(_0x26cfb0===_0x1f8dc1)break;else _0x14550f['push'](_0x14550f['shift']());}catch(_0x9e07f6){_0x14550f['push'](_0x14550f['shift']());}}}(_0x2783,0xdb844));;export var CacheFileType;(function(_0x1feadb){var _0x3b011b=_0x5b94,_0x22fb04={'QwrTm':_0x3b011b(0xda),'khNJK':_0x3b011b(0xd0),'RKBKP':_0x3b011b(0xde),'zowbv':_0x3b011b(0xca),'LdwST':'VIDEO','DxToE':'AUDIO'},_0x1e60b0=_0x22fb04[_0x3b011b(0xd8)][_0x3b011b(0xcf)]('|'),_0x5595d7=0x0;while(!![]){switch(_0x1e60b0[_0x5595d7++]){case'0':_0x1feadb[_0x1feadb[_0x22fb04[_0x3b011b(0xdc)]]=0x0]=_0x22fb04['khNJK'];continue;case'1':_0x1feadb[_0x1feadb[_0x22fb04[_0x3b011b(0xd2)]]=0x4]=_0x22fb04[_0x3b011b(0xd2)];continue;case'2':_0x1feadb[_0x1feadb[_0x3b011b(0xca)]=0x3]=_0x22fb04[_0x3b011b(0xcb)];continue;case'3':_0x1feadb[_0x1feadb[_0x22fb04['LdwST']]=0x1]=_0x22fb04[_0x3b011b(0xd3)];continue;case'4':_0x1feadb[_0x1feadb[_0x22fb04[_0x3b011b(0xd7)]]=0x2]=_0x22fb04['DxToE'];continue;}break;}}(CacheFileType||(CacheFileType={})));function _0x5b94(_0x24b76c,_0x1f89eb){var _0x27837a=_0x2783();return _0x5b94=function(_0x5b94d4,_0x5b297b){_0x5b94d4=_0x5b94d4-0xc9;var _0x5d606c=_0x27837a[_0x5b94d4];return _0x5d606c;},_0x5b94(_0x24b76c,_0x1f89eb);}function _0x2783(){var _0x4872ee=['15419657LtnlPs','0|3|4|2|1','2607828TSqXIl','khNJK','5Eqonwq','OTHER','3388VuooNg','10cvimVU','DOCUMENT','zowbv','12573BdHvAs','10lNhXwo','66821QcotDK','split','IMAGE','2696JauVps','RKBKP','LdwST','6278832KSbQYH','29716440Nbfcfv','2487iqGGlf','DxToE','QwrTm'];_0x2783=function(){return _0x4872ee;};return _0x2783();}

View File

@@ -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

View File

@@ -1 +1 @@
(function(_0x47ea7,_0x615584){var _0x2fcf1b=_0x1fe6,_0xbcbb46=_0x47ea7();while(!![]){try{var _0x4770ce=parseInt(_0x2fcf1b(0x90))/0x1+-parseInt(_0x2fcf1b(0x8c))/0x2+parseInt(_0x2fcf1b(0x89))/0x3+parseInt(_0x2fcf1b(0x8e))/0x4+-parseInt(_0x2fcf1b(0x92))/0x5*(-parseInt(_0x2fcf1b(0x88))/0x6)+parseInt(_0x2fcf1b(0x8a))/0x7+-parseInt(_0x2fcf1b(0x91))/0x8*(parseInt(_0x2fcf1b(0x94))/0x9);if(_0x4770ce===_0x615584)break;else _0xbcbb46['push'](_0xbcbb46['shift']());}catch(_0x24ced3){_0xbcbb46['push'](_0xbcbb46['shift']());}}}(_0x3027,0xc65aa));function _0x1fe6(_0x390948,_0x38eb27){var _0x3027b6=_0x3027();return _0x1fe6=function(_0x1fe64a,_0x4d90e5){_0x1fe64a=_0x1fe64a-0x87;var _0x264c42=_0x3027b6[_0x1fe64a];return _0x264c42;},_0x1fe6(_0x390948,_0x38eb27);}export var GroupMemberRole;function _0x3027(){var _0x2d7c64=['owner','2027304ZeJBoU','4058124IocVxH','5436781zgpwjn','WMXwQ','3241482gNeCwP','ZaTfq','1085176oTPRLC','cTFga','444975nvOPlK','2000920aYmzCI','5TDCmgT','normal','27ZlYhYs','admin'];_0x3027=function(){return _0x2d7c64;};return _0x3027();}(function(_0x1a1243){var _0x234594=_0x1fe6,_0x1d1ea8={'WMXwQ':_0x234594(0x93),'cTFga':_0x234594(0x95),'ZaTfq':_0x234594(0x87)};_0x1a1243[_0x1a1243[_0x1d1ea8[_0x234594(0x8b)]]=0x2]=_0x234594(0x93),_0x1a1243[_0x1a1243[_0x1d1ea8[_0x234594(0x8f)]]=0x3]=_0x1d1ea8[_0x234594(0x8f)],_0x1a1243[_0x1a1243[_0x1d1ea8[_0x234594(0x8d)]]=0x4]='owner';}(GroupMemberRole||(GroupMemberRole={})));
(function(_0x417175,_0x4de361){var _0x2789b3=_0x25ef,_0xfa313f=_0x417175();while(!![]){try{var _0x2c87cb=parseInt(_0x2789b3(0x1c9))/0x1*(parseInt(_0x2789b3(0x1c2))/0x2)+parseInt(_0x2789b3(0x1bf))/0x3*(-parseInt(_0x2789b3(0x1c6))/0x4)+-parseInt(_0x2789b3(0x1c8))/0x5*(parseInt(_0x2789b3(0x1c1))/0x6)+-parseInt(_0x2789b3(0x1bd))/0x7+parseInt(_0x2789b3(0x1c5))/0x8+-parseInt(_0x2789b3(0x1cd))/0x9*(-parseInt(_0x2789b3(0x1c0))/0xa)+-parseInt(_0x2789b3(0x1be))/0xb*(-parseInt(_0x2789b3(0x1cc))/0xc);if(_0x2c87cb===_0x4de361)break;else _0xfa313f['push'](_0xfa313f['shift']());}catch(_0x5b1e8d){_0xfa313f['push'](_0xfa313f['shift']());}}}(_0x2288,0x1e2ee));export var GroupMemberRole;function _0x2288(){var _0x56c90e=['yRnRZ','admin','182640KrHgtm','727488harMFm','1705928tzIZoG','143QJzuMy','3XNnqvf','30ARKrkY','41058tKXGjG','390GVaLNp','spGFL','fVJYL','64408VKXxGU','975724TvJokB','owner','45UsgBRE','1151vfugZN'];_0x2288=function(){return _0x56c90e;};return _0x2288();}function _0x25ef(_0x10d875,_0x3f2b99){var _0x228851=_0x2288();return _0x25ef=function(_0x25efc6,_0x30e83c){_0x25efc6=_0x25efc6-0x1bd;var _0x5d0b00=_0x228851[_0x25efc6];return _0x5d0b00;},_0x25ef(_0x10d875,_0x3f2b99);}(function(_0x38b478){var _0xc76f08=_0x25ef,_0x13610f={'yRnRZ':'normal','fVJYL':_0xc76f08(0x1cb),'spGFL':_0xc76f08(0x1c7)};_0x38b478[_0x38b478[_0x13610f[_0xc76f08(0x1ca)]]=0x2]=_0x13610f[_0xc76f08(0x1ca)],_0x38b478[_0x38b478[_0xc76f08(0x1cb)]=0x3]=_0x13610f[_0xc76f08(0x1c4)],_0x38b478[_0x38b478[_0x13610f[_0xc76f08(0x1c3)]]=0x4]=_0x13610f[_0xc76f08(0x1c3)];}(GroupMemberRole||(GroupMemberRole={})));

View File

@@ -1 +1 @@
(function(_0x4f55b6,_0x31914f){var _0x571f44=_0x48d8,_0x5a1005=_0x4f55b6();while(!![]){try{var _0x3039c3=-parseInt(_0x571f44(0x1a6))/0x1*(parseInt(_0x571f44(0x1a4))/0x2)+parseInt(_0x571f44(0x1a2))/0x3*(parseInt(_0x571f44(0x1a1))/0x4)+-parseInt(_0x571f44(0x19f))/0x5+parseInt(_0x571f44(0x1a5))/0x6+parseInt(_0x571f44(0x1a3))/0x7+-parseInt(_0x571f44(0x1a7))/0x8+parseInt(_0x571f44(0x1a0))/0x9;if(_0x3039c3===_0x31914f)break;else _0x5a1005['push'](_0x5a1005['shift']());}catch(_0x27a3d7){_0x5a1005['push'](_0x5a1005['shift']());}}}(_0x4987,0x586d2));export*from'./user';function _0x4987(){var _0x48d492=['3409712VpjpKM','1411480NAQryD','8477919Qheyob','4bzMyxF','705531AqoFOe','284151MagfXx','6CfQCOY','1511460arJbLt','132989nZqIFI'];_0x4987=function(){return _0x48d492;};return _0x4987();}export*from'./group';export*from'./msg';function _0x48d8(_0x5ca237,_0x548dbc){var _0x498788=_0x4987();return _0x48d8=function(_0x48d8cd,_0x15c216){_0x48d8cd=_0x48d8cd-0x19f;var _0x106d11=_0x498788[_0x48d8cd];return _0x106d11;},_0x48d8(_0x5ca237,_0x548dbc);}export*from'./notify';export*from'./cache';export*from'./constructor';
(function(_0x41e49a,_0x2ebb61){var _0x18c2ba=_0x5930,_0x3b6bbf=_0x41e49a();while(!![]){try{var _0x4a74c0=parseInt(_0x18c2ba(0xda))/0x1*(parseInt(_0x18c2ba(0xd8))/0x2)+-parseInt(_0x18c2ba(0xd9))/0x3*(parseInt(_0x18c2ba(0xd3))/0x4)+-parseInt(_0x18c2ba(0xd7))/0x5*(parseInt(_0x18c2ba(0xd5))/0x6)+parseInt(_0x18c2ba(0xd4))/0x7+-parseInt(_0x18c2ba(0xd1))/0x8+-parseInt(_0x18c2ba(0xd2))/0x9+parseInt(_0x18c2ba(0xd6))/0xa;if(_0x4a74c0===_0x2ebb61)break;else _0x3b6bbf['push'](_0x3b6bbf['shift']());}catch(_0x2092ac){_0x3b6bbf['push'](_0x3b6bbf['shift']());}}}(_0x538c,0x922f2));export*from'./user';export*from'./group';export*from'./msg';function _0x5930(_0x5458e5,_0x4c794c){var _0x538cfe=_0x538c();return _0x5930=function(_0x59309f,_0x351741){_0x59309f=_0x59309f-0xd1;var _0x49f8c1=_0x538cfe[_0x59309f];return _0x49f8c1;},_0x5930(_0x5458e5,_0x4c794c);}export*from'./notify';export*from'./cache';export*from'./constructor';function _0x538c(){var _0x433aab=['50kySWEX','801483kjNMMY','12515LjOXLl','4219976DXPovH','5212116scoMjm','8mMDyuM','3609529dHuMHa','3368454QeNpvL','19726000hhaLjx','5EuLLce'];_0x538c=function(){return _0x433aab;};return _0x538c();}

View File

@@ -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

View File

@@ -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

View File

@@ -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;
};
}

View File

@@ -1 +1 @@
(function(_0x3238b0,_0x2b2960){var _0x95aa18=_0x291d,_0x12046c=_0x3238b0();while(!![]){try{var _0x5ec39c=parseInt(_0x95aa18(0x9c))/0x1+parseInt(_0x95aa18(0x99))/0x2*(parseInt(_0x95aa18(0x97))/0x3)+-parseInt(_0x95aa18(0x95))/0x4*(-parseInt(_0x95aa18(0x9b))/0x5)+parseInt(_0x95aa18(0x93))/0x6*(-parseInt(_0x95aa18(0x98))/0x7)+-parseInt(_0x95aa18(0x96))/0x8+parseInt(_0x95aa18(0xa2))/0x9+parseInt(_0x95aa18(0x9a))/0xa*(-parseInt(_0x95aa18(0x94))/0xb);if(_0x5ec39c===_0x2b2960)break;else _0x12046c['push'](_0x12046c['shift']());}catch(_0x297319){_0x12046c['push'](_0x12046c['shift']());}}}(_0x3368,0xb8982));function _0x291d(_0x48247b,_0x13364a){var _0x3368c6=_0x3368();return _0x291d=function(_0x291dcc,_0x4baf5d){_0x291dcc=_0x291dcc-0x93;var _0x5cf6e5=_0x3368c6[_0x291dcc];return _0x5cf6e5;},_0x291d(_0x48247b,_0x13364a);}export var Sex;function _0x3368(){var _0x2caf66=['VGFYs','10854387HdBJqy','18282lkBUUI','165lvjLwH','1532TNbQEq','4757224VddTMU','3HfQSLH','259ZCqYBm','597042yiIdGu','984520qVcZKA','18235HNlaPs','38905CWRnxv','female','male','PIGXL','Vjpjd'];_0x3368=function(){return _0x2caf66;};return _0x3368();}(function(_0x297b42){var _0x318c86=_0x291d,_0x3fa2d0={'Vjpjd':_0x318c86(0x9e),'PIGXL':_0x318c86(0x9d),'VGFYs':'unknown'};_0x297b42[_0x297b42[_0x318c86(0x9e)]=0x1]=_0x3fa2d0[_0x318c86(0xa0)],_0x297b42[_0x297b42[_0x3fa2d0[_0x318c86(0x9f)]]=0x2]=_0x3fa2d0[_0x318c86(0x9f)],_0x297b42[_0x297b42[_0x3fa2d0[_0x318c86(0xa1)]]=0xff]=_0x3fa2d0[_0x318c86(0xa1)];}(Sex||(Sex={})));
function _0x1486(_0x328b06,_0x117286){var _0x3c6035=_0x3c60();return _0x1486=function(_0x1486a1,_0x3a35dc){_0x1486a1=_0x1486a1-0x1b4;var _0x5ef6be=_0x3c6035[_0x1486a1];return _0x5ef6be;},_0x1486(_0x328b06,_0x117286);}(function(_0x12c93a,_0x54cab3){var _0x37fbfd=_0x1486,_0x558b1d=_0x12c93a();while(!![]){try{var _0x4acca0=parseInt(_0x37fbfd(0x1b8))/0x1+-parseInt(_0x37fbfd(0x1bd))/0x2*(parseInt(_0x37fbfd(0x1b9))/0x3)+parseInt(_0x37fbfd(0x1c4))/0x4+-parseInt(_0x37fbfd(0x1c0))/0x5+parseInt(_0x37fbfd(0x1c3))/0x6*(parseInt(_0x37fbfd(0x1b4))/0x7)+-parseInt(_0x37fbfd(0x1bb))/0x8*(-parseInt(_0x37fbfd(0x1c1))/0x9)+parseInt(_0x37fbfd(0x1b6))/0xa*(-parseInt(_0x37fbfd(0x1c2))/0xb);if(_0x4acca0===_0x54cab3)break;else _0x558b1d['push'](_0x558b1d['shift']());}catch(_0x499218){_0x558b1d['push'](_0x558b1d['shift']());}}}(_0x3c60,0xe9f23));export var Sex;(function(_0x4debb2){var _0x3c1549=_0x1486,_0x5a32c8={'bZrDj':'male','lHsCo':_0x3c1549(0x1bf),'rVSeb':_0x3c1549(0x1b7)};_0x4debb2[_0x4debb2[_0x5a32c8[_0x3c1549(0x1bc)]]=0x1]=_0x5a32c8[_0x3c1549(0x1bc)],_0x4debb2[_0x4debb2[_0x5a32c8[_0x3c1549(0x1c6)]]=0x2]=_0x5a32c8[_0x3c1549(0x1c6)],_0x4debb2[_0x4debb2[_0x5a32c8[_0x3c1549(0x1c5)]]=0xff]=_0x5a32c8[_0x3c1549(0x1c5)];}(Sex||(Sex={})));function _0x3c60(){var _0x2bb498=['1276807nuCQsN','CZvMn','10qTzIjk','unknown','1473897wGReGY','1305177ywbCIB','KPHOTOWALL','8QJpRwl','bZrDj','2Aintpo','NgVPa','female','3581255kgtxZf','2893626fxOpQu','37059638PWKWCU','60SqXFKm','7436760YvxCeV','rVSeb','lHsCo'];_0x3c60=function(){return _0x2bb498;};return _0x3c60();}export var BizKey;(function(_0x1d0b54){var _0x4645b9=_0x1486,_0x56379a={'NgVPa':'KPRIVILEGEICON','CZvMn':_0x4645b9(0x1ba)};_0x1d0b54[_0x1d0b54[_0x56379a[_0x4645b9(0x1be)]]=0x0]=_0x56379a['NgVPa'],_0x1d0b54[_0x1d0b54[_0x56379a[_0x4645b9(0x1b5)]]=0x1]=_0x56379a[_0x4645b9(0x1b5)];}(BizKey||(BizKey={})));

View File

@@ -1,8 +0,0 @@
declare class HookApi {
private readonly moeHook;
constructor();
getRKey(): string;
isAvailable(): boolean;
}
export declare const hookApi: HookApi;
export {};

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
(function(_0x203930,_0x4feede){var _0x827b9b=_0x4e1d,_0x1e5f63=_0x203930();while(!![]){try{var _0x20d07e=parseInt(_0x827b9b(0x1d7))/0x1+parseInt(_0x827b9b(0x1d5))/0x2*(-parseInt(_0x827b9b(0x1d3))/0x3)+-parseInt(_0x827b9b(0x1d9))/0x4+-parseInt(_0x827b9b(0x1d4))/0x5*(parseInt(_0x827b9b(0x1db))/0x6)+parseInt(_0x827b9b(0x1dd))/0x7*(parseInt(_0x827b9b(0x1d8))/0x8)+-parseInt(_0x827b9b(0x1d6))/0x9+parseInt(_0x827b9b(0x1da))/0xa*(parseInt(_0x827b9b(0x1dc))/0xb);if(_0x20d07e===_0x4feede)break;else _0x1e5f63['push'](_0x1e5f63['shift']());}catch(_0x3e18bf){_0x1e5f63['push'](_0x1e5f63['shift']());}}}(_0x4475,0xee377));import _0x1a2eb7 from'./wrapper';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{_0x1a2eb7 as Wrapper};function _0x4475(){var _0x23a7a9=['4090004suroYd','3156870OSmIPg','2070yRdbtj','33Ygiccc','28iIUvNl','6mCmOsB','8130iolLOb','274118SoJlFr','4433472pJbsKm','1267439hbtveV','2222864omUtRh'];_0x4475=function(){return _0x23a7a9;};return _0x4475();}export*as WrapperInterface from'./wrapper';function _0x4e1d(_0x43864e,_0xae9152){var _0x447577=_0x4475();return _0x4e1d=function(_0x4e1d66,_0x11b9bd){_0x4e1d66=_0x4e1d66-0x1d3;var _0x4c8b21=_0x447577[_0x4e1d66];return _0x4c8b21;},_0x4e1d(_0x43864e,_0xae9152);}export*as SessionConfig from'./sessionConfig';export{napCatCore}from'./core';
(function(_0x5a88d9,_0x5ab068){var _0x4173ab=_0x1a06,_0x3036a7=_0x5a88d9();while(!![]){try{var _0x289715=parseInt(_0x4173ab(0x118))/0x1+parseInt(_0x4173ab(0x116))/0x2+-parseInt(_0x4173ab(0x115))/0x3+parseInt(_0x4173ab(0x113))/0x4*(parseInt(_0x4173ab(0x117))/0x5)+-parseInt(_0x4173ab(0x119))/0x6+parseInt(_0x4173ab(0x11a))/0x7*(parseInt(_0x4173ab(0x11b))/0x8)+-parseInt(_0x4173ab(0x114))/0x9;if(_0x289715===_0x5ab068)break;else _0x3036a7['push'](_0x3036a7['shift']());}catch(_0x3977a0){_0x3036a7['push'](_0x3036a7['shift']());}}}(_0x2005,0xed49d));import _0x982f22 from'./wrapper';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{_0x982f22 as Wrapper};export*as WrapperInterface from'./wrapper';export*as SessionConfig from'./sessionConfig';export{napCatCore}from'./core';function _0x1a06(_0x49759a,_0x315aa0){var _0x2005fe=_0x2005();return _0x1a06=function(_0x1a064f,_0x283c48){_0x1a064f=_0x1a064f-0x113;var _0x46e9af=_0x2005fe[_0x1a064f];return _0x46e9af;},_0x1a06(_0x49759a,_0x315aa0);}function _0x2005(){var _0x307347=['2986272hbeAEX','155953buaIdy','552ljIjTz','4jEWJhM','23346801GELwep','250023udeCqm','1325890IjnUQP','2914430RWFPoS','1363993GtoguH'];_0x2005=function(){return _0x307347;};return _0x2005();}

View File

@@ -1 +1 @@
var _0x1ceee4=_0x70da;function _0x1daa(){var _0x2c63a3=['756620zUuWpS','onBuddyListChange','321034GkXzSV','10068rPbwDl','onAvatarUrlUpdated','424oGqBlc','1561mHuTPB','onBuddyInfoChange','onBuddyDetailInfoChange','756785ffoQgK','onBuddyReqUnreadCntChange','onDoubtBuddyReqChange','11qKGnJw','onBuddyRemarkUpdated','16JrDLxu','onBuddyReqChange','onAddMeSettingChanged','onAddBuddyNeedVerify','onCheckBuddySettingResult','32514LtYFtB','onSpacePermissionInfos','8329617AXosCG','1375796yFsLsu','onNickUpdated'];_0x1daa=function(){return _0x2c63a3;};return _0x1daa();}(function(_0xe69809,_0x3509ec){var _0x599941=_0x70da,_0x137e9b=_0xe69809();while(!![]){try{var _0x1c1266=parseInt(_0x599941(0x7d))/0x1+-parseInt(_0x599941(0x79))/0x2+parseInt(_0x599941(0x76))/0x3*(-parseInt(_0x599941(0x80))/0x4)+parseInt(_0x599941(0x6c))/0x5+-parseInt(_0x599941(0x7e))/0x6*(-parseInt(_0x599941(0x81))/0x7)+-parseInt(_0x599941(0x71))/0x8*(-parseInt(_0x599941(0x78))/0x9)+-parseInt(_0x599941(0x7b))/0xa*(-parseInt(_0x599941(0x6f))/0xb);if(_0x1c1266===_0x3509ec)break;else _0x137e9b['push'](_0x137e9b['shift']());}catch(_0x5ad225){_0x137e9b['push'](_0x137e9b['shift']());}}}(_0x1daa,0xe4a63));function _0x70da(_0x286dce,_0x5b432f){var _0x1daa5b=_0x1daa();return _0x70da=function(_0x70da04,_0x168758){_0x70da04=_0x70da04-0x6a;var _0x245906=_0x1daa5b[_0x70da04];return _0x245906;},_0x70da(_0x286dce,_0x5b432f);}export class BuddyListener{[_0x1ceee4(0x74)](_0x1e3252){}[_0x1ceee4(0x73)](_0x44d23b){}[_0x1ceee4(0x7f)](_0x41e459){}['onBlockChanged'](_0x428baa){}[_0x1ceee4(0x6b)](_0x53a6b9){}[_0x1ceee4(0x6a)](_0x5ef9d5){}[_0x1ceee4(0x7c)](_0x46b1cd){}[_0x1ceee4(0x70)](_0x2b3dc6){}[_0x1ceee4(0x72)](_0x2685d5){}[_0x1ceee4(0x6d)](_0x8e2e07){}[_0x1ceee4(0x75)](_0x310545){}['onDelBatchBuddyInfos'](_0x64edbb){}[_0x1ceee4(0x6e)](_0x4a60b0){}['onDoubtBuddyReqUnreadNumChange'](_0x39fc34){}[_0x1ceee4(0x7a)](_0x178602){}['onSmartInfos'](_0xc6150a){}[_0x1ceee4(0x77)](_0x569c07){}}
function _0x3fab(){var _0x4d46a2=['273666uuvvYm','7990873CmIdaT','636447FZHmfW','8eqkubd','9WCntbC','onDelBatchBuddyInfos','1614780zkQLyc','20rKtiRl','onCheckBuddySettingResult','4MRFzAJ','onBuddyReqChange','onBuddyRemarkUpdated','onSpacePermissionInfos','264249PuBBOl','985236hsRowp','onBlockChanged','onDoubtBuddyReqUnreadNumChange','onNickUpdated','onAvatarUrlUpdated','onSmartInfos','onBuddyInfoChange','onBuddyReqUnreadCntChange','onDoubtBuddyReqChange','337715WMEKMj','onAddMeSettingChanged'];_0x3fab=function(){return _0x4d46a2;};return _0x3fab();}var _0x88adf8=_0x3d4c;(function(_0x3b1c8a,_0x1e1cb4){var _0x3169fc=_0x3d4c,_0x31dcfd=_0x3b1c8a();while(!![]){try{var _0x19ba97=-parseInt(_0x3169fc(0xf0))/0x1+-parseInt(_0x3169fc(0x105))/0x2*(parseInt(_0x3169fc(0xfc))/0x3)+-parseInt(_0x3169fc(0x103))/0x4*(parseInt(_0x3169fc(0xfa))/0x5)+parseInt(_0x3169fc(0xf1))/0x6+-parseInt(_0x3169fc(0xfe))/0x7*(parseInt(_0x3169fc(0xff))/0x8)+parseInt(_0x3169fc(0x100))/0x9*(parseInt(_0x3169fc(0x102))/0xa)+parseInt(_0x3169fc(0xfd))/0xb;if(_0x19ba97===_0x1e1cb4)break;else _0x31dcfd['push'](_0x31dcfd['shift']());}catch(_0x510daa){_0x31dcfd['push'](_0x31dcfd['shift']());}}}(_0x3fab,0x2b29e));function _0x3d4c(_0x576b67,_0x5694aa){var _0x3fabf5=_0x3fab();return _0x3d4c=function(_0x3d4c89,_0x33ac90){_0x3d4c89=_0x3d4c89-0xef;var _0x57106f=_0x3fabf5[_0x3d4c89];return _0x57106f;},_0x3d4c(_0x576b67,_0x5694aa);}export class BuddyListener{['onAddBuddyNeedVerify'](_0x35afa2){}[_0x88adf8(0xfb)](_0x160262){}[_0x88adf8(0xf5)](_0x301847){}[_0x88adf8(0xf2)](_0x5c2bd8){}['onBuddyDetailInfoChange'](_0x795f7b){}[_0x88adf8(0xf7)](_0x5d18c7){}['onBuddyListChange'](_0x109f89){}[_0x88adf8(0x107)](_0x55561d){}[_0x88adf8(0x106)](_0x58d4af){}[_0x88adf8(0xf8)](_0x37ab64){}[_0x88adf8(0x104)](_0x1a03df){}[_0x88adf8(0x101)](_0x57d3e3){}[_0x88adf8(0xf9)](_0x3b45a7){}[_0x88adf8(0xf3)](_0x2eab18){}[_0x88adf8(0xf4)](_0x2a6633){}[_0x88adf8(0xf6)](_0x487cf0){}[_0x88adf8(0xef)](_0x30c7f6){}}

View File

@@ -1 +1 @@
var _0x46248e=_0x3bbb;function _0x3bbb(_0x193452,_0x4e20bf){var _0x539609=_0x5396();return _0x3bbb=function(_0x3bbb7b,_0x162a7e){_0x3bbb7b=_0x3bbb7b-0xeb;var _0x152c6a=_0x539609[_0x3bbb7b];return _0x152c6a;},_0x3bbb(_0x193452,_0x4e20bf);}function _0x5396(){var _0x5a971a=['11diiZuf','onFileListChanged','568tgEavs','2IjBZCp','25949XoKeDq','276580ZwRMEO','66jImqME','48726YXSreT','1329567BECOrn','1860330lCMBZX','onSessionListChanged','12335170TybXxq','onFileSearch','onSessionChanged','1696940fBrnHw'];_0x5396=function(){return _0x5a971a;};return _0x5396();}(function(_0x17d7b7,_0x3268fc){var _0x46fe78=_0x3bbb,_0x35eba6=_0x17d7b7();while(!![]){try{var _0xe3a064=-parseInt(_0x46fe78(0xeb))/0x1+parseInt(_0x46fe78(0xf8))/0x2*(-parseInt(_0x46fe78(0xee))/0x3)+parseInt(_0x46fe78(0xf4))/0x4+-parseInt(_0x46fe78(0xef))/0x5+-parseInt(_0x46fe78(0xec))/0x6*(-parseInt(_0x46fe78(0xf9))/0x7)+-parseInt(_0x46fe78(0xf7))/0x8*(parseInt(_0x46fe78(0xed))/0x9)+-parseInt(_0x46fe78(0xf1))/0xa*(-parseInt(_0x46fe78(0xf5))/0xb);if(_0xe3a064===_0x3268fc)break;else _0x35eba6['push'](_0x35eba6['shift']());}catch(_0x27b401){_0x35eba6['push'](_0x35eba6['shift']());}}}(_0x5396,0x3645c));export class KernelFileAssistantListener{['onFileStatusChanged'](..._0x1f7fb2){}[_0x46248e(0xf0)](..._0x14582f){}[_0x46248e(0xf3)](..._0x2d8c4){}[_0x46248e(0xf6)](..._0x21bad0){}[_0x46248e(0xf2)](..._0x21b4d0){}}
var _0x5457b1=_0x22fa;(function(_0x8f7c2d,_0x41452c){var _0x5c4950=_0x22fa,_0x52f638=_0x8f7c2d();while(!![]){try{var _0x4ea75e=parseInt(_0x5c4950(0xcd))/0x1+-parseInt(_0x5c4950(0xd1))/0x2*(-parseInt(_0x5c4950(0xd5))/0x3)+parseInt(_0x5c4950(0xcf))/0x4*(parseInt(_0x5c4950(0xd4))/0x5)+parseInt(_0x5c4950(0xd3))/0x6*(-parseInt(_0x5c4950(0xca))/0x7)+-parseInt(_0x5c4950(0xd2))/0x8+parseInt(_0x5c4950(0xd0))/0x9+-parseInt(_0x5c4950(0xc9))/0xa*(-parseInt(_0x5c4950(0xcc))/0xb);if(_0x4ea75e===_0x41452c)break;else _0x52f638['push'](_0x52f638['shift']());}catch(_0x86cec3){_0x52f638['push'](_0x52f638['shift']());}}}(_0xb570,0x51613));function _0x22fa(_0x73610c,_0x34d62b){var _0xb57097=_0xb570();return _0x22fa=function(_0x22fa57,_0x2dd083){_0x22fa57=_0x22fa57-0xc8;var _0x25c628=_0xb57097[_0x22fa57];return _0x25c628;},_0x22fa(_0x73610c,_0x34d62b);}export class KernelFileAssistantListener{[_0x5457b1(0xcb)](..._0x41e433){}['onSessionListChanged'](..._0x3829a9){}[_0x5457b1(0xce)](..._0x1acf9c){}['onFileListChanged'](..._0x2e851c){}[_0x5457b1(0xc8)](..._0xdd1f57){}}function _0xb570(){var _0x26737c=['176TRVIQU','639334cAezJC','onSessionChanged','92MNvEmx','1980171XiUnTR','187406cJjWdE','3990816AChBSo','22566vXTdRJ','78395uaKILN','3adVkYa','onFileSearch','42260gHnCNC','1022tWmkLI','onFileStatusChanged'];_0xb570=function(){return _0x26737c;};return _0xb570();}

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
var _0x422c78=_0x1a73;function _0x1a73(_0x1b400d,_0x561f20){var _0x1d21b5=_0x1d21();return _0x1a73=function(_0x1a73b1,_0x255923){_0x1a73b1=_0x1a73b1-0x68;var _0x224796=_0x1d21b5[_0x1a73b1];return _0x224796;},_0x1a73(_0x1b400d,_0x561f20);}(function(_0x4ef417,_0x101518){var _0x2cf606=_0x1a73,_0x59da75=_0x4ef417();while(!![]){try{var _0x4c9fc9=-parseInt(_0x2cf606(0x6d))/0x1*(parseInt(_0x2cf606(0x71))/0x2)+parseInt(_0x2cf606(0x7b))/0x3*(parseInt(_0x2cf606(0x7a))/0x4)+parseInt(_0x2cf606(0x77))/0x5*(-parseInt(_0x2cf606(0x7f))/0x6)+parseInt(_0x2cf606(0x6f))/0x7*(-parseInt(_0x2cf606(0x69))/0x8)+-parseInt(_0x2cf606(0x72))/0x9*(-parseInt(_0x2cf606(0x80))/0xa)+-parseInt(_0x2cf606(0x70))/0xb*(-parseInt(_0x2cf606(0x7d))/0xc)+-parseInt(_0x2cf606(0x74))/0xd;if(_0x4c9fc9===_0x101518)break;else _0x59da75['push'](_0x59da75['shift']());}catch(_0x4e0649){_0x59da75['push'](_0x59da75['shift']());}}}(_0x1d21,0x18b83));function _0x1d21(){var _0x4abb57=['20myQmEc','onUserLoggedIn','onQRCodeLoginPollingStarted','8iRsavV','onLoginDisConnected','OnConfirmUnusualDeviceFailed','onQRCodeSessionUserScaned','20241vZELHN','onLoginConnected','1060871jiOwAX','652531YdbvZz','8kChqBQ','812493awNLqy','onPasswordLoginFailed','419692HPsdeE','onQRCodeGetPicture','onLoginFailed','873130NYAaRO','onLogoutSucceed','onLogoutFailed','212DMmNDD','10311HfXRRC','onLoginConnecting','36TVQADJ','onQRCodeSessionQuickLoginFailed','6XEWkPu'];_0x1d21=function(){return _0x4abb57;};return _0x1d21();}export class LoginListener{[_0x422c78(0x6e)](..._0x25807f){}[_0x422c78(0x6a)](..._0x23bace){}[_0x422c78(0x7c)](..._0x18b61a){}[_0x422c78(0x75)](_0xe9199f){}[_0x422c78(0x68)](..._0x4ac353){}[_0x422c78(0x6c)](..._0x44b824){}['onQRCodeLoginSucceed'](_0x25ac88){}['onQRCodeSessionFailed'](..._0x70d052){}[_0x422c78(0x76)](..._0x1c6edd){}[_0x422c78(0x78)](..._0xfd82db){}[_0x422c78(0x79)](..._0x3ec473){}[_0x422c78(0x81)](..._0xf4f931){}[_0x422c78(0x7e)](..._0x1ebf33){}[_0x422c78(0x73)](..._0x5c7a4c){}[_0x422c78(0x6b)](..._0xa0051a){}['onQQLoginNumLimited'](..._0x5c5086){}['onLoginState'](..._0x5cb09d){}}
function _0x10b5(_0x3f73e6,_0xf3f67d){var _0x36b56a=_0x36b5();return _0x10b5=function(_0x10b5b1,_0xdceef7){_0x10b5b1=_0x10b5b1-0xf9;var _0x426467=_0x36b56a[_0x10b5b1];return _0x426467;},_0x10b5(_0x3f73e6,_0xf3f67d);}var _0x19eaf9=_0x10b5;(function(_0x46a75b,_0x30f01a){var _0x1bad46=_0x10b5,_0xd0b89c=_0x46a75b();while(!![]){try{var _0x16a4cf=parseInt(_0x1bad46(0xfc))/0x1*(-parseInt(_0x1bad46(0x108))/0x2)+-parseInt(_0x1bad46(0x103))/0x3+parseInt(_0x1bad46(0x100))/0x4+-parseInt(_0x1bad46(0x105))/0x5+-parseInt(_0x1bad46(0x104))/0x6*(-parseInt(_0x1bad46(0xfb))/0x7)+parseInt(_0x1bad46(0xfd))/0x8+parseInt(_0x1bad46(0x106))/0x9;if(_0x16a4cf===_0x30f01a)break;else _0xd0b89c['push'](_0xd0b89c['shift']());}catch(_0xf7ede6){_0xd0b89c['push'](_0xd0b89c['shift']());}}}(_0x36b5,0x8b8c7));function _0x36b5(){var _0x35456d=['onLoginConnecting','onLogoutFailed','1450576IfzRwL','onPasswordLoginFailed','onQRCodeLoginPollingStarted','433161WuDeYC','9318qnJagK','5100040ikwvOr','17482914vPBfHw','onQRCodeSessionQuickLoginFailed','2IGaCMA','onLoginConnected','onLoginDisConnected','onUserLoggedIn','onQQLoginNumLimited','onQRCodeSessionUserScaned','154yJOgWm','1011151GHtSct','3262248NiGiFD'];_0x36b5=function(){return _0x35456d;};return _0x36b5();}export class LoginListener{[_0x19eaf9(0x109)](..._0x4d129d){}[_0x19eaf9(0x10a)](..._0x48a257){}[_0x19eaf9(0xfe)](..._0x1739a6){}['onQRCodeGetPicture'](_0x41de67){}[_0x19eaf9(0x102)](..._0x4ee5bc){}[_0x19eaf9(0xfa)](..._0x54b299){}['onQRCodeLoginSucceed'](_0x4a8e73){}['onQRCodeSessionFailed'](..._0x5f4e9b){}['onLoginFailed'](..._0x381f3e){}['onLogoutSucceed'](..._0x3ea443){}[_0x19eaf9(0xff)](..._0x57291c){}[_0x19eaf9(0x10b)](..._0xb56e09){}[_0x19eaf9(0x107)](..._0x3ed9f5){}[_0x19eaf9(0x101)](..._0x5ef97f){}['OnConfirmUnusualDeviceFailed'](..._0x566cbc){}[_0x19eaf9(0xf9)](..._0x37c9ab){}['onLoginState'](..._0x5e89b0){}}

View File

@@ -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;

View File

@@ -1 +1 @@
function _0x1b1d(){var _0x57e409=['onUnreadCntAfterFirstView','onGroupGuildUpdate','onRecvUDCFlag','onMsgInfoListUpdate','onGuildMsgAbFlagChanged','onSysMsgNotification','1635290wuCCIL','onRecvMsg','8969984PYwLNn','onHitCsRelatedEmojiResult','onMsgQRCodeStatusChanged','onRecvS2CMsg','onContactUnreadCntUpdate','onImportOldDbProgressUpdate','4111848DaqpnI','onRecvGroupGuildFlag','38hgGbLn','onMsgRecall','onRecvMsgSvrRspTransInfo','onEmojiResourceUpdate','onMsgInfoListAdd','onFileMsgCome','onTempChatInfoUpdate','onNtFirstViewMsgSyncEnd','93447vSEdNd','onRecvOnlineFileMsg','5670060QFfpQP','onRichMediaUploadComplete','onLogLevelChanged','966581NnHNnS','onFirstViewGroupGuildMapping','onBroadcastHelperProgressUpdate','onlineStatusSmallIconDownloadPush','onLineDev','onBroadcastHelperDownloadComplete','onUserTabStatusChanged','onGrabPasswordRedBag','onReadFeedEventUpdate','onChannelFreqLimitInfoUpdate','onSearchGroupFileInfoUpdate','onMsgWithRichLinkInfoUpdate','onAddSendMsg','onRecvSysMsg','onNtMsgSyncEnd','onMsgEventListUpdate','onUserChannelTabStatusChanged','onUserOnlineStatusChanged','onEmojiDownloadComplete','onMsgSecurityNotify','onHitRelatedEmojiResult','onGroupFileInfoAdd','onInputStatusPush','onRichMediaProgerssUpdate','onMsgAbstractUpdate','onGroupTransferInfoAdd','1096003mMvOof','onGuildNotificationAbstractUpdate'];_0x1b1d=function(){return _0x57e409;};return _0x1b1d();}var _0x2c6e4c=_0x3a0d;function _0x3a0d(_0x181541,_0x5c1879){var _0x1b1d34=_0x1b1d();return _0x3a0d=function(_0x3a0d46,_0x337393){_0x3a0d46=_0x3a0d46-0xca;var _0x3d2b89=_0x1b1d34[_0x3a0d46];return _0x3d2b89;},_0x3a0d(_0x181541,_0x5c1879);}(function(_0x5ef497,_0x15433d){var _0xe99581=_0x3a0d,_0x42ec40=_0x5ef497();while(!![]){try{var _0x28400c=parseInt(_0xe99581(0xec))/0x1+parseInt(_0xe99581(0xfe))/0x2*(parseInt(_0xe99581(0xcd))/0x3)+-parseInt(_0xe99581(0xfc))/0x4+parseInt(_0xe99581(0xf4))/0x5+parseInt(_0xe99581(0xcf))/0x6+-parseInt(_0xe99581(0xd2))/0x7+-parseInt(_0xe99581(0xf6))/0x8;if(_0x28400c===_0x15433d)break;else _0x42ec40['push'](_0x42ec40['shift']());}catch(_0x4cce24){_0x42ec40['push'](_0x42ec40['shift']());}}}(_0x1b1d,0xa4361));export class MsgListener{[_0x2c6e4c(0xde)](_0x14b726){}[_0x2c6e4c(0xd7)](_0x11edf1){}[_0x2c6e4c(0xd4)](_0x6504c0){}[_0x2c6e4c(0xdb)](_0x35d96e,_0x3d8280,_0x4a22ad){}[_0x2c6e4c(0xfa)](_0x139164){}['onCustomWithdrawConfigUpdate'](_0x1c841b){}['onDraftUpdate'](_0x1aa093,_0x2d7aff,_0x5d192e){}[_0x2c6e4c(0xe4)](_0x239bc6){}[_0x2c6e4c(0x101)](_0x21c7d4){}['onFeedEventUpdate'](_0x286532){}[_0x2c6e4c(0xca)](_0x507c51){}['onFirstViewDirectMsgUpdate'](_0x234974){}[_0x2c6e4c(0xd3)](_0x572ada){}[_0x2c6e4c(0xd9)](_0x1fc185,_0x4d2fb4,_0x4243e3,_0x3b1c79,_0x72afcc){}[_0x2c6e4c(0xe7)](_0x4dc5b2){}['onGroupFileInfoUpdate'](_0x56ed7e){}[_0x2c6e4c(0xef)](_0x315af6){}[_0x2c6e4c(0xeb)](_0x35139a){}['onGroupTransferInfoUpdate'](_0x48ab53){}['onGuildInteractiveUpdate'](_0x5be2ab){}[_0x2c6e4c(0xf2)](_0xeaae02){}[_0x2c6e4c(0xed)](_0x36a64d){}[_0x2c6e4c(0xf7)](_0x950d2e){}['onHitEmojiKeywordResult'](_0x1da0a1){}[_0x2c6e4c(0xe6)](_0x297177){}[_0x2c6e4c(0xfb)](_0x468a5b){}[_0x2c6e4c(0xe8)](_0x4a463f){}['onKickedOffLine'](_0x5e5118){}[_0x2c6e4c(0xd6)](_0x1bede3){}[_0x2c6e4c(0xd1)](_0x5181d7){}[_0x2c6e4c(0xea)](_0x476e35){}['onMsgBoxChanged'](_0x5041a9){}['onMsgDelete'](_0x7b938d,_0x5d0b11){}[_0x2c6e4c(0xe1)](_0x4d325b){}[_0x2c6e4c(0x102)](_0x34ed6f){}[_0x2c6e4c(0xf1)](_0xc85565){}[_0x2c6e4c(0xf8)](_0x30b8e3){}[_0x2c6e4c(0xff)](_0x236071,_0x4369d0,_0x39ee1d){}[_0x2c6e4c(0xe5)](_0x43a59b){}['onMsgSettingUpdate'](_0x27d5f1){}[_0x2c6e4c(0xcc)](){}[_0x2c6e4c(0xe0)](){}['onNtMsgSyncStart'](){}[_0x2c6e4c(0xda)](_0x556974){}[_0x2c6e4c(0xfd)](_0x3287dc){}[_0x2c6e4c(0xf5)](_0x4f59ba){}[_0x2c6e4c(0x100)](_0x4e54b8,_0x4ead33,_0x201997,_0x2ed6c9,_0x3410bf,_0x3e790f){}[_0x2c6e4c(0xce)](_0x10b508){}[_0x2c6e4c(0xf9)](_0x50efb6){}[_0x2c6e4c(0xdf)](_0x468cc6){}[_0x2c6e4c(0xf0)](_0x484426){}['onRichMediaDownloadComplete'](_0x6f1f19){}[_0x2c6e4c(0xe9)](_0x514f38){}[_0x2c6e4c(0xd0)](_0x382d91){}[_0x2c6e4c(0xdc)](_0x53d42f){}['onSendMsgError'](_0x1174ed,_0x168a2b,_0x2814f4,_0x3e641c){}[_0x2c6e4c(0xf3)](_0x26e288,_0x3f63ca,_0x1c3c31,_0x5b4f21){}[_0x2c6e4c(0xcb)](_0x3c603a){}[_0x2c6e4c(0xee)](_0x28df3b){}['onUnreadCntUpdate'](_0x505759){}[_0x2c6e4c(0xe2)](_0x272cef){}[_0x2c6e4c(0xe3)](_0x3a7a36){}[_0x2c6e4c(0xd8)](_0x29853b){}['onlineStatusBigIconDownloadPush'](_0x2640e3,_0x1fd781,_0x3a3915){}[_0x2c6e4c(0xd5)](_0x77e8d6,_0x3e3ea0,_0x4c4379){}['onUserSecQualityChanged'](..._0x2261d0){}[_0x2c6e4c(0xdd)](..._0x4f5b1d){}['onRedTouchChanged'](..._0x38e55e){}['onBroadcastHelperProgerssUpdate'](..._0x249155){}}
var _0x2c2352=_0xbf6e;(function(_0x2b6b21,_0x5793fa){var _0x5f8068=_0xbf6e,_0x48c901=_0x2b6b21();while(!![]){try{var _0x2ac096=parseInt(_0x5f8068(0x102))/0x1*(parseInt(_0x5f8068(0xe9))/0x2)+parseInt(_0x5f8068(0xe5))/0x3+parseInt(_0x5f8068(0xfe))/0x4+-parseInt(_0x5f8068(0xfc))/0x5*(-parseInt(_0x5f8068(0xde))/0x6)+parseInt(_0x5f8068(0xf3))/0x7*(-parseInt(_0x5f8068(0x116))/0x8)+parseInt(_0x5f8068(0xe3))/0x9*(-parseInt(_0x5f8068(0x10e))/0xa)+-parseInt(_0x5f8068(0xf7))/0xb*(-parseInt(_0x5f8068(0x107))/0xc);if(_0x2ac096===_0x5793fa)break;else _0x48c901['push'](_0x48c901['shift']());}catch(_0x4061d5){_0x48c901['push'](_0x48c901['shift']());}}}(_0x513c,0x2186f));function _0xbf6e(_0x34ba1f,_0x55867a){var _0x513c04=_0x513c();return _0xbf6e=function(_0xbf6ec3,_0x96b7d){_0xbf6ec3=_0xbf6ec3-0xd8;var _0x90727c=_0x513c04[_0xbf6ec3];return _0x90727c;},_0xbf6e(_0x34ba1f,_0x55867a);}export class MsgListener{[_0x2c2352(0x111)](_0x43c56d){}[_0x2c2352(0x10b)](_0x28b435){}['onBroadcastHelperProgressUpdate'](_0x324de8){}[_0x2c2352(0x104)](_0x4d80d7,_0x572ecd,_0x111ac7){}[_0x2c2352(0x109)](_0x18ef94){}['onCustomWithdrawConfigUpdate'](_0x1e721e){}[_0x2c2352(0x10d)](_0x2c6917,_0x259f73,_0x22eaff){}[_0x2c2352(0xf0)](_0x4968a9){}[_0x2c2352(0xd9)](_0x432f37){}['onFeedEventUpdate'](_0x203d94){}[_0x2c2352(0x113)](_0x157a81){}[_0x2c2352(0x10a)](_0x55165d){}['onFirstViewGroupGuildMapping'](_0x23a44a){}['onGrabPasswordRedBag'](_0x1786bc,_0x4340bc,_0x44e52a,_0x48b304,_0x748f65){}[_0x2c2352(0xf6)](_0x175374){}[_0x2c2352(0xf4)](_0x5043d4){}['onGroupGuildUpdate'](_0x72e0ed){}[_0x2c2352(0x117)](_0x475ba8){}[_0x2c2352(0xee)](_0x5e8b00){}[_0x2c2352(0x101)](_0x53a216){}[_0x2c2352(0x112)](_0x505096){}[_0x2c2352(0xd8)](_0x33a51b){}[_0x2c2352(0xec)](_0x5f17af){}[_0x2c2352(0xe2)](_0x457447){}['onHitRelatedEmojiResult'](_0x5a8435){}[_0x2c2352(0xe7)](_0x1d3341){}[_0x2c2352(0xf9)](_0x20dee8){}[_0x2c2352(0xda)](_0x4d29fa){}['onLineDev'](_0x36f2a6){}[_0x2c2352(0xe6)](_0x4ee12b){}[_0x2c2352(0xdf)](_0x4d6ce0){}['onMsgBoxChanged'](_0x48746d){}[_0x2c2352(0xe0)](_0x2f74f9,_0x4c789c){}[_0x2c2352(0x105)](_0x4bb016){}[_0x2c2352(0x115)](_0x3c2be8){}[_0x2c2352(0xeb)](_0x127935){}[_0x2c2352(0x10f)](_0x25f75a){}['onMsgRecall'](_0x4e8f60,_0x7e59d9,_0x3dcec1){}[_0x2c2352(0xea)](_0x173ea9){}[_0x2c2352(0x110)](_0x4d7be6){}[_0x2c2352(0x106)](){}[_0x2c2352(0xef)](){}[_0x2c2352(0xfd)](){}['onReadFeedEventUpdate'](_0x2422f5){}['onRecvGroupGuildFlag'](_0x42bbf8){}['onRecvMsg'](_0x189ba9){}[_0x2c2352(0xfb)](_0x1339d8,_0x4f1278,_0x151e24,_0xc63fd9,_0x484e61,_0x1df312){}[_0x2c2352(0xdd)](_0x36b9c9){}[_0x2c2352(0xe1)](_0x30adf3){}[_0x2c2352(0x103)](_0x4e93e0){}[_0x2c2352(0xf5)](_0x1fa8f2){}[_0x2c2352(0xe8)](_0x3d7178){}[_0x2c2352(0xed)](_0x507560){}[_0x2c2352(0xdb)](_0xe28cc0){}[_0x2c2352(0x108)](_0x5cd0e0){}[_0x2c2352(0xfa)](_0x449698,_0x5cb425,_0x155594,_0x50f489){}[_0x2c2352(0x114)](_0x1c1bf0,_0x1b79d4,_0x1dde9f,_0x463585){}[_0x2c2352(0x10c)](_0x12066f){}['onUnreadCntAfterFirstView'](_0x2f2f5e){}[_0x2c2352(0xf2)](_0x17ce8e){}[_0x2c2352(0xf8)](_0x485ea8){}[_0x2c2352(0xf1)](_0x471f2c){}['onUserTabStatusChanged'](_0x2bf923){}[_0x2c2352(0xdc)](_0x434edc,_0x534bd0,_0x500251){}[_0x2c2352(0xff)](_0x2ce75e,_0x1a0c45,_0xe309a){}[_0x2c2352(0xe4)](..._0x10a93f){}['onMsgWithRichLinkInfoUpdate'](..._0x1cfc11){}['onRedTouchChanged'](..._0x4a6641){}[_0x2c2352(0x100)](..._0x415784){}}function _0x513c(){var _0xeea6ae=['onMsgInfoListUpdate','onHitCsRelatedEmojiResult','onRichMediaProgerssUpdate','onGroupTransferInfoUpdate','onNtMsgSyncEnd','onEmojiDownloadComplete','onUserOnlineStatusChanged','onUnreadCntUpdate','70yhdLxY','onGroupFileInfoUpdate','onRecvUDCFlag','onGroupFileInfoAdd','187bJimZv','onUserChannelTabStatusChanged','onInputStatusPush','onSendMsgError','onRecvMsgSvrRspTransInfo','10tXhELD','onNtMsgSyncStart','950668zlMsMt','onlineStatusSmallIconDownloadPush','onBroadcastHelperProgerssUpdate','onGuildInteractiveUpdate','1CXvviK','onRecvSysMsg','onChannelFreqLimitInfoUpdate','onMsgEventListUpdate','onNtFirstViewMsgSyncEnd','96216ZEjmmp','onSearchGroupFileInfoUpdate','onContactUnreadCntUpdate','onFirstViewDirectMsgUpdate','onBroadcastHelperDownloadComplete','onTempChatInfoUpdate','onDraftUpdate','2314930KUtdBf','onMsgQRCodeStatusChanged','onMsgSettingUpdate','onAddSendMsg','onGuildMsgAbFlagChanged','onFileMsgCome','onSysMsgNotification','onMsgInfoListAdd','164240MKfMBe','onGroupTransferInfoAdd','onGuildNotificationAbstractUpdate','onEmojiResourceUpdate','onKickedOffLine','onRichMediaUploadComplete','onlineStatusBigIconDownloadPush','onRecvOnlineFileMsg','192876pDHgJD','onMsgAbstractUpdate','onMsgDelete','onRecvS2CMsg','onHitEmojiKeywordResult','9ZWqUey','onUserSecQualityChanged','391785ojcDON','onLogLevelChanged','onImportOldDbProgressUpdate','onRichMediaDownloadComplete','10520ZHwTQf','onMsgSecurityNotify'];_0x513c=function(){return _0xeea6ae;};return _0x513c();}

View File

@@ -1 +1 @@
var _0x343f0a=_0x28de;(function(_0x362792,_0x537666){var _0x2e3083=_0x28de,_0x4ead1e=_0x362792();while(!![]){try{var _0x1a2367=parseInt(_0x2e3083(0x1ee))/0x1+-parseInt(_0x2e3083(0x1e6))/0x2*(-parseInt(_0x2e3083(0x1ea))/0x3)+-parseInt(_0x2e3083(0x1e9))/0x4+parseInt(_0x2e3083(0x1e5))/0x5+-parseInt(_0x2e3083(0x1e8))/0x6+parseInt(_0x2e3083(0x1e4))/0x7+parseInt(_0x2e3083(0x1e7))/0x8;if(_0x1a2367===_0x537666)break;else _0x4ead1e['push'](_0x4ead1e['shift']());}catch(_0x4b7626){_0x4ead1e['push'](_0x4ead1e['shift']());}}}(_0x1f1d,0x584dc));function _0x1f1d(){var _0x172dd1=['1314505LerUiH','896084fJkguh','2889416FUOKAe','3546912UqKwtk','2245364JNcTei','3EKewlN','onSelfStatusChanged','onProfileSimpleChanged','onStatusUpdate','171831EubOSy','onProfileDetailInfoChanged','1891638dIASFM'];_0x1f1d=function(){return _0x172dd1;};return _0x1f1d();}function _0x28de(_0x449a32,_0x3ed18e){var _0x1f1d89=_0x1f1d();return _0x28de=function(_0x28de59,_0x506322){_0x28de59=_0x28de59-0x1e3;var _0x1b4063=_0x1f1d89[_0x28de59];return _0x1b4063;},_0x28de(_0x449a32,_0x3ed18e);}export class ProfileListener{[_0x343f0a(0x1ec)](..._0x16a106){}[_0x343f0a(0x1e3)](_0x5572e7){}[_0x343f0a(0x1ed)](..._0x498a2e){}[_0x343f0a(0x1eb)](..._0x1901f7){}['onStrangerRemarkChanged'](..._0x337418){}}
var _0x540e4e=_0x128e;(function(_0x1a1f50,_0x576544){var _0x624bdd=_0x128e,_0x362787=_0x1a1f50();while(!![]){try{var _0x206160=-parseInt(_0x624bdd(0x1a3))/0x1*(-parseInt(_0x624bdd(0x1a5))/0x2)+-parseInt(_0x624bdd(0x1a4))/0x3+parseInt(_0x624bdd(0x1ad))/0x4+parseInt(_0x624bdd(0x1a2))/0x5*(-parseInt(_0x624bdd(0x1a8))/0x6)+-parseInt(_0x624bdd(0x1a9))/0x7+parseInt(_0x624bdd(0x1ab))/0x8*(-parseInt(_0x624bdd(0x1b0))/0x9)+parseInt(_0x624bdd(0x1aa))/0xa*(parseInt(_0x624bdd(0x1ac))/0xb);if(_0x206160===_0x576544)break;else _0x362787['push'](_0x362787['shift']());}catch(_0x4ef38a){_0x362787['push'](_0x362787['shift']());}}}(_0x1aa6,0x5cdba));function _0x128e(_0xebbf8e,_0x2cfddb){var _0x1aa676=_0x1aa6();return _0x128e=function(_0x128e53,_0x353d65){_0x128e53=_0x128e53-0x1a2;var _0x1df795=_0x1aa676[_0x128e53];return _0x1df795;},_0x128e(_0xebbf8e,_0x2cfddb);}export class ProfileListener{[_0x540e4e(0x1a6)](..._0xbe5483){}[_0x540e4e(0x1ae)](_0xd412eb){}['onStatusUpdate'](..._0x5bc4ff){}[_0x540e4e(0x1a7)](..._0x478c82){}[_0x540e4e(0x1af)](..._0x3af599){}}function _0x1aa6(){var _0x46a9d0=['3951UNowpm','5XAJZdE','67IhHwtE','821709LUhOBd','21806EZRTal','onProfileSimpleChanged','onSelfStatusChanged','3299682QXxmRn','213731MsDyQl','20IXLHyJ','10664ugDqcT','3151852thBAst','2065404TvOBLN','onProfileDetailInfoChanged','onStrangerRemarkChanged'];_0x1aa6=function(){return _0x46a9d0;};return _0x1aa6();}

View File

@@ -1 +1 @@
function _0x5bf9(_0x556808,_0x4d6ba4){var _0xfacc89=_0xfacc();return _0x5bf9=function(_0x5bf9d5,_0x3ec89a){_0x5bf9d5=_0x5bf9d5-0xcd;var _0x1e64a6=_0xfacc89[_0x5bf9d5];return _0x1e64a6;},_0x5bf9(_0x556808,_0x4d6ba4);}var _0x46c6fc=_0x5bf9;(function(_0x316ebe,_0x184f6c){var _0x53c904=_0x5bf9,_0x209b1b=_0x316ebe();while(!![]){try{var _0x502b4f=-parseInt(_0x53c904(0xce))/0x1*(parseInt(_0x53c904(0xd4))/0x2)+-parseInt(_0x53c904(0xd6))/0x3+-parseInt(_0x53c904(0xd2))/0x4+parseInt(_0x53c904(0xcf))/0x5*(-parseInt(_0x53c904(0xd5))/0x6)+parseInt(_0x53c904(0xd3))/0x7+-parseInt(_0x53c904(0xcd))/0x8+parseInt(_0x53c904(0xd1))/0x9;if(_0x502b4f===_0x184f6c)break;else _0x209b1b['push'](_0x209b1b['shift']());}catch(_0x1e0f30){_0x209b1b['push'](_0x209b1b['shift']());}}}(_0xfacc,0x68690));function _0xfacc(){var _0x2e22e4=['802EPncPU','6ayMgwt','1787253bicBjs','3430168nYMtXq','1753lhlzpo','563605wMfjSB','onRobotProfileChanged','26858241eRvcCD','2906300ZWpmsp','71302DgjFzL'];_0xfacc=function(){return _0x2e22e4;};return _0xfacc();}export class KernelRobotListener{['onRobotFriendListChanged'](..._0x304d4d){}['onRobotListChanged'](..._0x29d247){}[_0x46c6fc(0xd0)](..._0x217f9f){}}
var _0xb24922=_0xf8de;(function(_0x427e1f,_0x352ec1){var _0x3a6665=_0xf8de,_0x239318=_0x427e1f();while(!![]){try{var _0x913184=parseInt(_0x3a6665(0x1bf))/0x1*(parseInt(_0x3a6665(0x1ba))/0x2)+parseInt(_0x3a6665(0x1be))/0x3*(-parseInt(_0x3a6665(0x1bd))/0x4)+parseInt(_0x3a6665(0x1bb))/0x5+-parseInt(_0x3a6665(0x1c6))/0x6+parseInt(_0x3a6665(0x1c3))/0x7*(-parseInt(_0x3a6665(0x1c0))/0x8)+parseInt(_0x3a6665(0x1c4))/0x9+parseInt(_0x3a6665(0x1c1))/0xa;if(_0x913184===_0x352ec1)break;else _0x239318['push'](_0x239318['shift']());}catch(_0x629714){_0x239318['push'](_0x239318['shift']());}}}(_0x290e,0xbbcb8));function _0x290e(){var _0x9c957d=['onRobotFriendListChanged','7ABYKEx','13523706PQDIFg','onRobotProfileChanged','8420052QCLNEL','6ZBhQys','3799685TZrUtm','onRobotListChanged','193352OURTBa','63SAVzMo','426698jtVFDs','8586392lVepiD','7182820gUmKQY'];_0x290e=function(){return _0x9c957d;};return _0x290e();}function _0xf8de(_0x10d489,_0x5b81b0){var _0x290e2c=_0x290e();return _0xf8de=function(_0xf8dec0,_0x513a17){_0xf8dec0=_0xf8dec0-0x1ba;var _0xa3a43d=_0x290e2c[_0xf8dec0];return _0xa3a43d;},_0xf8de(_0x10d489,_0x5b81b0);}export class KernelRobotListener{[_0xb24922(0x1c2)](..._0x265a02){}[_0xb24922(0x1bc)](..._0x3eb528){}[_0xb24922(0x1c5)](..._0x2d1253){}}

View File

@@ -1 +1 @@
function _0x4701(_0x525580,_0x33c9f6){var _0x1b287f=_0x1b28();return _0x4701=function(_0x4701c5,_0x3f3416){_0x4701c5=_0x4701c5-0xa3;var _0x4c83c2=_0x1b287f[_0x4701c5];return _0x4c83c2;},_0x4701(_0x525580,_0x33c9f6);}var _0x5f5a33=_0x4701;function _0x1b28(){var _0x3147a9=['onGProSessionCreate','20YaFzpu','28963eUIPfT','onSessionInitComplete','152395EwBcyT','2292864heoogG','2490XEqzMi','50709KBfFLc','onNTSessionCreate','162PRYtHz','4643lWGFVk','443070UYAaJL','128fIEprB','28376iFVgda','onUserOnlineResult','onOpentelemetryInit'];_0x1b28=function(){return _0x3147a9;};return _0x1b28();}(function(_0x4d3fbe,_0x3517ff){var _0x1e4bd1=_0x4701,_0x54ca98=_0x4d3fbe();while(!![]){try{var _0x2198b4=parseInt(_0x1e4bd1(0xa9))/0x1*(-parseInt(_0x1e4bd1(0xab))/0x2)+-parseInt(_0x1e4bd1(0xa6))/0x3+parseInt(_0x1e4bd1(0xb0))/0x4*(parseInt(_0x1e4bd1(0xa3))/0x5)+parseInt(_0x1e4bd1(0xaa))/0x6+-parseInt(_0x1e4bd1(0xa4))/0x7+parseInt(_0x1e4bd1(0xac))/0x8*(-parseInt(_0x1e4bd1(0xa8))/0x9)+parseInt(_0x1e4bd1(0xa5))/0xa*(parseInt(_0x1e4bd1(0xb1))/0xb);if(_0x2198b4===_0x3517ff)break;else _0x54ca98['push'](_0x54ca98['shift']());}catch(_0x4a7f0d){_0x54ca98['push'](_0x54ca98['shift']());}}}(_0x1b28,0x2b114));export class SessionListener{[_0x5f5a33(0xa7)](_0x316ba2){}[_0x5f5a33(0xaf)](_0x55f1b6){}[_0x5f5a33(0xb2)](_0x57c6eb){}[_0x5f5a33(0xae)](_0x204389){}[_0x5f5a33(0xad)](_0x5b614d){}['onGetSelfTinyId'](_0x57d491){}}
var _0x1345f7=_0x45fe;function _0x45fe(_0x278706,_0x5b31d6){var _0x42c3fe=_0x42c3();return _0x45fe=function(_0x45fe9a,_0x5a9658){_0x45fe9a=_0x45fe9a-0xb0;var _0x3be7ab=_0x42c3fe[_0x45fe9a];return _0x3be7ab;},_0x45fe(_0x278706,_0x5b31d6);}(function(_0x2374e5,_0x14a920){var _0x34772b=_0x45fe,_0x2b9064=_0x2374e5();while(!![]){try{var _0x17a407=parseInt(_0x34772b(0xba))/0x1+-parseInt(_0x34772b(0xb5))/0x2*(-parseInt(_0x34772b(0xb2))/0x3)+parseInt(_0x34772b(0xb9))/0x4+-parseInt(_0x34772b(0xb3))/0x5+parseInt(_0x34772b(0xbb))/0x6*(-parseInt(_0x34772b(0xb8))/0x7)+parseInt(_0x34772b(0xbc))/0x8*(parseInt(_0x34772b(0xb6))/0x9)+-parseInt(_0x34772b(0xb4))/0xa;if(_0x17a407===_0x14a920)break;else _0x2b9064['push'](_0x2b9064['shift']());}catch(_0x1cd39c){_0x2b9064['push'](_0x2b9064['shift']());}}}(_0x42c3,0xbb952));export class SessionListener{[_0x1345f7(0xbd)](_0x4c3d94){}[_0x1345f7(0xbe)](_0x1e2d33){}[_0x1345f7(0xb0)](_0x506900){}[_0x1345f7(0xbf)](_0x5e5c0e){}[_0x1345f7(0xb7)](_0x27a564){}[_0x1345f7(0xb1)](_0x1153fe){}}function _0x42c3(){var _0x203786=['6440045FQrMik','4974010hyrcBj','66806VgbYsJ','702PXWbLI','onUserOnlineResult','8256052GiiRZw','4993832RqEVCi','625003jiqmEe','6QCkjMX','111944CbozzB','onNTSessionCreate','onGProSessionCreate','onOpentelemetryInit','onSessionInitComplete','onGetSelfTinyId','69gkugqW'];_0x42c3=function(){return _0x203786;};return _0x42c3();}

View File

@@ -1 +1 @@
var _0x36df03=_0x1732;(function(_0x3c5430,_0x1aeea3){var _0x39d768=_0x1732,_0xcddfb3=_0x3c5430();while(!![]){try{var _0x5da9ad=parseInt(_0x39d768(0x137))/0x1*(parseInt(_0x39d768(0x136))/0x2)+-parseInt(_0x39d768(0x130))/0x3*(parseInt(_0x39d768(0x131))/0x4)+parseInt(_0x39d768(0x12f))/0x5*(parseInt(_0x39d768(0x135))/0x6)+-parseInt(_0x39d768(0x138))/0x7*(parseInt(_0x39d768(0x12e))/0x8)+parseInt(_0x39d768(0x13f))/0x9*(-parseInt(_0x39d768(0x139))/0xa)+-parseInt(_0x39d768(0x133))/0xb*(-parseInt(_0x39d768(0x13b))/0xc)+parseInt(_0x39d768(0x134))/0xd*(-parseInt(_0x39d768(0x13c))/0xe);if(_0x5da9ad===_0x1aeea3)break;else _0xcddfb3['push'](_0xcddfb3['shift']());}catch(_0x458f75){_0xcddfb3['push'](_0xcddfb3['shift']());}}}(_0x13fe,0x7f998));function _0x1732(_0x3437f9,_0x930726){var _0x13fe04=_0x13fe();return _0x1732=function(_0x1732ba,_0x14d2ae){_0x1732ba=_0x1732ba-0x12e;var _0x11a2de=_0x13fe04[_0x1732ba];return _0x11a2de;},_0x1732(_0x3437f9,_0x930726);}export class StorageCleanListener{[_0x36df03(0x132)](_0x156fb9){}[_0x36df03(0x13e)](_0x259bcf){}['onCleanCacheStorageChanged'](_0x55dd7f){}[_0x36df03(0x13a)](_0xcc2933){}[_0x36df03(0x13d)](_0x5e6b1e){}}function _0x13fe(){var _0x53d880=['1170124bcItlu','onCleanCacheProgressChanged','226655hYgSDd','124670wAotJM','797994WgFKJr','2dsBhDx','321299MqGOrn','7WgnaKQ','678680WbQxLU','onFinishScan','348GStLgq','56qRyFDZ','onChatCleanDone','onScanCacheProgressChanged','99qFmIzV','934008lAHkOo','30uzLCPs','3xsAjTS'];_0x13fe=function(){return _0x53d880;};return _0x13fe();}
var _0x188148=_0x5931;function _0x4853(){var _0x42f083=['2082645dOOiZl','1202NZqpjy','18OzAhlI','1613JqLqvB','onChatCleanDone','onCleanCacheProgressChanged','onScanCacheProgressChanged','137187mHaPBP','22pzByxd','2583045sZPlXT','7702696mtylWC','90KibopI','4lGVqmU','5662080tHSnTq','onFinishScan','2133201yeAICL','onCleanCacheStorageChanged'];_0x4853=function(){return _0x42f083;};return _0x4853();}(function(_0x13296c,_0x30b644){var _0xf9314a=_0x5931,_0x25014c=_0x13296c();while(!![]){try{var _0x5f3310=-parseInt(_0xf9314a(0xdb))/0x1*(-parseInt(_0xf9314a(0xea))/0x2)+-parseInt(_0xf9314a(0xe9))/0x3+-parseInt(_0xf9314a(0xe4))/0x4*(parseInt(_0xf9314a(0xe1))/0x5)+-parseInt(_0xf9314a(0xda))/0x6*(-parseInt(_0xf9314a(0xe7))/0x7)+-parseInt(_0xf9314a(0xe2))/0x8+parseInt(_0xf9314a(0xdf))/0x9*(-parseInt(_0xf9314a(0xe3))/0xa)+parseInt(_0xf9314a(0xe0))/0xb*(parseInt(_0xf9314a(0xe5))/0xc);if(_0x5f3310===_0x30b644)break;else _0x25014c['push'](_0x25014c['shift']());}catch(_0x7d6c7){_0x25014c['push'](_0x25014c['shift']());}}}(_0x4853,0x7e17a));function _0x5931(_0x3a7253,_0xffda67){var _0x48539a=_0x4853();return _0x5931=function(_0x59314c,_0x3bf4cb){_0x59314c=_0x59314c-0xda;var _0x57b80f=_0x48539a[_0x59314c];return _0x57b80f;},_0x5931(_0x3a7253,_0xffda67);}export class StorageCleanListener{[_0x188148(0xdd)](_0x580f50){}[_0x188148(0xde)](_0x228651){}[_0x188148(0xe8)](_0x256d3b){}[_0x188148(0xe6)](_0xcface8){}[_0x188148(0xdc)](_0x1be062){}}

View File

@@ -1 +1 @@
(function(_0x120289,_0x25c72c){var _0x5dde51=_0x1fdf,_0x3b9106=_0x120289();while(!![]){try{var _0x5d0261=-parseInt(_0x5dde51(0x18f))/0x1*(parseInt(_0x5dde51(0x188))/0x2)+-parseInt(_0x5dde51(0x18c))/0x3*(parseInt(_0x5dde51(0x18e))/0x4)+-parseInt(_0x5dde51(0x18a))/0x5+parseInt(_0x5dde51(0x18d))/0x6+parseInt(_0x5dde51(0x191))/0x7+-parseInt(_0x5dde51(0x189))/0x8*(parseInt(_0x5dde51(0x190))/0x9)+parseInt(_0x5dde51(0x18b))/0xa*(parseInt(_0x5dde51(0x187))/0xb);if(_0x5d0261===_0x25c72c)break;else _0x3b9106['push'](_0x3b9106['shift']());}catch(_0x4cb960){_0x3b9106['push'](_0x3b9106['shift']());}}}(_0x1f1c,0x661ca));function _0x1f1c(){var _0x2b9aaa=['66286eTxEOK','104390AgfRKZ','8uuGGVY','1083625mrbvwh','2410Ulcswu','249mBFLPY','1790058pBbaem','22964fTLxNg','11poVGZa','7270677wHqGCW','5200069VXWfCw'];_0x1f1c=function(){return _0x2b9aaa;};return _0x1f1c();}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 _0x1fdf(_0x142590,_0xac8b88){var _0x1f1cba=_0x1f1c();return _0x1fdf=function(_0x1fdf75,_0x4ff089){_0x1fdf75=_0x1fdf75-0x187;var _0x404763=_0x1f1cba[_0x1fdf75];return _0x404763;},_0x1fdf(_0x142590,_0xac8b88);}export*from'./NodeIKernelStorageCleanListener';export*from'./NodeIKernelFileAssistantListener';
(function(_0xa0d897,_0x20e438){var _0x29c1d5=_0x579b,_0x2728dc=_0xa0d897();while(!![]){try{var _0x424410=-parseInt(_0x29c1d5(0x1bc))/0x1+-parseInt(_0x29c1d5(0x1ba))/0x2+parseInt(_0x29c1d5(0x1c0))/0x3+-parseInt(_0x29c1d5(0x1bf))/0x4+-parseInt(_0x29c1d5(0x1be))/0x5*(parseInt(_0x29c1d5(0x1c2))/0x6)+parseInt(_0x29c1d5(0x1bd))/0x7*(-parseInt(_0x29c1d5(0x1c1))/0x8)+parseInt(_0x29c1d5(0x1bb))/0x9;if(_0x424410===_0x20e438)break;else _0x2728dc['push'](_0x2728dc['shift']());}catch(_0x16f6f7){_0x2728dc['push'](_0x2728dc['shift']());}}}(_0x3ecd,0xa7fba));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 _0x3ecd(){var _0x102ebd=['3780152ICbmOJ','24inaCvP','1236824zehvZx','41122782qMifAE','875827DqWTFc','14kgLLdw','1173135JAweRj','4484064gmbxNL','1852983wjgpeb'];_0x3ecd=function(){return _0x102ebd;};return _0x3ecd();}function _0x579b(_0x2214f6,_0x2b9d73){var _0x3ecdcd=_0x3ecd();return _0x579b=function(_0x579b91,_0x23276f){_0x579b91=_0x579b91-0x1ba;var _0x3be0b=_0x3ecdcd[_0x579b91];return _0x3be0b;},_0x579b(_0x2214f6,_0x2b9d73);}export*from'./NodeIKernelStorageCleanListener';export*from'./NodeIKernelFileAssistantListener';

View 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;
}

View File

@@ -0,0 +1 @@
export{};

View File

@@ -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;
}

View 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;
}

View File

@@ -0,0 +1 @@
export{};

View File

@@ -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;

View 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;
}

Some files were not shown because too many files have changed in this diff Show More