Compare commits

...

168 Commits

Author SHA1 Message Date
手瓜一十雪
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
手瓜一十雪
1619adfc27 release: v1.4.2 2024-05-30 12:36:15 +08:00
手瓜一十雪
5510fb473f fix: typo 2024-05-30 12:02:47 +08:00
手瓜一十雪
be1878cb2b build: 1.4.2-fix:file list 2024-05-30 11:01:34 +08:00
手瓜一十雪
15ab121cbd fix: config 2024-05-29 14:26:45 +08:00
手瓜一十雪
aa79b0e861 fix: ocr 2024-05-29 14:18:43 +08:00
手瓜一十雪
b80e550bcd docs: 1.4.2 2024-05-29 12:14:17 +08:00
手瓜一十雪
dbc40b5814 release:1.4.1 2024-05-29 11:38:57 +08:00
Version
0d5696a644 chore:version change 2024-05-29 03:36:54 +00:00
手瓜一十雪
ceffa05802 fix 2024-05-29 11:36:04 +08:00
手瓜一十雪
d5668920b6 release: 1.4.1 2024-05-29 11:34:55 +08:00
手瓜一十雪
516f2da144 feat: en2zh 2024-05-29 10:25:13 +08:00
手瓜一十雪
33c94e1888 docs: 1.4.1 todo 2024-05-29 00:34:44 +08:00
手瓜一十雪
51ab58cd91 fix: webui 2024-05-29 00:07:05 +08:00
手瓜一十雪
aa7798d1d1 feat: wait fix 2024-05-29 00:00:48 +08:00
手瓜一十雪
9067a1fc92 refactor: info record local 2024-05-28 23:24:54 +08:00
手瓜一十雪
4024b6c564 Merge pull request #46 from po-lan/main
Update GetGroupMemberList.ts
2024-05-28 23:20:11 +08:00
po-lan
d39730928b Update GetGroupMemberList.ts
fix
2024-05-28 23:17:39 +08:00
手瓜一十雪
e1f049229c Merge pull request #45 from po-lan/main
对 get_group_member_list 增强
2024-05-28 22:49:21 +08:00
po-lan
8f2676ec19 Update main.ts 2024-05-28 22:43:41 +08:00
po-lan
32d26248dc Update main.ts 2024-05-28 22:41:40 +08:00
po-lan
16f926401b Update db.ts 2024-05-28 22:30:26 +08:00
po-lan
66d60d3599 Update main.ts 2024-05-28 22:27:12 +08:00
po-lan
5a35ab6c34 Update OB11GroupIncreaseEvent.ts 2024-05-28 22:26:02 +08:00
手瓜一十雪
ba1542bd31 Merge pull request #44 from po-lan/main
对 get_group_member_list 增强
2024-05-28 21:49:26 +08:00
po-lan
453060945a Update OB11GroupIncreaseEvent.ts 2024-05-28 21:47:05 +08:00
po-lan
c8351be461 Update config.ts 2024-05-28 21:45:36 +08:00
po-lan
9954da22a6 Update db.ts 2024-05-28 21:44:30 +08:00
手瓜一十雪
907b5611eb chore: sync core 2024-05-28 21:02:57 +08:00
手瓜一十雪
5f075de212 refactor: Info 2024-05-28 20:50:29 +08:00
手瓜一十雪
8fcf3c5079 refactor: GroupInfo 2024-05-28 20:43:16 +08:00
手瓜一十雪
07cee90c7a refactor: MemberInfo-1 2024-05-28 20:08:40 +08:00
手瓜一十雪
75ad495b98 refactor: remove some log 2024-05-28 19:32:08 +08:00
手瓜一十雪
0bb7288ad2 Merge pull request #40 from po-lan/main
对 get_group_member_list 增强
2024-05-28 19:21:25 +08:00
po-lan
ad72415532 对 get_group_member_list 增强开关 2024-05-27 17:11:26 +08:00
po-lan
0ad0353fc0 对 get_group_member_list 增强
监听每一条群聊消息准备写入数据库
2024-05-27 17:09:27 +08:00
po-lan
9fa0dcd7aa 对 get_group_member_list 增强
非管理员的Bot可以通过本地数据库获取到最近的发言时间
2024-05-27 17:07:23 +08:00
po-lan
1f2e80cd39 对 get_group_member_list 增强
一个基于LRU思想写出来的缓存结构
来降低写入数据库的次数
2024-05-27 17:05:28 +08:00
po-lan
6cb6034d43 对 get_group_member_list 增强 2024-05-27 17:01:24 +08:00
手瓜一十雪
25134c6ac6 fix: vite-env 2024-05-26 20:38:18 +08:00
手瓜一十雪
92bf42878a chore: sync core 2024-05-26 11:42:12 +08:00
手瓜一十雪
9f4582d158 docs: update 2024-05-25 19:30:48 +08:00
手瓜一十雪
68af73970e release: 1.4.0 2024-05-25 19:22:52 +08:00
手瓜一十雪
b6ed8d4975 docs: change 2024-05-25 16:55:02 +08:00
手瓜一十雪
d07d3645ce fix: typo 2024-05-25 13:42:10 +08:00
手瓜一十雪
123759ab17 fix: typo 2024-05-25 13:39:49 +08:00
手瓜一十雪
f2f1f893d8 feat: ocr image 2024-05-25 13:38:19 +08:00
手瓜一十雪
db93a8eed2 feat: /get_online_clients 2024-05-25 13:09:47 +08:00
手瓜一十雪
12ab6d4a7d fix 2024-05-25 12:48:13 +08:00
手瓜一十雪
add759e889 feat: try support get_online_clients 2024-05-25 12:02:09 +08:00
手瓜一十雪
f315f7977d feat: support card miniapp 2024-05-25 11:35:08 +08:00
手瓜一十雪
f2f6701ebd feat: support qzone.qq.com Cookies 2024-05-25 11:07:05 +08:00
手瓜一十雪
1a92794d33 chore: sync core 2024-05-24 23:25:14 +08:00
手瓜一十雪
7640deb798 feat: support mini app sign 2024-05-24 23:24:10 +08:00
手瓜一十雪
f1e8ef1cf6 fix: 紧急修复DetailInfo 2024-05-24 18:31:01 +08:00
手瓜一十雪
5e5ac0162e build: 1.3.8 2024-05-24 18:11:32 +08:00
手瓜一十雪
0c013820f0 chore: sync core 2024-05-24 13:51:40 +08:00
208 changed files with 4166 additions and 807 deletions

2
.gitignore vendored
View File

@@ -14,4 +14,4 @@ dist/
# Build
*.db
checkVersion.sh
checkVersion.sh

View File

@@ -0,0 +1,11 @@
# v1.5.6
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.3.9
QQ Version: Windows 9.9.10-23873 / Linux 3.2.7-23361
## 修复与优化
* 修复QQ等级获取与兼容性问题
## 新增与调整
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)

View File

@@ -0,0 +1,12 @@
# v1.4.0
QQ Version: Windows 9.9.10-24108 / Linux 3.2.7-23361
## 修复与优化
## 新增与调整
* 支持空间Cookies获取
* 支持获取在线设备 API /get_online_clients
* 支持图片OCR API /.ocr_image /ocr_image
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)

View File

@@ -0,0 +1,14 @@
# v1.4.1
QQ Version: Windows 9.9.10-24108 / Linux 3.2.7-23361
## 修复与优化
* 提高部分Api兼容性
* 优化日志膨胀问题
* 在线状态刷新问题修复
## 新增与调整
* 支持非管理群 本地记录时间数据 (建议 **备份配置 清空配置 重新配置**)
* 新增英译中接口 Api: /translate_en2zh
* 新增群文件管理相关扩展接口 Api: /get_group_file_count /get_group_file_list /set_group_file_folder /del_group_file /del_group_file_folder
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)

View File

@@ -0,0 +1,12 @@
# v1.4.2
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,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

@@ -1,66 +1,67 @@
{
"name": "napcat",
"private": true,
"type": "module",
"version": "1.3.8",
"scripts": {
"watch:dev": "vite --mode development",
"watch:prod": "vite --mode production",
"build:dev": "vite build --mode development",
"build:prod": "vite build --mode production",
"build": "npm run build:dev",
"build:core": "cd ./src/core && npm run build && cd ../.. && node ./script/copy-core.cjs",
"build:webui": "cd ./src/webui && vite build",
"watch": "npm run watch:dev",
"debug-win": "powershell dist/napcat.ps1",
"lint": "eslint --fix src/**/*.{js,ts}",
"release": "npm run build:prod",
"depend": "cd dist && npm install --omit=dev"
},
"devDependencies": {
"@log4js-node/log4js-api": "^1.0.2",
"@rollup/plugin-node-resolve": "^15.2.3",
"@rollup/plugin-typescript": "^11.1.6",
"@types/cors": "^2.8.17",
"@types/express": "^4.17.21",
"@types/figlet": "^1.5.8",
"@types/fluent-ffmpeg": "^2.1.24",
"@types/node": "^20.11.30",
"@types/qrcode-terminal": "^0.12.2",
"@types/uuid": "^9.0.8",
"@types/ws": "^8.5.10",
"@typescript-eslint/eslint-plugin": "^7.4.0",
"@typescript-eslint/parser": "^7.4.0",
"eslint": "^8.57.0",
"eslint-import-resolver-typescript": "^3.6.1",
"eslint-plugin-import": "^2.29.1",
"i": "^0.3.7",
"javascript-obfuscator": "^4.1.0",
"rollup": "^4.13.2",
"rollup-plugin-dts": "^6.1.0",
"rollup-plugin-obfuscator": "^1.1.0",
"typescript": "^5.3.3",
"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"
},
"dependencies": {
"ajv": "^8.13.0",
"commander": "^12.0.0",
"cors": "^2.8.5",
"express": "^5.0.0-beta.2",
"fast-xml-parser": "^4.3.6",
"file-type": "^19.0.0",
"fluent-ffmpeg": "^2.1.2",
"image-size": "^1.1.1",
"json-schema-to-ts": "^3.1.0",
"log4js": "^6.9.1",
"qrcode-terminal": "^0.12.0",
"silk-wasm": "^3.3.4",
"sqlite3": "^5.1.7",
"uuid": "^9.0.1",
"ws": "^8.16.0"
}
}
{
"name": "napcat",
"private": true,
"type": "module",
"version": "1.5.6",
"scripts": {
"watch:dev": "vite --mode development",
"watch:prod": "vite --mode production",
"build:dev": "vite build --mode development",
"build:prod": "vite build --mode production",
"build": "npm run build:dev",
"build:core": "cd ./src/core && npm run build && cd ../.. && node ./script/copy-core.cjs",
"build:webui": "cd ./src/webui && vite build",
"watch": "npm run watch:dev",
"debug-win": "powershell dist/napcat.ps1",
"lint": "eslint --fix src/**/*.{js,ts}",
"release": "npm run build:prod",
"depend": "cd dist && npm install --omit=dev"
},
"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",
"@types/express": "^4.17.21",
"@types/figlet": "^1.5.8",
"@types/fluent-ffmpeg": "^2.1.24",
"@types/node": "^20.11.30",
"@types/qrcode-terminal": "^0.12.2",
"@types/uuid": "^9.0.8",
"@types/ws": "^8.5.10",
"@typescript-eslint/eslint-plugin": "^7.4.0",
"@typescript-eslint/parser": "^7.4.0",
"eslint": "^8.57.0",
"eslint-import-resolver-typescript": "^3.6.1",
"eslint-plugin-import": "^2.29.1",
"i": "^0.3.7",
"javascript-obfuscator": "^4.1.0",
"rollup": "^4.13.2",
"rollup-plugin-dts": "^6.1.0",
"rollup-plugin-obfuscator": "^1.1.0",
"typescript": "^5.3.3",
"vite": "^5.2.6",
"vite-plugin-cp": "^4.0.8",
"vite-plugin-dts": "^3.8.2",
"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",
"fast-xml-parser": "^4.3.6",
"file-type": "^19.0.0",
"fluent-ffmpeg": "^2.1.2",
"image-size": "^1.1.1",
"json-schema-to-ts": "^3.1.0",
"log4js": "^6.9.1",
"qrcode-terminal": "^0.12.0",
"silk-wasm": "^3.3.4",
"sqlite3": "^5.1.7",
"uuid": "^10.0.0",
"ws": "^8.16.0"
}
}

View File

@@ -37,14 +37,14 @@ export abstract class HttpServerBase {
const authHeader = req.get('authorization');
if (authHeader) {
clientToken = authHeader.split('Bearer ').pop() || '';
logDebug('receive http header token', clientToken);
//logDebug('receive http header token', clientToken);
} else if (req.query.access_token) {
if (Array.isArray(req.query.access_token)) {
clientToken = req.query.access_token[0].toString();
} else {
clientToken = req.query.access_token.toString();
}
logDebug('receive http url token', clientToken);
//logDebug('receive http url token', clientToken);
}
if (serverToken && clientToken != serverToken) {

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

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

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,7 +65,7 @@ export const qqPkgInfo: QQPkgInfo = JSON.parse(fs.readFileSync(pkgInfoPath).toSt
// platVer: '10.0.26100',
// clientVer: '9.9.9-23159',
let _appid: string = '537213803'; // 默认为 Windows 平台的 appid
let _appid: string = '537226369'; // 默认为 Windows 平台的 appid
if (systemPlatform === 'linux') {
_appid = '537213827';
}

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

449
src/common/utils/db.ts Normal file
View File

@@ -0,0 +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);
}
});
}
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,8 +3,8 @@ import fsPromise from 'fs/promises';
import crypto from 'crypto';
import util from 'util';
import path from 'node:path';
import { log } from './log';
import { dbUtil } from '@/core/utils/db';
import { log, logError } from './log';
import { dbUtil } from '@/common/utils/db';
import * as fileType from 'file-type';
import { v4 as uuidv4 } from 'uuid';
import { napCatCore } from '@/core';
@@ -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

@@ -138,6 +138,10 @@ export function migrateConfig(oldConfig: any) {
enable: oldConfig.enableWsReverse,
urls: oldConfig.wsReverseUrls,
},
GroupLocalTime: {
Record: false,
RecordList: []
},
debug: oldConfig.debug,
heartInterval: oldConfig.heartInterval,
messagePostFormat: oldConfig.messagePostFormat,
@@ -145,6 +149,7 @@ export function migrateConfig(oldConfig: any) {
musicSignUrl: oldConfig.musicSignUrl,
reportSelfMessage: oldConfig.reportSelfMessage,
token: oldConfig.token,
};
return newConfig;
}

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

@@ -3,32 +3,51 @@ import http from 'node:http';
export class RequestUtil {
// 适用于获取服务器下发cookies时获取仅GET
static async HttpsGetCookies(url: string): Promise<Map<string, string>> {
return new Promise<Map<string, string>>((resolve, reject) => {
const protocol = url.startsWith('https://') ? https : http;
protocol.get(url, (res) => {
const cookiesHeader = res.headers['set-cookie'];
if (!cookiesHeader) {
resolve(new Map<string, string>());
} else {
const cookiesMap = new Map<string, string>();
cookiesHeader.forEach((cookieStr) => {
cookieStr.split(';').forEach((cookiePart) => {
const trimmedPart = cookiePart.trim();
if (trimmedPart.includes('=')) {
const [key, value] = trimmedPart.split('=').map(part => part.trim());
cookiesMap.set(key, decodeURIComponent(value)); // 解码cookie值
}
});
static async HttpsGetCookies(url: string): Promise<{ [key: string]: string }> {
const client = url.startsWith('https') ? https : http;
return new Promise((resolve, reject) => {
client.get(url, (res) => {
let cookies: { [key: string]: string } = {};
const handleRedirect = (res: http.IncomingMessage) => {
//console.log(res.headers.location);
if (res.statusCode === 301 || res.statusCode === 302) {
if (res.headers.location) {
const redirectUrl = new URL(res.headers.location, url);
RequestUtil.HttpsGetCookies(redirectUrl.href).then((redirectCookies) => {
// 合并重定向过程中的cookies
cookies = { ...cookies, ...redirectCookies };
resolve(cookies);
});
} else {
resolve(cookies);
}
} else {
resolve(cookies);
}
};
res.on('data', () => { }); // Necessary to consume the stream
res.on('end', () => {
handleRedirect(res);
});
if (res.headers['set-cookie']) {
//console.log(res.headers['set-cookie']);
res.headers['set-cookie'].forEach((cookie) => {
const parts = cookie.split(';')[0].split('=');
const key = parts[0];
const value = parts[1];
if (key && value && key.length > 0 && value.length > 0) {
cookies[key] = value;
}
});
resolve(cookiesMap);
}
}).on('error', (error) => {
reject(error);
}).on('error', (err) => {
reject(err);
});
});
}
// 请求和回复都是JSON data传原始内容 自动编码json
static async HttpGetJson<T>(url: string, method: string = 'GET', data?: any, headers: Record<string, string> = {}, isJsonRet: boolean = true, isArgJson: boolean = true): Promise<T> {
const option = new URL(url);

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 _0x201b(){var _0x2b4fc4=['616tYGRlF','11XkhEXj','5tvHPqu','1TJnXlY','339600ywIDdH','10290RxANja','163276NVhEfu','onMSFSsoError','3179930XmQKaN','206637KEYrOU','1997744mrggFI','3695742kPmxRj','onMSFStatusChange'];_0x201b=function(){return _0x2b4fc4;};return _0x201b();}var _0xc0b873=_0x544b;(function(_0x332a1b,_0x2b8851){var _0x37a37a=_0x544b,_0x300a9a=_0x332a1b();while(!![]){try{var _0x3871d0=parseInt(_0x37a37a(0x1ca))/0x1*(parseInt(_0x37a37a(0x1cd))/0x2)+-parseInt(_0x37a37a(0x1c3))/0x3+-parseInt(_0x37a37a(0x1c4))/0x4+-parseInt(_0x37a37a(0x1c9))/0x5*(parseInt(_0x37a37a(0x1cb))/0x6)+parseInt(_0x37a37a(0x1cc))/0x7*(parseInt(_0x37a37a(0x1c7))/0x8)+parseInt(_0x37a37a(0x1c5))/0x9+-parseInt(_0x37a37a(0x1cf))/0xa*(-parseInt(_0x37a37a(0x1c8))/0xb);if(_0x3871d0===_0x2b8851)break;else _0x300a9a['push'](_0x300a9a['shift']());}catch(_0x9f9de4){_0x300a9a['push'](_0x300a9a['shift']());}}}(_0x201b,0x48e30));function _0x544b(_0x53730d,_0x8455a8){var _0x201bf2=_0x201b();return _0x544b=function(_0x544bc9,_0x5870b7){_0x544bc9=_0x544bc9-0x1c3;var _0x259aed=_0x201bf2[_0x544bc9];return _0x259aed;},_0x544b(_0x53730d,_0x8455a8);}export class DependsAdapter{[_0xc0b873(0x1c6)](_0x321ed0,_0x2594d7){}[_0xc0b873(0x1ce)](_0x186df0){}['getGroupCode'](_0x5bb868){}}
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 @@
var _0x21dadd=_0x40b8;(function(_0x10a18d,_0x4ae609){var _0x59df0d=_0x40b8,_0x3c56e6=_0x10a18d();while(!![]){try{var _0x31fdfa=-parseInt(_0x59df0d(0x1d3))/0x1*(parseInt(_0x59df0d(0x1ce))/0x2)+-parseInt(_0x59df0d(0x1cd))/0x3+parseInt(_0x59df0d(0x1ca))/0x4*(parseInt(_0x59df0d(0x1d2))/0x5)+parseInt(_0x59df0d(0x1d1))/0x6+-parseInt(_0x59df0d(0x1cf))/0x7+parseInt(_0x59df0d(0x1c8))/0x8+parseInt(_0x59df0d(0x1c9))/0x9;if(_0x31fdfa===_0x4ae609)break;else _0x3c56e6['push'](_0x3c56e6['shift']());}catch(_0x4cb115){_0x3c56e6['push'](_0x3c56e6['shift']());}}}(_0xf9fb,0xf41b6));function _0xf9fb(){var _0x334c3e=['3091416IKpRSJ','16814358eyEUFb','2152lpDUrA','dispatchCallWithJson','dispatchRequest','177744ZUzNoZ','4SufjbE','6013385nIUesq','dispatchCall','6169248PBFZfS','1105RuTOAO','741815dPjrCZ'];_0xf9fb=function(){return _0x334c3e;};return _0xf9fb();}function _0x40b8(_0x3760a9,_0x202153){var _0xf9fb6a=_0xf9fb();return _0x40b8=function(_0x40b897,_0x375ee2){_0x40b897=_0x40b897-0x1c8;var _0x416357=_0xf9fb6a[_0x40b897];return _0x416357;},_0x40b8(_0x3760a9,_0x202153);}export class DispatcherAdapter{[_0x21dadd(0x1cc)](_0x84c9ef){}[_0x21dadd(0x1d0)](_0x3a3b37){}[_0x21dadd(0x1cb)](_0x13176f){}}
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 _0x2492ef=_0x1abe;function _0xa491(){var _0x2bb6a5=['27uqoEkY','2089598vRULYp','36LYeTDM','356024gbmJKJ','3PHyUct','145FNmTJZ','onUpdateGeneralFlag','5052CIWyYs','548408moGsYL','onInstallFinished','9033040UUQDGg','637gngiNP','onLog','50688zTGKHr','2944403McpWQX'];_0xa491=function(){return _0x2bb6a5;};return _0xa491();}function _0x1abe(_0x4549ff,_0x4b4a51){var _0xa491a3=_0xa491();return _0x1abe=function(_0x1abe41,_0x161295){_0x1abe41=_0x1abe41-0x8e;var _0x5bad2b=_0xa491a3[_0x1abe41];return _0x5bad2b;},_0x1abe(_0x4549ff,_0x4b4a51);}(function(_0x573f0b,_0x24140a){var _0x31869e=_0x1abe,_0x15bcbe=_0x573f0b();while(!![]){try{var _0x3fb875=parseInt(_0x31869e(0x9b))/0x1+-parseInt(_0x31869e(0x99))/0x2*(-parseInt(_0x31869e(0x9c))/0x3)+-parseInt(_0x31869e(0x90))/0x4*(-parseInt(_0x31869e(0x8e))/0x5)+-parseInt(_0x31869e(0x96))/0x6*(-parseInt(_0x31869e(0x94))/0x7)+parseInt(_0x31869e(0x91))/0x8*(parseInt(_0x31869e(0x98))/0x9)+-parseInt(_0x31869e(0x93))/0xa+parseInt(_0x31869e(0x97))/0xb*(-parseInt(_0x31869e(0x9a))/0xc);if(_0x3fb875===_0x24140a)break;else _0x15bcbe['push'](_0x15bcbe['shift']());}catch(_0x373a28){_0x15bcbe['push'](_0x15bcbe['shift']());}}}(_0xa491,0xac40c));export class GlobalAdapter{[_0x2492ef(0x95)](..._0x4ed74a){}['onGetSrvCalTime'](..._0x447fbc){}['onShowErrUITips'](..._0xde50b7){}['fixPicImgType'](..._0x178050){}['getAppSetting'](..._0x567d8c){}[_0x2492ef(0x92)](..._0x55001b){}[_0x2492ef(0x8f)](..._0x1ee30a){}['onGetOfflineMsg'](..._0x1f1bbd){}}
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 _0x5515(_0xec437d,_0x146dac){var _0x2b3ace=_0x2b3a();return _0x5515=function(_0x5515b6,_0x1905fc){_0x5515b6=_0x5515b6-0x197;var _0x51cfc8=_0x2b3ace[_0x5515b6];return _0x51cfc8;},_0x5515(_0xec437d,_0x146dac);}function _0x2b3a(){var _0x35c9e3=['104xSJCiU','6113220bQmOis','2398hRcVLl','830zXUMUy','275694JsBSyq','1394358SaGxEv','58KJmGWJ','390FGWDTp','9059ohCfEF','130002EnValB','12amPgvn','363069aaorcv'];_0x2b3a=function(){return _0x35c9e3;};return _0x2b3a();}(function(_0x37a1a6,_0x36c8b5){var _0x43754c=_0x5515,_0x42e5f5=_0x37a1a6();while(!![]){try{var _0x1f7df1=parseInt(_0x43754c(0x1a0))/0x1*(-parseInt(_0x43754c(0x19e))/0x2)+-parseInt(_0x43754c(0x19c))/0x3*(-parseInt(_0x43754c(0x1a2))/0x4)+-parseInt(_0x43754c(0x19f))/0x5*(-parseInt(_0x43754c(0x1a1))/0x6)+parseInt(_0x43754c(0x19d))/0x7+parseInt(_0x43754c(0x198))/0x8*(-parseInt(_0x43754c(0x197))/0x9)+parseInt(_0x43754c(0x19b))/0xa*(parseInt(_0x43754c(0x19a))/0xb)+-parseInt(_0x43754c(0x199))/0xc;if(_0x1f7df1===_0x36c8b5)break;else _0x42e5f5['push'](_0x42e5f5['shift']());}catch(_0x3e0445){_0x42e5f5['push'](_0x42e5f5['shift']());}}}(_0x2b3a,0xd869d));export*from'./NodeIDependsAdapter';export*from'./NodeIDispatcherAdapter';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 @@
function _0x5305(_0x4234a0,_0x3c14f5){const _0x12b425=_0x12b4();return _0x5305=function(_0x5305d9,_0x4fcec8){_0x5305d9=_0x5305d9-0xff;let _0x5d86b9=_0x12b425[_0x5305d9];return _0x5d86b9;},_0x5305(_0x4234a0,_0x3c14f5);}const _0x9aa6ca=_0x5305;(function(_0x4507b1,_0x1ecd56){const _0x3c79c8=_0x5305,_0x43ab69=_0x4507b1();while(!![]){try{const _0x313bf9=parseInt(_0x3c79c8(0x10e))/0x1*(-parseInt(_0x3c79c8(0x120))/0x2)+-parseInt(_0x3c79c8(0x115))/0x3+-parseInt(_0x3c79c8(0x108))/0x4+parseInt(_0x3c79c8(0x102))/0x5*(-parseInt(_0x3c79c8(0x10b))/0x6)+parseInt(_0x3c79c8(0x116))/0x7*(parseInt(_0x3c79c8(0x107))/0x8)+parseInt(_0x3c79c8(0x110))/0x9*(-parseInt(_0x3c79c8(0x11c))/0xa)+parseInt(_0x3c79c8(0x104))/0xb;if(_0x313bf9===_0x1ecd56)break;else _0x43ab69['push'](_0x43ab69['shift']());}catch(_0x17e0b7){_0x43ab69['push'](_0x43ab69['shift']());}}}(_0x12b4,0x6317a));function _0x12b4(){const _0x24ddd9=['getFriends','30sRXDSH','buddyList','approvalFriendRequest','41879jZSspG','KwlBp','9BWBHnQ','getBuddyService','uin','TlQkn','XOQdT','41973ZAqiMK','217aNacjU','NxjVh','onBuddyListChange','reqTime','YFSdW','UKDLL','7513290hmZyoK','push','yBqoA','getBuddyList','14qILoEw','获取好友列表超时','session','FCMqh','156795PvRDgG','then','19724859KipXUr','delete','set','4496mxCNhK','757764KIuNmI','uid'];_0x12b4=function(){return _0x24ddd9;};return _0x12b4();}import{BuddyListener,napCatCore}from'@/core';import{logDebug}from'@/common/utils/log';import{uid2UinMap}from'@/core/data';import{randomUUID}from'crypto';const buddyChangeTasks=new Map(),buddyListener=new BuddyListener();buddyListener[_0x9aa6ca(0x118)]=_0x35016d=>{const _0x54e1db=_0x9aa6ca,_0x5cf8da={'FCMqh':function(_0x521182,_0x402dae){return _0x521182(_0x402dae);}};for(const [_0x29b0df,_0x2fec11]of buddyChangeTasks){_0x5cf8da[_0x54e1db(0x101)](_0x2fec11,_0x35016d),buddyChangeTasks[_0x54e1db(0x105)](_0x29b0df);}},setTimeout(()=>{napCatCore['onLoginSuccess'](()=>{napCatCore['addListener'](buddyListener);});},0x64);export class NTQQFriendApi{static async[_0x9aa6ca(0x10a)](_0x5a84f2=![]){const _0x53c2d2=_0x9aa6ca,_0x53b045={'TlQkn':function(_0x5601d4,_0x414a5f){return _0x5601d4(_0x414a5f);},'NxjVh':_0x53c2d2(0xff),'RhLos':function(_0x13371f,_0x4cbc07,_0x5aa361){return _0x13371f(_0x4cbc07,_0x5aa361);},'rMiwi':'获取好友列表完成','yBqoA':'开始获取好友列表','XOQdT':function(_0x5482cb){return _0x5482cb();}};return new Promise((_0x218a32,_0x1ee5f9)=>{const _0x2a6b4e=_0x53c2d2,_0x38ad26={'YFSdW':function(_0xe6b8b6,_0x4bd8f6,_0x26d26d){return _0x53b045['RhLos'](_0xe6b8b6,_0x4bd8f6,_0x26d26d);},'KwlBp':_0x53b045['rMiwi'],'UKDLL':_0x53b045[_0x2a6b4e(0x11e)]};let _0x36b6b8=![];setTimeout(()=>{const _0x237265=_0x2a6b4e;!_0x36b6b8&&(_0x53b045[_0x237265(0x113)](logDebug,_0x53b045[_0x237265(0x117)]),_0x53b045[_0x237265(0x113)](_0x1ee5f9,_0x53b045[_0x237265(0x117)]));},0x1388);const _0x2a5711=[],_0xd76275=_0x149cc0=>{const _0x56f7a2=_0x2a6b4e;for(const _0x2855a3 of _0x149cc0){for(const _0x2d7aa2 of _0x2855a3[_0x56f7a2(0x10c)]){_0x2a5711[_0x56f7a2(0x11d)](_0x2d7aa2),uid2UinMap[_0x2d7aa2[_0x56f7a2(0x109)]]=_0x2d7aa2[_0x56f7a2(0x112)];}}_0x36b6b8=!![],_0x38ad26[_0x56f7a2(0x11a)](logDebug,_0x38ad26[_0x56f7a2(0x10f)],_0x2a5711),_0x218a32(_0x2a5711);};buddyChangeTasks[_0x2a6b4e(0x106)](_0x53b045[_0x2a6b4e(0x114)](randomUUID),_0xd76275),napCatCore[_0x2a6b4e(0x100)]['getBuddyService']()[_0x2a6b4e(0x11f)](_0x5a84f2)[_0x2a6b4e(0x103)](_0x3cca42=>{const _0x21773a=_0x2a6b4e;_0x38ad26['YFSdW'](logDebug,_0x38ad26[_0x21773a(0x11b)],_0x3cca42);});});}static async['handleFriendRequest'](_0x225a2e,_0x182c2b){const _0x200e2e=_0x9aa6ca;napCatCore[_0x200e2e(0x100)][_0x200e2e(0x111)]()?.[_0x200e2e(0x10d)]({'friendUid':_0x225a2e['friendUid'],'reqTime':_0x225a2e[_0x200e2e(0x119)],'accept':_0x182c2b});}}
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,11 +1,38 @@
import { GroupMember, GroupRequestOperateTypes, GroupMemberRole, GroupNotify, Group } from '../entities';
import { GeneralCallResult } from '@/core';
export declare class NTQQGroupApi {
static getGroups(forced?: boolean): Promise<Group[]>;
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<GeneralCallResult & {
transGroupFileResult: {
result: any;
successFileIdList: any[];
failFileIdList: any[];
};
}>;
static DelGroupFileFolder(groupCode: string, folderId: string): Promise<GeneralCallResult & {
groupFileCommonResult: {
retCode: number;
retMsg: string;
clientWording: string;
};
}>;
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<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;
@@ -29,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(_0x7df16d,_0x40dd30){var _0x27d423=_0x21b0,_0x470eb6=_0x7df16d();while(!![]){try{var _0x17b757=parseInt(_0x27d423(0x180))/0x1+parseInt(_0x27d423(0x17a))/0x2*(-parseInt(_0x27d423(0x17f))/0x3)+parseInt(_0x27d423(0x17b))/0x4*(parseInt(_0x27d423(0x17e))/0x5)+parseInt(_0x27d423(0x17c))/0x6+parseInt(_0x27d423(0x17d))/0x7+-parseInt(_0x27d423(0x182))/0x8+-parseInt(_0x27d423(0x181))/0x9;if(_0x17b757===_0x40dd30)break;else _0x470eb6['push'](_0x470eb6['shift']());}catch(_0x36afb2){_0x470eb6['push'](_0x470eb6['shift']());}}}(_0x5ca7,0x4fe29));function _0x21b0(_0x78f1a2,_0x4e7997){var _0x5ca7d6=_0x5ca7();return _0x21b0=function(_0x21b0ba,_0x43cf03){_0x21b0ba=_0x21b0ba-0x17a;var _0x48101f=_0x5ca7d6[_0x21b0ba];return _0x48101f;},_0x21b0(_0x78f1a2,_0x4e7997);}export*from'./file';export*from'./friend';export*from'./group';export*from'./msg';function _0x5ca7(){var _0x2293bf=['38ffLWVH','32996SFbSjm','122262dEFbUA','4539220geklDp','130ZHPdEr','7725rxlmkO','373687VxywCO','6877107SWQLrY','933928YcZZvx'];_0x5ca7=function(){return _0x2293bf;};return _0x5ca7();}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

@@ -1,4 +1,4 @@
import { Peer, RawMessage, SendMessageElement } from '@/core/entities';
import { GetFileListParam, Peer, RawMessage, SendMessageElement } from '@/core/entities';
import { GeneralCallResult } from '@/core/services/common';
export declare class NTQQMsgApi {
static setEmojiLike(peer: Peer, msgSeq: string, emojiId: string, set?: boolean): Promise<unknown>;
@@ -8,12 +8,13 @@ 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>;
static activateChatAndGetHistory(peer: Peer): Promise<void>;
static setMsgRead(peer: Peer): Promise<GeneralCallResult>;
static getGroupFileList(GroupCode: string, params: GetFileListParam): Promise<any[]>;
static getMsgHistory(peer: Peer, msgId: string, count: number): Promise<GeneralCallResult & {
msgList: RawMessage[];
}>;

File diff suppressed because one or more lines are too long

View File

@@ -10,3 +10,14 @@ export interface CustomMusicSignPostData {
image?: string;
singer?: string;
}
export interface MiniAppLuaJsonType {
prompt: string;
title: string;
preview: string;
jumpUrl: string;
tag: string;
tagIcon: string;
source: string;
sourcelogo: string;
}
export declare function SignMiniApp(CardData: MiniAppLuaJsonType): Promise<string>;

View File

@@ -1 +1 @@
export{};
(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,3 +1,12 @@
import { GeneralCallResult } from '@/core';
export declare class NTQQSystemApi {
static hasOtherRunningQQProcess(): Promise<boolean>;
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 @@
var _0x2d57de=_0x17be;function _0x2236(){var _0x135738=['1RVJTVj','163942IFsQFB','hasOtherRunningQQProcess','3861180sIgVjq','820nPgqVw','5088141JvHGWm','34078dmmowL','1182lMRIxE','util','19119QeJMbA','8NYZhWn','76CaLxeM','4454961fZNRjv'];_0x2236=function(){return _0x135738;};return _0x2236();}function _0x17be(_0x4c7f7b,_0x8af039){var _0x223628=_0x2236();return _0x17be=function(_0x17be05,_0x265987){_0x17be05=_0x17be05-0x1bc;var _0x50b1c0=_0x223628[_0x17be05];return _0x50b1c0;},_0x17be(_0x4c7f7b,_0x8af039);}(function(_0x28b22a,_0x51488d){var _0x1f622b=_0x17be,_0x1782d7=_0x28b22a();while(!![]){try{var _0x31ff17=-parseInt(_0x1f622b(0x1c2))/0x1*(parseInt(_0x1f622b(0x1c3))/0x2)+parseInt(_0x1f622b(0x1be))/0x3*(parseInt(_0x1f622b(0x1c0))/0x4)+-parseInt(_0x1f622b(0x1c6))/0x5*(-parseInt(_0x1f622b(0x1bc))/0x6)+-parseInt(_0x1f622b(0x1c1))/0x7+-parseInt(_0x1f622b(0x1bf))/0x8*(-parseInt(_0x1f622b(0x1c7))/0x9)+parseInt(_0x1f622b(0x1c5))/0xa+-parseInt(_0x1f622b(0x1c8))/0xb;if(_0x31ff17===_0x51488d)break;else _0x1782d7['push'](_0x1782d7['shift']());}catch(_0x380f0b){_0x1782d7['push'](_0x1782d7['shift']());}}}(_0x2236,0x5d98a));import{napCatCore}from'@/core';export class NTQQSystemApi{static async[_0x2d57de(0x1c4)](){var _0x8eb3e0=_0x2d57de;return napCatCore[_0x8eb3e0(0x1bd)]['hasOtherRunningQQProcess']();}}
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,9 +16,16 @@ 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;
}>;
static getRobotUinRange(): Promise<Array<any>>;
static getQzoneCookies(): Promise<{
[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,8 +1,11 @@
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;
CreatTime: number;
Cookies: Map<string, string>;
ClientKey: string;
KeyIndex: string;
PskeyData: Map<string, string>;
PskeyTime: Map<string, number>;
};
@@ -15,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 @@
const _0x2735a1=_0x7d0e;(function(_0x48b44f,_0x37f6d7){const _0x5bce74=_0x7d0e,_0x51e476=_0x48b44f();while(!![]){try{const _0x1e2289=-parseInt(_0x5bce74(0x79))/0x1*(parseInt(_0x5bce74(0x65))/0x2)+-parseInt(_0x5bce74(0x66))/0x3*(parseInt(_0x5bce74(0x67))/0x4)+-parseInt(_0x5bce74(0x78))/0x5*(-parseInt(_0x5bce74(0x6c))/0x6)+-parseInt(_0x5bce74(0x82))/0x7*(parseInt(_0x5bce74(0x6f))/0x8)+parseInt(_0x5bce74(0x76))/0x9+-parseInt(_0x5bce74(0x68))/0xa*(parseInt(_0x5bce74(0x7a))/0xb)+parseInt(_0x5bce74(0x72))/0xc*(parseInt(_0x5bce74(0x7c))/0xd);if(_0x1e2289===_0x37f6d7)break;else _0x51e476['push'](_0x51e476['shift']());}catch(_0x58b8bb){_0x51e476['push'](_0x51e476['shift']());}}}(_0x5ea6,0x9b181));import{isNumeric}from'@/common/utils/helper';import{NTQQGroupApi}from'@/core/apis';export const Credentials={'Skey':'','CreatTime':0x0,'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(_0x2de053){const _0x1809e5=_0x7d0e;groups[_0x1809e5(0x7d)](_0x2de053),groupMembers[_0x1809e5(0x7d)](_0x2de053);}export const groupMembers=new Map();export const friends=new Map();export const friendRequests={};export const groupNotifies={};function _0x7d0e(_0x1bdf9b,_0x178f47){const _0x5ea60a=_0x5ea6();return _0x7d0e=function(_0x7d0e53,_0x46770b){_0x7d0e53=_0x7d0e53-0x65;let _0x1bd909=_0x5ea60a[_0x7d0e53];return _0x1bd909;},_0x7d0e(_0x1bdf9b,_0x178f47);}export const napCatError={'ffmpegError':'','httpServerError':'','wsServerError':'','otherError':_0x2735a1(0x6d)};export async function getFriend(_0x3d749c){const _0x591bcc=_0x2735a1,_0x532fc7={'XyglG':function(_0x2b13ca,_0xaaa7a6){return _0x2b13ca(_0xaaa7a6);}};_0x3d749c=_0x3d749c[_0x591bcc(0x71)]();if(_0x532fc7['XyglG'](isNumeric,_0x3d749c)){const _0x1e1444=Array[_0x591bcc(0x6a)](friends[_0x591bcc(0x6e)]());return _0x1e1444[_0x591bcc(0x80)](_0x428547=>_0x428547[_0x591bcc(0x7b)]===_0x3d749c);}else return friends[_0x591bcc(0x81)](_0x3d749c);}export async function getGroup(_0x3d54c4){const _0x3b5493=_0x2735a1;let _0x2d8287=groups[_0x3b5493(0x81)](_0x3d54c4['toString']());if(!_0x2d8287)try{const _0xf0d704=await NTQQGroupApi[_0x3b5493(0x73)]();_0xf0d704[_0x3b5493(0x75)]&&_0xf0d704[_0x3b5493(0x74)](_0x4fcdef=>{const _0x442155=_0x3b5493;groups[_0x442155(0x7e)](_0x4fcdef[_0x442155(0x77)],_0x4fcdef);});}catch(_0x4b7a1f){return undefined;}return _0x2d8287=groups[_0x3b5493(0x81)](_0x3d54c4[_0x3b5493(0x71)]()),_0x2d8287;}function _0x5ea6(){const _0x4198da=['NapCat未能正常启动请检查日志查看错误','values','5216264ciBYHK','cmOZj','toString','5172CMtJzt','getGroups','forEach','length','1677042uHaYVo','groupCode','4540885xEjwmt','25QNYZHR','4752refAfW','uin','60073IfEORt','delete','set','huywW','find','get','7HonMKK','74330naoPBe','1414317jqJcAN','4jmGLED','9220KMOAdx','getGroupMembers','from','maTjZ','6Mtqaty'];_0x5ea6=function(){return _0x4198da;};return _0x5ea6();}export async function getGroupMember(_0x472671,_0x2d725d){const _0x1f4735=_0x2735a1,_0x5a1111={'cmOZj':function(_0x2175f9,_0x2d953f){return _0x2175f9(_0x2d953f);},'maTjZ':function(_0x15c4c6){return _0x15c4c6();}};_0x472671=_0x472671[_0x1f4735(0x71)](),_0x2d725d=_0x2d725d['toString']();let _0x5f5d20=groupMembers[_0x1f4735(0x81)](_0x472671);if(!_0x5f5d20)try{_0x5f5d20=await NTQQGroupApi[_0x1f4735(0x69)](_0x472671),groupMembers['set'](_0x472671,_0x5f5d20);}catch(_0x2fae15){return null;}const _0x5825f5=()=>{const _0x3dd941=_0x1f4735;let _0x5ac10d=undefined;return _0x5a1111[_0x3dd941(0x70)](isNumeric,_0x2d725d)?_0x5ac10d=Array[_0x3dd941(0x6a)](_0x5f5d20[_0x3dd941(0x6e)]())[_0x3dd941(0x80)](_0x23692a=>_0x23692a[_0x3dd941(0x7b)]===_0x2d725d):_0x5ac10d=_0x5f5d20[_0x3dd941(0x81)](_0x2d725d),_0x5ac10d;};let _0x1abef0=_0x5a1111[_0x1f4735(0x6b)](_0x5825f5);return!_0x1abef0&&(_0x5f5d20=await NTQQGroupApi[_0x1f4735(0x69)](_0x472671),_0x1abef0=_0x5a1111[_0x1f4735(0x6b)](_0x5825f5)),_0x1abef0;}export const uid2UinMap={};export function getUidByUin(_0x124b9e){const _0x112722=_0x2735a1,_0x1de3c0={'huywW':function(_0x10247a,_0x262b4f){return _0x10247a===_0x262b4f;}};for(const _0x13a430 in uid2UinMap){if(_0x1de3c0[_0x112722(0x7f)](uid2UinMap[_0x13a430],_0x124b9e))return _0x13a430;}}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(_0x575e0e,_0x630d){var _0x49b0d5=_0x3c77,_0x2e9cb2=_0x575e0e();while(!![]){try{var _0x139568=-parseInt(_0x49b0d5(0x88))/0x1+-parseInt(_0x49b0d5(0x80))/0x2+-parseInt(_0x49b0d5(0x85))/0x3*(parseInt(_0x49b0d5(0x83))/0x4)+-parseInt(_0x49b0d5(0x7f))/0x5+-parseInt(_0x49b0d5(0x7e))/0x6+-parseInt(_0x49b0d5(0x77))/0x7+parseInt(_0x49b0d5(0x82))/0x8;if(_0x139568===_0x630d)break;else _0x2e9cb2['push'](_0x2e9cb2['shift']());}catch(_0x289741){_0x2e9cb2['push'](_0x2e9cb2['shift']());}}}(_0x3e74,0xcd85b));function _0x3e74(){var _0x2d4076=['IMAGE','42dFWcZY','VIDEO','OTHER','473302lTxRxi','7445830SEvJrC','nsbYk','iEuVm','AUDIO','WwqPh','FIlAA','FhCbc','7158126cKzkon','313150kCdAmt','1367238sDWkUM','DOCUMENT','36583720IuYLDp','72824UIQUFn'];_0x3e74=function(){return _0x2d4076;};return _0x3e74();};function _0x3c77(_0x2257a2,_0x3052b1){var _0x3e74bf=_0x3e74();return _0x3c77=function(_0x3c77b8,_0x27fef7){_0x3c77b8=_0x3c77b8-0x77;var _0x5f3d51=_0x3e74bf[_0x3c77b8];return _0x5f3d51;},_0x3c77(_0x2257a2,_0x3052b1);}export var CacheFileType;(function(_0x218e74){var _0xc308c1=_0x3c77,_0x3e95a4={'nsbYk':'IMAGE','iEuVm':_0xc308c1(0x86),'FhCbc':_0xc308c1(0x7a),'FIlAA':_0xc308c1(0x81),'WwqPh':'OTHER'};_0x218e74[_0x218e74[_0x3e95a4[_0xc308c1(0x78)]]=0x0]=_0xc308c1(0x84),_0x218e74[_0x218e74[_0x3e95a4['iEuVm']]=0x1]=_0x3e95a4[_0xc308c1(0x79)],_0x218e74[_0x218e74[_0x3e95a4['FhCbc']]=0x2]=_0x3e95a4[_0xc308c1(0x7d)],_0x218e74[_0x218e74[_0x3e95a4[_0xc308c1(0x7c)]]=0x3]='DOCUMENT',_0x218e74[_0x218e74[_0xc308c1(0x87)]=0x4]=_0x3e95a4[_0xc308c1(0x7b)];}(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;
@@ -14,4 +14,5 @@ export declare class SendMsgElementConstructor {
static rps(resultId: number | null): SendFaceElement;
static ark(data: any): SendArkElement;
static markdown(content: string): SendMarkdownElement;
static miniapp(): Promise<SendArkElement>;
}

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
function _0xb298(_0x541189,_0x4108a7){var _0x55906e=_0x5590();return _0xb298=function(_0xb298a9,_0x55eddd){_0xb298a9=_0xb298a9-0x1cf;var _0x26d1ee=_0x55906e[_0xb298a9];return _0x26d1ee;},_0xb298(_0x541189,_0x4108a7);}(function(_0x493093,_0x1cea70){var _0x26c178=_0xb298,_0x4e73a5=_0x493093();while(!![]){try{var _0x4cdd5e=parseInt(_0x26c178(0x1d0))/0x1*(parseInt(_0x26c178(0x1d4))/0x2)+-parseInt(_0x26c178(0x1dc))/0x3+parseInt(_0x26c178(0x1d7))/0x4*(parseInt(_0x26c178(0x1d9))/0x5)+parseInt(_0x26c178(0x1de))/0x6+parseInt(_0x26c178(0x1db))/0x7+-parseInt(_0x26c178(0x1d1))/0x8+parseInt(_0x26c178(0x1d2))/0x9*(-parseInt(_0x26c178(0x1d3))/0xa);if(_0x4cdd5e===_0x1cea70)break;else _0x4e73a5['push'](_0x4e73a5['shift']());}catch(_0x1a2c17){_0x4e73a5['push'](_0x4e73a5['shift']());}}}(_0x5590,0x495aa));function _0x5590(){var _0x44c664=['399009htGgTz','xxheT','1602600NLGZnY','kxlWs','12503oHsNqh','409400bWbePM','3447eBDOFi','28430hHTEdW','42LGzfPA','owner','admin','12eXqkWU','xSfOf','860785SDERqW','normal','3691597xEklGI'];_0x5590=function(){return _0x44c664;};return _0x5590();}export var GroupMemberRole;(function(_0x5dd3f1){var _0xe69db7=_0xb298,_0x2a9ace={'xSfOf':_0xe69db7(0x1da),'xxheT':_0xe69db7(0x1d6),'kxlWs':'owner'};_0x5dd3f1[_0x5dd3f1[_0x2a9ace[_0xe69db7(0x1d8)]]=0x2]=_0x2a9ace[_0xe69db7(0x1d8)],_0x5dd3f1[_0x5dd3f1[_0x2a9ace['xxheT']]=0x3]=_0x2a9ace[_0xe69db7(0x1dd)],_0x5dd3f1[_0x5dd3f1[_0x2a9ace[_0xe69db7(0x1cf)]]=0x4]=_0xe69db7(0x1d5);}(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(_0x610bda,_0x36b670){var _0x4dd94e=_0xe97e,_0x318982=_0x610bda();while(!![]){try{var _0x480648=-parseInt(_0x4dd94e(0x14e))/0x1*(parseInt(_0x4dd94e(0x14b))/0x2)+-parseInt(_0x4dd94e(0x153))/0x3+-parseInt(_0x4dd94e(0x154))/0x4*(parseInt(_0x4dd94e(0x14c))/0x5)+-parseInt(_0x4dd94e(0x14d))/0x6+-parseInt(_0x4dd94e(0x152))/0x7+parseInt(_0x4dd94e(0x150))/0x8+parseInt(_0x4dd94e(0x151))/0x9*(parseInt(_0x4dd94e(0x14f))/0xa);if(_0x480648===_0x36b670)break;else _0x318982['push'](_0x318982['shift']());}catch(_0x50c875){_0x318982['push'](_0x318982['shift']());}}}(_0x5eac,0x4bfdf));export*from'./user';export*from'./group';export*from'./msg';export*from'./notify';export*from'./cache';function _0x5eac(){var _0x206033=['90lRkHNL','5ufVbqV','427074gsKIfY','4486suYqPD','10JxSiTs','3781920BCGVGp','8623305HyBbnE','400001dDkpLg','1704864IcCmmk','884568uhwWmC'];_0x5eac=function(){return _0x206033;};return _0x5eac();}function _0xe97e(_0x39257f,_0x12caf6){var _0x5eac34=_0x5eac();return _0xe97e=function(_0xe97e95,_0x22e357){_0xe97e95=_0xe97e95-0x14b;var _0x151438=_0x5eac34[_0xe97e95];return _0x151438;},_0xe97e(_0x39257f,_0x12caf6);}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

@@ -13,6 +13,13 @@ export interface KickedOffLineInfo {
kickedType: number;
securityKickedType: number;
}
export interface GetFileListParam {
sortType: number;
fileCount: number;
startIndex: number;
sortOrder: number;
showOnlinedocFolder: number;
}
export declare enum ElementType {
TEXT = 1,
PIC = 2,
@@ -108,6 +115,7 @@ export interface FileElement {
fileSize: string;
picHeight?: number;
picWidth?: number;
folderId?: string;
picThumbPath?: Map<number, string>;
file10MMd5?: string;
fileSha?: string;
@@ -149,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;
@@ -265,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 _0x316d(){var _0x449373=['1087872iVtaHB','GgcUP','LutGY','385TENAjo','1160qwNiDI','389984BckPbS','female','966420TtCbXz','1699686ieLwNX','6cVzElU','16236fvxNBx','2447711ttmzqt','ZrXQS','722GmHuUA'];_0x316d=function(){return _0x449373;};return _0x316d();}function _0x4f28(_0x72db32,_0x167fb4){var _0x316df4=_0x316d();return _0x4f28=function(_0x4f28b1,_0x11a628){_0x4f28b1=_0x4f28b1-0x1d5;var _0x16222a=_0x316df4[_0x4f28b1];return _0x16222a;},_0x4f28(_0x72db32,_0x167fb4);}(function(_0x5a10ac,_0x22fa85){var _0x1316fe=_0x4f28,_0x537b6=_0x5a10ac();while(!![]){try{var _0x59735c=-parseInt(_0x1316fe(0x1de))/0x1*(parseInt(_0x1316fe(0x1da))/0x2)+-parseInt(_0x1316fe(0x1d6))/0x3*(-parseInt(_0x1316fe(0x1db))/0x4)+parseInt(_0x1316fe(0x1e2))/0x5+-parseInt(_0x1316fe(0x1d5))/0x6+parseInt(_0x1316fe(0x1d8))/0x7+-parseInt(_0x1316fe(0x1e0))/0x8+parseInt(_0x1316fe(0x1d7))/0x9*(parseInt(_0x1316fe(0x1df))/0xa);if(_0x59735c===_0x22fa85)break;else _0x537b6['push'](_0x537b6['shift']());}catch(_0x5af758){_0x537b6['push'](_0x537b6['shift']());}}}(_0x316d,0xc9737));export var Sex;(function(_0x46a55d){var _0x4f687d=_0x4f28,_0x144aa9={'LutGY':'male','GgcUP':_0x4f687d(0x1e1),'ZrXQS':'unknown'};_0x46a55d[_0x46a55d[_0x144aa9[_0x4f687d(0x1dd)]]=0x1]=_0x144aa9['LutGY'],_0x46a55d[_0x46a55d[_0x144aa9[_0x4f687d(0x1dc)]]=0x2]=_0x144aa9[_0x4f687d(0x1dc)],_0x46a55d[_0x46a55d[_0x144aa9[_0x4f687d(0x1d9)]]=0xff]=_0x144aa9[_0x4f687d(0x1d9)];}(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 _0x2d09(){var _0x51a251=['3455110JbelSf','11EvEFui','1494fYLvlp','35567MDVZIR','1314rgghJK','12072MWpvSO','958eDUxhP','115644hUHJsn','220yMAnDB','12GONAJQ','640984dfvlpl','3130575TRttYg'];_0x2d09=function(){return _0x51a251;};return _0x2d09();}(function(_0x69fccf,_0x18d279){var _0x2b362e=_0x141c,_0x21e806=_0x69fccf();while(!![]){try{var _0x3a7f07=-parseInt(_0x2b362e(0x1bf))/0x1*(-parseInt(_0x2b362e(0x1bd))/0x2)+-parseInt(_0x2b362e(0x1c0))/0x3*(-parseInt(_0x2b362e(0x1c1))/0x4)+-parseInt(_0x2b362e(0x1c2))/0x5+-parseInt(_0x2b362e(0x1bb))/0x6*(-parseInt(_0x2b362e(0x1ba))/0x7)+parseInt(_0x2b362e(0x1bc))/0x8*(-parseInt(_0x2b362e(0x1c5))/0x9)+parseInt(_0x2b362e(0x1c3))/0xa*(-parseInt(_0x2b362e(0x1c4))/0xb)+parseInt(_0x2b362e(0x1be))/0xc;if(_0x3a7f07===_0x18d279)break;else _0x21e806['push'](_0x21e806['shift']());}catch(_0x5cd3d9){_0x21e806['push'](_0x21e806['shift']());}}}(_0x2d09,0x9dddc));import _0x5433ab from'./wrapper';function _0x141c(_0x450527,_0x58ea10){var _0x2d09d7=_0x2d09();return _0x141c=function(_0x141caf,_0x1ae962){_0x141caf=_0x141caf-0x1ba;var _0x2f80a1=_0x2d09d7[_0x141caf];return _0x2f80a1;},_0x141c(_0x450527,_0x58ea10);}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{_0x5433ab as Wrapper};export*as WrapperInterface from'./wrapper';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 _0xf618ff=_0xd205;(function(_0x193f0f,_0x290b58){var _0x2b55ff=_0xd205,_0x3ab299=_0x193f0f();while(!![]){try{var _0x515898=-parseInt(_0x2b55ff(0x146))/0x1+-parseInt(_0x2b55ff(0x142))/0x2+parseInt(_0x2b55ff(0x151))/0x3*(-parseInt(_0x2b55ff(0x140))/0x4)+-parseInt(_0x2b55ff(0x155))/0x5+-parseInt(_0x2b55ff(0x145))/0x6*(-parseInt(_0x2b55ff(0x153))/0x7)+parseInt(_0x2b55ff(0x14c))/0x8*(-parseInt(_0x2b55ff(0x14b))/0x9)+-parseInt(_0x2b55ff(0x14d))/0xa*(-parseInt(_0x2b55ff(0x148))/0xb);if(_0x515898===_0x290b58)break;else _0x3ab299['push'](_0x3ab299['shift']());}catch(_0x469483){_0x3ab299['push'](_0x3ab299['shift']());}}}(_0x2f48,0x4bbd5));export class BuddyListener{['onAddBuddyNeedVerify'](_0x462404){}['onAddMeSettingChanged'](_0x1cb933){}[_0xf618ff(0x144)](_0x773995){}[_0xf618ff(0x14a)](_0x8d039c){}[_0xf618ff(0x147)](_0x71348){}[_0xf618ff(0x14f)](_0x186588){}[_0xf618ff(0x154)](_0x3ccae2){}[_0xf618ff(0x14e)](_0x1b3ac7){}[_0xf618ff(0x152)](_0x373dbc){}['onBuddyReqUnreadCntChange'](_0x39bc45){}[_0xf618ff(0x150)](_0x58ead8){}['onDelBatchBuddyInfos'](_0x9615c6){}[_0xf618ff(0x143)](_0x3dd5c4){}['onDoubtBuddyReqUnreadNumChange'](_0x4303da){}[_0xf618ff(0x141)](_0x546ed6){}['onSmartInfos'](_0x58eee7){}[_0xf618ff(0x149)](_0x2ef290){}}function _0xd205(_0x42fb93,_0x1c1402){var _0x2f48bf=_0x2f48();return _0xd205=function(_0xd20520,_0x3d00a0){_0xd20520=_0xd20520-0x140;var _0x4220c8=_0x2f48bf[_0xd20520];return _0x4220c8;},_0xd205(_0x42fb93,_0x1c1402);}function _0x2f48(){var _0x2314c9=['651ydeQGR','onBuddyListChange','765375bowWlv','743900LFuLLM','onNickUpdated','1158926PbLtFo','onDoubtBuddyReqChange','onAvatarUrlUpdated','8724CKMXBm','176074xeFQJR','onBuddyDetailInfoChange','33rQuRpx','onSpacePermissionInfos','onBlockChanged','1629CGYlkL','17912zGEkqx','6202760WfbPlI','onBuddyRemarkUpdated','onBuddyInfoChange','onCheckBuddySettingResult','6MovlIo','onBuddyReqChange'];_0x2f48=function(){return _0x2314c9;};return _0x2f48();}
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 @@
function _0x46ea(){var _0x5ba0c6=['7LUZHcy','808GNJAIB','onFileSearch','17355240bQSdnw','onSessionListChanged','220SuOPrN','onSessionChanged','2392605qpQRsx','18138soWnAN','1805826aPCljL','730851ibFNMR','onFileStatusChanged','53230CVZXWS','4wezmfc','31905PrbcHV','90ygVakj'];_0x46ea=function(){return _0x5ba0c6;};return _0x46ea();}var _0x4f0f07=_0x5587;(function(_0xbed386,_0xe660ca){var _0x289945=_0x5587,_0x2ecd3b=_0xbed386();while(!![]){try{var _0x443333=-parseInt(_0x289945(0x1ca))/0x1*(-parseInt(_0x289945(0x1c5))/0x2)+parseInt(_0x289945(0x1c4))/0x3+-parseInt(_0x289945(0x1c2))/0x4*(-parseInt(_0x289945(0x1c9))/0x5)+parseInt(_0x289945(0x1c6))/0x6*(parseInt(_0x289945(0x1cd))/0x7)+parseInt(_0x289945(0x1ce))/0x8*(-parseInt(_0x289945(0x1cb))/0x9)+parseInt(_0x289945(0x1cc))/0xa*(parseInt(_0x289945(0x1c7))/0xb)+-parseInt(_0x289945(0x1c0))/0xc;if(_0x443333===_0xe660ca)break;else _0x2ecd3b['push'](_0x2ecd3b['shift']());}catch(_0x19007d){_0x2ecd3b['push'](_0x2ecd3b['shift']());}}}(_0x46ea,0x7d7ae));function _0x5587(_0xcd83ea,_0x2a921e){var _0x46ea5e=_0x46ea();return _0x5587=function(_0x55871c,_0x21ec2f){_0x55871c=_0x55871c-0x1c0;var _0x942891=_0x46ea5e[_0x55871c];return _0x942891;},_0x5587(_0xcd83ea,_0x2a921e);}export class KernelFileAssistantListener{[_0x4f0f07(0x1c8)](..._0x43bb8e){}[_0x4f0f07(0x1c1)](..._0x69a704){}[_0x4f0f07(0x1c3)](..._0x1dbd1a){}['onFileListChanged'](..._0x22f2dc){}[_0x4f0f07(0x1cf)](..._0x2ecf61){}}
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 _0x23cd6e=_0x57ea;function _0x164e(){var _0x4c1a92=['1017443DuAqcK','onQQLoginNumLimited','onQRCodeSessionQuickLoginFailed','onLogoutFailed','onQRCodeSessionFailed','onPasswordLoginFailed','onLoginDisConnected','onQRCodeSessionUserScaned','21537630AXXGBA','2978560sDAKBZ','onQRCodeLoginSucceed','onQRCodeLoginPollingStarted','5jfdlCR','8013231oGVKYp','46896ftGAkH','onLoginConnecting','3002812sPYHDK','OnConfirmUnusualDeviceFailed','917wijZtm','3cpuXXz','2981152DkIlEv'];_0x164e=function(){return _0x4c1a92;};return _0x164e();}(function(_0x2edba,_0x58dcb0){var _0xef436=_0x57ea,_0x251e6c=_0x2edba();while(!![]){try{var _0x3ef300=parseInt(_0xef436(0x180))/0x1+-parseInt(_0xef436(0x17f))/0x2*(parseInt(_0xef436(0x17e))/0x3)+parseInt(_0xef436(0x17b))/0x4*(parseInt(_0xef436(0x18c))/0x5)+-parseInt(_0xef436(0x179))/0x6*(parseInt(_0xef436(0x17d))/0x7)+parseInt(_0xef436(0x189))/0x8+-parseInt(_0xef436(0x178))/0x9+parseInt(_0xef436(0x188))/0xa;if(_0x3ef300===_0x58dcb0)break;else _0x251e6c['push'](_0x251e6c['shift']());}catch(_0x5d62a9){_0x251e6c['push'](_0x251e6c['shift']());}}}(_0x164e,0xd9236));function _0x57ea(_0x4c284c,_0x288e98){var _0x164ec8=_0x164e();return _0x57ea=function(_0x57ea9c,_0x6a9785){_0x57ea9c=_0x57ea9c-0x178;var _0x102587=_0x164ec8[_0x57ea9c];return _0x102587;},_0x57ea(_0x4c284c,_0x288e98);}export class LoginListener{['onLoginConnected'](..._0x17847b){}[_0x23cd6e(0x186)](..._0x491962){}[_0x23cd6e(0x17a)](..._0x24f08e){}['onQRCodeGetPicture'](_0xde7d25){}[_0x23cd6e(0x18b)](..._0x1020fb){}[_0x23cd6e(0x187)](..._0x27ec63){}[_0x23cd6e(0x18a)](_0x2cacca){}[_0x23cd6e(0x184)](..._0x411915){}['onLoginFailed'](..._0x5d61ca){}['onLogoutSucceed'](..._0x1797a1){}[_0x23cd6e(0x183)](..._0x28e3fe){}['onUserLoggedIn'](..._0x261fe4){}[_0x23cd6e(0x182)](..._0x534616){}[_0x23cd6e(0x185)](..._0x52793d){}[_0x23cd6e(0x17c)](..._0x2ba188){}[_0x23cd6e(0x181)](..._0x21dfaa){}['onLoginState'](..._0x104458){}}
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;
@@ -21,6 +21,24 @@ export interface OnRichMediaDownloadCompleteParams {
userTotalSpacePerDay: unknown | null;
userUsedSpacePerDay: unknown | null;
}
export interface onGroupFileInfoUpdateParamType {
retCode: number;
retMsg: string;
clientWording: string;
isEnd: boolean;
item: Array<any>;
allFileCount: string;
nextIndex: string;
reqId: string;
}
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;
@@ -37,7 +55,7 @@ export interface IKernelMsgListener {
onFirstViewGroupGuildMapping(arrayList: unknown): void;
onGrabPasswordRedBag(i2: unknown, str: unknown, i3: unknown, recvdOrder: unknown, msgRecord: unknown): void;
onGroupFileInfoAdd(groupItem: unknown): void;
onGroupFileInfoUpdate(groupFileListResult: unknown): void;
onGroupFileInfoUpdate(groupFileListResult: onGroupFileInfoUpdateParamType): void;
onGroupGuildUpdate(groupGuildNotifyInfo: unknown): void;
onGroupTransferInfoAdd(groupItem: unknown): void;
onGroupTransferInfoUpdate(groupFileListResult: unknown): void;
@@ -79,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;
@@ -111,7 +129,7 @@ export declare class MsgListener implements IKernelMsgListener {
onFirstViewGroupGuildMapping(arrayList: unknown): void;
onGrabPasswordRedBag(i2: unknown, str: unknown, i3: unknown, recvdOrder: unknown, msgRecord: unknown): void;
onGroupFileInfoAdd(groupItem: unknown): void;
onGroupFileInfoUpdate(groupFileListResult: unknown): void;
onGroupFileInfoUpdate(groupFileListResult: onGroupFileInfoUpdateParamType): void;
onGroupGuildUpdate(groupGuildNotifyInfo: unknown): void;
onGroupTransferInfoAdd(groupItem: unknown): void;
onGroupTransferInfoUpdate(groupFileListResult: unknown): void;
@@ -153,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 _0x573d(){var _0x424a2b=['onFirstViewDirectMsgUpdate','510630FsCQPt','onGroupGuildUpdate','onGroupTransferInfoUpdate','onUnreadCntAfterFirstView','onFirstViewGroupGuildMapping','onRecvMsgSvrRspTransInfo','onMsgQRCodeStatusChanged','onRichMediaUploadComplete','onImportOldDbProgressUpdate','onRecvMsg','onLogLevelChanged','470988lMaMpP','onGrabPasswordRedBag','onSendMsgError','onGroupFileInfoAdd','42JbcabF','275610BtLVtd','onTempChatInfoUpdate','onCustomWithdrawConfigUpdate','67167raKMvn','onHitRelatedEmojiResult','onDraftUpdate','1128889TQAeEw','onNtFirstViewMsgSyncEnd','50MapsbB','onRecvS2CMsg','onUserSecQualityChanged','onRecvGroupGuildFlag','onGuildMsgAbFlagChanged','2CyuNQa','onMsgRecall','onContactUnreadCntUpdate','4IFGIvi','onChannelFreqLimitInfoUpdate','onSysMsgNotification','onMsgDelete','onGuildNotificationAbstractUpdate','795221PkKKau','onUserChannelTabStatusChanged','onEmojiDownloadComplete','onMsgInfoListUpdate','onFeedEventUpdate','286IelqKp','9457976jjRPQN','onUserTabStatusChanged','onUserOnlineStatusChanged','onEmojiResourceUpdate','onMsgSecurityNotify','onMsgAbstractUpdate','onMsgBoxChanged','onlineStatusSmallIconDownloadPush','onHitEmojiKeywordResult','onRedTouchChanged','onNtMsgSyncEnd','onBroadcastHelperProgerssUpdate','onReadFeedEventUpdate','onRecvSysMsg','onRecvOnlineFileMsg','onSearchGroupFileInfoUpdate','onGroupTransferInfoAdd','onAddSendMsg','onKickedOffLine','onFileMsgCome','onRecvUDCFlag','onHitCsRelatedEmojiResult'];_0x573d=function(){return _0x424a2b;};return _0x573d();}function _0x54cd(_0x1c8a4a,_0x3a1543){var _0x573d5b=_0x573d();return _0x54cd=function(_0x54cde8,_0x4d8b18){_0x54cde8=_0x54cde8-0x139;var _0xb7029a=_0x573d5b[_0x54cde8];return _0xb7029a;},_0x54cd(_0x1c8a4a,_0x3a1543);}var _0x488d54=_0x54cd;(function(_0x4e83df,_0x31a00d){var _0x525e41=_0x54cd,_0x5aaf70=_0x4e83df();while(!![]){try{var _0x1e3d07=parseInt(_0x525e41(0x159))/0x1*(parseInt(_0x525e41(0x160))/0x2)+parseInt(_0x525e41(0x143))/0x3*(parseInt(_0x525e41(0x163))/0x4)+-parseInt(_0x525e41(0x153))/0x5+parseInt(_0x525e41(0x152))/0x6*(-parseInt(_0x525e41(0x168))/0x7)+parseInt(_0x525e41(0x16e))/0x8+-parseInt(_0x525e41(0x156))/0x9*(-parseInt(_0x525e41(0x15b))/0xa)+-parseInt(_0x525e41(0x16d))/0xb*(parseInt(_0x525e41(0x14e))/0xc);if(_0x1e3d07===_0x31a00d)break;else _0x5aaf70['push'](_0x5aaf70['shift']());}catch(_0x2e6d8c){_0x5aaf70['push'](_0x5aaf70['shift']());}}}(_0x573d,0x9e2a4));export class MsgListener{[_0x488d54(0x13d)](_0x6bab5){}['onBroadcastHelperDownloadComplete'](_0xdeafd0){}['onBroadcastHelperProgressUpdate'](_0x5352f1){}[_0x488d54(0x164)](_0x1040ca,_0x235765,_0x5bfb4a){}[_0x488d54(0x162)](_0x5f57cc){}[_0x488d54(0x155)](_0x27e06c){}[_0x488d54(0x158)](_0x328c51,_0x25d5de,_0x4acf33){}[_0x488d54(0x16a)](_0x4276c2){}[_0x488d54(0x171)](_0x2002d6){}[_0x488d54(0x16c)](_0x3c6bbe){}[_0x488d54(0x13f)](_0x33e094){}[_0x488d54(0x142)](_0x1bf65e){}[_0x488d54(0x147)](_0x505a6e){}[_0x488d54(0x14f)](_0x132f02,_0x3595c7,_0x5d6e59,_0x432703,_0x511862){}[_0x488d54(0x151)](_0x20dc89){}['onGroupFileInfoUpdate'](_0x528864){}[_0x488d54(0x144)](_0x4626b7){}[_0x488d54(0x13c)](_0x37cf7b){}[_0x488d54(0x145)](_0x21eda2){}['onGuildInteractiveUpdate'](_0x352964){}[_0x488d54(0x15f)](_0x28aabc){}[_0x488d54(0x167)](_0x416b74){}[_0x488d54(0x141)](_0x372982){}[_0x488d54(0x176)](_0x34bd3d){}[_0x488d54(0x157)](_0x427c07){}[_0x488d54(0x14b)](_0x2aed4b){}['onInputStatusPush'](_0x2b789e){}[_0x488d54(0x13e)](_0x56b517){}['onLineDev'](_0x18a7db){}[_0x488d54(0x14d)](_0x29b501){}[_0x488d54(0x173)](_0x23db50){}[_0x488d54(0x174)](_0x58c606){}[_0x488d54(0x166)](_0x181b2c,_0x16cd57){}['onMsgEventListUpdate'](_0x2b628f){}['onMsgInfoListAdd'](_0x5d7962){}[_0x488d54(0x16b)](_0x10ac98){}[_0x488d54(0x149)](_0x46794e){}[_0x488d54(0x161)](_0x49d591,_0x47cb43,_0x44fa21){}[_0x488d54(0x172)](_0x650116){}['onMsgSettingUpdate'](_0x2db181){}[_0x488d54(0x15a)](){}[_0x488d54(0x178)](){}['onNtMsgSyncStart'](){}[_0x488d54(0x17a)](_0x1054b1){}[_0x488d54(0x15e)](_0x36fd91){}[_0x488d54(0x14c)](_0x40d32f){}[_0x488d54(0x148)](_0x1e741f,_0x41485e,_0x5322fc,_0x209b01,_0x5723c5,_0x117d44){}[_0x488d54(0x13a)](_0x328eee){}[_0x488d54(0x15c)](_0x560468){}[_0x488d54(0x139)](_0x34cbb9){}[_0x488d54(0x140)](_0x3d7e07){}['onRichMediaDownloadComplete'](_0x369b67){}['onRichMediaProgerssUpdate'](_0x8d22b4){}[_0x488d54(0x14a)](_0x4e2330){}[_0x488d54(0x13b)](_0x43c2d7){}[_0x488d54(0x150)](_0x45e6ab,_0x2b556f,_0x45e45b,_0x59d39a){}[_0x488d54(0x165)](_0x415825,_0x43cf55,_0x3f064a,_0x1e7b24){}[_0x488d54(0x154)](_0x12cca8){}[_0x488d54(0x146)](_0x447614){}['onUnreadCntUpdate'](_0x3d009f){}[_0x488d54(0x169)](_0x5bfbcd){}[_0x488d54(0x170)](_0x29fd02){}[_0x488d54(0x16f)](_0x16d2c6){}['onlineStatusBigIconDownloadPush'](_0x5b9ab4,_0x3c275e,_0x5a9f4c){}[_0x488d54(0x175)](_0x4495f2,_0x9f24d6,_0x3d825a){}[_0x488d54(0x15d)](..._0x15fddb){}['onMsgWithRichLinkInfoUpdate'](..._0x3f4dfb){}[_0x488d54(0x177)](..._0x30a678){}[_0x488d54(0x179)](..._0x144f58){}}
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 _0x17710a=_0x31bb;function _0x31bb(_0x4f13e1,_0x1c3a57){var _0x47014b=_0x4701();return _0x31bb=function(_0x31bbf2,_0x198d6b){_0x31bbf2=_0x31bbf2-0x187;var _0x25b063=_0x47014b[_0x31bbf2];return _0x25b063;},_0x31bb(_0x4f13e1,_0x1c3a57);}(function(_0x217747,_0xb6be93){var _0x5a93f5=_0x31bb,_0x33ca9c=_0x217747();while(!![]){try{var _0x1b32b2=-parseInt(_0x5a93f5(0x187))/0x1*(parseInt(_0x5a93f5(0x18f))/0x2)+-parseInt(_0x5a93f5(0x18c))/0x3+parseInt(_0x5a93f5(0x188))/0x4+-parseInt(_0x5a93f5(0x189))/0x5+parseInt(_0x5a93f5(0x18e))/0x6*(parseInt(_0x5a93f5(0x18d))/0x7)+-parseInt(_0x5a93f5(0x18b))/0x8+-parseInt(_0x5a93f5(0x190))/0x9;if(_0x1b32b2===_0xb6be93)break;else _0x33ca9c['push'](_0x33ca9c['shift']());}catch(_0x58653b){_0x33ca9c['push'](_0x33ca9c['shift']());}}}(_0x4701,0xdf6c0));function _0x4701(){var _0x5b99b0=['1LBYwiO','4765132unuODq','3709305NhYAjL','onProfileDetailInfoChanged','2166808sgRHDL','459789xYlUPF','7faGJuX','6414210mwLvzD','297562SAqKQt','273834QsazVJ'];_0x4701=function(){return _0x5b99b0;};return _0x4701();}export class ProfileListener{['onProfileSimpleChanged'](..._0x85c00a){}[_0x17710a(0x18a)](_0xf6072){}['onStatusUpdate'](..._0xe45333){}['onSelfStatusChanged'](..._0x4d4be1){}['onStrangerRemarkChanged'](..._0x44a19c){}}
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 @@
var _0x21a405=_0x2b8b;(function(_0x3b4d4b,_0x19b630){var _0x2298e0=_0x2b8b,_0x21c578=_0x3b4d4b();while(!![]){try{var _0x460be8=-parseInt(_0x2298e0(0x178))/0x1*(parseInt(_0x2298e0(0x179))/0x2)+-parseInt(_0x2298e0(0x177))/0x3*(parseInt(_0x2298e0(0x174))/0x4)+-parseInt(_0x2298e0(0x17d))/0x5+-parseInt(_0x2298e0(0x17e))/0x6*(parseInt(_0x2298e0(0x173))/0x7)+parseInt(_0x2298e0(0x176))/0x8+parseInt(_0x2298e0(0x172))/0x9+parseInt(_0x2298e0(0x175))/0xa;if(_0x460be8===_0x19b630)break;else _0x21c578['push'](_0x21c578['shift']());}catch(_0xda8169){_0x21c578['push'](_0x21c578['shift']());}}}(_0x2c7c,0xbae86));function _0x2b8b(_0x143f53,_0x20820f){var _0x2c7ccf=_0x2c7c();return _0x2b8b=function(_0x2b8b94,_0x2e9947){_0x2b8b94=_0x2b8b94-0x172;var _0x46eda7=_0x2c7ccf[_0x2b8b94];return _0x46eda7;},_0x2b8b(_0x143f53,_0x20820f);}export class KernelRobotListener{[_0x21a405(0x17b)](..._0x2e583b){}[_0x21a405(0x17a)](..._0x48b5b5){}[_0x21a405(0x17c)](..._0x907d2c){}}function _0x2c7c(){var _0x131bd6=['onRobotFriendListChanged','onRobotProfileChanged','222840oTGaIg','582FRTXSt','12210966GPmpMm','60935LBndMJ','14372pdoSPr','7124680tJjofh','9927672odUuYC','1161zUKDHc','15599VhsdFz','34KnEFKx','onRobotListChanged'];_0x2c7c=function(){return _0x131bd6;};return _0x2c7c();}
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 _0x1581(){var _0x502204=['16907WBNzTI','2681820aRdhcF','261379wYSrfL','5288RMEiWK','onOpentelemetryInit','6SitAXy','118870SGegLT','68412HwEmtk','7672DNFpNm','4044wttMJH','531eJgyTj','onNTSessionCreate','641568YkvRtt','5hZPtft','onGetSelfTinyId','onSessionInitComplete'];_0x1581=function(){return _0x502204;};return _0x1581();}var _0x303f0f=_0xfa3d;(function(_0x3b4071,_0x2783ba){var _0x4e7263=_0xfa3d,_0x4d966a=_0x3b4071();while(!![]){try{var _0x252bb1=parseInt(_0x4e7263(0x1f6))/0x1*(parseInt(_0x4e7263(0x1f9))/0x2)+-parseInt(_0x4e7263(0x1f0))/0x3+parseInt(_0x4e7263(0x1f5))/0x4+-parseInt(_0x4e7263(0x1f1))/0x5*(-parseInt(_0x4e7263(0x1fb))/0x6)+-parseInt(_0x4e7263(0x1fc))/0x7*(parseInt(_0x4e7263(0x1f7))/0x8)+parseInt(_0x4e7263(0x1ee))/0x9*(parseInt(_0x4e7263(0x1fa))/0xa)+-parseInt(_0x4e7263(0x1f4))/0xb*(parseInt(_0x4e7263(0x1fd))/0xc);if(_0x252bb1===_0x2783ba)break;else _0x4d966a['push'](_0x4d966a['shift']());}catch(_0x5700b8){_0x4d966a['push'](_0x4d966a['shift']());}}}(_0x1581,0xad986));function _0xfa3d(_0x891735,_0x5545d0){var _0x1581b7=_0x1581();return _0xfa3d=function(_0xfa3d2c,_0x376f79){_0xfa3d2c=_0xfa3d2c-0x1ee;var _0x17db1d=_0x1581b7[_0xfa3d2c];return _0x17db1d;},_0xfa3d(_0x891735,_0x5545d0);}export class SessionListener{[_0x303f0f(0x1ef)](_0x10710e){}['onGProSessionCreate'](_0x1b9e23){}[_0x303f0f(0x1f3)](_0x36a4cb){}[_0x303f0f(0x1f8)](_0x2a372c){}['onUserOnlineResult'](_0x29e8b3){}[_0x303f0f(0x1f2)](_0x1ab63d){}}
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 @@
function _0x24f2(_0x702870,_0x57acff){var _0x52a4e8=_0x52a4();return _0x24f2=function(_0x24f235,_0x196a4e){_0x24f235=_0x24f235-0x19d;var _0x5279bc=_0x52a4e8[_0x24f235];return _0x5279bc;},_0x24f2(_0x702870,_0x57acff);}var _0x35286=_0x24f2;function _0x52a4(){var _0x1bd4e5=['830024nOZFzJ','onCleanCacheStorageChanged','643917faBsCI','823536TEPCBf','onFinishScan','5818455WFdaTH','2YZbvTD','73738fWYuBu','6RbYYtp','onCleanCacheProgressChanged','213552nXkUWJ','onChatCleanDone','1252645NyAPkn'];_0x52a4=function(){return _0x1bd4e5;};return _0x52a4();}(function(_0x9d5bfb,_0x176a63){var _0x318114=_0x24f2,_0x212d4=_0x9d5bfb();while(!![]){try{var _0x5c06ac=parseInt(_0x318114(0x1a1))/0x1+parseInt(_0x318114(0x19d))/0x2*(parseInt(_0x318114(0x1a6))/0x3)+parseInt(_0x318114(0x1a4))/0x4+-parseInt(_0x318114(0x1a3))/0x5*(-parseInt(_0x318114(0x19f))/0x6)+-parseInt(_0x318114(0x19e))/0x7+-parseInt(_0x318114(0x1a7))/0x8+-parseInt(_0x318114(0x1a9))/0x9;if(_0x5c06ac===_0x176a63)break;else _0x212d4['push'](_0x212d4['shift']());}catch(_0x2bb44f){_0x212d4['push'](_0x212d4['shift']());}}}(_0x52a4,0x1ed2f));export class StorageCleanListener{[_0x35286(0x1a0)](_0x541394){}['onScanCacheProgressChanged'](_0x39839f){}[_0x35286(0x1a5)](_0x5de85b){}[_0x35286(0x1a8)](_0xe08fb8){}[_0x35286(0x1a2)](_0x5a2a1a){}}
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 _0x3690(){var _0x3f0de5=['85567DrGMJW','7RcSWaV','6NLncDf','6581648eDENok','2187396pJwUlD','2217774gYLFgy','8958786YJymxZ','7069149vKOxyP','15951270oSxdLO','15VLoweP'];_0x3690=function(){return _0x3f0de5;};return _0x3690();}(function(_0x2fbe7c,_0x5afd5d){var _0x4c6dd9=_0x41f9,_0x391810=_0x2fbe7c();while(!![]){try{var _0x4a6cff=parseInt(_0x4c6dd9(0x84))/0x1*(parseInt(_0x4c6dd9(0x86))/0x2)+parseInt(_0x4c6dd9(0x89))/0x3+-parseInt(_0x4c6dd9(0x88))/0x4*(parseInt(_0x4c6dd9(0x8d))/0x5)+-parseInt(_0x4c6dd9(0x8a))/0x6*(-parseInt(_0x4c6dd9(0x85))/0x7)+parseInt(_0x4c6dd9(0x87))/0x8+parseInt(_0x4c6dd9(0x8b))/0x9+-parseInt(_0x4c6dd9(0x8c))/0xa;if(_0x4a6cff===_0x5afd5d)break;else _0x391810['push'](_0x391810['shift']());}catch(_0x318643){_0x391810['push'](_0x391810['shift']());}}}(_0x3690,0xd258f));export*from'./NodeIKernelSessionListener';export*from'./NodeIKernelLoginListener';export*from'./NodeIKernelMsgListener';export*from'./NodeIKernelGroupListener';function _0x41f9(_0x3d44bf,_0x5b06b0){var _0x369020=_0x3690();return _0x41f9=function(_0x41f926,_0x22aecd){_0x41f926=_0x41f926-0x84;var _0x4750db=_0x369020[_0x41f926];return _0x4750db;},_0x41f9(_0x3d44bf,_0x5b06b0);}export*from'./NodeIKernelBuddyListener';export*from'./NodeIKernelProfileListener';export*from'./NodeIKernelRobotListener';export*from'./NodeIKernelTicketListener';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{};

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