Compare commits

...

325 Commits

Author SHA1 Message Date
手瓜一十雪
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
手瓜一十雪
4b3a9e5847 release: 1.3.8 2024-05-24 13:47:25 +08:00
手瓜一十雪
e4982256a4 fix: typo 2024-05-24 11:39:46 +08:00
手瓜一十雪
babc4927a8 feat: 注释解码 2024-05-24 11:28:43 +08:00
手瓜一十雪
6dd84cf469 build: 1.4.0-beta8 2024-05-24 11:21:34 +08:00
手瓜一十雪
a8800e3899 feat: 1.4.0-beta8 2024-05-24 11:18:32 +08:00
手瓜一十雪
5f03496046 build: 1.4.0-beta7 2024-05-24 10:45:12 +08:00
手瓜一十雪
41500c17a2 try: fix 2024-05-24 10:42:21 +08:00
手瓜一十雪
2dcfde8b9a build: 1.4.0-beta6 2024-05-23 18:23:11 +08:00
手瓜一十雪
5c3305d8fa Revert "feat: try support LiteLoader"
This reverts commit 8101d17482.
2024-05-23 18:10:18 +08:00
手瓜一十雪
0d1fe99f53 Merge pull request #32 from xihan123/main
fix: set_group_add_request reason 字段错误
2024-05-23 16:48:43 +08:00
xihan123
4c03ffeec7 fix: set_group_add_request reason 字段错误 2024-05-23 16:45:41 +08:00
手瓜一十雪
8101d17482 feat: try support LiteLoader 2024-05-23 16:30:29 +08:00
手瓜一十雪
bc7b4dcc2a build: 1.4.0-beta5 2024-05-23 15:16:35 +08:00
手瓜一十雪
3db8b9078d docs: change 2024-05-23 11:14:42 +08:00
手瓜一十雪
943dbbefd3 build: 1.4.0-beta4-兼容9.7.x换行符 2024-05-23 11:10:31 +08:00
手瓜一十雪
480abcb853 fix: HandlersClear 2024-05-23 10:23:37 +08:00
手瓜一十雪
60aaaff58e fix: UserDetail 2024-05-23 10:19:45 +08:00
手瓜一十雪
e3b889bbe8 fix: test 2024-05-22 21:44:12 +08:00
手瓜一十雪
ac5506a43b style: lint 2024-05-22 20:58:49 +08:00
手瓜一十雪
b29f533a3b feat: 1.4.0 2024-05-22 20:36:38 +08:00
手瓜一十雪
a8ee86b09e build: test 2024-05-22 20:31:16 +08:00
手瓜一十雪
0238c53302 build: 1.4.0-beta2 2024-05-22 20:19:28 +08:00
手瓜一十雪
665e3c806f build: 1.4.0 - beta2 2024-05-22 20:16:24 +08:00
手瓜一十雪
8c96838441 refactor: cjs to es 2024-05-22 20:13:18 +08:00
手瓜一十雪
4a722daec6 chore: sync core 2024-05-22 19:59:36 +08:00
手瓜一十雪
4e0cdbcb91 feat: 破坏性更新 cjs to es 2024-05-22 19:58:45 +08:00
手瓜一十雪
08976624cd feat: debug 2024-05-22 17:30:40 +08:00
手瓜一十雪
fdeba94653 chore: sync core 2024-05-22 16:11:01 +08:00
手瓜一十雪
d3b100b7e5 refactor: member info 2024-05-22 12:52:49 +08:00
手瓜一十雪
1de3e18b08 fix: remove unuse 2024-05-21 19:32:17 +08:00
手瓜一十雪
d5c3c95682 chore: sync core 2024-05-21 19:28:26 +08:00
手瓜一十雪
dabe1e29ed feat: GroupMemberDetailInfo 2024-05-21 19:27:59 +08:00
手瓜一十雪
203d1c0cfc release: v1.3.5 2024-05-20 21:24:11 +08:00
手瓜一十雪
7edd8601be fix 2024-05-20 18:11:13 +08:00
手瓜一十雪
a4423247f4 fix 2024-05-20 18:05:00 +08:00
手瓜一十雪
4834b203a0 fix: stop express 2024-05-20 17:56:36 +08:00
手瓜一十雪
bbabb32d13 fix: 移除调试代码 2024-05-20 17:49:15 +08:00
手瓜一十雪
95112d6bdf fix: 热重载问题 2024-05-20 17:47:13 +08:00
手瓜一十雪
36cdca5a3e fix: 热重载 2024-05-20 16:58:24 +08:00
手瓜一十雪
6980a9f3fc refactor: webui config 2024-05-20 16:56:34 +08:00
手瓜一十雪
7b09479cd2 fix: 拦截错误 2024-05-20 16:26:42 +08:00
手瓜一十雪
5825fd6f36 fix: 拦截异常 2024-05-20 12:35:50 +08:00
手瓜一十雪
2d5b45dd82 feat: test 2024-05-20 12:10:48 +08:00
手瓜一十雪
52dda1d1fe refactor: SysMessage Proto 2024-05-19 22:29:02 +08:00
手瓜一十雪
420624bee4 build: 1.3.5-catch error 2024-05-19 21:48:52 +08:00
手瓜一十雪
8abde7b7d0 Revert "build: 1.3.5-re"
This reverts commit 9e5b1ba28e.
2024-05-19 21:41:57 +08:00
手瓜一十雪
9e5b1ba28e build: 1.3.5-re 2024-05-19 21:18:33 +08:00
手瓜一十雪
b9c7d3c18e build: 1.3.5-re 2024-05-19 21:04:24 +08:00
手瓜一十雪
10aeccbbe5 build: 1.3.5 2024-05-19 20:46:02 +08:00
手瓜一十雪
15d351ebc2 build: 1.3.5-re 2024-05-19 13:30:42 +08:00
手瓜一十雪
7194f31cb6 build: 1.3.5-re 2024-05-19 13:18:29 +08:00
手瓜一十雪
84b7e82446 build: 1.4.0-beta1 2024-05-19 12:36:56 +08:00
手瓜一十雪
8264423b1a fix: 上报问题 2024-05-19 12:36:40 +08:00
手瓜一十雪
37f897f3bf feat: 上报戳一戳 2024-05-19 12:35:15 +08:00
手瓜一十雪
fe3efac145 feat: 解析戳一戳 2024-05-19 12:29:40 +08:00
手瓜一十雪
9773aebefc feat: sys msg decode 2024-05-19 12:12:03 +08:00
手瓜一十雪
06f2b8c371 docs: change init 2024-05-19 11:08:42 +08:00
手瓜一十雪
e8f0bb8350 build: fix check type 2024-05-18 20:48:06 +08:00
手瓜一十雪
9bfa6b827b build: 1.3.5 2024-05-18 20:36:16 +08:00
手瓜一十雪
b21bc17a58 build: 1.3.5 2024-05-18 20:28:35 +08:00
手瓜一十雪
f4d5d417d0 build: 1.3.5 2024-05-18 20:09:33 +08:00
手瓜一十雪
91fc83621e build: 1.3.5 2024-05-18 19:46:53 +08:00
手瓜一十雪
461feca0ca Merge branch 'main' of https://github.com/NapNeko/NapCatQQ 2024-05-18 19:33:24 +08:00
手瓜一十雪
5e9afab3f7 fix: workflow 2024-05-18 18:18:08 +08:00
Version
2599ca6450 chore:version change 2024-05-18 10:15:09 +00:00
手瓜一十雪
fc99ad3a39 Merge branch 'main' of https://github.com/NapNeko/NapCatQQ 2024-05-18 18:08:29 +08:00
手瓜一十雪
10e1c3e72c build: 1.3.5-beta38 2024-05-18 18:08:18 +08:00
手瓜一十雪
af5dedd4d4 docs: change 2024-05-18 18:00:40 +08:00
手瓜一十雪
3b986c1076 build: 1.3.5-beta37 2024-05-18 17:58:09 +08:00
手瓜一十雪
72f77e8b7c feat: support get_group_system_msg 2024-05-18 17:57:42 +08:00
手瓜一十雪
e893bf676f build: 1.3.5-beta36
get_group_system_msg 未标准化
2024-05-18 17:37:10 +08:00
手瓜一十雪
80eb34f611 feat: try add get_group_system_msg 2024-05-18 16:58:46 +08:00
手瓜一十雪
5d01947552 feat: 快速操作msg默认reply模式回应 2024-05-18 16:27:53 +08:00
手瓜一十雪
d3a025ef7b build: 1.3.5-beta35 2024-05-18 14:40:46 +08:00
手瓜一十雪
c466df841e build: 1.3.5-beta34 2024-05-18 14:36:52 +08:00
手瓜一十雪
b3c6e2a0f3 feat: QuickHandle From LLOB 2024-05-18 14:35:24 +08:00
手瓜一十雪
076c9cfed7 feat: send timeout predict 2024-05-18 14:09:57 +08:00
手瓜一十雪
c3f3d12f83 build: 1.3.5-beta33 2024-05-18 13:35:57 +08:00
手瓜一十雪
44974034ec build: 1.3.5-beta32 2024-05-18 12:56:03 +08:00
手瓜一十雪
d6175acd38 feat: check action data 3 2024-05-18 12:40:41 +08:00
手瓜一十雪
62eee5f05c feat: check action data 2 2024-05-18 12:23:15 +08:00
手瓜一十雪
d4e5201913 feat: action check data 2024-05-18 11:48:38 +08:00
手瓜一十雪
f4d584765a build: 1.3.5-beta30 2024-05-17 21:58:48 +08:00
手瓜一十雪
26e224f852 fix: 热重载容错 2024-05-17 21:44:52 +08:00
手瓜一十雪
252358ed66 build: 1.3.5-beta29 2024-05-17 21:41:07 +08:00
手瓜一十雪
475afeb7c8 build: 1.3.5-beta28 2024-05-17 21:30:37 +08:00
手瓜一十雪
7cbbb846eb build: 1.3.5-beta27 2024-05-17 21:26:32 +08:00
手瓜一十雪
25f947968c fix: typo 2024-05-17 19:55:12 +08:00
手瓜一十雪
cad824dcbc refactor: powershell script 2024-05-17 19:22:36 +08:00
手瓜一十雪
e506f50b00 build: 1.3.5-beta24 2024-05-17 18:51:31 +08:00
手瓜一十雪
96ec149a98 fix: webui 2024-05-17 18:23:50 +08:00
手瓜一十雪
8c913512f6 fix: webui 2024-05-17 18:21:03 +08:00
手瓜一十雪
4cc307299d build: 1.3.5-beta23 2024-05-17 18:12:41 +08:00
手瓜一十雪
407c6b4c5f fix: webui 2024-05-17 18:11:53 +08:00
手瓜一十雪
8f87070434 build: 1.3.5-beta22 2024-05-17 17:17:49 +08:00
手瓜一十雪
4a63996ee2 docs: change 2024-05-17 17:08:01 +08:00
手瓜一十雪
0358fe7620 feat: UpdateConfig 2024-05-17 17:03:48 +08:00
手瓜一十雪
55e64395ed build: 1.3.5-beta20 2024-05-17 15:39:31 +08:00
手瓜一十雪
ff5fb18e14 chore: sync core 2024-05-16 20:47:12 +08:00
手瓜一十雪
52dd960857 build: 1.3.5-beta19 2024-05-16 20:24:49 +08:00
手瓜一十雪
430221c2de fix: check msgElement 2024-05-16 20:23:36 +08:00
手瓜一十雪
217bdf8f92 build: 1.3.5-beta17 2024-05-16 12:53:33 +08:00
手瓜一十雪
38c6c869bf docs: change 2024-05-16 12:52:45 +08:00
手瓜一十雪
84d46da67e fix: ws心跳问题 2024-05-16 12:46:27 +08:00
手瓜一十雪
eb9d6240d7 chore: move 2024-05-16 11:57:02 +08:00
linyuchen
2d44a871b0 chore: Sync core 2024-05-15 23:08:57 +08:00
手瓜一十雪
3f89f350ff fix: 移除umami 2024-05-15 22:18:05 +08:00
手瓜一十雪
1a8407a782 refactor: requests 2024-05-15 21:13:41 +08:00
手瓜一十雪
cf288a3f73 feat: 迁移配置辅助函数 2024-05-15 20:55:09 +08:00
手瓜一十雪
f1f37fb180 Merge pull request #23 from Wesley-Young/main
Refactoring onebot11/action/msg/SendMsg
2024-05-15 19:47:37 +08:00
手瓜一十雪
fb0dd079fd Merge branch 'main' into pr/23 2024-05-15 19:47:19 +08:00
手瓜一十雪
a6c584c85c Merge branch 'main' of https://github.com/Wesley-Young/NapCatQQ.Patch into pr/23 2024-05-15 19:46:46 +08:00
手瓜一十雪
77adf35a30 fix: export problem 2024-05-15 19:45:27 +08:00
linyuchen
dc6951c2a9 Merge remote-tracking branch 'origin/main' 2024-05-15 17:55:20 +08:00
linyuchen
d14ba3f0f7 feat: Cache decorator 2024-05-15 17:55:03 +08:00
Wesley F. Young
78ddf36e35 refactor: split types.ts into separate files 2024-05-15 17:02:24 +08:00
Wesley F. Young
d42734624d refactor: move checkSendMessage and handleForwardNode to separate files 2024-05-15 16:43:21 +08:00
Wesley F. Young
b5dbd9d59b refactor: rename function convertMessage2List to normalize 2024-05-15 16:33:15 +08:00
手瓜一十雪
bed3e1289b chore: sync core 2024-05-15 16:11:01 +08:00
手瓜一十雪
b11ca4e60e Merge branch 'main' into pr/23 2024-05-15 16:10:11 +08:00
Wesley F. Young
4fcf3aa2bd refactor: better type inferring; move createSendElement into another file 2024-05-15 14:53:58 +08:00
手瓜一十雪
dc39da8ca5 build: 1.3.5-beta15 2024-05-15 12:13:39 +08:00
手瓜一十雪
c10c87d28e build: 1.3.5-beta14 2024-05-15 12:10:52 +08:00
手瓜一十雪
c6fe6f1cc5 Merge pull request #22 from SherkeyXD/main
refactor: 重构 Onebot 配置格式,增强可读性
2024-05-15 12:07:46 +08:00
手瓜一十雪
1c2bbeb26d fix: webui renderer 2024-05-15 12:06:17 +08:00
SherkeyXD
17ed3692d0 refactor: webui 跟进 Onebot 配置重构 2024-05-15 11:43:20 +08:00
手瓜一十雪
966a00f41e chore: sync code 2024-05-15 11:40:25 +08:00
手瓜一十雪
fd8d8f89aa Merge branch 'main' into pr/22 2024-05-15 11:32:26 +08:00
手瓜一十雪
305bb74072 chore: sync core 2024-05-15 11:00:24 +08:00
手瓜一十雪
7f4dcdd134 Merge branch 'main' into pr/22 2024-05-15 10:59:46 +08:00
手瓜一十雪
aac37dcce1 docs: typo 2024-05-15 09:35:01 +08:00
手瓜一十雪
f539c662a5 docs: todo 2024-05-15 09:32:05 +08:00
SherkeyXD
c82f346dd0 refactor: 重构 Onebot 配置格式,增强可读性 2024-05-15 00:17:59 +08:00
手瓜一十雪
21b4a87837 docs: change 2024-05-14 23:05:01 +08:00
手瓜一十雪
ae73bcf24b chore: sync core 2024-05-14 22:56:24 +08:00
手瓜一十雪
2a3b56bde1 build: 1.3.5-beta12 2024-05-14 22:53:26 +08:00
手瓜一十雪
b8ebededd8 fix: Member Kick Event 2024-05-14 22:48:43 +08:00
手瓜一十雪
227c4c422c build: 1.3.5-beta11 2024-05-14 20:44:04 +08:00
手瓜一十雪
652bfb93cc docs: change 2024-05-14 17:24:17 +08:00
手瓜一十雪
c2278e3536 build: v1.3.5-beta10 2024-05-14 16:40:23 +08:00
手瓜一十雪
caa2fca4e8 refactor: http requests 2024-05-14 15:31:53 +08:00
手瓜一十雪
745cb0175c refactor: requests 2024-05-14 15:19:37 +08:00
手瓜一十雪
e5165a780f feat: 新增群荣誉信息 2024-05-14 14:08:57 +08:00
手瓜一十雪
b4b91af02b feat: 新增群荣誉信息 2024-05-14 14:02:29 +08:00
手瓜一十雪
5649ff9c2e chore: sync core 2024-05-14 11:38:39 +08:00
手瓜一十雪
5b4bf6c62a chore: sync core 2024-05-14 10:20:27 +08:00
手瓜一十雪
93cb662282 refactor: scipt and request 2024-05-14 10:16:30 +08:00
手瓜一十雪
00a8715e58 chore: sync core 2024-05-13 21:24:47 +08:00
手瓜一十雪
7ecd479b3e refactor: webapi http 2024-05-13 21:22:20 +08:00
手瓜一十雪
8fe7d3aaec refactor: sign music 2024-05-13 21:14:48 +08:00
手瓜一十雪
f32a693393 feat: 配置热重载 2024-05-13 21:07:19 +08:00
手瓜一十雪
17ebc01597 fix: linux script env 2024-05-13 18:39:59 +08:00
手瓜一十雪
827fb698e1 chore: version 2024-05-13 18:25:34 +08:00
手瓜一十雪
32bdf10fd2 refactor: check version 2024-05-13 18:13:52 +08:00
手瓜一十雪
b795e6c3d2 refactor: umami 2024-05-13 18:08:46 +08:00
手瓜一十雪
42ba524e4e refactor: HttpGetJson 2024-05-13 17:53:50 +08:00
手瓜一十雪
317c6d96e3 refactor: http_util 2024-05-13 17:41:10 +08:00
手瓜一十雪
3692d1499f refactor: boot script 2024-05-13 17:26:22 +08:00
手瓜一十雪
b21fbad8a3 refactor: boot scipt 2024-05-13 16:57:03 +08:00
手瓜一十雪
743334a68a refactor: version check 2024-05-13 16:46:40 +08:00
手瓜一十雪
951413eb38 docs: change 2024-05-13 16:44:30 +08:00
手瓜一十雪
32dcdef853 fix: build script 2024-05-13 16:43:16 +08:00
手瓜一十雪
34c9254d4a fix: typo 2024-05-13 16:39:24 +08:00
手瓜一十雪
14012a4668 Merge branch 'main' of https://github.com/NapNeko/NapCatQQ 2024-05-13 16:38:19 +08:00
手瓜一十雪
575debca63 fix: reboot on win 2024-05-13 16:37:48 +08:00
linyuchen
763cac8532 Merge remote-tracking branch 'origin/main' 2024-05-13 16:32:52 +08:00
linyuchen
43faacd7a7 doc: changelog history 2024-05-13 16:32:40 +08:00
Version
1d4e307e96 chore:version change 2024-05-13 08:09:02 +00:00
linyuchen
7f8933b0de doc: changelog 2024-05-13 16:05:35 +08:00
手瓜一十雪
81608ff025 docs:change 2024-05-13 13:56:36 +08:00
手瓜一十雪
db63675b8e fix: 修复重启 但win无法及时结束父进程 2024-05-13 13:44:23 +08:00
linyuchen
f74a83bc46 doc: changelog 2024-05-13 12:53:44 +08:00
linyuchen
bc1deba3e4 style: eslint 2024-05-13 12:53:30 +08:00
手瓜一十雪
d6113a8f0a fix: 尝试修复 但仍然无法使用reboot 2024-05-13 12:35:15 +08:00
手瓜一十雪
2062cd48ea fix: RebootNormol 2024-05-13 09:33:00 +08:00
手瓜一十雪
1c965ef515 feat: api Extend RebootNormol 2024-05-13 09:32:25 +08:00
linyuchen
58291b7156 update core 2024-05-13 08:52:55 +08:00
linyuchen
afd1648d80 refactor: GetUserDetailInfo auto map uid2uin 2024-05-13 08:41:48 +08:00
linyuchen
21814ffa9a Merge remote-tracking branch 'origin/main' 2024-05-13 01:28:23 +08:00
手瓜一十雪
9d3522da54 fix: OnGroupNotifiesUpdated catch getUserDetailInfo 2024-05-13 01:28:11 +08:00
手瓜一十雪
e07a76755e docs: todo 2024-05-12 23:22:53 +08:00
手瓜一十雪
ba46bcdeae docs: change 2024-05-12 23:21:48 +08:00
手瓜一十雪
8d7e44314c build: 1.3.5-beta8 2024-05-12 23:18:59 +08:00
手瓜一十雪
35a67498c7 Merge branch 'main' of https://github.com/NapNeko/NapCatQQ 2024-05-12 23:18:39 +08:00
手瓜一十雪
90dd934f95 feat: limit sendMsg 2024-05-12 23:18:27 +08:00
手瓜一十雪
4087045542 docs: change 2024-05-12 22:59:30 +08:00
手瓜一十雪
d11cef5907 build: 1.3.5-beta7 2024-05-12 22:57:32 +08:00
手瓜一十雪
76c91d226c build: 1.3.5-beta6 2024-05-12 22:23:27 +08:00
手瓜一十雪
c2b4dd2afd feat: Reboot Api(未经测试) 2024-05-12 22:19:03 +08:00
手瓜一十雪
25b39cb39a Merge branch 'main' of https://github.com/NapNeko/NapCatQQ 2024-05-12 22:12:13 +08:00
手瓜一十雪
35dcb7b88b feat: reboot util 2024-05-12 22:11:47 +08:00
手瓜一十雪
e5f7e7c26e docs: change 2024-05-12 22:05:07 +08:00
手瓜一十雪
c5c11fd6a6 docs: change 2024-05-12 22:04:49 +08:00
手瓜一十雪
8134083419 build: 1.3.5-beta5 2024-05-12 22:00:18 +08:00
linyuchen
a87e624198 build: fix fetch ua 2024-05-12 21:50:50 +08:00
linyuchen
e4c62d20b4 build: Fix http UA 2024-05-12 21:49:39 +08:00
手瓜一十雪
fa195d9e55 docs: change 2024-05-12 21:48:38 +08:00
linyuchen
5ef5773d23 update core 2024-05-12 21:48:30 +08:00
linyuchen
6eea52afdf Merge remote-tracking branch 'origin/main' 2024-05-12 21:46:27 +08:00
linyuchen
80e64af30f fix: Fetch miss ua 2024-05-12 21:46:13 +08:00
手瓜一十雪
563b6ddc36 refactor: rm SetGroupNotice 2024-05-12 21:24:22 +08:00
手瓜一十雪
c051ab9dc4 fix: rm exist GoCQHTTP_SendGroupNotice 2024-05-12 20:52:40 +08:00
linyuchen
87737a8bdb refactor: Remove random os hostname 2024-05-12 20:41:45 +08:00
linyuchen
94273d80b0 refactor: Random os hostname 2024-05-12 20:32:36 +08:00
手瓜一十雪
a08ec2a4bd docs: CHANGELOG 2024-05-12 18:41:28 +08:00
linyuchen
d246c556f4 update core.lib 2024-05-12 18:00:56 +08:00
linyuchen
65aa365e38 Merge remote-tracking branch 'origin/main'
# Conflicts:
#	src/core.lib/src/adapters/NodeIDependsAdapter.js
#	src/core.lib/src/adapters/NodeIDispatcherAdapter.js
#	src/core.lib/src/adapters/NodeIGlobalAdapter.js
#	src/core.lib/src/adapters/index.js
#	src/core.lib/src/apis/file.js
#	src/core.lib/src/apis/friend.js
#	src/core.lib/src/apis/group.js
#	src/core.lib/src/apis/index.js
#	src/core.lib/src/apis/msg.js
#	src/core.lib/src/apis/sign.js
#	src/core.lib/src/apis/user.js
#	src/core.lib/src/apis/webapi.js
#	src/core.lib/src/core.js
#	src/core.lib/src/data.js
#	src/core.lib/src/entities/cache.js
#	src/core.lib/src/entities/constructor.js
#	src/core.lib/src/entities/group.js
#	src/core.lib/src/entities/index.js
#	src/core.lib/src/entities/msg.js
#	src/core.lib/src/entities/notify.js
#	src/core.lib/src/entities/user.js
#	src/core.lib/src/external/hook.js
#	src/core.lib/src/index.js
#	src/core.lib/src/listeners/NodeIKernelBuddyListener.js
#	src/core.lib/src/listeners/NodeIKernelFileAssistantListener.js
#	src/core.lib/src/listeners/NodeIKernelGroupListener.js
#	src/core.lib/src/listeners/NodeIKernelLoginListener.js
#	src/core.lib/src/listeners/NodeIKernelMsgListener.js
#	src/core.lib/src/listeners/NodeIKernelProfileListener.js
#	src/core.lib/src/listeners/NodeIKernelRobotListener.js
#	src/core.lib/src/listeners/NodeIKernelSessionListener.js
#	src/core.lib/src/listeners/NodeIKernelStorageCleanListener.js
#	src/core.lib/src/listeners/index.js
#	src/core.lib/src/services/common.js
#	src/core.lib/src/services/index.js
#	src/core.lib/src/sessionConfig.js
#	src/core.lib/src/utils/config.js
#	src/core.lib/src/utils/db.js
#	src/core.lib/src/utils/rkey.js
#	src/core.lib/src/wrapper.js
2024-05-12 18:00:42 +08:00
linyuchen
eeeae449b4 update core.lib 2024-05-12 18:00:23 +08:00
linyuchen
17c10a7ba2 update core.lib 2024-05-12 17:59:25 +08:00
手瓜一十雪
69f4383678 feat: try add reboot 2024-05-12 17:56:57 +08:00
linyuchen
07852a7295 fix: Log filename add milliseconds 2024-05-12 17:56:42 +08:00
手瓜一十雪
20b7e9b6b5 fix:build error 2024-05-12 16:59:03 +08:00
手瓜一十雪
75f43ccea4 chore: sync core 2024-05-12 16:56:07 +08:00
手瓜一十雪
59e5785e93 fix: build 2024-05-12 16:55:01 +08:00
手瓜一十雪
b38f52dba9 chore: sync core 2024-05-12 16:46:35 +08:00
手瓜一十雪
2a6b17a48e fix: try support win7 2024-05-12 16:21:04 +08:00
手瓜一十雪
a6c056a894 fix: SendGroupNotice Image Unlink 2024-05-12 15:49:53 +08:00
手瓜一十雪
5c3442a71f feat: 扩展SendGroupNotice 2024-05-12 15:27:02 +08:00
手瓜一十雪
390253242f build: 1.3.5-beta1 2024-05-12 15:21:35 +08:00
手瓜一十雪
9ab80fe1ac feat: Api SendGroupNotice 2024-05-12 12:07:51 +08:00
手瓜一十雪
91fdd09e7a docs: 2024-05-12 00:41:06 +08:00
手瓜一十雪
db5bd5c8a4 chore: 1.3.2 version 2024-05-11 14:42:49 +08:00
手瓜一十雪
ef94c2fe7c chore: remove debug code 2024-05-11 14:30:36 +08:00
手瓜一十雪
72a25ed8e1 docs: change fix image recv 2024-05-11 14:24:11 +08:00
手瓜一十雪
eb065e218f build: 1.3.2-beta7 2024-05-11 14:23:36 +08:00
手瓜一十雪
33426736fc docs: change 2024-05-11 13:51:01 +08:00
手瓜一十雪
896658d5ce build: 1.3.2-beta6 2024-05-11 13:45:41 +08:00
linyuchen
b14135ed72 refactor: Use remote rkey 2024-05-11 13:43:07 +08:00
linyuchen
a1baf2e32d Merge remote-tracking branch 'origin/main'
# Conflicts:
#	src/onebot11/action/extends/GetFriendWithCategory.ts
#	src/onebot11/action/types.ts
2024-05-11 13:42:05 +08:00
linyuchen
f9aa2d3bce refactor: Use remote rkey 2024-05-11 13:41:09 +08:00
手瓜一十雪
c95d0e0696 build: 1.3.2-beta5 2024-05-11 13:34:04 +08:00
手瓜一十雪
ad4b84d446 build: 1.3.2-beta3 2024-05-11 13:10:34 +08:00
手瓜一十雪
3e27d5fcb0 fix:roboot file 2024-05-11 13:06:35 +08:00
手瓜一十雪
48a100f49a feat: reboot-uncomplete 2024-05-11 10:51:07 +08:00
linyuchen
698649f981 Merge remote-tracking branch 'origin/main' 2024-05-11 10:45:22 +08:00
手瓜一十雪
780078c3aa build: 1.3.0-beta2 2024-05-11 10:15:08 +08:00
手瓜一十雪
4c25e4ddee build: 1.3.2-beta1 2024-05-10 23:52:18 +08:00
手瓜一十雪
c0a5ac2ac5 feat: ServerRkeyWrapper 2024-05-10 23:40:07 +08:00
student_2333
0435409870 fix 2024-05-10 21:41:06 +08:00
student_2333
c521269409 fix: custom music card content 2024-05-10 21:38:39 +08:00
linyuchen
1e252b7e4c Merge remote-tracking branch 'origin/main'
# Conflicts:
#	src/core.lib/src/adapters/NodeIDependsAdapter.js
#	src/core.lib/src/adapters/NodeIDispatcherAdapter.js
#	src/core.lib/src/adapters/NodeIGlobalAdapter.js
#	src/core.lib/src/adapters/index.js
#	src/core.lib/src/apis/file.js
#	src/core.lib/src/apis/friend.js
#	src/core.lib/src/apis/group.js
#	src/core.lib/src/apis/index.js
#	src/core.lib/src/apis/msg.js
#	src/core.lib/src/apis/sign.js
#	src/core.lib/src/apis/user.js
#	src/core.lib/src/apis/webapi.js
#	src/core.lib/src/core.js
#	src/core.lib/src/data.js
#	src/core.lib/src/entities/cache.js
#	src/core.lib/src/entities/constructor.js
#	src/core.lib/src/entities/group.js
#	src/core.lib/src/entities/index.js
#	src/core.lib/src/entities/msg.js
#	src/core.lib/src/entities/notify.js
#	src/core.lib/src/entities/user.js
#	src/core.lib/src/external/hook.js
#	src/core.lib/src/index.js
#	src/core.lib/src/listeners/NodeIKernelBuddyListener.js
#	src/core.lib/src/listeners/NodeIKernelFileAssistantListener.js
#	src/core.lib/src/listeners/NodeIKernelGroupListener.js
#	src/core.lib/src/listeners/NodeIKernelLoginListener.js
#	src/core.lib/src/listeners/NodeIKernelMsgListener.js
#	src/core.lib/src/listeners/NodeIKernelProfileListener.js
#	src/core.lib/src/listeners/NodeIKernelRobotListener.js
#	src/core.lib/src/listeners/NodeIKernelSessionListener.js
#	src/core.lib/src/listeners/NodeIKernelStorageCleanListener.js
#	src/core.lib/src/listeners/index.js
#	src/core.lib/src/services/common.js
#	src/core.lib/src/services/index.js
#	src/core.lib/src/sessionConfig.js
#	src/core.lib/src/utils/config.js
#	src/core.lib/src/utils/db.js
#	src/core.lib/src/wrapper.js
2024-05-10 21:35:49 +08:00
linyuchen
d72b1edc48 chore: build core.lib 2024-05-10 21:35:14 +08:00
手瓜一十雪
f7307e8e01 chore: sync core 2024-05-10 21:32:22 +08:00
手瓜一十雪
127905f04b docs: change 2024-05-10 20:29:37 +08:00
手瓜一十雪
261c6dabd5 feat: 扩展GetFriendCategory Api 2024-05-10 20:27:38 +08:00
手瓜一十雪
cae84bbf02 style: rename DataRuntime to WebUiDataRuntime 2024-05-10 17:55:29 +08:00
手瓜一十雪
cdb2bc52fa feat: add BuddyProfileLikeReq Type 2024-05-09 23:17:33 +08:00
手瓜一十雪
cd2972eee0 chore: sync core 2024-05-09 23:15:32 +08:00
手瓜一十雪
4036aa8d0e chore: version 2024-05-09 23:06:55 +08:00
224 changed files with 10128 additions and 2875 deletions

View File

@@ -5,7 +5,7 @@ root = true
# Unix-style newlines with a newline ending every file
[*]
end_of_line = lf
end_of_line = lf|crlf
insert_final_newline = true
# Matches multiple files with brace expansion notation
@@ -18,4 +18,4 @@ indent_style = space
indent_size = 2
# Unfortunately, EditorConfig doesn't support space configuration inside import braces directly.
# You'll need to rely on your linter/formatter like ESLint or Prettier for that.
# You'll need to rely on your linter/formatter like ESLint or Prettier for that.

View File

@@ -1 +1 @@
VITE_BUILD_TYPE = Production
VITE_BUILD_TYPE = Production

View File

@@ -1,9 +1,10 @@
module.exports = {
'env': {
'browser': true,
'es2021': true,
'node': true
},
'ignorePatterns': ['src/core/', 'src/core.lib/'],
'ignorePatterns': ['src/core/', 'src/core.lib/','src/proto/'],
'extends': [
'eslint:recommended',
'plugin:@typescript-eslint/recommended'

View File

@@ -121,7 +121,7 @@ jobs:
run: echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_ENV
- name: Clone Changes Log
run: curl -o CHANGELOG.md https://fastly.jsdelivr.net/gh/NapNeko/NapCatQQ@main/CHANGELOG.md
run: curl -o CHANGELOG.md https://fastly.jsdelivr.net/gh/NapNeko/NapCatQQ@main/docs/changelogs/CHANGELOG.v${{ env.VERSION }}.md
- name: Create Release Draft and Upload Artifacts
uses: softprops/action-gh-release@v1

5
.gitignore vendored
View File

@@ -1,10 +1,11 @@
# Develop
node_modules/
package-lock.json
pnpm-lock.yaml
out/
dist/
src/core.lib/common/
test
/src/core.lib/common/
/localdebug/
# Editor
.vscode/*

View File

@@ -1,15 +0,0 @@
# v1.3.0
QQ Version: Windows 9.9.9-23424 / Linux 3.2.7-23361
## 修复与优化
* 修复了一个导致每个图片都自动下载的 bug
* 再一次修复图片URL,支持 Win/Linux X64 获取Rkey暂时不支持arm64
* 修复了设置消息群聊与私聊已读接口
* 修复无法获取进群申请人员信息
## 新增与调整
* 再一次对获取Cookies与获取群成员优化分别添加30/60/120分钟缓存
* 新增 WebUi 支持远程配置设置 详细参考官方教程
* 新增二维码过期自动刷新功能
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)

View File

@@ -0,0 +1,17 @@
# v1.3.3
QQ Version: Windows 9.9.9-23424 / Linux 3.2.7-23361
## 修复与优化
* 尝试修复多开崩溃问题
* 修复群列表更新问题
* 修复兼容性问题支持Win7
* 修复下载 http 资源缺少UA
* 优化少量消息合并转发速度
* 修复加载群通知时出现 getUserDetailInfo timeout 导致程序崩溃
## 新增与调整
* 新增设置群公告 Api: /_send_group_notice
* 新增重启实现 包括重启快速登录/普通重启 副作用: 原进程 无法清理
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)

View File

@@ -0,0 +1,18 @@
# v1.3.5
QQ Version: Windows 9.9.9-23424 / Linux 3.2.7-23361
## 修复与优化
* 优化启动脚本
* 修复非管理时群成员减少事件上报 **无法获取操作者与操作类型**
* 修复快速重启进程清理问题
* 优化配置文件格式 支持自动更新配置 但仍然建议 **备份配置**
* 修复正向反向ws多个客户端周期多次心跳问题
## 新增与调整
* 支持WebUi热重载
* 新增启动输出WEBUI秘钥
* 新增群荣誉信息 /get_group_honor_info
* 支持获取群系统消息 /get_group_system_msg
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)

View File

@@ -0,0 +1,11 @@
# v1.3.6
QQ Version: Windows 9.9.9-23424 / Linux 3.2.7-23361
## 修复与优化
* 修复戳一戳多次上报问题
## 新增与调整
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)

View File

@@ -0,0 +1,15 @@
# v1.3.8
QQ Version: Windows 9.9.9-23873 / Linux 3.2.7-23361
## 修复与优化
* 优化打包后体积问题
* 修复QQ等级获取
* 兼容 9.7.x 版本换行符 统一为 \n
* 修复处理加群请求 字段异常情况
* 修复退群通知问题
## 新增与调整
新增的 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

@@ -1,65 +1,66 @@
{
"name": "napcat",
"private": true,
"type": "module",
"version": "1.3.0",
"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-commonjs": "^25.0.7",
"@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",
"protobufjs-cli": "^1.1.2",
"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": {
"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",
"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.4.5",
"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"
}
}

View File

@@ -1,13 +1,42 @@
let fs = require("fs");
let process = require("process")
const fs = require("fs");
const process = require("process");
console.log("[NapCat] [CheckVersion] 开始检测当前仓库版本...");
let currentVersion = require("../package.json").version;
let targetVersion = process.env.VERSION;
console.log("[NapCat] [CheckVersion] currentVersion:", currentVersion, " targetVersion:", targetVersion);
// fs.mkdirSync("./dist");
if (currentVersion === targetVersion) {
fs.writeFileSync("./checkVersion.sh", "#!/bin/bashe\necho \"CheckVersion Is Done\"")
} else {
let runscript = "sed -i 's/\"version\": \"" + currentVersion + "\"/\"version\": \"" + targetVersion + "\"/g' package.json";
fs.writeFileSync("./checkVersion.sh", "#!/bin/bashe\ngit config --global user.email \"bot@test.wumiao.wang\"\n git config --global user.name \"Version\"\n" + runscript + "\ngit add .\n git commit -m \"chore:version change\"\n git push -u origin main")
}
try {
const packageJson = require("../package.json");
const currentVersion = packageJson.version;
const targetVersion = process.env.VERSION;
console.log("[NapCat] [CheckVersion] currentVersion:", currentVersion, "targetVersion:", targetVersion);
// 验证 targetVersion 格式
if (!targetVersion || typeof targetVersion !== 'string') {
console.error("[NapCat] [CheckVersion] 目标版本格式不正确或未设置!");
return;
}
// 写入脚本文件的统一函数
const writeScriptToFile = (content) => {
fs.writeFileSync("./checkVersion.sh", content, { flag: 'w' });
console.log("[NapCat] [CheckVersion] checkVersion.sh 文件已更新。");
};
if (currentVersion === targetVersion) {
// 不需要更新版本,写入一个简单的脚本
const simpleScript = "#!/bin/bash\necho \"CheckVersion Is Done\"";
writeScriptToFile(simpleScript);
} else {
// 更新版本构建安全的sed命令
const safeScriptContent = `
#!/bin/bash
git config --global user.email "bot@test.wumiao.wang"
git config --global user.name "Version"
sed -i "s/\\\"version\\\": \\\"${currentVersion}\\\"/\\\"version\\\": \\\"${targetVersion}\\\"/g" package.json
git add .
git commit -m "chore:version change"
git push -u origin main`;
writeScriptToFile(safeScriptContent);
}
} catch (error) {
console.error("[NapCat] [CheckVersion] 检测过程中发生错误:", error);
}

View File

@@ -15,4 +15,4 @@ for %%a in ("!RetString!") do (
set "QQPath=!pathWithoutUninstall!QQ.exe"
set ELECTRON_RUN_AS_NODE=1
echo !QQPath!
"!QQPath!" ./napcat.cjs %*
"!QQPath!" ./napcat.mjs %*

View File

@@ -5,11 +5,39 @@ function Get-QQpath {
return [System.IO.Path]::GetDirectoryName($uninstallString) + "\QQ.exe"
}
catch {
return "D:\QQ.exe"
throw "get QQ path error: $_"
}
}
function Select-QQPath {
Add-Type -AssemblyName System.Windows.Forms
[System.Windows.Forms.Application]::EnableVisualStyles()
$dialogTitle = "Select QQ.exe"
$filePicker = New-Object System.Windows.Forms.OpenFileDialog
$filePicker.Title = $dialogTitle
$filePicker.Filter = "Executable Files (*.exe)|*.exe|All Files (*.*)|*.*"
$filePicker.FilterIndex = 1
$null = $filePicker.ShowDialog()
if (-not ($filePicker.FileName)) {
throw "User did not select an .exe file."
}
return $filePicker.FileName
}
$params = $args -join " "
$QQpath = Get-QQpath
$Bootfile = Join-Path $PSScriptRoot "napcat.cjs"
Try {
$QQpath = Get-QQpath
}
Catch {
$QQpath = Select-QQPath
}
if (!(Test-Path $QQpath)) {
throw "provided QQ path is invalid: $QQpath"
}
$Bootfile = Join-Path $PSScriptRoot "napcat.mjs"
$env:ELECTRON_RUN_AS_NODE = 1
Start-Process powershell -ArgumentList "-noexit", "-noprofile", "-command &{& chcp 65001;& '$QQpath' $Bootfile $params}"
$commandInfo = Get-Command $QQpath -ErrorAction Stop
Start-Process powershell -ArgumentList "-noexit", "-noprofile", "-command &{& chcp 65001;& '$($commandInfo.Path)' $Bootfile $params}"

View File

@@ -14,4 +14,4 @@ for %%a in ("!RetString!") do (
set "QQPath=!pathWithoutUninstall!QQ.exe"
set ELECTRON_RUN_AS_NODE=1
echo !QQPath!
"!QQPath!" ./napcat.cjs %*
"!QQPath!" ./napcat.mjs %*

View File

@@ -5,11 +5,39 @@ function Get-QQpath {
return [System.IO.Path]::GetDirectoryName($uninstallString) + "\QQ.exe"
}
catch {
return "D:\QQ.exe"
throw "get QQ path error: $_"
}
}
function Select-QQPath {
Add-Type -AssemblyName System.Windows.Forms
[System.Windows.Forms.Application]::EnableVisualStyles()
$dialogTitle = "Select QQ.exe"
$filePicker = New-Object System.Windows.Forms.OpenFileDialog
$filePicker.Title = $dialogTitle
$filePicker.Filter = "Executable Files (*.exe)|*.exe|All Files (*.*)|*.*"
$filePicker.FilterIndex = 1
$null = $filePicker.ShowDialog()
if (-not ($filePicker.FileName)) {
throw "User did not select an .exe file."
}
return $filePicker.FileName
}
$params = $args -join " "
$QQpath = Get-QQpath
$Bootfile = Join-Path $PSScriptRoot "napcat.cjs"
Try {
$QQpath = Get-QQpath
}
Catch {
$QQpath = Select-QQPath
}
if (!(Test-Path $QQpath)) {
throw "provided QQ path is invalid: $QQpath"
}
$Bootfile = Join-Path $PSScriptRoot "napcat.mjs"
$env:ELECTRON_RUN_AS_NODE = 1
Start-Process powershell -ArgumentList "-noexit", "-noprofile", "-command &{& '$QQpath' $Bootfile $params}"
$commandInfo = Get-Command $QQpath -ErrorAction Stop
Start-Process powershell -ArgumentList "-noexit", "-noprofile", "-command &{& '$($commandInfo.Path)' $Bootfile $params}"

View File

@@ -1,4 +1,21 @@
#!/bin/bash
SCRIPT_DIR=$(realpath $(dirname "${BASH_SOURCE[0]}"))
get_script_dir() {
local script_path="${1:-$0}"
local script_dir
script_path=$(readlink -f "$script_path")
script_dir=$(dirname "$script_path")
echo "$script_dir"
}
SCRIPT_DIR=$(get_script_dir)
export ELECTRON_RUN_AS_NODE=1
/opt/QQ/qq ${SCRIPT_DIR}/napcat.cjs $@
if ! [ -x /opt/QQ/qq ]; then
echo "Error: /opt/QQ/qq is not executable or does not exist." >&2
exit 1
fi
/opt/QQ/qq "${SCRIPT_DIR}/napcat.mjs" "$@"

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) {
@@ -61,12 +61,12 @@ export abstract class HttpServerBase {
this.listen(port, host);
} catch (e: any) {
logError('HTTP服务启动失败', e.toString());
// llonebotError.httpServerError = "HTTP服务启动失败, " + e.toString()
// httpServerError = "HTTP服务启动失败, " + e.toString()
}
}
stop() {
// llonebotError.httpServerError = ""
// httpServerError = ""
if (this.server) {
this.server.close();
this.server = null;
@@ -114,8 +114,10 @@ export abstract class HttpServerBase {
this.server = this.expressAPP.listen(port, host, () => {
const info = `${this.name} started ${host}:${port}`;
log(info);
}).on('error', (err) => {
logError('HTTP服务启动失败', err.toString());
});
}catch (e: any) {
} catch (e: any) {
logError('HTTP服务启动失败, 请检查监听的ip地址和端口', e.stack.toString());
}
}

View File

@@ -30,9 +30,10 @@ export class WebsocketServerBase {
start(port: number, host: string = '') {
try {
this.ws = new WebSocketServer({
port ,
port,
host: '',
maxPayload: 1024 * 1024 * 1024
}).on('error', () => {
});
log(`ws服务启动成功, ${host}:${port}`);
} catch (e: any) {

View File

@@ -1,6 +1,12 @@
import path from 'node:path';
import fs from 'node:fs';
import { log, logDebug, logError } from '@/common/utils/log';
import { dirname } from 'node:path';
import { fileURLToPath } from 'node:url';
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
const configDir = path.resolve(__dirname, 'config');
fs.mkdirSync(configDir, { recursive: true });

View File

@@ -0,0 +1,165 @@
import { NodeIKernelMsgListener } from "@/core";
import { NodeIQQNTWrapperSession } from "@/core/wrapper";
import { randomUUID } from "crypto";
interface Internal_MapKey {
timeout: number,
createtime: number,
func: Function
}
export class ListenerClassBase {
[key: string]: string;
}
export class NTEventWrapper {
private ListenerMap: Map<string, typeof ListenerClassBase> | undefined;//ListenerName-Unique -> Listener构造函数
private WrapperSession: NodeIQQNTWrapperSession | undefined;//WrapperSession
private ListenerManger: Map<string, ListenerClassBase> = new Map<string, ListenerClassBase>(); //ListenerName-Unique -> Listener实例
private EventTask: Map<string, Map<string, Internal_MapKey>> = new Map<string, Map<string, Internal_MapKey>>();//tasks ListenerName -> uuid -> {timeout,createtime,func}
private ListenerInit: Map<string, boolean> = new Map<string, boolean>();
constructor() {
}
init({ ListenerMap, WrapperSession }: { ListenerMap: Map<string, typeof ListenerClassBase>, WrapperSession: NodeIQQNTWrapperSession }) {
this.ListenerMap = ListenerMap;
this.WrapperSession = WrapperSession;
}
CreatEventFunction<T extends (...args: any) => any>(eventName: string): T | undefined {
let eventNameArr = eventName.split('/');
type eventType = {
[key: string]: () => { [key: string]: (...params: Parameters<T>) => Promise<ReturnType<T>> }
}
if (eventNameArr.length > 1) {
let serviceName = 'get' + eventNameArr[0].replace('NodeIKernel', '');
let eventName = eventNameArr[1];
let 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;
}
}
// 获取某个Listener 存在返回 不存在创建
CreatListenerFunction<T>(listenerName: string, uniqueCode: string = ""): T {
let ListenerType = this.ListenerMap!.get(listenerName);
let Listener = this.ListenerManger.get(listenerName + uniqueCode);
if (!Listener && ListenerType) {
Listener = new ListenerType();
let ServiceSubName = listenerName.match(/^NodeIKernel(.*?)Listener$/);
let Service = "NodeIKernel" + ServiceSubName + "Service/addKernel" + ServiceSubName + "Listener";
let addfunc = this.CreatEventFunction<(listener: T) => number>(Service);
addfunc!(Listener as T);
this.ListenerManger.set(listenerName + uniqueCode, Listener);
}
return Listener as T;
}
// 如果存在覆盖注册 不存在则创建Listener
RigisterListener<T extends { [key: string]: (...args: any) => any }>(listenerName: string, uniqueCode: string = "NTEvent", cb: (...args: any) => any) {
let ListenerNameList = listenerName.split('/');
let ListenerMain = ListenerNameList[0];
let ListenerMethod = ListenerNameList[1];
let Listener = this.CreatListenerFunction<T>(ListenerMain, uniqueCode); //uniqueCode NTEvent
(Listener[ListenerMethod] as any) = cb;
}
//初始化Listener回调
initNTListener(ListenerName: string) {
if (this.ListenerInit.get(ListenerName)) {
return;
}
this.RigisterListener(ListenerName, "NTEvent", (...args) => {
console.log('wait... DispatcherListener');
this.DispatcherListener(ListenerName, ...args).then().catch();
})
this.ListenerInit.set(ListenerName, true);
}
//统一回调清理事件
async DispatcherListener(ListenerName: string, ...args: any[]) {
this.EventTask.get(ListenerName)?.forEach((task, uuid) => {
if (task.createtime + task.timeout > Date.now()) {
this.EventTask.get(ListenerName)?.delete(uuid);
return;
}
task.func(...args);
})
}
async CallNoListenerEvent<EventType extends (...args: any[]) => Promise<any>,>(EventName = '', timeout: number = 3000, ...args: Parameters<EventType>) {
return new Promise<ReturnType<EventType>>(async (resolve, reject) => {
let EventFunc = this.CreatEventFunction<EventType>(EventName);
let complete = false;
let Timeouter = setTimeout(() => {
if (!complete) {
reject(new Error('NTEvent EventName:' + EventName + ' timeout'));
}
}, timeout);
let 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<ArrayLike<Parameters<ListenerType>>>(async (resolve, reject) => {
const id = randomUUID();
let complete = 0;
let retData: ArrayLike<Parameters<ListenerType>> | undefined = undefined;
let databack = () => {
if (complete < waitTimes) {
reject(new Error('NTEvent EventName:' + EventName + ' ListenerName:' + ListenerName + ' timeout'));
} else {
resolve(retData as ArrayLike<Parameters<ListenerType>>);
}
}
this.initNTListener(ListenerName);
let Timeouter = setTimeout(databack, timeout);
let ListenerNameList = ListenerName.split('/');
let ListenerMain = ListenerNameList[0];
let ListenerMethod = ListenerNameList[1];
this.EventTask.get(ListenerMain)?.set(id, {
timeout: timeout,
createtime: Date.now(),
func: (...args: any[]) => {
complete++;
retData = args as ArrayLike<Parameters<ListenerType>>;
if (complete == waitTimes) {
clearTimeout(Timeouter);
databack();
}
}
});
let EventFunc = this.CreatEventFunction<EventType>(EventName);
await EventFunc!(...args);
});
}
}
// 示例代码 快速创建事件
//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

@@ -55,7 +55,7 @@ if (fs.existsSync(configVersionInfoPath)) {
export const qqVersionConfigInfo: QQVersionConfigInfo = _qqVersionConfigInfo;
export const qqPkgInfo: QQPkgInfo = require(pkgInfoPath);
export const qqPkgInfo: QQPkgInfo = JSON.parse(fs.readFileSync(pkgInfoPath).toString());
// platform_type: 3,
// app_type: 4,
// app_version: '9.9.9-23159',

View File

@@ -1,7 +1,12 @@
import * as os from 'os';
import path from 'node:path';
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) {
const systemPlatform = os.platform();
const cpuArch = os.arch();
@@ -14,6 +19,6 @@ export function cpModule(moduleName: string) {
try {
fs.copyFileSync(path.join(currentDir, fileName), path.join(currentDir, `${moduleName}.node`));
} catch (e) {
console.error(e);
}
}

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

@@ -0,0 +1,509 @@
import { ElementType, FileElement, PicElement, PttElement, RawMessage, VideoElement } from '../../core/src/entities';
import sqlite3 from 'sqlite3';
import { log, logDebug, logError } from '@/common/utils/log';
import { NTQQMsgApi } from '@/core';
import LRU from "@/common/utils/LRUCache";
export interface IRember {
last_sent_time: number;
join_time: number;
user_id: number;
}
type DBMsg = {
id: number,
shortId: number,
longId: string,
seq: number,
peerUid: string,
chatType: number,
}
type DBFile = {
name: string; // 文件名
path: string;
url: string;
size: number;
uuid: string;
msgId: string;
elementId: string;
element: PicElement | VideoElement | FileElement | PttElement;
elementType: ElementType.PIC | ElementType.VIDEO | ElementType.FILE | ElementType.PTT;
}
class DBUtilBase {
protected db: sqlite3.Database | undefined;
async init(dbPath: string) {
if (this.db) {
return;
}
return new Promise<void>((resolve, reject) => {
this.db = new sqlite3.Database(dbPath, sqlite3.OPEN_READWRITE | sqlite3.OPEN_CREATE, (err) => {
if (err) {
logError('Could not connect to database', err);
reject(err);
return;
}
this.createTable();
resolve();
});
});
}
protected createTable() {
throw new Error('Method not implemented.');
}
close() {
this.db?.close();
}
}
class DBUtil extends DBUtilBase {
private msgCache: Map<string | number, RawMessage> = new Map<string | number, RawMessage>();
private globalMsgShortId = -2147483640;
private groupIds: number[] = [];
private LURCache = new LRU<number>();
private LastSentCache = new (class {
private cache: { gid: number; uid: number }[] = [];
private maxSize: number;
constructor(maxSize: number = 5000) {
this.maxSize = maxSize;
}
get(gid: number, uid: number): boolean {
const exists = this.cache.some(
(entry) => entry.gid === gid && entry.uid === uid
);
if (!exists) {
this.cache.push({ gid, uid });
if (this.cache.length > this.maxSize) {
this.cache.shift();
}
}
return exists;
}
})();
constructor() {
super();
const interval = 1000 * 60 * 10; // 10分钟清理一次缓存
setInterval(() => {
logDebug('清理消息缓存');
this.msgCache.forEach((msg, key) => {
if ((Date.now() - parseInt(msg.msgTime) * 1000) > interval) {
this.msgCache.delete(key);
}
});
}, interval);
}
async init(dbPath: string) {
await super.init(dbPath);
this.globalMsgShortId = await this.getCurrentMaxShortId();
// 初始化群缓存列表
this.db!.serialize(() => {
const sql = `SELECT * FROM sqlite_master WHERE type='table'`;
this.db!.all(sql, [], (err, rows: { name: string }[]) => {
if (err) return logError(err);
rows.forEach((row) => this.groupIds.push(parseInt(row.name)));
//logDebug(`已加载 ${groupIds.length} 个群`);
});
});
this.LURCache.on(async (node) => {
const { value: time, groupId, userId } = node;
logDebug("插入发言时间", userId, groupId);
await this.createGroupInfoTimeTableIfNotExist(groupId);
const method = await this.getDataSetMethod(groupId, userId);
logDebug("插入发言时间方法判断", userId, groupId, method);
const sql =
method == "update"
? `UPDATE "${groupId}" SET last_sent_time = ? WHERE user_id = ?`
: `INSERT INTO "${groupId}" (last_sent_time, user_id) VALUES (?, ?)`;
this.db!.all(sql, [time, userId], (err) => {
if (err) {
return logError("插入/更新发言时间失败", userId, groupId);
}
logDebug("插入/更新发言时间成功", userId, groupId);
});
});
}
async getDataSetMethod(groupId: number, userId: number) {
// 缓存记录
if (this.LastSentCache.get(groupId, userId)) {
logDebug("缓存命中", userId, groupId);
return "update";
}
// 数据库判断
return new Promise<"insert" | "update">((resolve, reject) => {
this.db!.all(
`SELECT * FROM "${groupId}" WHERE user_id = ?`,
[userId],
(err, rows) => {
if (err) {
logError("查询发言时间存在失败", userId, groupId, err);
return logError("插入发言时间失败", userId, groupId, err);
}
if (rows.length === 0) {
logDebug("查询发言时间不存在", userId, groupId);
return resolve("insert");
}
logDebug("查询发言时间存在", userId, groupId);
resolve("update");
}
);
});
}
async createGroupInfoTimeTableIfNotExist(groupId: number) {
const createTableSQL = (groupId: number) =>
`CREATE TABLE IF NOT EXISTS "${groupId}" (
user_id INTEGER,
last_sent_time INTEGER,
join_time INTEGER,
PRIMARY KEY (user_id)
);`;
if (this.groupIds.includes(groupId)) {
return;
}
return new Promise((resolve, reject) => {
const sql = createTableSQL(groupId);
this.db!.all(sql, (err) => {
if (err) {
reject(err);
return;
}
this.groupIds.push(groupId);
resolve(true);
});
});
}
protected createTable() {
// 消息记录
const createTableSQL = `
CREATE TABLE IF NOT EXISTS msgs (
id INTEGER PRIMARY KEY AUTOINCREMENT,
shortId INTEGER NOT NULL UNIQUE,
longId TEXT NOT NULL UNIQUE,
seq INTEGER NOT NULL,
peerUid TEXT NOT NULL,
chatType INTEGER NOT NULL
)`;
this.db!.run(createTableSQL, function (err) {
if (err) {
logError('Could not create table msgs', err.stack);
}
});
// 文件缓存
const createFileTableSQL = `
CREATE TABLE IF NOT EXISTS files (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
path TEXT NOT NULL,
url TEXT,
size INTEGER NOT NULL,
uuid TEXT,
elementType INTEGER,
element TEXT NOT NULL,
elementId TEXT NOT NULL,
msgId TEXT NOT NULL
)`;
this.db!.run(createFileTableSQL, function (err) {
if (err) {
logError('Could not create table files', err);
}
});
// 接收到的临时会话消息uid
const createTempUinTableSQL = `
CREATE TABLE IF NOT EXISTS temp_uins (
id INTEGER PRIMARY KEY AUTOINCREMENT,
uid TEXT,
uin TEXT
)`;
this.db!.run(createTempUinTableSQL, function (err) {
if (err) {
logError('Could not create table temp_uins', err);
}
});
}
private async getCurrentMaxShortId() {
return new Promise<number>((resolve, reject) => {
this.db!.get('SELECT MAX(shortId) as maxId FROM msgs', (err, row: { maxId: number }) => {
if (err) {
logDebug('Could not get max short id, Use default -2147483640', err);
return resolve(-2147483640);
}
logDebug('数据库中消息最大短id', row?.maxId);
resolve(row?.maxId ?? -2147483640);
});
});
}
private async getMsg(query: string, params: any[]) {
const stmt = this.db!.prepare(query);
return new Promise<RawMessage | null>((resolve, reject) => {
stmt.get(...params, (err: any, row: DBMsg) => {
// log("getMsg", row, err);
if (err) {
logError('Could not get msg', err, query, params);
return resolve(null);
}
if (!row) {
// logDebug('不存在数据库中的消息,不进行处理', query, params);
resolve(null);
return;
}
const msgId = row.longId;
NTQQMsgApi.getMsgsByMsgId({ peerUid: row.peerUid, chatType: row.chatType }, [msgId]).then(res => {
const msg = res.msgList[0];
if (!msg) {
resolve(null);
return;
}
msg.id = row.shortId;
resolve(msg);
}).catch(e => {
resolve(null);
});
});
});
}
async getMsgByShortId(shortId: number): Promise<RawMessage | null> {
if (this.msgCache.has(shortId)) {
return this.msgCache.get(shortId)!;
}
const getStmt = 'SELECT * FROM msgs WHERE shortId = ?';
return this.getMsg(getStmt, [shortId]);
}
async getMsgByLongId(longId: string): Promise<RawMessage | null> {
if (this.msgCache.has(longId)) {
return this.msgCache.get(longId)!;
}
return this.getMsg('SELECT * FROM msgs WHERE longId = ?', [longId]);
}
async getMsgBySeq(peerUid: string, seq: string): Promise<RawMessage | null> {
const stmt = 'SELECT * FROM msgs WHERE peerUid = ? AND seq = ?';
return this.getMsg(stmt, [peerUid, seq]);
}
async addMsg(msg: RawMessage, update = true): Promise<number> {
const existMsg = await this.getMsgByLongId(msg.msgId);
if (existMsg) {
// logDebug('消息已存在,更新数据库', msg.msgId);
if (update) this.updateMsg(msg).then();
return existMsg.id!;
}
const stmt = this.db!.prepare('INSERT INTO msgs (shortId, longId, seq, peerUid, chatType) VALUES (?, ?, ?, ?, ?)');
// const runAsync = promisify(stmt.run.bind(stmt));
const shortId = ++this.globalMsgShortId;
msg.id = shortId;
//logDebug(`记录消息到数据库, 消息长id: ${msg.msgId}, 短id: ${msg.id}`);
this.msgCache.set(shortId, msg);
this.msgCache.set(msg.msgId, msg);
stmt.run(this.globalMsgShortId, msg.msgId, msg.msgSeq.toString(), msg.peerUid, msg.chatType, (err: any) => {
if (err) {
if (err.errno === 19) {
this.getMsgByLongId(msg.msgId).then((msg: RawMessage | null) => {
if (msg) {
this.msgCache.set(shortId, msg);
this.msgCache.set(msg.msgId, msg);
// logDebug('获取消息短id成功', msg.id);
} else {
logError('db could not get msg by long id', err);
}
}).catch(e => logError('db getMsgByLongId error', e));
} else {
logError('db could not add msg', err);
}
}
});
return shortId;
}
async updateMsg(msg: RawMessage) {
const existMsg = this.msgCache.get(msg.msgId);
if (existMsg) {
Object.assign(existMsg, msg);
}
//logDebug(`更新消息, shortId:${msg.id}, seq: ${msg.msgSeq}, msgId: ${msg.msgId}`);
const stmt = this.db!.prepare('UPDATE msgs SET seq=? WHERE longId=?');
stmt.run(msg.msgSeq, msg.msgId, (err: any) => {
if (err) {
logError('updateMsg db error', err);
}
});
}
async addFileCache(file: DBFile) {
const stmt = this.db!.prepare('INSERT INTO files (name, path, url, size, uuid, elementType ,element, elementId, msgId) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)');
return new Promise((resolve, reject) => {
stmt.run(file.name, file.path, file.url, file.size, file.uuid,
file.elementType,
JSON.stringify(file.element),
file.elementId,
file.msgId,
function (err: any) {
if (err) {
logError('db could not add file', err);
reject(err);
}
resolve(null);
});
});
}
private async getFileCache(query: string, params: any[]) {
const stmt = this.db!.prepare(query);
return new Promise<DBFile | null>((resolve, reject) => {
stmt.get(...params, (err: any, row: DBFile & { element: string }) => {
if (err) {
logError('db could not get file cache', err);
reject(err);
}
if (row) {
row.element = JSON.parse(row.element);
}
resolve(row);
});
});
}
async getFileCacheByName(name: string): Promise<DBFile | null> {
return this.getFileCache('SELECT * FROM files WHERE name = ?', [name]);
}
async getFileCacheByUuid(uuid: string): Promise<DBFile | null> {
return this.getFileCache('SELECT * FROM files WHERE uuid = ?', [uuid]);
}
// todo: 是否所有的文件都有uuid语音消息有没有uuid
async updateFileCache(file: DBFile) {
const stmt = this.db!.prepare('UPDATE files SET path = ?, url = ? WHERE uuid = ?');
return new Promise((resolve, reject) => {
stmt.run(file.path, file.url, file.uuid, function (err: any) {
if (err) {
logError('db could not update file cache', err);
reject(err);
}
resolve(null);
});
});
}
// 被动收到的临时会话消息uin->uid
async getReceivedTempUinMap() {
const stmt = 'SELECT * FROM temp_uins';
return new Promise<Record<string, string>>((resolve, reject) => {
this.db!.all(stmt, (err, rows: { uin: string, uid: string }[]) => {
if (err) {
logError('db could not get temp uin map', err);
reject(err);
}
const map: Record<string, string> = {};
rows.forEach(row => {
map[row.uin] = row.uid;
});
resolve(map);
});
});
}
// 通过uin获取临时会话消息uid
async getUidByTempUin(uid: string) {
const stmt = 'SELECT * FROM temp_uins WHERE uin = ?';
return new Promise<string>((resolve, reject) => {
this.db!.get(stmt, [uid], (err, row: { uin: string, uid: string }) => {
if (err) {
logError('db could not get temp uin map', err);
reject(err);
}
resolve(row?.uid);
});
});
}
async addTempUin(uin: string, uid: string) {
const existUid = await this.getUidByTempUin(uin);
if (!existUid) {
const stmt = this.db!.prepare('INSERT INTO temp_uins (uin, uid) VALUES (?, ?)');
return new Promise((resolve, reject) => {
stmt.run(uin, uid, function (err: any) {
if (err) {
logError('db could not add temp uin', err);
reject(err);
}
resolve(null);
});
});
}
}
async getLastSentTimeAndJoinTime(
groupId: number
): Promise<IRember[]> {
logDebug("读取发言时间", groupId);
return new Promise<IRember[]>((resolve, reject) => {
this.db!.all(`SELECT * FROM "${groupId}" `, (err, rows: IRember[]) => {
if (err) {
logError("查询发言时间失败", groupId);
return resolve([]);
}
logDebug("查询发言时间成功", groupId, rows);
resolve(rows);
});
});
}
insertLastSentTime(
groupId: number,
userId: number,
time: number
) {
this.LURCache.set(groupId, userId, time)
}
async insertJoinTime(
groupId: number,
userId: number,
time: number
) {
await this.createGroupInfoTimeTableIfNotExist(groupId);
this.db!.all(
`INSERT OR REPLACE INTO "${groupId}" (user_id, last_sent_time, join_time) VALUES (?,?,?)`,
[userId, time, time],
(err) => {
if (err)
logError(err),
Promise.reject(),
console.log("插入入群时间失败", userId, groupId);
}
);
}
}
export const dbUtil = new DBUtil();

View File

@@ -4,7 +4,7 @@ import crypto from 'crypto';
import util from 'util';
import path from 'node:path';
import { log } from './log';
import { dbUtil } from '@/core/utils/db';
import { dbUtil } from '@/common/utils/db';
import * as fileType from 'file-type';
import { v4 as uuidv4 } from 'uuid';
import { napCatCore } from '@/core';
@@ -125,7 +125,7 @@ export async function httpDownload(options: string | HttpDownloadOptions): Promi
}
}
}
const fetchRes = await fetch(url, headers);
const fetchRes = await fetch(url, { headers });
if (!fetchRes.ok) throw new Error(`下载文件失败: ${fetchRes.statusText}`);
const blob = await fetchRes.blob();

View File

@@ -1,5 +1,13 @@
import crypto from 'node:crypto';
import path from 'node:path';
import fs from 'fs/promises';
import { log, logDebug } from './log';
import { dirname } from 'node:path';
import { fileURLToPath } from 'node:url';
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
export function sleep(ms: number): Promise<void> {
return new Promise(resolve => setTimeout(resolve, ms));
}
@@ -35,3 +43,142 @@ export function truncateString(obj: any, maxLength = 500) {
}
return obj;
}
/**
* 函数缓存装饰器根据方法名、参数、自定义key生成缓存键在一定时间内返回缓存结果
* @param ttl 超时时间,单位毫秒
* @param customKey 自定义缓存键前缀,可为空,防止方法名参数名一致时导致缓存键冲突
* @returns 处理后缓存或调用原方法的结果
*/
export function cacheFunc(ttl: number, customKey: string = '') {
const cache = new Map<string, { expiry: number; value: any }>();
return function (target: any, propertyKey: string, descriptor: PropertyDescriptor): PropertyDescriptor {
const originalMethod = descriptor.value;
const className = target.constructor.name; // 获取类名
const methodName = propertyKey; // 获取方法名
descriptor.value = async function (...args: any[]) {
const cacheKey = `${customKey}${className}.${methodName}:${JSON.stringify(args)}`;
const cached = cache.get(cacheKey);
if (cached && cached.expiry > Date.now()) {
return cached.value;
} else {
const result = await originalMethod.apply(this, args);
cache.set(cacheKey, { value: result, expiry: Date.now() + ttl });
return result;
}
};
return descriptor;
};
}
export function isValidOldConfig(config: any) {
if (typeof config !== 'object') {
return false;
}
const requiredKeys = [
'httpHost', 'httpPort', 'httpPostUrls', 'httpSecret',
'wsHost', 'wsPort', 'wsReverseUrls', 'enableHttp',
'enableHttpHeart', 'enableHttpPost', 'enableWs', 'enableWsReverse',
'messagePostFormat', 'reportSelfMessage', 'enableLocalFile2Url',
'debug', 'heartInterval', 'token', 'musicSignUrl'
];
for (const key of requiredKeys) {
if (!(key in config)) {
return false;
}
}
if (!Array.isArray(config.httpPostUrls) || !Array.isArray(config.wsReverseUrls)) {
return false;
}
if (config.httpPostUrls.some((url: any) => typeof url !== 'string')) {
return false;
}
if (config.wsReverseUrls.some((url: any) => typeof url !== 'string')) {
return false;
}
if (typeof config.httpPort !== 'number' || typeof config.wsPort !== 'number' || typeof config.heartInterval !== 'number') {
return false;
}
if (
typeof config.enableHttp !== 'boolean' ||
typeof config.enableHttpHeart !== 'boolean' ||
typeof config.enableHttpPost !== 'boolean' ||
typeof config.enableWs !== 'boolean' ||
typeof config.enableWsReverse !== 'boolean' ||
typeof config.enableLocalFile2Url !== 'boolean' ||
typeof config.reportSelfMessage !== 'boolean'
) {
return false;
}
if (config.messagePostFormat !== 'array' && config.messagePostFormat !== 'string') {
return false;
}
return true;
}
export function migrateConfig(oldConfig: any) {
const newConfig = {
http: {
enable: oldConfig.enableHttp,
host: oldConfig.httpHost,
port: oldConfig.httpPort,
secret: oldConfig.httpSecret,
enableHeart: oldConfig.enableHttpHeart,
enablePost: oldConfig.enableHttpPost,
postUrls: oldConfig.httpPostUrls,
},
ws: {
enable: oldConfig.enableWs,
host: oldConfig.wsHost,
port: oldConfig.wsPort,
},
reverseWs: {
enable: oldConfig.enableWsReverse,
urls: oldConfig.wsReverseUrls,
},
GroupLocalTime: {
Record: false,
RecordList: []
},
debug: oldConfig.debug,
heartInterval: oldConfig.heartInterval,
messagePostFormat: oldConfig.messagePostFormat,
enableLocalFile2Url: oldConfig.enableLocalFile2Url,
musicSignUrl: oldConfig.musicSignUrl,
reportSelfMessage: oldConfig.reportSelfMessage,
token: oldConfig.token,
};
return newConfig;
}
// 升级旧的配置到新的
export async function UpdateConfig() {
const configFiles = await fs.readdir(path.join(__dirname, 'config'));
for (const file of configFiles) {
if (file.match(/^onebot11_\d+.json$/)) {
const CurrentConfig = JSON.parse(await fs.readFile(path.join(__dirname, 'config', file), 'utf8'));
if (isValidOldConfig(CurrentConfig)) {
log('正在迁移旧配置到新配置 File:', file);
const NewConfig = migrateConfig(CurrentConfig);
await fs.writeFile(path.join(__dirname, 'config', file), JSON.stringify(NewConfig, null, 2));
}
}
}
}
export function isEqual(obj1: any, obj2: any) {
if (obj1 === obj2) return true;
if (obj1 == null || obj2 == null) return false;
if (typeof obj1 !== 'object' || typeof obj2 !== 'object') return obj1 === obj2;
const keys1 = Object.keys(obj1);
const keys2 = Object.keys(obj2);
if (keys1.length !== keys2.length) return false;
for (const key of keys1) {
if (!isEqual(obj1[key], obj2[key])) return false;
}
return true;
}

View File

@@ -2,6 +2,12 @@ import log4js, { Configuration } from 'log4js';
import { truncateString } from '@/common/utils/helper';
import path from 'node:path';
import { SelfInfo } from '@/core';
import { dirname } from 'node:path';
import { fileURLToPath } from 'node:url';
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
export enum LogLevel {
DEBUG = 'debug',
@@ -21,7 +27,8 @@ function getFormattedTimestamp() {
const hours = now.getHours().toString().padStart(2, '0');
const minutes = now.getMinutes().toString().padStart(2, '0');
const seconds = now.getSeconds().toString().padStart(2, '0');
return `${year}-${month}-${day}_${hours}-${minutes}-${seconds}`;
const milliseconds = now.getMilliseconds().toString().padStart(3, '0');
return `${year}-${month}-${day}_${hours}-${minutes}-${seconds}.${milliseconds}`;
}
const filename = `${getFormattedTimestamp()}.log`;

View File

@@ -1,5 +1,5 @@
// QQ等级换算
import { QQLevel } from '../../core/src/entities';
import { QQLevel } from '@/core/entities';
export function calcQQLevel(level: QQLevel) {
const { crownNum, sunNum, moonNum, starNum } = level;

View File

@@ -0,0 +1,44 @@
import { resolve } from 'node:path';
import { spawn } from 'node:child_process';
import { pid, ppid, exit } from 'node:process';
import { dirname } from 'node:path';
import { fileURLToPath } from 'node:url';
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
export async function rebootWithQuickLogin(uin: string) {
const batScript = resolve(__dirname, './napcat.bat');
const batUtf8Script = resolve(__dirname, './napcat-utf8.bat');
const bashScript = resolve(__dirname, './napcat.sh');
if (process.platform === 'win32') {
const subProcess = spawn(`start ${batUtf8Script} -q ${uin}`, { detached: true, windowsHide: false, env: process.env, shell: true, stdio: 'ignore' });
subProcess.unref();
// 子父进程一起送走 有点效果
spawn('cmd /c taskkill /t /f /pid ' + pid.toString(), { detached: true, shell: true, stdio: 'ignore' });
spawn('cmd /c taskkill /t /f /pid ' + ppid.toString(), { detached: true, shell: true, stdio: 'ignore' });
} else if (process.platform === 'linux') {
const subProcess = spawn(`${bashScript} -q ${uin}`, { detached: true, windowsHide: false, env: process.env, shell: true, stdio: 'ignore' });
//还没兼容
subProcess.unref();
exit(0);
}
//exit(0);
}
export async function rebootWithNormolLogin() {
const batScript = resolve(__dirname, './napcat.bat');
const batUtf8Script = resolve(__dirname, './napcat-utf8.bat');
const bashScript = resolve(__dirname, './napcat.sh');
if (process.platform === 'win32') {
const subProcess = spawn(`start ${batUtf8Script} `, { detached: true, windowsHide: false, env: process.env, shell: true, stdio: 'ignore' });
subProcess.unref();
// 子父进程一起送走 有点效果
spawn('cmd /c taskkill /t /f /pid ' + pid.toString(), { detached: true, shell: true, stdio: 'ignore' });
spawn('cmd /c taskkill /t /f /pid ' + ppid.toString(), { detached: true, shell: true, stdio: 'ignore' });
} else if (process.platform === 'linux') {
const subProcess = spawn(`${bashScript}`, { detached: true, windowsHide: false, env: process.env, shell: true });
subProcess.unref();
exit(0);
}
}

View File

@@ -1,57 +1,106 @@
const https = require('node:https');
export async function HttpGetCookies(url: string): Promise<Map<string, string>> {
return new Promise((resolve, reject) => {
const result: Map<string, string> = new Map<string, string>();
const req = https.get(url, (res: any) => {
res.on('data', (data: any) => {
});
res.on('end', () => {
try {
const responseCookies = res.headers['set-cookie'];
for (const line of responseCookies) {
const parts = line.split(';');
const [key, value] = parts[0].split('=');
result.set(key, value);
import https from 'node:https';
import http from 'node:http';
export class RequestUtil {
// 适用于获取服务器下发cookies时获取仅GET
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);
}
} catch (e) {
};
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(result);
}).on('error', (err) => {
reject(err);
});
});
req.on('error', (error: any) => {
resolve(result);
// console.log(error)
});
req.end();
});
}
}
export async function HttpPostCookies(url: string): Promise<Map<string, string>> {
return new Promise((resolve, reject) => {
const result: Map<string, string> = new Map<string, string>();
const req = https.get(url, (res: any) => {
res.on('data', (data: any) => {
});
res.on('end', () => {
try {
const responseCookies = res.headers['set-cookie'];
for (const line of responseCookies) {
const parts = line.split(';');
const [key, value] = parts[0].split('=');
result.set(key, value);
// 请求和回复都是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);
const protocol = url.startsWith('https://') ? https : http;
const options = {
hostname: option.hostname,
port: option.port,
path: option.href,
method: method,
headers: headers
};
return new Promise((resolve, reject) => {
const req = protocol.request(options, (res: any) => {
let responseBody = '';
res.on('data', (chunk: string | Buffer) => {
responseBody += chunk.toString();
});
res.on('end', () => {
try {
if (res.statusCode && res.statusCode >= 200 && res.statusCode < 300) {
if (isJsonRet) {
const responseJson = JSON.parse(responseBody);
resolve(responseJson as T);
} else {
resolve(responseBody as T);
}
} else {
reject(new Error(`Unexpected status code: ${res.statusCode}`));
}
} catch (parseError) {
reject(parseError);
}
} catch (e) {
}
resolve(result);
});
});
});
req.on('error', (error: any) => {
resolve(result);
// console.log(error)
});
req.end();
});
req.on('error', (error: any) => {
reject(error);
});
if (method === 'POST' || method === 'PUT' || method === 'PATCH') {
if (isArgJson) {
req.write(JSON.stringify(data));
} else {
req.write(data);
}
}
req.end();
});
}
// 请求返回都是原始内容
static async HttpGetText(url: string, method: string = 'GET', data?: any, headers: Record<string, string> = {}) {
return this.HttpGetJson<string>(url, method, data, headers, false, false);
}
}

View File

@@ -1,10 +1,17 @@
import os from 'node:os';
import path from 'node:path';
// 缓解Win7设备兼容性问题
let osName: string;
try {
osName = os.hostname();
} catch (e) {
osName = 'NapCat'; // + crypto.randomUUID().substring(0, 4);
}
export const systemPlatform = os.platform();
export const cpuArch = os.arch();
export const systemVersion = os.release();
export const hostname = os.hostname();
export const hostname = osName;
const homeDir = os.homedir();
export const downloadsPath = path.join(homeDir, 'Downloads');
export const systemName = os.type();

31
src/common/utils/type.ts Normal file
View File

@@ -0,0 +1,31 @@
/**
* 运行时类型转换与检查类
*/
export class TypeCheck {
static isEmpty(value: any): boolean {
return value === null || value === undefined || value === '' ||
(Array.isArray(value) && value.length === 0) || (typeof value === 'object' && Object.keys(value).length === 0);
}
}
export class TypeConvert {
static toNumber(value: any): number {
const num = Number(value);
if (isNaN(num)) {
throw new Error(`无法将输入转换为数字: ${value}`);
}
return num;
}
static toString(value: any): string {
return String(value);
}
static toBoolean(value: any): boolean {
return Boolean(value);
}
static toArray(value: any): any[] {
return Array.isArray(value) ? value : [value];
}
}

View File

@@ -1,44 +0,0 @@
import { request } from 'node:https';
export function postLoginStatus() {
const req = request(
{
hostname: 'napcat.wumiao.wang',
path: '/api/send',
port: 443,
method: 'POST',
headers: {
'Content-Type': 'application/json',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36 Edg/124.0.0.0'
}
},
(res) => {
//let data = '';
res.on('data', (chunk) => {
//data += chunk;
});
res.on('error', (err) => {
});
res.on('end', () => {
//console.log('Response:', data);
});
}
);
req.on('error', (e) => {
// console.error('Request error:', e);
});
const StatesData = {
type: 'event',
payload: {
'website': '952bf82f-8f49-4456-aec5-e17db5f27f7e',
'hostname': 'napcat.demo.cn',
'screen': '1920x1080',
'language': 'zh-CN',
'title': 'OneBot.Login',
'url': '/login/onebot11/1.3.0',
'referrer': 'https://napcat.demo.cn/login?type=onebot11'
}
};
req.write(JSON.stringify(StatesData));
req.end();
}

View File

@@ -1,40 +1,21 @@
import { get as httpsGet } from 'node:https';
function requestMirror(url: string): Promise<string | undefined> {
return new Promise((resolve, reject) => {
httpsGet(url, (response) => {
let data = '';
response.on('data', (chunk) => {
data += chunk;
});
response.on('end', () => {
try {
const parsedData = JSON.parse(data);
const version = parsedData.version;
resolve(version);
} catch (error) {
// 解析失败或无法访问域名,跳过
resolve(undefined);
}
});
}).on('error', (error) => {
// 请求失败,跳过
resolve(undefined);
});
});
}
import { logDebug } from './log';
import { RequestUtil } from './request';
export async function checkVersion(): Promise<string> {
return new Promise(async (resolve, reject) => {
const MirrorList =
[
'https://fastly.jsdelivr.net/gh/NapNeko/NapCatQQ@main/package.json',
'https://gcore.jsdelivr.net/gh/NapNeko/NapCatQQ@main/package.json',
'https://cdn.jsdelivr.us/gh/NapNeko/NapCatQQ@main/package.json',
'https://jsd.cdn.zzko.cn/gh/NapNeko/NapCatQQ@main/package.json'
];
[
'https://fastly.jsdelivr.net/gh/NapNeko/NapCatQQ@main/package.json',
'https://gcore.jsdelivr.net/gh/NapNeko/NapCatQQ@main/package.json',
'https://cdn.jsdelivr.us/gh/NapNeko/NapCatQQ@main/package.json',
'https://jsd.cdn.zzko.cn/gh/NapNeko/NapCatQQ@main/package.json'
];
let version = undefined;
for (const url of MirrorList) {
const version = await requestMirror(url);
try {
version = (await RequestUtil.HttpGetJson<{ version: string }>(url)).version;
} catch (e) {
logDebug("检测更新异常",e);
}
if (version) {
resolve(version);
}

Binary file not shown.

Binary file not shown.

View File

@@ -1 +1 @@
var _0x20f3a3=_0xab98;function _0x199d(){var _0x242524=['867835orpyol','4820904NfmEhM','1317316mJNiBq','getGroupCode','450140cGAuXI','20613waHIrp','8oFAhmM','onMSFSsoError','204bbaYtT','4929841hhAgzJ','40438130xxOPUR','onMSFStatusChange','30YvLOjS'];_0x199d=function(){return _0x242524;};return _0x199d();}(function(_0x5cd7da,_0x2c9531){var _0x5a5abb=_0xab98,_0x5e2994=_0x5cd7da();while(!![]){try{var _0x25997b=-parseInt(_0x5a5abb(0x7f))/0x1+parseInt(_0x5a5abb(0x7a))/0x2*(-parseInt(_0x5a5abb(0x77))/0x3)+-parseInt(_0x5a5abb(0x81))/0x4+parseInt(_0x5a5abb(0x83))/0x5*(-parseInt(_0x5a5abb(0x7e))/0x6)+-parseInt(_0x5a5abb(0x7b))/0x7+parseInt(_0x5a5abb(0x78))/0x8*(-parseInt(_0x5a5abb(0x80))/0x9)+parseInt(_0x5a5abb(0x7c))/0xa;if(_0x25997b===_0x2c9531)break;else _0x5e2994['push'](_0x5e2994['shift']());}catch(_0x3ba8b5){_0x5e2994['push'](_0x5e2994['shift']());}}}(_0x199d,0x6f444));function _0xab98(_0x1f2e57,_0x4954bf){var _0x199dc8=_0x199d();return _0xab98=function(_0xab9882,_0x1ff8bb){_0xab9882=_0xab9882-0x77;var _0x3c4334=_0x199dc8[_0xab9882];return _0x3c4334;},_0xab98(_0x1f2e57,_0x4954bf);}export class DependsAdapter{[_0x20f3a3(0x7d)](_0x488b05,_0x25a4d5){}[_0x20f3a3(0x79)](_0x22e500){}[_0x20f3a3(0x82)](_0x35a823){}}
var _0x4f8b54=_0x4f34;function _0x4f34(_0xbaed04,_0x4b53ad){var _0x4cc022=_0x4cc0();return _0x4f34=function(_0x4f349c,_0x9083e2){_0x4f349c=_0x4f349c-0x131;var _0x33410f=_0x4cc022[_0x4f349c];return _0x33410f;},_0x4f34(_0xbaed04,_0x4b53ad);}function _0x4cc0(){var _0x1d4b13=['477EyYLON','54UTQVQP','6vywxEB','326856HoPiQr','1859ZKXyOj','onMSFSsoError','250QjfjnE','139784xWKKzW','onMSFStatusChange','60qLkvMG','442211Jauitq','194770TWLKuK','97079vRHCFb','getGroupCode'];_0x4cc0=function(){return _0x1d4b13;};return _0x4cc0();}(function(_0x38fc1a,_0x101f93){var _0xb96e1c=_0x4f34,_0x35d74e=_0x38fc1a();while(!![]){try{var _0x468126=parseInt(_0xb96e1c(0x134))/0x1+-parseInt(_0xb96e1c(0x13c))/0x2*(-parseInt(_0xb96e1c(0x136))/0x3)+parseInt(_0xb96e1c(0x139))/0x4+-parseInt(_0xb96e1c(0x133))/0x5+-parseInt(_0xb96e1c(0x138))/0x6*(-parseInt(_0xb96e1c(0x132))/0x7)+parseInt(_0xb96e1c(0x13d))/0x8*(-parseInt(_0xb96e1c(0x137))/0x9)+-parseInt(_0xb96e1c(0x131))/0xa*(-parseInt(_0xb96e1c(0x13a))/0xb);if(_0x468126===_0x101f93)break;else _0x35d74e['push'](_0x35d74e['shift']());}catch(_0x46afc8){_0x35d74e['push'](_0x35d74e['shift']());}}}(_0x4cc0,0x1d117));export class DependsAdapter{[_0x4f8b54(0x13e)](_0x375bc6,_0x4931a2){}[_0x4f8b54(0x13b)](_0xdb7883){}[_0x4f8b54(0x135)](_0x4f0da6){}}

View File

@@ -1 +1 @@
var _0x3a826a=_0x50c0;(function(_0x58209d,_0x457985){var _0x4e7f7f=_0x50c0,_0x6c4dd4=_0x58209d();while(!![]){try{var _0x4cd98f=parseInt(_0x4e7f7f(0xb4))/0x1+parseInt(_0x4e7f7f(0xbe))/0x2*(parseInt(_0x4e7f7f(0xb6))/0x3)+parseInt(_0x4e7f7f(0xb8))/0x4+-parseInt(_0x4e7f7f(0xb7))/0x5*(-parseInt(_0x4e7f7f(0xbf))/0x6)+parseInt(_0x4e7f7f(0xb5))/0x7*(parseInt(_0x4e7f7f(0xbd))/0x8)+-parseInt(_0x4e7f7f(0xc0))/0x9+parseInt(_0x4e7f7f(0xbc))/0xa*(-parseInt(_0x4e7f7f(0xbb))/0xb);if(_0x4cd98f===_0x457985)break;else _0x6c4dd4['push'](_0x6c4dd4['shift']());}catch(_0x554e0f){_0x6c4dd4['push'](_0x6c4dd4['shift']());}}}(_0x5bbf,0x2ebf4));export class DispatcherAdapter{[_0x3a826a(0xb9)](_0x3985c1){}['dispatchCall'](_0x54a892){}[_0x3a826a(0xba)](_0x14b0dc){}}function _0x50c0(_0x165ac0,_0x11c111){var _0x5bbf85=_0x5bbf();return _0x50c0=function(_0x50c011,_0x2b2384){_0x50c011=_0x50c011-0xb4;var _0x466d72=_0x5bbf85[_0x50c011];return _0x466d72;},_0x50c0(_0x165ac0,_0x11c111);}function _0x5bbf(){var _0x52ff37=['1491652WULToR','dispatchRequest','dispatchCallWithJson','2235827oVrwUv','30KzTwbU','136WfIqPO','18IwgFaa','16722NvbGSt','3430728zqiFyT','75305fnfONu','131222lMZVkq','124578SapZzq','75GkdEQt'];_0x5bbf=function(){return _0x52ff37;};return _0x5bbf();}
function _0x1311(){var _0x21c10c=['759EwMYVJ','7649917vyYsAY','18AJNhUO','19844rnwfOz','7LYYXWh','2850560Hdzetk','855832KOoAHx','6094430aJQOfM','1188106kodgkd','1243134TqstUS','dispatchCall','dispatchRequest','3YGNuNP'];_0x1311=function(){return _0x21c10c;};return _0x1311();}function _0x9613(_0x124e1f,_0x5ca3b2){var _0x13111e=_0x1311();return _0x9613=function(_0x961396,_0x45cbb4){_0x961396=_0x961396-0x19f;var _0x589d0b=_0x13111e[_0x961396];return _0x589d0b;},_0x9613(_0x124e1f,_0x5ca3b2);}var _0x1cf984=_0x9613;(function(_0x424440,_0x3ba584){var _0x5949c9=_0x9613,_0x43e09f=_0x424440();while(!![]){try{var _0x4162c0=-parseInt(_0x5949c9(0x1a1))/0x1*(parseInt(_0x5949c9(0x1aa))/0x2)+parseInt(_0x5949c9(0x1a2))/0x3*(parseInt(_0x5949c9(0x1a5))/0x4)+-parseInt(_0x5949c9(0x1a7))/0x5+parseInt(_0x5949c9(0x1ab))/0x6+parseInt(_0x5949c9(0x1a6))/0x7*(-parseInt(_0x5949c9(0x1a8))/0x8)+parseInt(_0x5949c9(0x1a4))/0x9*(parseInt(_0x5949c9(0x1a9))/0xa)+parseInt(_0x5949c9(0x1a3))/0xb;if(_0x4162c0===_0x3ba584)break;else _0x43e09f['push'](_0x43e09f['shift']());}catch(_0x5a2141){_0x43e09f['push'](_0x43e09f['shift']());}}}(_0x1311,0xdff9d));export class DispatcherAdapter{[_0x1cf984(0x1a0)](_0x4e9185){}[_0x1cf984(0x19f)](_0xed1775){}['dispatchCallWithJson'](_0x4ff1ee){}}

View File

@@ -1 +1 @@
function _0x1594(_0x58c29b,_0x44acfd){var _0x4d164b=_0x4d16();return _0x1594=function(_0x1594d5,_0x1525fc){_0x1594d5=_0x1594d5-0x198;var _0x1c1815=_0x4d164b[_0x1594d5];return _0x1c1815;},_0x1594(_0x58c29b,_0x44acfd);}var _0x175dc0=_0x1594;(function(_0x1b3e3d,_0x5116e4){var _0x17fe4f=_0x1594,_0x36c543=_0x1b3e3d();while(!![]){try{var _0x6b9ab7=parseInt(_0x17fe4f(0x19f))/0x1*(-parseInt(_0x17fe4f(0x19d))/0x2)+parseInt(_0x17fe4f(0x1a4))/0x3+-parseInt(_0x17fe4f(0x19b))/0x4+parseInt(_0x17fe4f(0x1a6))/0x5*(-parseInt(_0x17fe4f(0x19a))/0x6)+parseInt(_0x17fe4f(0x1a8))/0x7+-parseInt(_0x17fe4f(0x1a2))/0x8*(-parseInt(_0x17fe4f(0x1a3))/0x9)+parseInt(_0x17fe4f(0x1a0))/0xa*(parseInt(_0x17fe4f(0x19c))/0xb);if(_0x6b9ab7===_0x5116e4)break;else _0x36c543['push'](_0x36c543['shift']());}catch(_0x42cd0b){_0x36c543['push'](_0x36c543['shift']());}}}(_0x4d16,0x2199c));function _0x4d16(){var _0x2d8922=['1419546mxJbdk','446484HoiEEq','44yRWgfw','2XpkqmL','onUpdateGeneralFlag','185044fHAWUd','749790oMOrHe','onShowErrUITips','149672nKQepV','18zczhAP','504006SYbXob','onInstallFinished','5OkkvYy','onGetSrvCalTime','1158836BJpeXd','onGetOfflineMsg','onLog'];_0x4d16=function(){return _0x2d8922;};return _0x4d16();}export class GlobalAdapter{[_0x175dc0(0x199)](..._0x3e4b79){}[_0x175dc0(0x1a7)](..._0x987740){}[_0x175dc0(0x1a1)](..._0x292841){}['fixPicImgType'](..._0x415237){}['getAppSetting'](..._0x3934ab){}[_0x175dc0(0x1a5)](..._0x486c90){}[_0x175dc0(0x19e)](..._0x1b54fe){}[_0x175dc0(0x198)](..._0x466ac8){}}
function _0x29b3(){var _0x50a1ac=['227dappVx','onLog','3ezeneX','82146BRNYZc','onGetOfflineMsg','13966LCzWGd','onGetSrvCalTime','4190520tddJqr','12542238Ejzuyc','42214070tGrJfU','fixPicImgType','497Rwzcci','1773784nMIZhG','4684616Ljokuo'];_0x29b3=function(){return _0x50a1ac;};return _0x29b3();}function _0x26ad(_0x210152,_0xd58e76){var _0x29b3c2=_0x29b3();return _0x26ad=function(_0x26ad07,_0xc58895){_0x26ad07=_0x26ad07-0x1b9;var _0x36b970=_0x29b3c2[_0x26ad07];return _0x36b970;},_0x26ad(_0x210152,_0xd58e76);}var _0x1738d3=_0x26ad;(function(_0x20c8f1,_0x517180){var _0x244916=_0x26ad,_0x32b58e=_0x20c8f1();while(!![]){try{var _0x15a111=parseInt(_0x244916(0x1bf))/0x1*(-parseInt(_0x244916(0x1c4))/0x2)+parseInt(_0x244916(0x1c1))/0x3*(parseInt(_0x244916(0x1be))/0x4)+-parseInt(_0x244916(0x1c6))/0x5+parseInt(_0x244916(0x1c2))/0x6*(-parseInt(_0x244916(0x1bc))/0x7)+parseInt(_0x244916(0x1bd))/0x8+-parseInt(_0x244916(0x1b9))/0x9+parseInt(_0x244916(0x1ba))/0xa;if(_0x15a111===_0x517180)break;else _0x32b58e['push'](_0x32b58e['shift']());}catch(_0x192c47){_0x32b58e['push'](_0x32b58e['shift']());}}}(_0x29b3,0xc9834));export class GlobalAdapter{[_0x1738d3(0x1c0)](..._0x3d1936){}[_0x1738d3(0x1c5)](..._0x4c8dae){}['onShowErrUITips'](..._0x5bf5a2){}[_0x1738d3(0x1bb)](..._0x2ef0dd){}['getAppSetting'](..._0x5b6467){}['onInstallFinished'](..._0x11433e){}['onUpdateGeneralFlag'](..._0x36e7ff){}[_0x1738d3(0x1c3)](..._0x302955){}}

View File

@@ -1 +1 @@
(function(_0x58f3c0,_0x4da555){var _0x533787=_0x47f5,_0x20e107=_0x58f3c0();while(!![]){try{var _0x1ecc8a=parseInt(_0x533787(0xa8))/0x1+parseInt(_0x533787(0xa5))/0x2+parseInt(_0x533787(0xaa))/0x3+-parseInt(_0x533787(0xab))/0x4+-parseInt(_0x533787(0xa7))/0x5+parseInt(_0x533787(0xa6))/0x6+-parseInt(_0x533787(0xa9))/0x7;if(_0x1ecc8a===_0x4da555)break;else _0x20e107['push'](_0x20e107['shift']());}catch(_0x45e3c2){_0x20e107['push'](_0x20e107['shift']());}}}(_0x4522,0xd51f1));export*from'./NodeIDependsAdapter';function _0x4522(){var _0x35130d=['1885660uvyoQv','2176134RkNlVH','10342008dNTcpR','1718020vzZflV','591401KlIhxJ','12755001GAlbSX','320913ocIGre'];_0x4522=function(){return _0x35130d;};return _0x4522();}export*from'./NodeIDispatcherAdapter';function _0x47f5(_0x5209cd,_0x119af6){var _0x4522f9=_0x4522();return _0x47f5=function(_0x47f51e,_0x4a3f72){_0x47f51e=_0x47f51e-0xa5;var _0x5460ce=_0x4522f9[_0x47f51e];return _0x5460ce;},_0x47f5(_0x5209cd,_0x119af6);}export*from'./NodeIGlobalAdapter';
(function(_0x3bdc0a,_0x2b28d2){var _0x4f262f=_0x5807,_0x2cdc54=_0x3bdc0a();while(!![]){try{var _0x24155b=parseInt(_0x4f262f(0xf2))/0x1*(-parseInt(_0x4f262f(0xf3))/0x2)+-parseInt(_0x4f262f(0xf1))/0x3+-parseInt(_0x4f262f(0xf5))/0x4*(parseInt(_0x4f262f(0xf8))/0x5)+-parseInt(_0x4f262f(0xf4))/0x6+-parseInt(_0x4f262f(0xf7))/0x7*(-parseInt(_0x4f262f(0xf6))/0x8)+parseInt(_0x4f262f(0xf9))/0x9+-parseInt(_0x4f262f(0xef))/0xa*(-parseInt(_0x4f262f(0xf0))/0xb);if(_0x24155b===_0x2b28d2)break;else _0x2cdc54['push'](_0x2cdc54['shift']());}catch(_0x3e3eaf){_0x2cdc54['push'](_0x2cdc54['shift']());}}}(_0x40f5,0x1dc0b));function _0x5807(_0x1a67af,_0x167d9c){var _0x40f51e=_0x40f5();return _0x5807=function(_0x580701,_0xa71bda){_0x580701=_0x580701-0xef;var _0x8b501a=_0x40f51e[_0x580701];return _0x8b501a;},_0x5807(_0x1a67af,_0x167d9c);}export*from'./NodeIDependsAdapter';export*from'./NodeIDispatcherAdapter';function _0x40f5(){var _0x516c0a=['20XtOAIT','2219195TpiCHh','432918TfuxVG','166613tJaCyR','2uEjykt','1290828cCTXnB','7348QUxezJ','1336PUrnLr','7147WruUXt','160AGXJYr','1194399FtRLXu'];_0x40f5=function(){return _0x516c0a;};return _0x40f5();}export*from'./NodeIGlobalAdapter';

View File

@@ -1,4 +1,4 @@
import { CacheFileListItem, CacheFileType, ChatCacheListItemBasic, ChatType, ElementType, RawMessage } from '@/core/entities';
import { CacheFileListItem, CacheFileType, ChatCacheListItemBasic, ChatType, ElementType } from '@/core/entities';
import { GeneralCallResult } from '@/core';
import * as fileType from 'file-type';
import { ISizeCalculationResult } from 'image-size/dist/types/interface';
@@ -15,7 +15,11 @@ export declare class NTQQFileApi {
}>;
static downloadMedia(msgId: string, chatType: ChatType, peerUid: string, elementId: string, thumbPath: string, sourcePath: string, timeout?: number, force?: boolean): Promise<string>;
static getImageSize(filePath: string): Promise<ISizeCalculationResult | undefined>;
static getImageUrl(msg: RawMessage): Promise<string>;
static getImageUrl(element: {
originImageUrl: any;
md5HexStr?: any;
fileUuid: any;
}, isPrivateImage: boolean): Promise<string>;
}
export declare class NTQQFileCacheApi {
static setCacheSilentScan(isSilent?: boolean): Promise<string>;

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
const _0x5d90db=_0x6e1f;(function(_0x24d76c,_0x417026){const _0x3934dc=_0x6e1f,_0x409f34=_0x24d76c();while(!![]){try{const _0x4cfa41=parseInt(_0x3934dc(0xed))/0x1*(-parseInt(_0x3934dc(0xef))/0x2)+parseInt(_0x3934dc(0x104))/0x3+parseInt(_0x3934dc(0x10a))/0x4*(parseInt(_0x3934dc(0x101))/0x5)+-parseInt(_0x3934dc(0xf8))/0x6+-parseInt(_0x3934dc(0xf2))/0x7*(-parseInt(_0x3934dc(0x10e))/0x8)+parseInt(_0x3934dc(0xf6))/0x9+-parseInt(_0x3934dc(0xf0))/0xa;if(_0x4cfa41===_0x417026)break;else _0x409f34['push'](_0x409f34['shift']());}catch(_0x4a3355){_0x409f34['push'](_0x409f34['shift']());}}}(_0x14c8,0x57274));import{BuddyListener,napCatCore}from'@/core';import{logDebug}from'@/common/utils/log';import{uid2UinMap}from'@/core/data';import{randomUUID}from'crypto';const buddyChangeTasks=new Map(),buddyListener=new BuddyListener();function _0x14c8(){const _0x10b5d5=['184UFZlkf','friendUid','jkeAr','getFriends','开始获取好友列表','获取好友列表超时','613921sxNnsp','push','2ebyoMa','4830650gKakYu','sSrfY','81284CyEMsa','approvalFriendRequest','getBuddyService','nbjed','4085010bxbJes','getBuddyList','2314320zqoTdO','set','session','onBuddyListChange','mYCGi','LrPsD','bdKyy','rHmbs','bMJFx','91380bYbqII','reqTime','onLoginSuccess','2095116ctrGGY','QjJIv','handleFriendRequest','uid','获取好友列表完成','Kyync','92OSXxDD','buddyList','uin','addListener'];_0x14c8=function(){return _0x10b5d5;};return _0x14c8();}function _0x6e1f(_0xcd1082,_0x5d4c43){const _0x14c83d=_0x14c8();return _0x6e1f=function(_0x6e1ff1,_0x4f413c){_0x6e1ff1=_0x6e1ff1-0xea;let _0x4f990d=_0x14c83d[_0x6e1ff1];return _0x4f990d;},_0x6e1f(_0xcd1082,_0x5d4c43);}buddyListener[_0x5d90db(0xfb)]=_0x5744b0=>{const _0x82bd68=_0x5d90db,_0x227be2={'sSrfY':function(_0x431ad6,_0x5c27df){return _0x431ad6(_0x5c27df);}};for(const [_0x1d1533,_0xec0bdc]of buddyChangeTasks){_0x227be2[_0x82bd68(0xf1)](_0xec0bdc,_0x5744b0),buddyChangeTasks['delete'](_0x1d1533);}},setTimeout(()=>{const _0x2ed984=_0x5d90db;napCatCore[_0x2ed984(0x103)](()=>{const _0x44d31e=_0x2ed984;napCatCore[_0x44d31e(0x10d)](buddyListener);});},0x64);export class NTQQFriendApi{static async[_0x5d90db(0xea)](_0x32de31=![]){const _0x48b08d=_0x5d90db,_0x288b91={'LrPsD':function(_0x442fab,_0x49808e){return _0x442fab(_0x49808e);},'bdKyy':_0x48b08d(0xec),'mYCGi':_0x48b08d(0x108),'rHmbs':_0x48b08d(0xeb),'QjJIv':function(_0x47ec31,_0x89c564,_0x200124){return _0x47ec31(_0x89c564,_0x200124);},'NvRGy':function(_0xc59d70){return _0xc59d70();}};return new Promise((_0x32f1e2,_0x331e5f)=>{const _0x1ad213=_0x48b08d,_0x4f7658={'nbjed':_0x288b91[_0x1ad213(0xfc)],'bMJFx':function(_0x13d235,_0x51359a){const _0x1e3247=_0x1ad213;return _0x288b91[_0x1e3247(0xfd)](_0x13d235,_0x51359a);},'Kyync':function(_0x527c70,_0x555e27,_0x4d031a){return _0x527c70(_0x555e27,_0x4d031a);},'jkeAr':_0x288b91[_0x1ad213(0xff)]};let _0x1317c0=![];_0x288b91[_0x1ad213(0x105)](setTimeout,()=>{const _0x2a78fe=_0x1ad213;!_0x1317c0&&(_0x288b91[_0x2a78fe(0xfd)](logDebug,_0x288b91[_0x2a78fe(0xfe)]),_0x331e5f('获取好友列表超时'));},0x1388);const _0x254032=[],_0x321bb8=_0x304f26=>{const _0x7f8575=_0x1ad213;for(const _0x440f1c of _0x304f26){for(const _0x40aae7 of _0x440f1c[_0x7f8575(0x10b)]){_0x254032[_0x7f8575(0xee)](_0x40aae7),uid2UinMap[_0x40aae7[_0x7f8575(0x107)]]=_0x40aae7[_0x7f8575(0x10c)];}}_0x1317c0=!![],logDebug(_0x4f7658[_0x7f8575(0xf5)],_0x254032),_0x4f7658[_0x7f8575(0x100)](_0x32f1e2,_0x254032);};buddyChangeTasks[_0x1ad213(0xf9)](_0x288b91['NvRGy'](randomUUID),_0x321bb8),napCatCore[_0x1ad213(0xfa)][_0x1ad213(0xf4)]()[_0x1ad213(0xf7)](_0x32de31)['then'](_0x1e963c=>{const _0x1bea4b=_0x1ad213;_0x4f7658[_0x1bea4b(0x109)](logDebug,_0x4f7658[_0x1bea4b(0x110)],_0x1e963c);});});}static async[_0x5d90db(0x106)](_0x15a498,_0x30ed3c){const _0x4a1120=_0x5d90db;napCatCore[_0x4a1120(0xfa)][_0x4a1120(0xf4)]()?.[_0x4a1120(0xf3)]({'friendUid':_0x15a498[_0x4a1120(0x10f)],'reqTime':_0x15a498[_0x4a1120(0x102)],'accept':_0x30ed3c});}}
const _0x3757d1=_0x17b2;(function(_0x2f62ad,_0x5963b4){const _0x5f29cb=_0x17b2,_0x543a5b=_0x2f62ad();while(!![]){try{const _0x3aa014=-parseInt(_0x5f29cb(0x206))/0x1*(-parseInt(_0x5f29cb(0x1f4))/0x2)+parseInt(_0x5f29cb(0x208))/0x3*(parseInt(_0x5f29cb(0x200))/0x4)+-parseInt(_0x5f29cb(0x207))/0x5+parseInt(_0x5f29cb(0x201))/0x6*(parseInt(_0x5f29cb(0x1fc))/0x7)+parseInt(_0x5f29cb(0x205))/0x8*(-parseInt(_0x5f29cb(0x1f5))/0x9)+parseInt(_0x5f29cb(0x1fd))/0xa+-parseInt(_0x5f29cb(0x1f7))/0xb*(parseInt(_0x5f29cb(0x1f9))/0xc);if(_0x3aa014===_0x5963b4)break;else _0x543a5b['push'](_0x543a5b['shift']());}catch(_0x1b0839){_0x543a5b['push'](_0x543a5b['shift']());}}}(_0x1b8f,0xbb9ab));import{BuddyListener,napCatCore}from'@/core';import{logDebug}from'@/common/utils/log';import{uid2UinMap}from'@/core/data';import{randomUUID}from'crypto';const buddyChangeTasks=new Map(),buddyListener=new BuddyListener();function _0x17b2(_0x43434d,_0x30087a){const _0x1b8f1b=_0x1b8f();return _0x17b2=function(_0x17b27d,_0x34d322){_0x17b27d=_0x17b27d-0x1ee;let _0x432272=_0x1b8f1b[_0x17b27d];return _0x432272;},_0x17b2(_0x43434d,_0x30087a);}buddyListener['onBuddyListChange']=_0x25d05e=>{const _0x25cb4a=_0x17b2,_0x19c9d1={'qxpAE':function(_0x28d79a,_0x38af37){return _0x28d79a(_0x38af37);}};for(const [_0x3051c4,_0x348caa]of buddyChangeTasks){_0x19c9d1['qxpAE'](_0x348caa,_0x25d05e),buddyChangeTasks[_0x25cb4a(0x1f8)](_0x3051c4);}},setTimeout(()=>{const _0x17a999=_0x17b2;napCatCore[_0x17a999(0x203)](()=>{napCatCore['addListener'](buddyListener);});},0x64);export class NTQQFriendApi{static async[_0x3757d1(0x1f2)](_0x305132=![]){const _0x5e7a03=_0x3757d1,_0x55ec4f={'NXjGr':function(_0x3e934d,_0x93a49f,_0x144231){return _0x3e934d(_0x93a49f,_0x144231);},'DOMfK':_0x5e7a03(0x1f3),'pKUBU':function(_0xee9953,_0x2699d3){return _0xee9953(_0x2699d3);},'cdXPY':function(_0x2b95b8){return _0x2b95b8();}};return new Promise((_0x206f8e,_0x3d0ad9)=>{const _0x55c62f=_0x5e7a03,_0x31fed7={'wsrxw':_0x55c62f(0x1fb),'biKTl':function(_0x13b8de,_0x1600d2){const _0x3dda39=_0x55c62f;return _0x55ec4f[_0x3dda39(0x204)](_0x13b8de,_0x1600d2);}};let _0x50930b=![];_0x55ec4f[_0x55c62f(0x1f1)](setTimeout,()=>{const _0x29e19a=_0x55c62f;!_0x50930b&&(logDebug(_0x31fed7[_0x29e19a(0x1f0)]),_0x31fed7['biKTl'](_0x3d0ad9,'获取好友列表超时'));},0x1388);const _0x48e6f9=[],_0x3ef8a3=_0x6a8c50=>{const _0x2f25c0=_0x55c62f;for(const _0x103d42 of _0x6a8c50){for(const _0x71e37d of _0x103d42['buddyList']){_0x48e6f9['push'](_0x71e37d),uid2UinMap[_0x71e37d[_0x2f25c0(0x1fe)]]=_0x71e37d[_0x2f25c0(0x1fa)];}}_0x50930b=!![],_0x206f8e(_0x48e6f9);};buddyChangeTasks['set'](_0x55ec4f[_0x55c62f(0x20b)](randomUUID),_0x3ef8a3),napCatCore[_0x55c62f(0x209)][_0x55c62f(0x1ef)]()[_0x55c62f(0x20a)](_0x305132)[_0x55c62f(0x1ee)](_0xd52f69=>{const _0x4815f5=_0x55c62f;_0x55ec4f[_0x4815f5(0x1f1)](logDebug,_0x55ec4f['DOMfK'],_0xd52f69);});});}static async[_0x3757d1(0x1f6)](_0x44c874,_0x1011f3){const _0x480210=_0x3757d1;napCatCore[_0x480210(0x209)][_0x480210(0x1ef)]()?.['approvalFriendRequest']({'friendUid':_0x44c874[_0x480210(0x1ff)],'reqTime':_0x44c874[_0x480210(0x202)],'accept':_0x1011f3});}}function _0x1b8f(){const _0x287fa9=['2515681RzhBmA','11916620TZDGtc','uid','friendUid','68GAznyh','6bgSrBX','reqTime','onLoginSuccess','pKUBU','16LLgVDZ','4073mrGVbD','2275770jHpktY','170229pUvcbe','session','getBuddyList','cdXPY','then','getBuddyService','wsrxw','NXjGr','getFriends','开始获取好友列表','428jkhBfD','343377JzsWJk','handleFriendRequest','21241MJZZLX','delete','12972VCGNYp','uin','获取好友列表超时'];_0x1b8f=function(){return _0x287fa9;};return _0x1b8f();}

View File

@@ -1,9 +1,42 @@
import { GroupMember, GroupRequestOperateTypes, GroupMemberRole, GroupNotify, Group } from '../entities';
export declare class NTQQGroupApi {
static getGroups(forced?: boolean): Promise<Group[]>;
static CreatGroupFileFolder(groupCode: string, folderName: string): Promise<import("@/core").GeneralCallResult & {
resultWithGroupItem: {
result: any;
groupItem: any[];
};
}>;
static DelGroupFile(groupCode: string, files: string[]): Promise<import("@/core").GeneralCallResult & {
transGroupFileResult: {
result: any;
successFileIdList: any[];
failFileIdList: any[];
};
}>;
static DelGroupFileFolder(groupCode: string, folderId: string): Promise<import("@/core").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<import("@/core").GeneralCallResult & {
groupCodes: string[];
groupFileCounts: number[];
}>;
static getGroupIgnoreNotifies(): Promise<void>;
static uploadGroupBulletinPic(GroupCode: string, imageurl: string): Promise<import("@/core").GeneralCallResult & {
errCode: number;
picInfo?: {
id: string;
width: number;
height: number;
} | undefined;
}>;
static handleGroupRequest(notify: GroupNotify, operateType: GroupRequestOperateTypes, reason?: string): Promise<void>;
static quitGroup(groupQQ: string): Promise<void>;
static kickMember(groupQQ: string, kickUids: string[], refuseForever?: boolean, kickReason?: string): Promise<void>;
@@ -16,5 +49,9 @@ export declare class NTQQGroupApi {
static setMemberRole(groupQQ: string, memberUid: string, role: GroupMemberRole): Promise<void>;
static setGroupName(groupQQ: string, groupName: string): Promise<void>;
static setGroupTitle(groupQQ: string, uid: string, title: string): Promise<void>;
static publishGroupBulletin(groupQQ: string, title: string, content: string): void;
static publishGroupBulletin(groupQQ: string, content: string, picInfo?: {
id: string;
width: number;
height: number;
} | undefined, pinned?: number, confirmRequired?: number): Promise<import("@/core").GeneralCallResult>;
}

File diff suppressed because one or more lines are too long

View File

@@ -4,3 +4,5 @@ export * from './group';
export * from './msg';
export * from './user';
export * from './webapi';
export * from './sign';
export * from './system';

View File

@@ -1 +1 @@
function _0x2aaa(){var _0x43042b=['301592lbSBZw','86690FyvJbk','9iBNAOX','3306471SdIbmQ','340DWpBjj','7233EAgzRw','4537464FpTHSS','38145pavdea','166LvmfHD','473LCHAEB','15180dJtWDO'];_0x2aaa=function(){return _0x43042b;};return _0x2aaa();}(function(_0x4e25d9,_0x420476){var _0x564b42=_0x1300,_0x34aceb=_0x4e25d9();while(!![]){try{var _0x2f21fe=-parseInt(_0x564b42(0x160))/0x1+parseInt(_0x564b42(0x15e))/0x2*(-parseInt(_0x564b42(0x15b))/0x3)+parseInt(_0x564b42(0x15a))/0x4*(parseInt(_0x564b42(0x15d))/0x5)+parseInt(_0x564b42(0x15c))/0x6+-parseInt(_0x564b42(0x159))/0x7+parseInt(_0x564b42(0x156))/0x8*(parseInt(_0x564b42(0x158))/0x9)+parseInt(_0x564b42(0x157))/0xa*(-parseInt(_0x564b42(0x15f))/0xb);if(_0x2f21fe===_0x420476)break;else _0x34aceb['push'](_0x34aceb['shift']());}catch(_0x3e9455){_0x34aceb['push'](_0x34aceb['shift']());}}}(_0x2aaa,0x5d42b));export*from'./file';export*from'./friend';export*from'./group';export*from'./msg';function _0x1300(_0xeb4411,_0x25f97d){var _0x2aaac2=_0x2aaa();return _0x1300=function(_0x13009c,_0x2b83e9){_0x13009c=_0x13009c-0x156;var _0xdafa48=_0x2aaac2[_0x13009c];return _0xdafa48;},_0x1300(_0xeb4411,_0x25f97d);}export*from'./user';export*from'./webapi';
(function(_0x2b9964,_0x4eba63){var _0x4caa76=_0x2542,_0x3940bf=_0x2b9964();while(!![]){try{var _0x1f0dca=-parseInt(_0x4caa76(0x121))/0x1+parseInt(_0x4caa76(0x124))/0x2*(parseInt(_0x4caa76(0x125))/0x3)+-parseInt(_0x4caa76(0x122))/0x4*(parseInt(_0x4caa76(0x11f))/0x5)+-parseInt(_0x4caa76(0x11c))/0x6+-parseInt(_0x4caa76(0x120))/0x7+-parseInt(_0x4caa76(0x123))/0x8*(parseInt(_0x4caa76(0x11d))/0x9)+parseInt(_0x4caa76(0x11e))/0xa;if(_0x1f0dca===_0x4eba63)break;else _0x3940bf['push'](_0x3940bf['shift']());}catch(_0x593be0){_0x3940bf['push'](_0x3940bf['shift']());}}}(_0x10d0,0x77b98));export*from'./file';export*from'./friend';export*from'./group';export*from'./msg';function _0x10d0(){var _0x5c19c9=['2688byUJPe','24fNPKLC','1850920DilIYg','3SoExQj','2440320iyYTIh','2246337HtHaCZ','23950550BvRgcD','2175obSxxW','4141102TAvKfE','790718yJjEha'];_0x10d0=function(){return _0x5c19c9;};return _0x10d0();}export*from'./user';export*from'./webapi';export*from'./sign';function _0x2542(_0x1a1a6b,_0x335d30){var _0x10d077=_0x10d0();return _0x2542=function(_0x25429d,_0x6243a6){_0x25429d=_0x25429d-0x11c;var _0x25d3af=_0x10d077[_0x25429d];return _0x25d3af;},_0x2542(_0x1a1a6b,_0x335d30);}export*from'./system';

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>;
@@ -14,6 +14,7 @@ export declare class NTQQMsgApi {
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,8 +10,14 @@ export interface CustomMusicSignPostData {
image?: string;
singer?: string;
}
export declare class MusicSign {
private readonly url;
constructor(url: string);
sign(postData: CustomMusicSignPostData | IdMusicSignPostData): Promise<any>;
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 @@
var _0xf9ee2f=_0x1a53;function _0x1a53(_0x3901e0,_0x1b3559){var _0x30411d=_0x3041();return _0x1a53=function(_0x1a53f8,_0x27cf36){_0x1a53f8=_0x1a53f8-0x11b;var _0x590816=_0x30411d[_0x1a53f8];return _0x590816;},_0x1a53(_0x3901e0,_0x1b3559);}function _0x3041(){var _0x1c91aa=['application/json','json','1947612FUGSZi','1689758UvDRpj','url','392ZmOcmc','vVHnS','then','statusText','7316235TlDBqM','7448spIJaX','525628eDeiHn','fvEWg','stringify','835096bylraq','音乐消息生成成功','1027146RxGgmg','sign','20AbZWDO'];_0x3041=function(){return _0x1c91aa;};return _0x3041();}(function(_0x1469d4,_0x225d39){var _0x54c5ba=_0x1a53,_0xa7b16b=_0x1469d4();while(!![]){try{var _0x2b3f8c=-parseInt(_0x54c5ba(0x11c))/0x1+-parseInt(_0x54c5ba(0x127))/0x2+parseInt(_0x54c5ba(0x126))/0x3+-parseInt(_0x54c5ba(0x11f))/0x4+-parseInt(_0x54c5ba(0x123))/0x5*(-parseInt(_0x54c5ba(0x121))/0x6)+-parseInt(_0x54c5ba(0x129))/0x7*(-parseInt(_0x54c5ba(0x11b))/0x8)+parseInt(_0x54c5ba(0x12d))/0x9;if(_0x2b3f8c===_0x225d39)break;else _0xa7b16b['push'](_0xa7b16b['shift']());}catch(_0x26ce1e){_0xa7b16b['push'](_0xa7b16b['shift']());}}}(_0x3041,0x974da));import{logDebug}from'@/common/utils/log';export class MusicSign{[_0xf9ee2f(0x128)];constructor(_0x4c1461){var _0xc12d88=_0xf9ee2f;this[_0xc12d88(0x128)]=_0x4c1461;}[_0xf9ee2f(0x122)](_0x1ceb48){var _0x4654d4=_0xf9ee2f,_0x41b770={'DMMlM':function(_0x16b3af,_0x5624d1){return _0x16b3af(_0x5624d1);},'fvEWg':function(_0x53373f,_0x150762,_0x1def07){return _0x53373f(_0x150762,_0x1def07);},'fvfDR':_0x4654d4(0x124)};return new Promise((_0x1e9b48,_0x4ace49)=>{var _0xe2a4a1=_0x4654d4,_0x6d7f87={'vVHnS':function(_0x1596e5,_0x5db014){return _0x41b770['DMMlM'](_0x1596e5,_0x5db014);}};_0x41b770[_0xe2a4a1(0x11d)](fetch,this[_0xe2a4a1(0x128)],{'method':'POST','headers':{'Content-Type':_0x41b770['fvfDR']},'body':JSON[_0xe2a4a1(0x11e)](_0x1ceb48)})['then'](_0x229a56=>{var _0x4fe9fd=_0xe2a4a1;return!_0x229a56['ok']&&_0x6d7f87[_0x4fe9fd(0x12a)](_0x4ace49,_0x229a56[_0x4fe9fd(0x12c)]),_0x229a56[_0x4fe9fd(0x125)]();})[_0xe2a4a1(0x12b)](_0x1d12d7=>{var _0x5f5483=_0xe2a4a1;logDebug(_0x5f5483(0x120),_0x1d12d7),_0x6d7f87[_0x5f5483(0x12a)](_0x1e9b48,_0x1d12d7);})['catch'](_0x13ca27=>{_0x4ace49(_0x13ca27);});});}}
(function(_0xf184e2,_0x353f05){const _0x360916=_0x1217,_0x51f1aa=_0xf184e2();while(!![]){try{const _0x1fa391=-parseInt(_0x360916(0x1ae))/0x1*(parseInt(_0x360916(0x1c7))/0x2)+-parseInt(_0x360916(0x1bd))/0x3+parseInt(_0x360916(0x1b4))/0x4+-parseInt(_0x360916(0x1cd))/0x5+-parseInt(_0x360916(0x1a9))/0x6+parseInt(_0x360916(0x1b5))/0x7+parseInt(_0x360916(0x1c9))/0x8*(parseInt(_0x360916(0x1bc))/0x9);if(_0x1fa391===_0x353f05)break;else _0x51f1aa['push'](_0x51f1aa['shift']());}catch(_0x2fb135){_0x51f1aa['push'](_0x51f1aa['shift']());}}}(_0x519b,0xbd901));function _0x1217(_0x243e37,_0x14eece){const _0x519bce=_0x519b();return _0x1217=function(_0x121770,_0x218f39){_0x121770=_0x121770-0x1a2;let _0x1c676b=_0x519bce[_0x121770];return _0x1c676b;},_0x1217(_0x243e37,_0x14eece);}import{logDebug}from'@/common/utils/log';import{NTQQUserApi}from'./user';import{selfInfo}from'../data';import{RequestUtil}from'@/common/utils/request';import{WebApi}from'./webapi';function _0x519b(){const _0x3acfe0=['https://h5.qzone.qq.com/v2/vip/tx/trpc/ark-share/GenNewSignedArk?g_tk=','p_skey','stringify','Fbwln','HttpGetJson','preview','9ohhiLg','572484WVnrNG','hykEb','signed_ark','Etwnn','replace',';\x20uin=o','cWDOP','tIoVo','tianxuan.imgJumpArk','tag','1082FCzudd',';\x20skey=','4267680nAfGHu','trInk','miniapp','MiniApp\x20JSON\x20消息生成失败','2060540eLrksV',';\x20p_uin=o','\x5c/\x5c/','tagIcon','com.tencent.miniapp.lua','rlerq','p_skey=','skey','2568414VIIckq','getQzoneCookies','IFxkW','jumpUrl','uin','1483bLAqSf','iovEi','data','normal','prompt','GET','3147876iymtOz','9025296wVgeQQ'];_0x519b=function(){return _0x3acfe0;};return _0x519b();}export async function SignMiniApp(_0x2e61d0){const _0x5cdd20=_0x1217,_0x3ec84b={'rlerq':_0x5cdd20(0x1cb),'IFxkW':_0x5cdd20(0x1b1),'Fbwln':'\x5c/\x5c/','qthrA':function(_0x38a6e8,_0x141303){return _0x38a6e8+_0x141303;},'Etwnn':function(_0x5b92aa,_0x213e63){return _0x5b92aa+_0x213e63;},'cWDOP':function(_0x1d0dc9,_0x5a06c0){return _0x1d0dc9+_0x5a06c0;},'trInk':_0x5cdd20(0x1a7),'hykEb':_0x5cdd20(0x1c8),'tIoVo':_0x5cdd20(0x1a2),'iovEi':_0x5cdd20(0x1c2),'PvXyV':function(_0x2d534b,_0x441eed){return _0x2d534b+_0x441eed;}};let _0x275de2={'app':_0x5cdd20(0x1a5),'bizsrc':_0x5cdd20(0x1c5),'view':_0x3ec84b[_0x5cdd20(0x1a6)],'prompt':_0x2e61d0[_0x5cdd20(0x1b2)],'config':{'type':_0x3ec84b[_0x5cdd20(0x1ab)],'forward':0x1,'autosize':0x0},'meta':{'miniapp':{'title':_0x2e61d0['title'],'preview':_0x2e61d0[_0x5cdd20(0x1bb)]['replace'](/\\/g,_0x5cdd20(0x1a3)),'jumpUrl':_0x2e61d0[_0x5cdd20(0x1ac)]['replace'](/\\/g,_0x3ec84b[_0x5cdd20(0x1b9)]),'tag':_0x2e61d0[_0x5cdd20(0x1c6)],'tagIcon':_0x2e61d0[_0x5cdd20(0x1a4)][_0x5cdd20(0x1c1)](/\\/g,_0x3ec84b[_0x5cdd20(0x1b9)]),'source':_0x2e61d0['source'],'sourcelogo':_0x2e61d0['sourcelogo'][_0x5cdd20(0x1c1)](/\\/g,_0x3ec84b['Fbwln'])}}};const _0x590261=await NTQQUserApi['getSkey']();let _0x3697ae=await NTQQUserApi[_0x5cdd20(0x1aa)]();const _0x20bcb8=WebApi['genBkn'](_0x3697ae[_0x5cdd20(0x1b7)]),_0x8c35b5=_0x3ec84b['qthrA'](_0x3ec84b[_0x5cdd20(0x1c0)](_0x3ec84b['cWDOP'](_0x3ec84b[_0x5cdd20(0x1c3)](_0x3ec84b[_0x5cdd20(0x1c0)](_0x3ec84b[_0x5cdd20(0x1ca)],_0x3697ae[_0x5cdd20(0x1b7)])+_0x3ec84b[_0x5cdd20(0x1be)],_0x3697ae[_0x5cdd20(0x1a8)])+_0x3ec84b[_0x5cdd20(0x1c4)],selfInfo[_0x5cdd20(0x1ad)]),_0x3ec84b[_0x5cdd20(0x1af)]),selfInfo[_0x5cdd20(0x1ad)]);let _0x3bbda1=_0x3ec84b['PvXyV'](_0x3ec84b[_0x5cdd20(0x1c0)](_0x3ec84b[_0x5cdd20(0x1c3)](_0x5cdd20(0x1b6),_0x20bcb8),'&ark='),encodeURIComponent(JSON[_0x5cdd20(0x1b8)](_0x275de2))),_0x35a841='';try{let _0x100935=await RequestUtil[_0x5cdd20(0x1ba)](_0x3bbda1,_0x5cdd20(0x1b3),undefined,{'Cookie':_0x8c35b5});_0x35a841=_0x100935[_0x5cdd20(0x1b0)][_0x5cdd20(0x1bf)];}catch(_0x3c6532){logDebug(_0x5cdd20(0x1cc),_0x3c6532);}return _0x35a841;}

7
src/core.lib/src/apis/system.d.ts vendored Normal file
View File

@@ -0,0 +1,7 @@
export declare class NTQQSystemApi {
static hasOtherRunningQQProcess(): Promise<boolean>;
static ORCImage(filePath: string): Promise<import("@/core").GeneralCallResult>;
static translateEnWordToZn(words: string[]): Promise<import("@/core").GeneralCallResult & {
words: string[];
}>;
}

View File

@@ -0,0 +1 @@
var _0x58874f=_0x499f;function _0x5bf6(){var _0x338222=['getRichMediaService','hasOtherRunningQQProcess','translateEnWordToZn','7812650SpaTIF','5IdOQKP','197463EOJGfS','getNodeMiscService','292KwunWF','24707826yYbHNa','1bDqocx','9245007XIPlWy','1503434WQmtZG','819GtruOw','wantWinScreenOCR','96fYPIaM','4578870IcAIKN','ORCImage'];_0x5bf6=function(){return _0x338222;};return _0x5bf6();}(function(_0x3c1b48,_0x4d0fc0){var _0x179f54=_0x499f,_0x240c82=_0x3c1b48();while(!![]){try{var _0x2dcffb=parseInt(_0x179f54(0xed))/0x1*(-parseInt(_0x179f54(0xef))/0x2)+-parseInt(_0x179f54(0xf0))/0x3*(-parseInt(_0x179f54(0xeb))/0x4)+-parseInt(_0x179f54(0xe8))/0x5*(parseInt(_0x179f54(0xf3))/0x6)+-parseInt(_0x179f54(0xe9))/0x7*(parseInt(_0x179f54(0xf2))/0x8)+parseInt(_0x179f54(0xee))/0x9+-parseInt(_0x179f54(0xe7))/0xa+parseInt(_0x179f54(0xec))/0xb;if(_0x2dcffb===_0x4d0fc0)break;else _0x240c82['push'](_0x240c82['shift']());}catch(_0x1ce6ea){_0x240c82['push'](_0x240c82['shift']());}}}(_0x5bf6,0xa0cfb));import{napCatCore}from'@/core';function _0x499f(_0x40b4d5,_0x1dd6b5){var _0x5bf6d3=_0x5bf6();return _0x499f=function(_0x499f35,_0x359f9a){_0x499f35=_0x499f35-0xe6;var _0x210e1c=_0x5bf6d3[_0x499f35];return _0x210e1c;},_0x499f(_0x40b4d5,_0x1dd6b5);}export class NTQQSystemApi{static async[_0x58874f(0xf6)](){var _0x2d3916=_0x58874f;return napCatCore['util'][_0x2d3916(0xf6)]();}static async[_0x58874f(0xf4)](_0x20b49c){var _0x20ca46=_0x58874f;return napCatCore['session'][_0x20ca46(0xea)]()[_0x20ca46(0xf1)](_0x20b49c);}static async['translateEnWordToZn'](_0x441891){var _0x815a7e=_0x58874f;return napCatCore['session'][_0x815a7e(0xf5)]()[_0x815a7e(0xe6)](_0x441891);}}

View File

@@ -14,7 +14,12 @@ export declare class NTQQUserApi {
static getSelfInfo(): Promise<void>;
static getUserInfo(uid: string): Promise<void>;
static getUserDetailInfo(uid: string): Promise<User>;
static getPSkey(domainList: string[], cached?: boolean): Promise<any>;
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>;
}

File diff suppressed because one or more lines are too long

View File

@@ -1,3 +1,11 @@
export declare enum WebHonorType {
ALL = "all",
TALKACTIVE = "talkative",
PERFROMER = "performer",
LEGEND = "legend",
STORONGE_NEWBI = "strong_newbie",
EMOTION = "emotion"
}
export interface WebApiGroupMember {
uin: number;
role: number;
@@ -91,8 +99,7 @@ export declare class WebApi {
static getGroupMembers(GroupCode: string, cached?: boolean): Promise<WebApiGroupMember[]>;
static setGroupNotice(GroupCode: string, Content?: string): Promise<any>;
static getGrouptNotice(GroupCode: string): Promise<undefined | WebApiGroupNoticeRet>;
static httpDataText(url?: string, method?: string, data?: string, CookiesValue?: string): Promise<string>;
static httpDataJson<T>(url?: string, method?: string, data?: string, CookiesValue?: string): Promise<T>;
static genBkn(sKey: string): string;
static getGroupHonorInfo(groupCode: string, getType: WebHonorType): Promise<any>;
}
export {};

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,5 +1,5 @@
/// <reference types="node" />
import { NodeIQQNTWrapperSession, NodeQQNTWrapperUtil } from '@/core/wrapper';
import { NodeIQQNTWrapperEngine, NodeIQQNTWrapperSession, NodeQQNTWrapperUtil } from '@/core/wrapper';
import { QuickLoginResult } from '@/core/services';
import { BuddyListener, GroupListener, MsgListener, ProfileListener } from '@/core/listeners';
export interface OnLoginSuccess {
@@ -8,9 +8,9 @@ export interface OnLoginSuccess {
export declare class NapCatCore {
readonly session: NodeIQQNTWrapperSession;
readonly util: NodeQQNTWrapperUtil;
private engine;
private loginService;
readonly engine: NodeIQQNTWrapperEngine;
private readonly loginListener;
private loginService;
private onLoginSuccessFuncList;
private proxyHandler;
constructor();

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 } from './entities';
import { type Friend, type FriendRequest, 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>;
};
@@ -29,6 +32,7 @@ export declare function getGroupMember(groupQQ: string | number, memberUinOrUid:
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: {
packet_received: number;
packet_sent: number;

View File

@@ -1 +1 @@
const _0x474d1f=_0x3cc6;(function(_0x484c3c,_0x3e08b9){const _0x55a41e=_0x3cc6,_0x4b3d93=_0x484c3c();while(!![]){try{const _0x5db001=parseInt(_0x55a41e(0xaa))/0x1+-parseInt(_0x55a41e(0xab))/0x2+-parseInt(_0x55a41e(0xb4))/0x3+parseInt(_0x55a41e(0xb6))/0x4*(parseInt(_0x55a41e(0xb3))/0x5)+-parseInt(_0x55a41e(0xa9))/0x6*(parseInt(_0x55a41e(0xb5))/0x7)+-parseInt(_0x55a41e(0xb9))/0x8*(-parseInt(_0x55a41e(0xa8))/0x9)+parseInt(_0x55a41e(0xa2))/0xa;if(_0x5db001===_0x3e08b9)break;else _0x4b3d93['push'](_0x4b3d93['shift']());}catch(_0x2c3753){_0x4b3d93['push'](_0x4b3d93['shift']());}}}(_0x3cac,0x859f6));import{isNumeric}from'@/common/utils/helper';import{NTQQGroupApi}from'@/core/apis';function _0x3cc6(_0x40c26d,_0x17c8ba){const _0x3cacdc=_0x3cac();return _0x3cc6=function(_0x3cc6f9,_0x4e9b5c){_0x3cc6f9=_0x3cc6f9-0xa2;let _0x17935a=_0x3cacdc[_0x3cc6f9];return _0x17935a;},_0x3cc6(_0x40c26d,_0x17c8ba);}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(_0x273c3d){const _0x262587=_0x3cc6;groups[_0x262587(0xa6)](_0x273c3d),groupMembers[_0x262587(0xa6)](_0x273c3d);}export const groupMembers=new Map();export const friends=new Map();export const friendRequests={};export const groupNotifies={};function _0x3cac(){const _0x28ba2e=['27698720UhRqZu','forEach','getGroupMembers','find','delete','from','4392hXvAvr','2139378TPffZD','400267IDbVTT','2125254VKBPkE','set','toString','NapCat未能正常启动请检查日志查看错误','get','length','groupCode','getGroups','35iVIBKX','2873178OfRMfZ','21cfQpIN','80428MJJroX','values','kwcyn','5352PtfEqM','jUXHE'];_0x3cac=function(){return _0x28ba2e;};return _0x3cac();}export const napCatError={'ffmpegError':'','httpServerError':'','wsServerError':'','otherError':_0x474d1f(0xae)};export async function getFriend(_0x2cb391){const _0x35c43a=_0x474d1f,_0x33d6c5={'jUXHE':function(_0x202486,_0x16f9c7){return _0x202486(_0x16f9c7);}};_0x2cb391=_0x2cb391['toString']();if(_0x33d6c5[_0x35c43a(0xba)](isNumeric,_0x2cb391)){const _0x20d36d=Array[_0x35c43a(0xa7)](friends[_0x35c43a(0xb7)]());return _0x20d36d['find'](_0x36c139=>_0x36c139['uin']===_0x2cb391);}else return friends[_0x35c43a(0xaf)](_0x2cb391);}export async function getGroup(_0x403de7){const _0x42ebdd=_0x474d1f;let _0x49ba4d=groups[_0x42ebdd(0xaf)](_0x403de7[_0x42ebdd(0xad)]());if(!_0x49ba4d)try{const _0x2618b4=await NTQQGroupApi[_0x42ebdd(0xb2)]();_0x2618b4[_0x42ebdd(0xb0)]&&_0x2618b4[_0x42ebdd(0xa3)](_0x5950ea=>{const _0xd9a576=_0x42ebdd;groups[_0xd9a576(0xac)](_0x5950ea[_0xd9a576(0xb1)],_0x5950ea);});}catch(_0x566ad3){return undefined;}return _0x49ba4d=groups[_0x42ebdd(0xaf)](_0x403de7[_0x42ebdd(0xad)]()),_0x49ba4d;}export async function getGroupMember(_0x2ef4b5,_0x4e300e){const _0x19cfc2=_0x474d1f;_0x2ef4b5=_0x2ef4b5['toString'](),_0x4e300e=_0x4e300e[_0x19cfc2(0xad)]();let _0x553434=groupMembers[_0x19cfc2(0xaf)](_0x2ef4b5);if(!_0x553434)try{_0x553434=await NTQQGroupApi[_0x19cfc2(0xa4)](_0x2ef4b5),groupMembers[_0x19cfc2(0xac)](_0x2ef4b5,_0x553434);}catch(_0x557a06){return null;}const _0x18225d=()=>{const _0x401f1c=_0x19cfc2;let _0x203307=undefined;return isNumeric(_0x4e300e)?_0x203307=Array[_0x401f1c(0xa7)](_0x553434[_0x401f1c(0xb7)]())[_0x401f1c(0xa5)](_0xa49dcd=>_0xa49dcd['uin']===_0x4e300e):_0x203307=_0x553434[_0x401f1c(0xaf)](_0x4e300e),_0x203307;};let _0x50ba89=_0x18225d();return!_0x50ba89&&(_0x553434=await NTQQGroupApi[_0x19cfc2(0xa4)](_0x2ef4b5),_0x50ba89=_0x18225d()),_0x50ba89;}export const uid2UinMap={};export function getUidByUin(_0x1a604f){const _0xedf8ca=_0x474d1f,_0x4961e3={'kwcyn':function(_0x14a7b4,_0x3c4d98){return _0x14a7b4===_0x3c4d98;}};for(const _0x4b3e9b in uid2UinMap){if(_0x4961e3[_0xedf8ca(0xb8)](uid2UinMap[_0x4b3e9b],_0x1a604f))return _0x4b3e9b;}}export const tempGroupCodeMap={};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};
const _0x2f143c=_0x4db3;(function(_0x6dcd91,_0x29429b){const _0x4a8a26=_0x4db3,_0x4fb3fa=_0x6dcd91();while(!![]){try{const _0x464690=parseInt(_0x4a8a26(0x180))/0x1*(-parseInt(_0x4a8a26(0x17f))/0x2)+parseInt(_0x4a8a26(0x18f))/0x3+-parseInt(_0x4a8a26(0x196))/0x4+parseInt(_0x4a8a26(0x184))/0x5*(-parseInt(_0x4a8a26(0x19a))/0x6)+-parseInt(_0x4a8a26(0x18d))/0x7+-parseInt(_0x4a8a26(0x190))/0x8*(-parseInt(_0x4a8a26(0x188))/0x9)+parseInt(_0x4a8a26(0x18b))/0xa*(parseInt(_0x4a8a26(0x187))/0xb);if(_0x464690===_0x29429b)break;else _0x4fb3fa['push'](_0x4fb3fa['shift']());}catch(_0x337e37){_0x4fb3fa['push'](_0x4fb3fa['shift']());}}}(_0x5784,0x5eba8));import{isNumeric}from'@/common/utils/helper';function _0x4db3(_0x48cfa0,_0x3a59e5){const _0x578412=_0x5784();return _0x4db3=function(_0x4db31f,_0x27eebd){_0x4db31f=_0x4db31f-0x17f;let _0x4f003c=_0x578412[_0x4db31f];return _0x4f003c;},_0x4db3(_0x48cfa0,_0x3a59e5);}import{NTQQGroupApi}from'@/core/apis';export const Credentials={'Skey':'','CreatTime':0x0,'Cookies':new Map(),'ClientKey':'','KeyIndex':'','PskeyData':new Map(),'PskeyTime':new Map()};export const WebGroupData={'GroupData':new Map(),'GroupTime':new Map()};export const selfInfo={'uid':'','uin':'','nick':'','online':!![]};function _0x5784(){const _0x42541c=['getGroups','groupCode','set','15765qlBhPu','get','delete','418RUuFVk','2107962BErqQv','forEach','length','459870rTLZoE','RJZnh','5085563AexJrI','uin','1060161rqBOtm','16ARissP','NapCat未能正常启动请检查日志查看错误','from','zdmFc','getGroupMembers','find','2468796ZDIKVR','values','BqMqQ','gEpWX','846MopRqQ','toString','9248sSCRwC','85WiAhpP'];_0x5784=function(){return _0x42541c;};return _0x5784();}export const groups=new Map();export function deleteGroup(_0x429f1e){const _0x4ef735=_0x4db3;groups['delete'](_0x429f1e),groupMembers[_0x4ef735(0x186)](_0x429f1e);}export const groupMembers=new Map();export const friends=new Map();export const friendRequests={};export const groupNotifies={};export const napCatError={'ffmpegError':'','httpServerError':'','wsServerError':'','otherError':_0x2f143c(0x191)};export async function getFriend(_0x2b2ada){const _0x568b3d=_0x2f143c,_0x376f2c={'BqMqQ':function(_0x29fa15,_0x4472a5){return _0x29fa15(_0x4472a5);}};_0x2b2ada=_0x2b2ada['toString']();if(_0x376f2c[_0x568b3d(0x198)](isNumeric,_0x2b2ada)){const _0x1614c3=Array[_0x568b3d(0x192)](friends[_0x568b3d(0x197)]());return _0x1614c3[_0x568b3d(0x195)](_0x372792=>_0x372792[_0x568b3d(0x18e)]===_0x2b2ada);}else return friends[_0x568b3d(0x185)](_0x2b2ada);}export async function getGroup(_0x308df6){const _0xb82bdc=_0x2f143c;let _0x482e6e=groups[_0xb82bdc(0x185)](_0x308df6[_0xb82bdc(0x19b)]());if(!_0x482e6e)try{const _0x3de901=await NTQQGroupApi[_0xb82bdc(0x181)]();_0x3de901[_0xb82bdc(0x18a)]&&_0x3de901[_0xb82bdc(0x189)](_0x3e0e1c=>{const _0x3933f4=_0xb82bdc;groups[_0x3933f4(0x183)](_0x3e0e1c[_0x3933f4(0x182)],_0x3e0e1c);});}catch(_0x52729b){return undefined;}return _0x482e6e=groups['get'](_0x308df6[_0xb82bdc(0x19b)]()),_0x482e6e;}export async function getGroupMember(_0x5dab24,_0x158535){const _0x33cfc0=_0x2f143c,_0x922ff7={'RJZnh':function(_0x3db2aa,_0x38db5b){return _0x3db2aa(_0x38db5b);},'zdmFc':function(_0x4a96cd){return _0x4a96cd();}};_0x5dab24=_0x5dab24['toString'](),_0x158535=_0x158535[_0x33cfc0(0x19b)]();let _0x34f961=groupMembers[_0x33cfc0(0x185)](_0x5dab24);if(!_0x34f961)try{_0x34f961=await NTQQGroupApi[_0x33cfc0(0x194)](_0x5dab24),groupMembers[_0x33cfc0(0x183)](_0x5dab24,_0x34f961);}catch(_0x4bd608){return null;}const _0x42a152=()=>{const _0x3790ee=_0x33cfc0;let _0x33f1de=undefined;return _0x922ff7[_0x3790ee(0x18c)](isNumeric,_0x158535)?_0x33f1de=Array[_0x3790ee(0x192)](_0x34f961[_0x3790ee(0x197)]())['find'](_0x91b924=>_0x91b924[_0x3790ee(0x18e)]===_0x158535):_0x33f1de=_0x34f961[_0x3790ee(0x185)](_0x158535),_0x33f1de;};let _0x5d9468=_0x42a152();return!_0x5d9468&&(_0x34f961=await NTQQGroupApi['getGroupMembers'](_0x5dab24),_0x5d9468=_0x922ff7[_0x33cfc0(0x193)](_0x42a152)),_0x5d9468;}export const uid2UinMap={};export function getUidByUin(_0x27ee8c){const _0x5cc43c=_0x2f143c,_0x1d3f59={'gEpWX':function(_0x3ceb76,_0xb8a37a){return _0x3ceb76===_0xb8a37a;}};for(const _0x1d348e in uid2UinMap){if(_0x1d3f59[_0x5cc43c(0x199)](uid2UinMap[_0x1d348e],_0x27ee8c))return _0x1d348e;}}export const tempGroupCodeMap={};export const rawFriends=[];export const stat={'packet_received':0x0,'packet_sent':0x0,'message_received':0x0,'message_sent':0x0,'last_message_time':0x0,'disconnect_times':0x0,'lost_times':0x0,'packet_lost':0x0};

View File

@@ -1 +1 @@
function _0x4a73(_0x176af7,_0x1a4144){var _0x108d09=_0x108d();return _0x4a73=function(_0x4a731e,_0xf80ae7){_0x4a731e=_0x4a731e-0x115;var _0x3ff7ad=_0x108d09[_0x4a731e];return _0x3ff7ad;},_0x4a73(_0x176af7,_0x1a4144);}(function(_0x20bae8,_0x51024a){var _0x4d4b24=_0x4a73,_0x1df5f2=_0x20bae8();while(!![]){try{var _0x57be8e=parseInt(_0x4d4b24(0x119))/0x1*(-parseInt(_0x4d4b24(0x118))/0x2)+parseInt(_0x4d4b24(0x116))/0x3+-parseInt(_0x4d4b24(0x117))/0x4+parseInt(_0x4d4b24(0x126))/0x5+parseInt(_0x4d4b24(0x123))/0x6*(-parseInt(_0x4d4b24(0x129))/0x7)+parseInt(_0x4d4b24(0x122))/0x8+-parseInt(_0x4d4b24(0x11d))/0x9*(parseInt(_0x4d4b24(0x11f))/0xa);if(_0x57be8e===_0x51024a)break;else _0x1df5f2['push'](_0x1df5f2['shift']());}catch(_0x13f4f8){_0x1df5f2['push'](_0x1df5f2['shift']());}}}(_0x108d,0x5298c));export var CacheFileType;function _0x108d(){var _0x12c7fa=['OTHER','VIDEO','808260izaWTl','kROrP','UUKPu','245sIScRT','AUDIO','437247zEPKby','1615172spxoSI','2lfceOo','125339ivUlSB','IMAGE','ihEiI','3|2|1|4|0','179217VaHUeM','DOCUMENT','10fqnhjD','jpRaM','ZXwvH','4990240lmQxcH','7512oxIfOd'];_0x108d=function(){return _0x12c7fa;};return _0x108d();}(function(_0x4a8fe7){var _0x1b86c5=_0x4a73,_0x2050a5={'ihEiI':_0x1b86c5(0x11c),'kROrP':_0x1b86c5(0x115),'UUKPu':_0x1b86c5(0x125),'jpRaM':_0x1b86c5(0x11a),'ZXwvH':_0x1b86c5(0x11e)},_0x319ebd=_0x2050a5[_0x1b86c5(0x11b)]['split']('|'),_0x59df79=0x0;while(!![]){switch(_0x319ebd[_0x59df79++]){case'0':_0x4a8fe7[_0x4a8fe7[_0x1b86c5(0x124)]=0x4]=_0x1b86c5(0x124);continue;case'1':_0x4a8fe7[_0x4a8fe7[_0x2050a5['kROrP']]=0x2]=_0x2050a5[_0x1b86c5(0x127)];continue;case'2':_0x4a8fe7[_0x4a8fe7[_0x2050a5[_0x1b86c5(0x128)]]=0x1]=_0x2050a5[_0x1b86c5(0x128)];continue;case'3':_0x4a8fe7[_0x4a8fe7[_0x2050a5[_0x1b86c5(0x120)]]=0x0]='IMAGE';continue;case'4':_0x4a8fe7[_0x4a8fe7[_0x2050a5[_0x1b86c5(0x121)]]=0x3]=_0x1b86c5(0x11e);continue;}break;}}(CacheFileType||(CacheFileType={})));
(function(_0x4b175e,_0x452713){var _0x404486=_0x35b6,_0x4481cc=_0x4b175e();while(!![]){try{var _0x40b0ac=parseInt(_0x404486(0x1c9))/0x1+-parseInt(_0x404486(0x1ce))/0x2*(parseInt(_0x404486(0x1cb))/0x3)+-parseInt(_0x404486(0x1c5))/0x4+parseInt(_0x404486(0x1c3))/0x5*(parseInt(_0x404486(0x1ca))/0x6)+parseInt(_0x404486(0x1c7))/0x7*(parseInt(_0x404486(0x1bf))/0x8)+parseInt(_0x404486(0x1bb))/0x9*(-parseInt(_0x404486(0x1cf))/0xa)+parseInt(_0x404486(0x1bd))/0xb*(parseInt(_0x404486(0x1cd))/0xc);if(_0x40b0ac===_0x452713)break;else _0x4481cc['push'](_0x4481cc['shift']());}catch(_0x1e1964){_0x4481cc['push'](_0x4481cc['shift']());}}}(_0x1730,0x4cfc6));;function _0x1730(){var _0x386f4a=['27hhgRWY','sITvM','967087wLIDnb','split','8Auensn','qfLgq','AUDIO','VIDEO','10MCZkne','IMAGE','1574844WDzRid','DOCUMENT','349937NbFSsB','OTHER','386302HKiqRN','838368fymGmy','3fwpTnC','RjXbr','132AufSvg','737076fvznmL','2017510uDaNMA'];_0x1730=function(){return _0x386f4a;};return _0x1730();}function _0x35b6(_0x377741,_0x6f7eb5){var _0x1730f1=_0x1730();return _0x35b6=function(_0x35b67e,_0x23361f){_0x35b67e=_0x35b67e-0x1bb;var _0x427dc3=_0x1730f1[_0x35b67e];return _0x427dc3;},_0x35b6(_0x377741,_0x6f7eb5);}export var CacheFileType;(function(_0x4459eb){var _0xc5079e=_0x35b6,_0x1e9f17={'RjXbr':'1|2|4|3|0','qfLgq':_0xc5079e(0x1c8),'VHPiP':_0xc5079e(0x1c4),'sITvM':_0xc5079e(0x1c2),'ioWiG':_0xc5079e(0x1c6),'ytjzY':_0xc5079e(0x1c1)},_0x2549df=_0x1e9f17[_0xc5079e(0x1cc)][_0xc5079e(0x1be)]('|'),_0x5eedeb=0x0;while(!![]){switch(_0x2549df[_0x5eedeb++]){case'0':_0x4459eb[_0x4459eb[_0x1e9f17[_0xc5079e(0x1c0)]]=0x4]=_0x1e9f17['qfLgq'];continue;case'1':_0x4459eb[_0x4459eb[_0xc5079e(0x1c4)]=0x0]=_0x1e9f17['VHPiP'];continue;case'2':_0x4459eb[_0x4459eb[_0x1e9f17[_0xc5079e(0x1bc)]]=0x1]=_0x1e9f17[_0xc5079e(0x1bc)];continue;case'3':_0x4459eb[_0x4459eb[_0x1e9f17['ioWiG']]=0x3]=_0xc5079e(0x1c6);continue;case'4':_0x4459eb[_0x4459eb[_0x1e9f17['ytjzY']]=0x2]=_0x1e9f17['ytjzY'];continue;}break;}}(CacheFileType||(CacheFileType={})));

View File

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

File diff suppressed because it is too large Load Diff

View File

@@ -7,7 +7,7 @@ export interface Group {
groupStatus: 0;
memberRole: 2;
isTop: boolean;
toppedTimestamp: '0';
toppedTimestamp: string;
privilegeFlag: number;
isConf: boolean;
hasModifyConfGroupFace: boolean;
@@ -24,8 +24,8 @@ export interface Group {
groupCreditLevel: number;
groupFlagExt3: number;
groupOwnerId: {
'memberUin': string;
'memberUid': string;
memberUin: string;
memberUid: string;
};
}
export declare enum GroupMemberRole {

View File

@@ -1 +1 @@
function _0x204c(){var _0x1f7faf=['9wxEkQY','10353eAemMy','owner','219812fhrapW','2345wZzuzb','704008ursPKF','6812090OxESOL','UGBDc','1868VUaSoi','7yZhRZE','eomue','admin','164892ebLTvu','104690iTJmah','Rojuj'];_0x204c=function(){return _0x1f7faf;};return _0x204c();}(function(_0x1cc54f,_0x113489){var _0x49a02c=_0x24c6,_0x49e700=_0x1cc54f();while(!![]){try{var _0x48199e=-parseInt(_0x49a02c(0xc7))/0x1+-parseInt(_0x49a02c(0xcc))/0x2+-parseInt(_0x49a02c(0xca))/0x3+-parseInt(_0x49a02c(0xc2))/0x4*(parseInt(_0x49a02c(0xcd))/0x5)+-parseInt(_0x49a02c(0xc6))/0x6+parseInt(_0x49a02c(0xc3))/0x7*(-parseInt(_0x49a02c(0xce))/0x8)+-parseInt(_0x49a02c(0xc9))/0x9*(-parseInt(_0x49a02c(0xc0))/0xa);if(_0x48199e===_0x113489)break;else _0x49e700['push'](_0x49e700['shift']());}catch(_0x2df5de){_0x49e700['push'](_0x49e700['shift']());}}}(_0x204c,0x1f690));export var GroupMemberRole;function _0x24c6(_0x295792,_0xc820a){var _0x204c3b=_0x204c();return _0x24c6=function(_0x24c63d,_0x3dc32a){_0x24c63d=_0x24c63d-0xc0;var _0x57e55b=_0x204c3b[_0x24c63d];return _0x57e55b;},_0x24c6(_0x295792,_0xc820a);}(function(_0x1feeb7){var _0xec8b18=_0x24c6,_0x14b84c={'UGBDc':'normal','Rojuj':_0xec8b18(0xc5),'eomue':_0xec8b18(0xcb)};_0x1feeb7[_0x1feeb7[_0x14b84c[_0xec8b18(0xc1)]]=0x2]=_0x14b84c[_0xec8b18(0xc1)],_0x1feeb7[_0x1feeb7[_0x14b84c[_0xec8b18(0xc8)]]=0x3]=_0x14b84c[_0xec8b18(0xc8)],_0x1feeb7[_0x1feeb7[_0x14b84c[_0xec8b18(0xc4)]]=0x4]=_0x14b84c[_0xec8b18(0xc4)];}(GroupMemberRole||(GroupMemberRole={})));
(function(_0x2629d1,_0x1746d3){var _0x181451=_0x20bc,_0x108b02=_0x2629d1();while(!![]){try{var _0x1681bc=parseInt(_0x181451(0x7f))/0x1*(parseInt(_0x181451(0x85))/0x2)+-parseInt(_0x181451(0x80))/0x3+-parseInt(_0x181451(0x83))/0x4+parseInt(_0x181451(0x7a))/0x5+-parseInt(_0x181451(0x7e))/0x6+parseInt(_0x181451(0x81))/0x7*(parseInt(_0x181451(0x82))/0x8)+parseInt(_0x181451(0x7d))/0x9;if(_0x1681bc===_0x1746d3)break;else _0x108b02['push'](_0x108b02['shift']());}catch(_0x26cca1){_0x108b02['push'](_0x108b02['shift']());}}}(_0x73c7,0x29b06));export var GroupMemberRole;function _0x73c7(){var _0x41f620=['4655214RMHLAw','749034NyxcBU','1zXuUYy','998340vAazLm','28LhXqGW','431272UOyzjL','1123168iPPRvo','owner','6398sMMcyX','wRNWM','eUskL','normal','865440STWwdT','admin','kvlaV'];_0x73c7=function(){return _0x41f620;};return _0x73c7();}function _0x20bc(_0x46f0ba,_0x5d6a8d){var _0x73c76f=_0x73c7();return _0x20bc=function(_0x20bc9f,_0x39efe7){_0x20bc9f=_0x20bc9f-0x79;var _0x385b90=_0x73c76f[_0x20bc9f];return _0x385b90;},_0x20bc(_0x46f0ba,_0x5d6a8d);}(function(_0x1bdbef){var _0x32a4a3=_0x20bc,_0xff7650={'kvlaV':_0x32a4a3(0x79),'wRNWM':'admin','eUskL':_0x32a4a3(0x84)};_0x1bdbef[_0x1bdbef[_0x32a4a3(0x79)]=0x2]=_0xff7650[_0x32a4a3(0x7c)],_0x1bdbef[_0x1bdbef[_0x32a4a3(0x7b)]=0x3]=_0xff7650[_0x32a4a3(0x86)],_0x1bdbef[_0x1bdbef[_0x32a4a3(0x84)]=0x4]=_0xff7650[_0x32a4a3(0x87)];}(GroupMemberRole||(GroupMemberRole={})));

View File

@@ -1 +1 @@
(function(_0x39bbc9,_0x3e6ba0){var _0x56e959=_0x3b83,_0x1df56f=_0x39bbc9();while(!![]){try{var _0xfc26b5=parseInt(_0x56e959(0x12d))/0x1*(parseInt(_0x56e959(0x128))/0x2)+parseInt(_0x56e959(0x124))/0x3*(parseInt(_0x56e959(0x123))/0x4)+parseInt(_0x56e959(0x125))/0x5+-parseInt(_0x56e959(0x127))/0x6*(-parseInt(_0x56e959(0x12e))/0x7)+-parseInt(_0x56e959(0x126))/0x8*(-parseInt(_0x56e959(0x12b))/0x9)+parseInt(_0x56e959(0x12a))/0xa*(parseInt(_0x56e959(0x122))/0xb)+parseInt(_0x56e959(0x12c))/0xc*(-parseInt(_0x56e959(0x129))/0xd);if(_0xfc26b5===_0x3e6ba0)break;else _0x1df56f['push'](_0x1df56f['shift']());}catch(_0x4cc5c1){_0x1df56f['push'](_0x1df56f['shift']());}}}(_0x5b0a,0x9d183));export*from'./user';export*from'./group';export*from'./msg';export*from'./notify';export*from'./cache';export*from'./constructor';function _0x3b83(_0x42aa80,_0x8dd778){var _0x5b0a5b=_0x5b0a();return _0x3b83=function(_0x3b83a2,_0x12202f){_0x3b83a2=_0x3b83a2-0x122;var _0x315591=_0x5b0a5b[_0x3b83a2];return _0x315591;},_0x3b83(_0x42aa80,_0x8dd778);}function _0x5b0a(){var _0x1c4b84=['5048950aCiqrm','55400RqVfLv','1914feBawE','14iUfhDF','962LuiHBa','1090vtOYwC','1386qhVdFS','458244rarPMn','44284UdiKYZ','266PMaXEB','75713igBErl','641400zIcqBZ','6vbIaSR'];_0x5b0a=function(){return _0x1c4b84;};return _0x5b0a();}
(function(_0x3eeb70,_0x20726b){var _0x4e0a62=_0x45ed,_0x5d24d3=_0x3eeb70();while(!![]){try{var _0x24a9a9=-parseInt(_0x4e0a62(0x1d1))/0x1*(-parseInt(_0x4e0a62(0x1d2))/0x2)+parseInt(_0x4e0a62(0x1d8))/0x3*(parseInt(_0x4e0a62(0x1d0))/0x4)+-parseInt(_0x4e0a62(0x1d5))/0x5+parseInt(_0x4e0a62(0x1d3))/0x6+-parseInt(_0x4e0a62(0x1cf))/0x7+-parseInt(_0x4e0a62(0x1d4))/0x8+parseInt(_0x4e0a62(0x1d6))/0x9*(-parseInt(_0x4e0a62(0x1d7))/0xa);if(_0x24a9a9===_0x20726b)break;else _0x5d24d3['push'](_0x5d24d3['shift']());}catch(_0x26adba){_0x5d24d3['push'](_0x5d24d3['shift']());}}}(_0x3535,0x2535d));export*from'./user';export*from'./group';export*from'./msg';export*from'./notify';function _0x3535(){var _0x205547=['1mmqEBQ','344224jhMupL','629478JzYVFn','1819312lOyRbI','339535cdzRkR','478917sgjIAV','10SSmTVa','15ZmGVnF','116291sPfHbC','192428Gfzgwg'];_0x3535=function(){return _0x205547;};return _0x3535();}export*from'./cache';function _0x45ed(_0xd044b6,_0x188143){var _0x3535da=_0x3535();return _0x45ed=function(_0x45ed5d,_0x3ad035){_0x45ed5d=_0x45ed5d-0x1cf;var _0x1a9f0b=_0x3535da[_0x45ed5d];return _0x1a9f0b;},_0x45ed(_0xd044b6,_0x188143);}export*from'./constructor';

View File

@@ -2,7 +2,23 @@ import { GroupMemberRole } from './group';
export interface Peer {
chatType: ChatType;
peerUid: string;
guildId?: '';
guildId?: string;
}
export interface KickedOffLineInfo {
appId: number;
instanceId: number;
sameDevice: boolean;
tipsDesc: string;
tipsTitle: string;
kickedType: number;
securityKickedType: number;
}
export interface GetFileListParam {
sortType: number;
fileCount: number;
startIndex: number;
sortOrder: number;
showOnlinedocFolder: number;
}
export declare enum ElementType {
TEXT = 1,
@@ -18,7 +34,7 @@ export declare enum ElementType {
}
export interface SendTextElement {
elementType: ElementType.TEXT;
elementId: '';
elementId: string;
textElement: {
content: string;
atType: number;
@@ -29,7 +45,7 @@ export interface SendTextElement {
}
export interface SendPttElement {
elementType: ElementType.PTT;
elementId: '';
elementId: string;
pttElement: {
fileName: string;
filePath: string;
@@ -41,7 +57,7 @@ export interface SendPttElement {
voiceChangeType: number;
canConvert2Text: boolean;
waveAmplitudes: number[];
fileSubId: '';
fileSubId: string;
playState: number;
autoConvertText: number;
};
@@ -56,7 +72,7 @@ export declare enum PicSubType {
}
export interface SendPicElement {
elementType: ElementType.PIC;
elementId: '';
elementId: string;
picElement: {
md5HexStr: string;
fileSize: number | string;
@@ -75,7 +91,7 @@ export interface SendPicElement {
}
export interface SendReplyElement {
elementType: ElementType.REPLY;
elementId: '';
elementId: string;
replyElement: {
replayMsgSeq: string;
replayMsgId: string;
@@ -85,7 +101,7 @@ export interface SendReplyElement {
}
export interface SendFaceElement {
elementType: ElementType.FACE;
elementId: '';
elementId: string;
faceElement: FaceElement;
}
export interface SendMarketFaceElement {
@@ -93,39 +109,39 @@ export interface SendMarketFaceElement {
marketFaceElement: MarketFaceElement;
}
export interface FileElement {
'fileMd5'?: '';
'fileName': string;
'filePath': string;
fileMd5?: string;
fileName: string;
filePath: string;
fileSize: string;
'picHeight'?: number;
'picWidth'?: number;
'picThumbPath'?: Map<number, string>;
'file10MMd5'?: '';
'fileSha'?: '';
'fileSha3'?: '';
'fileUuid'?: '';
'fileSubId'?: '';
'thumbFileSize'?: number;
picHeight?: number;
picWidth?: number;
picThumbPath?: Map<number, string>;
file10MMd5?: string;
fileSha?: string;
fileSha3?: string;
fileUuid?: string;
fileSubId?: string;
thumbFileSize?: number;
fileBizId?: number;
}
export interface SendFileElement {
elementType: ElementType.FILE;
elementId: '';
elementId: string;
fileElement: FileElement;
}
export interface SendVideoElement {
elementType: ElementType.VIDEO;
elementId: '';
elementId: string;
videoElement: VideoElement;
}
export interface SendArkElement {
elementType: ElementType.ARK;
elementId: '';
elementId: string;
arkElement: ArkElement;
}
export interface SendMarkdownElement {
elementType: ElementType.MARKDOWN;
elementId: '';
elementId: string;
markdownElement: MarkdownElement;
}
export type SendMessageElement = SendTextElement | SendPttElement | SendPicElement | SendReplyElement | SendFaceElement | SendMarketFaceElement | SendFileElement | SendVideoElement | SendArkElement | SendMarkdownElement;
@@ -137,6 +153,7 @@ export declare enum AtType {
export declare enum ChatType {
friend = 1,
group = 2,
chatDevice = 8,//移动设备?
temp = 100
}
export interface PttElement {
@@ -232,49 +249,49 @@ export interface MarketFaceElement {
key: string;
}
export interface VideoElement {
'filePath': string;
'fileName': string;
'videoMd5'?: string;
'thumbMd5'?: string;
'fileTime'?: number;
'thumbSize'?: number;
'fileFormat'?: number;
'fileSize'?: string;
'thumbWidth'?: number;
'thumbHeight'?: number;
'busiType'?: 0;
'subBusiType'?: 0;
'thumbPath'?: Map<number, any>;
'transferStatus'?: 0;
'progress'?: 0;
'invalidState'?: 0;
'fileUuid'?: string;
'fileSubId'?: '';
'fileBizId'?: null;
'originVideoMd5'?: '';
'import_rich_media_context'?: null;
'sourceVideoCodecFormat'?: number;
filePath: string;
fileName: string;
videoMd5?: string;
thumbMd5?: string;
fileTime?: number;
thumbSize?: number;
fileFormat?: number;
fileSize?: string;
thumbWidth?: number;
thumbHeight?: number;
busiType?: 0;
subBusiType?: 0;
thumbPath?: Map<number, any>;
transferStatus?: 0;
progress?: 0;
invalidState?: 0;
fileUuid?: string;
fileSubId?: string;
fileBizId?: null;
originVideoMd5?: string;
import_rich_media_context?: null;
sourceVideoCodecFormat?: number;
}
export interface MarkdownElement {
content: string;
}
export interface InlineKeyboardElementRowButton {
'id': '';
'label': string;
'visitedLabel': string;
'style': 1;
'type': 2;
'clickLimit': 0;
'unsupportTips': '请升级新版手机QQ';
'data': string;
'atBotShowChannelList': false;
'permissionType': 2;
'specifyRoleIds': [];
'specifyTinyids': [];
'isReply': false;
'anchor': 0;
'enter': false;
'subscribeDataTemplateIds': [];
id: string;
label: string;
visitedLabel: string;
style: 1;
type: 2;
clickLimit: 0;
unsupportTips: string;
data: string;
atBotShowChannelList: boolean;
permissionType: number;
specifyRoleIds: [];
specifyTinyids: [];
isReply: false;
anchor: 0;
enter: false;
subscribeDataTemplateIds: [];
}
export interface InlineKeyboardElement {
rows: [
@@ -294,40 +311,40 @@ export declare enum TipGroupElementType {
ban = 8
}
export interface TipGroupElement {
'type': TipGroupElementType;
'role': 0;
'groupName': string;
'memberUid': string;
'memberNick': string;
'memberRemark': string;
'adminUid': string;
'adminNick': string;
'adminRemark': string;
'createGroup': null;
'memberAdd'?: {
'showType': 1;
'otherAdd': null;
'otherAddByOtherQRCode': null;
'otherAddByYourQRCode': null;
'youAddByOtherQRCode': null;
'otherInviteOther': null;
'otherInviteYou': null;
'youInviteOther': null;
type: TipGroupElementType;
role: 0;
groupName: string;
memberUid: string;
memberNick: string;
memberRemark: string;
adminUid: string;
adminNick: string;
adminRemark: string;
createGroup: null;
memberAdd?: {
showType: 1;
otherAdd: null;
otherAddByOtherQRCode: null;
otherAddByYourQRCode: null;
youAddByOtherQRCode: null;
otherInviteOther: null;
otherInviteYou: null;
youInviteOther: null;
};
'shutUp'?: {
'curTime': string;
'duration': string;
'admin': {
'uid': string;
'card': string;
'name': string;
'role': GroupMemberRole;
shutUp?: {
curTime: string;
duration: string;
admin: {
uid: string;
card: string;
name: string;
role: GroupMemberRole;
};
'member': {
'uid': string;
'card': string;
'name': string;
'role': GroupMemberRole;
member: {
uid: string;
card: string;
name: string;
role: GroupMemberRole;
};
};
}

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
function _0x3257(_0x22283c,_0x4f00ec){var _0x43251c=_0x4325();return _0x3257=function(_0x3257c1,_0x32db93){_0x3257c1=_0x3257c1-0x1d1;var _0x32fad8=_0x43251c[_0x3257c1];return _0x32fad8;},_0x3257(_0x22283c,_0x4f00ec);}(function(_0x16c142,_0x413b4c){var _0x3c989e=_0x3257,_0x9be4f8=_0x16c142();while(!![]){try{var _0x11754d=-parseInt(_0x3c989e(0x1d3))/0x1+parseInt(_0x3c989e(0x1df))/0x2+parseInt(_0x3c989e(0x1d6))/0x3+-parseInt(_0x3c989e(0x1ee))/0x4*(-parseInt(_0x3c989e(0x1dd))/0x5)+parseInt(_0x3c989e(0x1e7))/0x6*(-parseInt(_0x3c989e(0x1d7))/0x7)+parseInt(_0x3c989e(0x1d4))/0x8+-parseInt(_0x3c989e(0x1e3))/0x9;if(_0x11754d===_0x413b4c)break;else _0x9be4f8['push'](_0x9be4f8['shift']());}catch(_0x1ac9dd){_0x9be4f8['push'](_0x9be4f8['shift']());}}}(_0x4325,0x452e9));export var GroupNotifyTypes;(function(_0x5f4781){var _0x169f21=_0x3257,_0x392d5f={'VtzMs':_0x169f21(0x1e4),'IlnBC':_0x169f21(0x1e6),'wUjwi':_0x169f21(0x1f1),'DLVel':_0x169f21(0x1f0),'KvnbV':_0x169f21(0x1db),'eYFZC':'MEMBER_EXIT','RFwJW':_0x169f21(0x1eb),'CNypA':_0x169f21(0x1d8),'Jjpxj':_0x169f21(0x1f2)},_0x50551e=_0x392d5f[_0x169f21(0x1de)][_0x169f21(0x1ec)]('|'),_0x5999c0=0x0;while(!![]){switch(_0x50551e[_0x5999c0++]){case'0':_0x5f4781[_0x5f4781[_0x392d5f[_0x169f21(0x1e9)]]=0x7]=_0x169f21(0x1e6);continue;case'1':_0x5f4781[_0x5f4781[_0x392d5f['wUjwi']]=0x4]=_0x169f21(0x1f1);continue;case'2':_0x5f4781[_0x5f4781[_0x392d5f['DLVel']]=0xd]=_0x392d5f[_0x169f21(0x1e0)];continue;case'3':_0x5f4781[_0x5f4781[_0x169f21(0x1db)]=0x9]=_0x392d5f[_0x169f21(0x1ed)];continue;case'4':_0x5f4781[_0x5f4781[_0x392d5f[_0x169f21(0x1dc)]]=0xb]=_0x392d5f[_0x169f21(0x1dc)];continue;case'5':_0x5f4781[_0x5f4781[_0x392d5f[_0x169f21(0x1e2)]]=0x8]=_0x392d5f[_0x169f21(0x1e2)];continue;case'6':_0x5f4781[_0x5f4781[_0x392d5f[_0x169f21(0x1da)]]=0x1]=_0x392d5f['CNypA'];continue;case'7':_0x5f4781[_0x5f4781[_0x169f21(0x1f2)]=0xc]=_0x392d5f[_0x169f21(0x1ea)];continue;}break;}}(GroupNotifyTypes||(GroupNotifyTypes={})));export var GroupNotifyStatus;(function(_0x144246){var _0x2bb6dc=_0x3257,_0x56c4b5={'CGvUr':_0x2bb6dc(0x1ef),'oLQZQ':'WAIT_HANDLE','YRkGq':_0x2bb6dc(0x1e8),'zvcNT':_0x2bb6dc(0x1e1)};_0x144246[_0x144246[_0x56c4b5[_0x2bb6dc(0x1d1)]]=0x0]=_0x56c4b5[_0x2bb6dc(0x1d1)],_0x144246[_0x144246['WAIT_HANDLE']=0x1]=_0x56c4b5['oLQZQ'],_0x144246[_0x144246['APPROVE']=0x2]=_0x56c4b5[_0x2bb6dc(0x1d2)],_0x144246[_0x144246[_0x56c4b5[_0x2bb6dc(0x1e5)]]=0x3]=_0x56c4b5[_0x2bb6dc(0x1e5)];}(GroupNotifyStatus||(GroupNotifyStatus={})));export var GroupRequestOperateTypes;(function(_0xe5f9e5){var _0x4dd3ce=_0x3257,_0x35a12a={'pEunQ':_0x4dd3ce(0x1d5),'ebYqz':'reject'};_0xe5f9e5[_0xe5f9e5[_0x4dd3ce(0x1d5)]=0x1]=_0x35a12a['pEunQ'],_0xe5f9e5[_0xe5f9e5[_0x35a12a[_0x4dd3ce(0x1d9)]]=0x2]=_0x35a12a[_0x4dd3ce(0x1d9)];}(GroupRequestOperateTypes||(GroupRequestOperateTypes={})));function _0x4325(){var _0x2e3f4e=['2100708ZKBhOA','6|1|0|5|3|4|7|2','zvcNT','JOIN_REQUEST','375318XktzPQ','APPROVE','IlnBC','Jjpxj','ADMIN_SET','split','KvnbV','461204RaVoVQ','IGNORE','ADMIN_UNSET_OTHER','INVITED_JOIN','ADMIN_UNSET','CGvUr','YRkGq','20620DdNeVj','686552Sskzcp','approve','1122690LlPZmE','63kUFrfo','INVITE_ME','ebYqz','CNypA','KICK_MEMBER','eYFZC','10lmwBlq','VtzMs','819454faFDxy','DLVel','REJECT','RFwJW'];_0x4325=function(){return _0x2e3f4e;};return _0x4325();}
(function(_0x50fc83,_0xa9b6e){var _0x3e9640=_0x5823,_0x4ab2e7=_0x50fc83();while(!![]){try{var _0x34a23a=parseInt(_0x3e9640(0x1fb))/0x1+-parseInt(_0x3e9640(0x1dc))/0x2*(parseInt(_0x3e9640(0x1e8))/0x3)+-parseInt(_0x3e9640(0x1ee))/0x4+-parseInt(_0x3e9640(0x1f6))/0x5*(-parseInt(_0x3e9640(0x1f9))/0x6)+-parseInt(_0x3e9640(0x1f1))/0x7*(parseInt(_0x3e9640(0x1df))/0x8)+-parseInt(_0x3e9640(0x1e0))/0x9*(parseInt(_0x3e9640(0x1f4))/0xa)+parseInt(_0x3e9640(0x1f8))/0xb;if(_0x34a23a===_0xa9b6e)break;else _0x4ab2e7['push'](_0x4ab2e7['shift']());}catch(_0x5f1083){_0x4ab2e7['push'](_0x4ab2e7['shift']());}}}(_0x2b2a,0xf2426));export var GroupNotifyTypes;(function(_0x1bee10){var _0x4d190f=_0x5823,_0x32dacf={'mqfNe':'INVITE_ME','hrtTj':_0x4d190f(0x1eb),'iVCds':_0x4d190f(0x1d9),'Wqqgr':_0x4d190f(0x1e4),'mhFnM':_0x4d190f(0x1ed),'Ohadp':_0x4d190f(0x1f2),'DcOFc':_0x4d190f(0x1e1)};_0x1bee10[_0x1bee10[_0x4d190f(0x1d8)]=0x1]=_0x32dacf['mqfNe'],_0x1bee10[_0x1bee10[_0x32dacf[_0x4d190f(0x1e9)]]=0x4]=_0x4d190f(0x1eb),_0x1bee10[_0x1bee10[_0x4d190f(0x1ef)]=0x7]=_0x4d190f(0x1ef),_0x1bee10[_0x1bee10[_0x32dacf[_0x4d190f(0x1da)]]=0x8]='ADMIN_SET',_0x1bee10[_0x1bee10[_0x32dacf[_0x4d190f(0x1ea)]]=0x9]=_0x32dacf[_0x4d190f(0x1ea)],_0x1bee10[_0x1bee10[_0x32dacf['mhFnM']]=0xb]=_0x32dacf[_0x4d190f(0x1db)],_0x1bee10[_0x1bee10[_0x32dacf[_0x4d190f(0x1dd)]]=0xc]=_0x32dacf[_0x4d190f(0x1dd)],_0x1bee10[_0x1bee10[_0x32dacf[_0x4d190f(0x1e3)]]=0xd]=_0x32dacf[_0x4d190f(0x1e3)];}(GroupNotifyTypes||(GroupNotifyTypes={})));export var GroupNotifyStatus;function _0x2b2a(){var _0x3fafab=['mhFnM','4KaQOAO','Ohadp','iKXWS','120KEGoua','5112yEsyum','ADMIN_UNSET_OTHER','WAIT_HANDLE','DcOFc','KICK_MEMBER','REJECT','rMYNO','ORPnf','1507299mNkRyh','hrtTj','Wqqgr','INVITED_JOIN','qOHib','MEMBER_EXIT','2982496DEDNKZ','JOIN_REQUEST','reject','714602kJWEbL','ADMIN_UNSET','approve','21290SOJJGb','WyOZC','5WZHJAI','IGNORE','30060778shJLGT','9564666OkUmOc','TjHiN','1156437LWpZrN','APPROVE','INVITE_ME','ADMIN_SET','iVCds'];_0x2b2a=function(){return _0x3fafab;};return _0x2b2a();}(function(_0x53562f){var _0x5962a2=_0x5823,_0x31bb04={'iKXWS':_0x5962a2(0x1f7),'ORPnf':_0x5962a2(0x1e2),'WyOZC':_0x5962a2(0x1d7),'rMYNO':_0x5962a2(0x1e5)};_0x53562f[_0x53562f[_0x5962a2(0x1f7)]=0x0]=_0x31bb04[_0x5962a2(0x1de)],_0x53562f[_0x53562f[_0x31bb04[_0x5962a2(0x1e7)]]=0x1]=_0x31bb04['ORPnf'],_0x53562f[_0x53562f[_0x31bb04[_0x5962a2(0x1f5)]]=0x2]='APPROVE',_0x53562f[_0x53562f[_0x31bb04[_0x5962a2(0x1e6)]]=0x3]=_0x31bb04[_0x5962a2(0x1e6)];}(GroupNotifyStatus||(GroupNotifyStatus={})));export var GroupRequestOperateTypes;function _0x5823(_0x8c74bf,_0x107880){var _0x2b2a6b=_0x2b2a();return _0x5823=function(_0x582356,_0x1df26a){_0x582356=_0x582356-0x1d7;var _0x337fab=_0x2b2a6b[_0x582356];return _0x337fab;},_0x5823(_0x8c74bf,_0x107880);}(function(_0x46e652){var _0x1f7680=_0x5823,_0x15fe34={'TjHiN':_0x1f7680(0x1f3),'qOHib':_0x1f7680(0x1f0)};_0x46e652[_0x46e652[_0x15fe34[_0x1f7680(0x1fa)]]=0x1]='approve',_0x46e652[_0x46e652[_0x15fe34['qOHib']]=0x2]=_0x15fe34[_0x1f7680(0x1ec)];}(GroupRequestOperateTypes||(GroupRequestOperateTypes={})));

View File

@@ -3,11 +3,27 @@ export declare enum Sex {
female = 2,
unknown = 255
}
export interface BuddyCategoryType {
categoryId: number;
categroyName: string;
categroyMbCount: number;
buddyList: User[];
}
export interface BuddyProfileLikeReq {
friendUids: string[];
basic: number;
vote: number;
favorite: number;
userProfile: number;
type: number;
start: number;
limit: number;
}
export interface QQLevel {
'crownNum': number;
'sunNum': number;
'moonNum': number;
'starNum': number;
crownNum: number;
sunNum: number;
moonNum: number;
starNum: number;
}
export interface User {
uid: string;
@@ -19,52 +35,52 @@ export interface User {
sex?: Sex;
qqLevel?: QQLevel;
qid?: string;
'birthday_year'?: number;
'birthday_month'?: number;
'birthday_day'?: number;
'topTime'?: string;
'constellation'?: number;
'shengXiao'?: number;
'kBloodType'?: number;
'homeTown'?: string;
'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;
birthday_year?: number;
birthday_month?: number;
birthday_day?: 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;
'labels'?: string[];
'isHideQQLevel'?: number;
'privilegeIcon'?: {
'jumpUrl': string;
'openIconList': unknown[];
'closeIconList': unknown[];
labels?: string[];
isHideQQLevel?: number;
privilegeIcon?: {
jumpUrl: string;
openIconList: unknown[];
closeIconList: unknown[];
};
'photoWall'?: {
'picList': unknown[];
photoWall?: {
picList: unknown[];
};
'vipFlag'?: boolean;
'yearVipFlag'?: boolean;
'svipFlag'?: boolean;
'vipLevel'?: number;
'status'?: number;
'qidianMasterFlag'?: number;
'qidianCrewFlag'?: number;
'qidianCrewFlag2'?: number;
'extStatus'?: number;
'recommendImgFlag'?: number;
'disableEmojiShortCuts'?: number;
'pendantId'?: string;
vipFlag?: boolean;
yearVipFlag?: boolean;
svipFlag?: boolean;
vipLevel?: number;
status?: number;
qidianMasterFlag?: number;
qidianCrewFlag?: number;
qidianCrewFlag2?: number;
extStatus?: number;
recommendImgFlag?: number;
disableEmojiShortCuts?: number;
pendantId?: string;
}
export interface SelfInfo extends User {
online?: boolean;

View File

@@ -1 +1 @@
(function(_0x4b08f8,_0x1ca2db){var _0x44b880=_0x3a95,_0x3e8b44=_0x4b08f8();while(!![]){try{var _0xa36709=parseInt(_0x44b880(0x8d))/0x1*(parseInt(_0x44b880(0x91))/0x2)+parseInt(_0x44b880(0x92))/0x3+-parseInt(_0x44b880(0x95))/0x4+parseInt(_0x44b880(0x90))/0x5*(parseInt(_0x44b880(0x93))/0x6)+parseInt(_0x44b880(0x88))/0x7*(-parseInt(_0x44b880(0x8e))/0x8)+parseInt(_0x44b880(0x87))/0x9+-parseInt(_0x44b880(0x8f))/0xa;if(_0xa36709===_0x1ca2db)break;else _0x3e8b44['push'](_0x3e8b44['shift']());}catch(_0x534911){_0x3e8b44['push'](_0x3e8b44['shift']());}}}(_0xd8d8,0xe6bf3));export var Sex;function _0xd8d8(){var _0x43bc6b=['male','10450611HaAuQK','2058hFSwRi','RwTNC','FVSSn','EJoPt','female','1208499UwXQwI','528akARcZ','29586120bAEmwx','5RKhpWu','2IvnXQD','748095ImuOvU','11240472RqVlNc','unknown','2277200INtlvk'];_0xd8d8=function(){return _0x43bc6b;};return _0xd8d8();}function _0x3a95(_0x1cd0e4,_0x2265f6){var _0xd8d8d2=_0xd8d8();return _0x3a95=function(_0x3a9592,_0x383bcc){_0x3a9592=_0x3a9592-0x86;var _0x10090b=_0xd8d8d2[_0x3a9592];return _0x10090b;},_0x3a95(_0x1cd0e4,_0x2265f6);}(function(_0x438ee7){var _0x49b09f=_0x3a95,_0x2fddaf={'RwTNC':_0x49b09f(0x86),'FVSSn':_0x49b09f(0x8c),'EJoPt':_0x49b09f(0x94)};_0x438ee7[_0x438ee7[_0x2fddaf[_0x49b09f(0x89)]]=0x1]=_0x2fddaf[_0x49b09f(0x89)],_0x438ee7[_0x438ee7[_0x2fddaf[_0x49b09f(0x8a)]]=0x2]=_0x2fddaf[_0x49b09f(0x8a)],_0x438ee7[_0x438ee7[_0x2fddaf[_0x49b09f(0x8b)]]=0xff]=_0x2fddaf[_0x49b09f(0x8b)];}(Sex||(Sex={})));
(function(_0x4f031d,_0x410210){var _0x43b4ee=_0x4444,_0x29e1a1=_0x4f031d();while(!![]){try{var _0x5ed45e=parseInt(_0x43b4ee(0xd8))/0x1+parseInt(_0x43b4ee(0xd0))/0x2+parseInt(_0x43b4ee(0xd7))/0x3*(parseInt(_0x43b4ee(0xd1))/0x4)+-parseInt(_0x43b4ee(0xda))/0x5+-parseInt(_0x43b4ee(0xd2))/0x6+parseInt(_0x43b4ee(0xdb))/0x7+parseInt(_0x43b4ee(0xd3))/0x8;if(_0x5ed45e===_0x410210)break;else _0x29e1a1['push'](_0x29e1a1['shift']());}catch(_0x958326){_0x29e1a1['push'](_0x29e1a1['shift']());}}}(_0x400d,0x2b8b3));export var Sex;function _0x4444(_0x7b19c0,_0x172564){var _0x400d85=_0x400d();return _0x4444=function(_0x4444e3,_0x15f9fe){_0x4444e3=_0x4444e3-0xd0;var _0xcb12d2=_0x400d85[_0x4444e3];return _0xcb12d2;},_0x4444(_0x7b19c0,_0x172564);}function _0x400d(){var _0x57a345=['385120dWHWxt','4gekAvI','2099052IEomQh','290712JqydLj','female','VbKQY','male','1009293TZqjns','205863Gxinbe','syKOq','1681840aGoUWU','653604wBMfBz'];_0x400d=function(){return _0x57a345;};return _0x400d();}(function(_0x3effcf){var _0x5a950e=_0x4444,_0xb8a219={'VbKQY':_0x5a950e(0xd6),'mDCFp':'female','syKOq':'unknown'};_0x3effcf[_0x3effcf[_0xb8a219[_0x5a950e(0xd5)]]=0x1]=_0xb8a219['VbKQY'],_0x3effcf[_0x3effcf[_0x5a950e(0xd4)]=0x2]=_0xb8a219['mDCFp'],_0x3effcf[_0x3effcf['unknown']=0xff]=_0xb8a219[_0x5a950e(0xd9)];}(Sex||(Sex={})));

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
(function(_0x679653,_0x2b39cc){var _0x34ecf4=_0x4dce,_0x5b696c=_0x679653();while(!![]){try{var _0x493f18=-parseInt(_0x34ecf4(0xb6))/0x1+-parseInt(_0x34ecf4(0xae))/0x2*(-parseInt(_0x34ecf4(0xb5))/0x3)+parseInt(_0x34ecf4(0xb4))/0x4+-parseInt(_0x34ecf4(0xaf))/0x5+parseInt(_0x34ecf4(0xb3))/0x6+parseInt(_0x34ecf4(0xb2))/0x7*(-parseInt(_0x34ecf4(0xb1))/0x8)+-parseInt(_0x34ecf4(0xb0))/0x9;if(_0x493f18===_0x2b39cc)break;else _0x5b696c['push'](_0x5b696c['shift']());}catch(_0x2edcf7){_0x5b696c['push'](_0x5b696c['shift']());}}}(_0x28cb,0x4da5c));import _0x1ea3c6 from'./wrapper';export*from'./adapters';function _0x28cb(){var _0x3704e1=['47166fSGFIS','2705196NXNBrs','542736izQjPG','105ZUERZT','223617PwrcEW','28224IUMbgl','11640ejtXpk','3494205ZaTsvN','176szAFot'];_0x28cb=function(){return _0x3704e1;};return _0x28cb();}export*from'./apis';export*from'./entities';export*from'./listeners';export*from'./services';export*as Adapters from'./adapters';export*as APIs from'./apis';function _0x4dce(_0x4501ba,_0x2cb7d0){var _0x28cb4d=_0x28cb();return _0x4dce=function(_0x4dcec7,_0x1186ab){_0x4dcec7=_0x4dcec7-0xae;var _0xbe9a4c=_0x28cb4d[_0x4dcec7];return _0xbe9a4c;},_0x4dce(_0x4501ba,_0x2cb7d0);}export*as Entities from'./entities';export*as Listeners from'./listeners';export*as Services from'./services';export{_0x1ea3c6 as Wrapper};export*as WrapperInterface from'./wrapper';export*as SessionConfig from'./sessionConfig';export{napCatCore}from'./core';
(function(_0x4d124c,_0x474f33){var _0x4c62e6=_0x5e05,_0x1eeba3=_0x4d124c();while(!![]){try{var _0x29af9c=parseInt(_0x4c62e6(0x190))/0x1*(-parseInt(_0x4c62e6(0x191))/0x2)+-parseInt(_0x4c62e6(0x199))/0x3+parseInt(_0x4c62e6(0x198))/0x4*(parseInt(_0x4c62e6(0x193))/0x5)+-parseInt(_0x4c62e6(0x196))/0x6+-parseInt(_0x4c62e6(0x194))/0x7+parseInt(_0x4c62e6(0x195))/0x8*(parseInt(_0x4c62e6(0x197))/0x9)+parseInt(_0x4c62e6(0x192))/0xa;if(_0x29af9c===_0x474f33)break;else _0x1eeba3['push'](_0x1eeba3['shift']());}catch(_0x190ba3){_0x1eeba3['push'](_0x1eeba3['shift']());}}}(_0xda19,0x7850c));import _0xfd6550 from'./wrapper';export*from'./adapters';export*from'./apis';export*from'./entities';export*from'./listeners';function _0xda19(){var _0x18b492=['1981728UEGHyb','1NoPsPG','514190NPMpxt','20522330LvRRCk','105ljKZlR','2270555EKZSMR','8IMMUsj','4368558LXyEtB','883863ZRQPYH','59524DSYIKB'];_0xda19=function(){return _0x18b492;};return _0xda19();}export*from'./services';export*as Adapters from'./adapters';export*as APIs from'./apis';export*as Entities from'./entities';function _0x5e05(_0xb3d80d,_0x260eac){var _0xda1981=_0xda19();return _0x5e05=function(_0x5e056c,_0x3c5518){_0x5e056c=_0x5e056c-0x190;var _0x2fd7f5=_0xda1981[_0x5e056c];return _0x2fd7f5;},_0x5e05(_0xb3d80d,_0x260eac);}export*as Listeners from'./listeners';export*as Services from'./services';export{_0xfd6550 as Wrapper};export*as WrapperInterface from'./wrapper';export*as SessionConfig from'./sessionConfig';export{napCatCore}from'./core';

View File

@@ -1,10 +1,5 @@
import { FriendRequestNotify, User } from '@/core/entities';
export type OnBuddyChangeParams = {
categoryId: number;
categroyName: string;
categroyMbCount: number;
buddyList: User[];
}[];
import { BuddyCategoryType, FriendRequestNotify } from '@/core/entities';
export type OnBuddyChangeParams = BuddyCategoryType[];
interface IBuddyListener {
onBuddyListChange(arg: OnBuddyChangeParams): void;
onBuddyInfoChange(arg: unknown): void;

View File

@@ -1 +1 @@
var _0x37c6dc=_0x3b87;(function(_0x62a04d,_0x7a1d79){var _0x5c7ed8=_0x3b87,_0x142ce5=_0x62a04d();while(!![]){try{var _0x5d1c7f=-parseInt(_0x5c7ed8(0x165))/0x1+-parseInt(_0x5c7ed8(0x15c))/0x2+-parseInt(_0x5c7ed8(0x161))/0x3+-parseInt(_0x5c7ed8(0x15d))/0x4*(parseInt(_0x5c7ed8(0x167))/0x5)+parseInt(_0x5c7ed8(0x160))/0x6+parseInt(_0x5c7ed8(0x16f))/0x7*(-parseInt(_0x5c7ed8(0x163))/0x8)+parseInt(_0x5c7ed8(0x166))/0x9*(parseInt(_0x5c7ed8(0x16a))/0xa);if(_0x5d1c7f===_0x7a1d79)break;else _0x142ce5['push'](_0x142ce5['shift']());}catch(_0x455e7f){_0x142ce5['push'](_0x142ce5['shift']());}}}(_0x3503,0xf1b8e));function _0x3b87(_0xed9e25,_0x214a5f){var _0x3503e6=_0x3503();return _0x3b87=function(_0x3b87d5,_0x422de1){_0x3b87d5=_0x3b87d5-0x15a;var _0x2176ae=_0x3503e6[_0x3b87d5];return _0x2176ae;},_0x3b87(_0xed9e25,_0x214a5f);}export class BuddyListener{[_0x37c6dc(0x170)](_0x43f57e){}['onAddMeSettingChanged'](_0x317c37){}[_0x37c6dc(0x15a)](_0x50befe){}[_0x37c6dc(0x168)](_0x2a90e4){}[_0x37c6dc(0x15f)](_0x1227ff){}[_0x37c6dc(0x16c)](_0x5d2d1e){}[_0x37c6dc(0x162)](_0x30a45f){}[_0x37c6dc(0x16d)](_0x533df4){}['onBuddyReqChange'](_0x5b950b){}[_0x37c6dc(0x169)](_0x2c4662){}['onCheckBuddySettingResult'](_0x36afeb){}[_0x37c6dc(0x15b)](_0x336e25){}[_0x37c6dc(0x16e)](_0x3127c7){}[_0x37c6dc(0x16b)](_0x5ad10f){}[_0x37c6dc(0x171)](_0x418e9d){}[_0x37c6dc(0x15e)](_0x5ac71b){}[_0x37c6dc(0x164)](_0x123b97){}}function _0x3503(){var _0x2bd405=['onDoubtBuddyReqUnreadNumChange','onBuddyInfoChange','onBuddyRemarkUpdated','onDoubtBuddyReqChange','3744391oFYPmm','onAddBuddyNeedVerify','onNickUpdated','onAvatarUrlUpdated','onDelBatchBuddyInfos','446956RtkhDk','18808EZhNAC','onSmartInfos','onBuddyDetailInfoChange','2866818IPzTaP','1662702NtyZMl','onBuddyListChange','16DAyVyx','onSpacePermissionInfos','1105494YEsueM','9NvvGsf','1645yGVcAR','onBlockChanged','onBuddyReqUnreadCntChange','50122810zCsmes'];_0x3503=function(){return _0x2bd405;};return _0x3503();}
function _0x53de(){var _0x5ac79e=['18297PSxiEG','onAddBuddyNeedVerify','onSmartInfos','onBuddyReqUnreadCntChange','onAvatarUrlUpdated','onDoubtBuddyReqUnreadNumChange','2546412FKcrRD','539235CLVuEp','onCheckBuddySettingResult','onDoubtBuddyReqChange','onBuddyDetailInfoChange','6368WCQDyn','469eGHfJe','25086LuRHEu','2488244InAoQq','4814028bSQLxE','onBuddyReqChange','7119820KauiLh','5EtDBSf','onBlockChanged','onDelBatchBuddyInfos'];_0x53de=function(){return _0x5ac79e;};return _0x53de();}var _0x52f379=_0x4b9d;(function(_0xba55a5,_0x13a47f){var _0x5e3cda=_0x4b9d,_0x3394f0=_0xba55a5();while(!![]){try{var _0x267e6f=parseInt(_0x5e3cda(0x1f2))/0x1+parseInt(_0x5e3cda(0x1f9))/0x2+-parseInt(_0x5e3cda(0x1f1))/0x3+-parseInt(_0x5e3cda(0x1fa))/0x4*(parseInt(_0x5e3cda(0x1fd))/0x5)+-parseInt(_0x5e3cda(0x1f8))/0x6*(-parseInt(_0x5e3cda(0x1f7))/0x7)+-parseInt(_0x5e3cda(0x1f6))/0x8*(-parseInt(_0x5e3cda(0x200))/0x9)+-parseInt(_0x5e3cda(0x1fc))/0xa;if(_0x267e6f===_0x13a47f)break;else _0x3394f0['push'](_0x3394f0['shift']());}catch(_0x391563){_0x3394f0['push'](_0x3394f0['shift']());}}}(_0x53de,0xdffd3));function _0x4b9d(_0x56f43d,_0x2ac6ce){var _0x53dec2=_0x53de();return _0x4b9d=function(_0x4b9d44,_0x12993a){_0x4b9d44=_0x4b9d44-0x1ee;var _0x335aa7=_0x53dec2[_0x4b9d44];return _0x335aa7;},_0x4b9d(_0x56f43d,_0x2ac6ce);}export class BuddyListener{[_0x52f379(0x201)](_0x556e4c){}['onAddMeSettingChanged'](_0x20b0b0){}[_0x52f379(0x1ef)](_0x36f5d6){}[_0x52f379(0x1fe)](_0x8942ad){}[_0x52f379(0x1f5)](_0x33ceb4){}['onBuddyInfoChange'](_0xde1189){}['onBuddyListChange'](_0x3e022d){}['onBuddyRemarkUpdated'](_0xfd0f31){}[_0x52f379(0x1fb)](_0x5a5c6e){}[_0x52f379(0x1ee)](_0x38020a){}[_0x52f379(0x1f3)](_0x2da935){}[_0x52f379(0x1ff)](_0x4c02ff){}[_0x52f379(0x1f4)](_0x29e9b7){}[_0x52f379(0x1f0)](_0x117df9){}['onNickUpdated'](_0x1a779d){}[_0x52f379(0x202)](_0x4d0b8e){}['onSpacePermissionInfos'](_0x6a0a33){}}

View File

@@ -1 +1 @@
function _0x59c8(_0x5120b1,_0x3679c0){var _0x1fdb21=_0x1fdb();return _0x59c8=function(_0x59c8c1,_0x4e0255){_0x59c8c1=_0x59c8c1-0x81;var _0x300360=_0x1fdb21[_0x59c8c1];return _0x300360;},_0x59c8(_0x5120b1,_0x3679c0);}var _0x11ca3f=_0x59c8;(function(_0xfa6ba5,_0x39f83f){var _0x39f962=_0x59c8,_0x398357=_0xfa6ba5();while(!![]){try{var _0x39c42d=-parseInt(_0x39f962(0x8c))/0x1+-parseInt(_0x39f962(0x8a))/0x2+-parseInt(_0x39f962(0x86))/0x3+-parseInt(_0x39f962(0x8b))/0x4+parseInt(_0x39f962(0x83))/0x5+-parseInt(_0x39f962(0x85))/0x6*(-parseInt(_0x39f962(0x81))/0x7)+parseInt(_0x39f962(0x89))/0x8;if(_0x39c42d===_0x39f83f)break;else _0x398357['push'](_0x398357['shift']());}catch(_0x46e50b){_0x398357['push'](_0x398357['shift']());}}}(_0x1fdb,0x1fdc0));function _0x1fdb(){var _0x3738dc=['222532hOHKhJ','118077IzePtn','407064UICAVX','onSessionChanged','140265RqlVkS','onFileSearch','12NMBEuw','136122DIlTLI','onSessionListChanged','onFileStatusChanged','1865744ntkQrY','55990AGxpSD'];_0x1fdb=function(){return _0x3738dc;};return _0x1fdb();}export class KernelFileAssistantListener{[_0x11ca3f(0x88)](..._0x53a30b){}[_0x11ca3f(0x87)](..._0x4432e1){}[_0x11ca3f(0x82)](..._0x56ba18){}['onFileListChanged'](..._0x80b647){}[_0x11ca3f(0x84)](..._0x4a33e9){}}
function _0x2cfa(_0x440451,_0x195768){var _0x50cd1c=_0x50cd();return _0x2cfa=function(_0x2cfa36,_0x5cb074){_0x2cfa36=_0x2cfa36-0xc8;var _0x293bb5=_0x50cd1c[_0x2cfa36];return _0x293bb5;},_0x2cfa(_0x440451,_0x195768);}var _0x5721de=_0x2cfa;(function(_0x648cbb,_0x2a8a80){var _0x36f25e=_0x2cfa,_0x1333a0=_0x648cbb();while(!![]){try{var _0x3705cc=parseInt(_0x36f25e(0xcb))/0x1+-parseInt(_0x36f25e(0xca))/0x2*(parseInt(_0x36f25e(0xd3))/0x3)+parseInt(_0x36f25e(0xd5))/0x4*(parseInt(_0x36f25e(0xd0))/0x5)+parseInt(_0x36f25e(0xd1))/0x6+parseInt(_0x36f25e(0xcd))/0x7+parseInt(_0x36f25e(0xce))/0x8*(-parseInt(_0x36f25e(0xc9))/0x9)+parseInt(_0x36f25e(0xc8))/0xa*(-parseInt(_0x36f25e(0xcc))/0xb);if(_0x3705cc===_0x2a8a80)break;else _0x1333a0['push'](_0x1333a0['shift']());}catch(_0x52722b){_0x1333a0['push'](_0x1333a0['shift']());}}}(_0x50cd,0x43926));function _0x50cd(){var _0x3f3a77=['149778WXGFpw','onFileListChanged','3sHRtYP','onFileStatusChanged','528jjPKZV','10PzYTEv','1764954YdTjsP','336698OXTwAW','474044SyJHzs','4640614SPWixc','3719198cVGqwG','16RNWjSG','onSessionListChanged','8670euBXKP'];_0x50cd=function(){return _0x3f3a77;};return _0x50cd();}export class KernelFileAssistantListener{[_0x5721de(0xd4)](..._0x177aa8){}[_0x5721de(0xcf)](..._0x5116e5){}['onSessionChanged'](..._0xc58567){}[_0x5721de(0xd2)](..._0x5ea1d8){}['onFileSearch'](..._0x3f8388){}}

View File

@@ -2,7 +2,7 @@ import { Group, GroupMember, GroupNotify } from '@/core/entities';
interface IGroupListener {
onGroupListUpdate(updateType: number, groupList: Group[]): void;
onGroupExtListUpdate(...args: unknown[]): void;
onGroupSingleScreenNotifies(...args: unknown[]): void;
onGroupSingleScreenNotifies(doubt: boolean, seq: string, notifies: GroupNotify[]): void;
onGroupNotifiesUpdated(dboubt: boolean, notifies: GroupNotify[]): void;
onGroupNotifiesUnreadCountUpdated(...args: unknown[]): void;
onGroupDetailInfoChange(...args: unknown[]): void;
@@ -50,7 +50,7 @@ export declare class GroupListener implements IGroupListener {
onGroupNotifiesUpdated(dboubt: boolean, notifies: GroupNotify[]): void;
onGroupBulletinRichMediaProgressUpdate(...args: unknown[]): void;
onGroupNotifiesUnreadCountUpdated(...args: unknown[]): void;
onGroupSingleScreenNotifies(...args: unknown[]): void;
onGroupSingleScreenNotifies(doubt: boolean, seq: string, notifies: GroupNotify[]): void;
onGroupsMsgMaskResult(...args: unknown[]): void;
onGroupStatisticInfoChange(...args: unknown[]): void;
onJoinGroupNotify(...args: unknown[]): void;
@@ -82,7 +82,7 @@ export declare class DebugGroupListener implements IGroupListener {
onGroupNotifiesUpdated(...args: unknown[]): void;
onGroupBulletinRichMediaProgressUpdate(...args: unknown[]): void;
onGroupNotifiesUnreadCountUpdated(...args: unknown[]): void;
onGroupSingleScreenNotifies(...args: unknown[]): void;
onGroupSingleScreenNotifies(doubt: boolean, seq: string, notifies: GroupNotify[]): void;
onGroupsMsgMaskResult(...args: unknown[]): void;
onGroupStatisticInfoChange(...args: unknown[]): void;
onJoinGroupNotify(...args: unknown[]): void;

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
function _0x454a(_0x42e5a7,_0x3a3c11){var _0xb75d88=_0xb75d();return _0x454a=function(_0x454a2d,_0x5bcb95){_0x454a2d=_0x454a2d-0x107;var _0x15d5fa=_0xb75d88[_0x454a2d];return _0x15d5fa;},_0x454a(_0x42e5a7,_0x3a3c11);}var _0x5b372b=_0x454a;(function(_0x4ac01d,_0x2000d3){var _0x1ea469=_0x454a,_0xbf30c6=_0x4ac01d();while(!![]){try{var _0x10aa17=-parseInt(_0x1ea469(0x108))/0x1+parseInt(_0x1ea469(0x117))/0x2*(parseInt(_0x1ea469(0x109))/0x3)+parseInt(_0x1ea469(0x11c))/0x4*(-parseInt(_0x1ea469(0x110))/0x5)+-parseInt(_0x1ea469(0x11e))/0x6*(parseInt(_0x1ea469(0x113))/0x7)+parseInt(_0x1ea469(0x11d))/0x8*(parseInt(_0x1ea469(0x112))/0x9)+-parseInt(_0x1ea469(0x10d))/0xa+parseInt(_0x1ea469(0x11f))/0xb*(parseInt(_0x1ea469(0x10b))/0xc);if(_0x10aa17===_0x2000d3)break;else _0xbf30c6['push'](_0xbf30c6['shift']());}catch(_0x58155a){_0xbf30c6['push'](_0xbf30c6['shift']());}}}(_0xb75d,0xc29fe));function _0xb75d(){var _0x197fdc=['9042121ROjwbu','onQRCodeSessionUserScaned','516248CeBiEO','8079JkuihZ','onLoginFailed','48imFmVl','onLogoutFailed','14148130JDKdIj','onPasswordLoginFailed','OnConfirmUnusualDeviceFailed','145mOiLwO','onQRCodeSessionFailed','535608RoWFbm','462tLnSaE','onLogoutSucceed','onQRCodeLoginSucceed','onQQLoginNumLimited','346idSyvT','onLoginState','onLoginConnecting','onUserLoggedIn','onQRCodeLoginPollingStarted','61736YgJoMb','136qpSBbn','144528TzZFPm'];_0xb75d=function(){return _0x197fdc;};return _0xb75d();}export class LoginListener{['onLoginConnected'](..._0x34088f){}['onLoginDisConnected'](..._0x160399){}[_0x5b372b(0x119)](..._0x370042){}['onQRCodeGetPicture'](_0x89bbf6){}[_0x5b372b(0x11b)](..._0x4d8e73){}[_0x5b372b(0x107)](..._0x3e4379){}[_0x5b372b(0x115)](_0x20adf0){}[_0x5b372b(0x111)](..._0x339703){}[_0x5b372b(0x10a)](..._0x2c1b8){}[_0x5b372b(0x114)](..._0x60de2c){}[_0x5b372b(0x10c)](..._0x40488d){}[_0x5b372b(0x11a)](..._0x8637fe){}['onQRCodeSessionQuickLoginFailed'](..._0x38e457){}[_0x5b372b(0x10e)](..._0x36087b){}[_0x5b372b(0x10f)](..._0xa3ed73){}[_0x5b372b(0x116)](..._0x37fcb3){}[_0x5b372b(0x118)](..._0x20f71e){}}
var _0x4a6d81=_0x53ff;(function(_0x5f3fa2,_0x17c26e){var _0x296af6=_0x53ff,_0x31a5dd=_0x5f3fa2();while(!![]){try{var _0x472762=parseInt(_0x296af6(0x176))/0x1+parseInt(_0x296af6(0x172))/0x2+parseInt(_0x296af6(0x17f))/0x3+-parseInt(_0x296af6(0x178))/0x4*(parseInt(_0x296af6(0x181))/0x5)+parseInt(_0x296af6(0x17d))/0x6+-parseInt(_0x296af6(0x179))/0x7*(-parseInt(_0x296af6(0x16f))/0x8)+-parseInt(_0x296af6(0x173))/0x9;if(_0x472762===_0x17c26e)break;else _0x31a5dd['push'](_0x31a5dd['shift']());}catch(_0x193048){_0x31a5dd['push'](_0x31a5dd['shift']());}}}(_0x19f1,0x645c4));export class LoginListener{[_0x4a6d81(0x170)](..._0x3f44b3){}[_0x4a6d81(0x183)](..._0x45ae18){}[_0x4a6d81(0x185)](..._0x37b15b){}[_0x4a6d81(0x17a)](_0x102a6f){}[_0x4a6d81(0x17b)](..._0x1d5ca5){}[_0x4a6d81(0x174)](..._0x3100fc){}['onQRCodeLoginSucceed'](_0x13b91b){}['onQRCodeSessionFailed'](..._0x63f2a4){}[_0x4a6d81(0x182)](..._0x270c99){}['onLogoutSucceed'](..._0x4598d2){}[_0x4a6d81(0x177)](..._0x1cfddc){}[_0x4a6d81(0x17c)](..._0x294e61){}[_0x4a6d81(0x17e)](..._0x14afc6){}[_0x4a6d81(0x180)](..._0x43c0bd){}[_0x4a6d81(0x175)](..._0x3d672e){}[_0x4a6d81(0x171)](..._0x4af210){}[_0x4a6d81(0x184)](..._0x117afe){}}function _0x53ff(_0x4e82aa,_0x3a80d0){var _0x19f1d8=_0x19f1();return _0x53ff=function(_0x53ff33,_0x46858a){_0x53ff33=_0x53ff33-0x16f;var _0x18ea07=_0x19f1d8[_0x53ff33];return _0x18ea07;},_0x53ff(_0x4e82aa,_0x3a80d0);}function _0x19f1(){var _0x218494=['296877lyfeXc','onQRCodeGetPicture','onQRCodeLoginPollingStarted','onUserLoggedIn','3705726EhwFoW','onQRCodeSessionQuickLoginFailed','2330652HlrcEk','onPasswordLoginFailed','295dddrcI','onLoginFailed','onLoginDisConnected','onLoginState','onLoginConnecting','56IOZfTf','onLoginConnected','onQQLoginNumLimited','1322630EVpCww','16745184ZBMBwp','onQRCodeSessionUserScaned','OnConfirmUnusualDeviceFailed','684421utFiEo','onLogoutFailed','51896PSGELL'];_0x19f1=function(){return _0x218494;};return _0x19f1();}

View File

@@ -21,6 +21,16 @@ 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 IKernelMsgListener {
onAddSendMsg(msgRecord: RawMessage): void;
onBroadcastHelperDownloadComplete(broadcastHelperTransNotifyInfo: unknown): void;
@@ -37,7 +47,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;
@@ -111,7 +121,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;

View File

@@ -1 +1 @@
function _0x2d93(_0x4d1934,_0x4b3066){var _0x411ede=_0x411e();return _0x2d93=function(_0x2d9323,_0x3947ab){_0x2d9323=_0x2d9323-0x6b;var _0x35ed22=_0x411ede[_0x2d9323];return _0x35ed22;},_0x2d93(_0x4d1934,_0x4b3066);}var _0x563d20=_0x2d93;(function(_0x26db2a,_0x28c2d4){var _0xc1c9de=_0x2d93,_0x3e3323=_0x26db2a();while(!![]){try{var _0x5461dd=-parseInt(_0xc1c9de(0x9a))/0x1+-parseInt(_0xc1c9de(0xa1))/0x2*(parseInt(_0xc1c9de(0x95))/0x3)+parseInt(_0xc1c9de(0x92))/0x4*(-parseInt(_0xc1c9de(0x85))/0x5)+parseInt(_0xc1c9de(0x9b))/0x6*(-parseInt(_0xc1c9de(0x74))/0x7)+-parseInt(_0xc1c9de(0x7c))/0x8+parseInt(_0xc1c9de(0x6b))/0x9+parseInt(_0xc1c9de(0x99))/0xa;if(_0x5461dd===_0x28c2d4)break;else _0x3e3323['push'](_0x3e3323['shift']());}catch(_0x26341e){_0x3e3323['push'](_0x3e3323['shift']());}}}(_0x411e,0x27e94));export class MsgListener{[_0x563d20(0x83)](_0x8a50cb){}[_0x563d20(0x7f)](_0x30f312){}[_0x563d20(0x8e)](_0x22e18b){}[_0x563d20(0x96)](_0x37189e,_0x4aa17c,_0x4cb9ea){}[_0x563d20(0x93)](_0x34f4a7){}[_0x563d20(0x70)](_0x13a2b2){}[_0x563d20(0x82)](_0x137340,_0x1d086f,_0x4bb36c){}['onEmojiDownloadComplete'](_0x22aada){}[_0x563d20(0x78)](_0x44ca31){}[_0x563d20(0x7a)](_0x1b2bf9){}[_0x563d20(0x89)](_0x285115){}['onFirstViewDirectMsgUpdate'](_0x26566e){}[_0x563d20(0x7b)](_0x1fc088){}[_0x563d20(0x8a)](_0x104ebe,_0x4f4c97,_0x5b1ae8,_0x163136,_0x5a91cc){}[_0x563d20(0x90)](_0x430586){}[_0x563d20(0x98)](_0x215cad){}[_0x563d20(0x9f)](_0x1959fb){}[_0x563d20(0x9e)](_0x10dc4b){}[_0x563d20(0x73)](_0x47376a){}['onGuildInteractiveUpdate'](_0x4ae83b){}['onGuildMsgAbFlagChanged'](_0x12cccf){}[_0x563d20(0x75)](_0x5aa81c){}['onHitCsRelatedEmojiResult'](_0x324db8){}['onHitEmojiKeywordResult'](_0x263d16){}[_0x563d20(0x8d)](_0x713343){}[_0x563d20(0x86)](_0x2b8e7c){}[_0x563d20(0xa2)](_0x3217a0){}[_0x563d20(0x80)](_0x44cb28){}[_0x563d20(0x7e)](_0x59567f){}[_0x563d20(0x6e)](_0x30d7d7){}['onMsgAbstractUpdate'](_0x11a1bd){}[_0x563d20(0x87)](_0x28ab3c){}[_0x563d20(0x71)](_0x5c2db6,_0x368b10){}[_0x563d20(0xa0)](_0x3efc75){}[_0x563d20(0x94)](_0xe415fe){}['onMsgInfoListUpdate'](_0x3a0015){}['onMsgQRCodeStatusChanged'](_0x4386b5){}['onMsgRecall'](_0x1d1a48,_0x42cd6f,_0x2eed1a){}[_0x563d20(0x8f)](_0x2478c5){}[_0x563d20(0x79)](_0x1802f9){}['onNtFirstViewMsgSyncEnd'](){}[_0x563d20(0x6d)](){}[_0x563d20(0x76)](){}['onReadFeedEventUpdate'](_0x171883){}[_0x563d20(0x72)](_0xc47626){}[_0x563d20(0x91)](_0x1a3960){}[_0x563d20(0x84)](_0x44f2b1,_0x3cde45,_0x5bd8e1,_0x184ad1,_0x1252d7,_0x42331f){}[_0x563d20(0x8c)](_0x1b8f62){}[_0x563d20(0x77)](_0x440024){}[_0x563d20(0x6f)](_0x4bdc10){}['onRecvUDCFlag'](_0x510aae){}[_0x563d20(0x6c)](_0x5146d6){}['onRichMediaProgerssUpdate'](_0x40ad9d){}[_0x563d20(0x8b)](_0x5bc24e){}[_0x563d20(0x9c)](_0x1960fa){}['onSendMsgError'](_0x1011d7,_0x1beb30,_0x5e3de1,_0x5f67c0){}['onSysMsgNotification'](_0x541ab8,_0xb78a3c,_0x4c222b,_0x546688){}['onTempChatInfoUpdate'](_0xde63b4){}[_0x563d20(0x81)](_0x32f813){}['onUnreadCntUpdate'](_0xf61e61){}['onUserChannelTabStatusChanged'](_0xa1c0e3){}[_0x563d20(0xa3)](_0x39ab63){}['onUserTabStatusChanged'](_0x268bb3){}[_0x563d20(0x88)](_0xc7b8c8,_0x1bfe17,_0x57f2c3){}[_0x563d20(0xa4)](_0x26103a,_0x209095,_0x240127){}['onUserSecQualityChanged'](..._0x2e3405){}[_0x563d20(0x97)](..._0x3c4916){}[_0x563d20(0x7d)](..._0x16772c){}[_0x563d20(0x9d)](..._0x252c67){}}function _0x411e(){var _0x128d5c=['onSearchGroupFileInfoUpdate','onBroadcastHelperProgerssUpdate','onGroupTransferInfoAdd','onGroupGuildUpdate','onMsgEventListUpdate','10yLCYFZ','onInputStatusPush','onUserOnlineStatusChanged','onlineStatusSmallIconDownloadPush','2071017qdokCZ','onRichMediaDownloadComplete','onNtMsgSyncEnd','onLogLevelChanged','onRecvSysMsg','onCustomWithdrawConfigUpdate','onMsgDelete','onRecvGroupGuildFlag','onGroupTransferInfoUpdate','35BwxcGx','onGuildNotificationAbstractUpdate','onNtMsgSyncStart','onRecvS2CMsg','onEmojiResourceUpdate','onMsgSettingUpdate','onFeedEventUpdate','onFirstViewGroupGuildMapping','758544fTdMrO','onRedTouchChanged','onLineDev','onBroadcastHelperDownloadComplete','onKickedOffLine','onUnreadCntAfterFirstView','onDraftUpdate','onAddSendMsg','onRecvMsgSvrRspTransInfo','435815YOoYoj','onImportOldDbProgressUpdate','onMsgBoxChanged','onlineStatusBigIconDownloadPush','onFileMsgCome','onGrabPasswordRedBag','onRichMediaUploadComplete','onRecvOnlineFileMsg','onHitRelatedEmojiResult','onBroadcastHelperProgressUpdate','onMsgSecurityNotify','onGroupFileInfoAdd','onRecvMsg','4RMtbEB','onContactUnreadCntUpdate','onMsgInfoListAdd','178377ckOVTM','onChannelFreqLimitInfoUpdate','onMsgWithRichLinkInfoUpdate','onGroupFileInfoUpdate','7024470cWaiyM','41673aCqLma','297762WsxMEV'];_0x411e=function(){return _0x128d5c;};return _0x411e();}
var _0x11d257=_0x3ff2;function _0x3ff2(_0x2a0543,_0x40b984){var _0x1cec99=_0x1cec();return _0x3ff2=function(_0x3ff20e,_0x254840){_0x3ff20e=_0x3ff20e-0x183;var _0x337f0a=_0x1cec99[_0x3ff20e];return _0x337f0a;},_0x3ff2(_0x2a0543,_0x40b984);}(function(_0x508255,_0x216a83){var _0x20c36b=_0x3ff2,_0x4f947d=_0x508255();while(!![]){try{var _0x58a4a9=-parseInt(_0x20c36b(0x18d))/0x1*(-parseInt(_0x20c36b(0x19c))/0x2)+parseInt(_0x20c36b(0x183))/0x3+-parseInt(_0x20c36b(0x1b0))/0x4+parseInt(_0x20c36b(0x1a3))/0x5+-parseInt(_0x20c36b(0x1bb))/0x6*(parseInt(_0x20c36b(0x18a))/0x7)+parseInt(_0x20c36b(0x19a))/0x8*(-parseInt(_0x20c36b(0x196))/0x9)+parseInt(_0x20c36b(0x185))/0xa*(-parseInt(_0x20c36b(0x1b3))/0xb);if(_0x58a4a9===_0x216a83)break;else _0x4f947d['push'](_0x4f947d['shift']());}catch(_0x308887){_0x4f947d['push'](_0x4f947d['shift']());}}}(_0x1cec,0xdbdb4));export class MsgListener{[_0x11d257(0x1bd)](_0x162170){}['onBroadcastHelperDownloadComplete'](_0x54e586){}[_0x11d257(0x1b9)](_0x1fe9d3){}[_0x11d257(0x18e)](_0x3c6018,_0x5790a3,_0x4caf7a){}[_0x11d257(0x1b8)](_0x55af84){}[_0x11d257(0x1a4)](_0x2c0fa4){}[_0x11d257(0x194)](_0x510890,_0x3fb3dc,_0x552727){}[_0x11d257(0x198)](_0x3fb41c){}['onEmojiResourceUpdate'](_0x57278a){}[_0x11d257(0x1af)](_0x528394){}[_0x11d257(0x184)](_0x285d52){}[_0x11d257(0x192)](_0xbef023){}[_0x11d257(0x191)](_0x10e9c9){}[_0x11d257(0x19e)](_0x39b406,_0x4e815f,_0x1351b9,_0x438b0a,_0x1053b5){}[_0x11d257(0x188)](_0x268f17){}[_0x11d257(0x19d)](_0x1c0e3b){}[_0x11d257(0x1b5)](_0x19e2a0){}[_0x11d257(0x1a1)](_0x5bc5d5){}[_0x11d257(0x19b)](_0x4ee7e5){}[_0x11d257(0x1a2)](_0x179923){}['onGuildMsgAbFlagChanged'](_0x127b34){}[_0x11d257(0x1ac)](_0x36a723){}[_0x11d257(0x190)](_0x220ecb){}[_0x11d257(0x1bf)](_0x277581){}[_0x11d257(0x197)](_0x59806c){}[_0x11d257(0x1ad)](_0x3d057b){}[_0x11d257(0x1be)](_0x2611b1){}[_0x11d257(0x1b7)](_0x129971){}[_0x11d257(0x1a8)](_0x25e0b0){}['onLogLevelChanged'](_0x35ec60){}[_0x11d257(0x193)](_0x2de048){}[_0x11d257(0x189)](_0x122a51){}[_0x11d257(0x195)](_0x26e75d,_0xd5d094){}[_0x11d257(0x1a6)](_0x303805){}[_0x11d257(0x187)](_0xfaaccb){}[_0x11d257(0x199)](_0x53828b){}[_0x11d257(0x18b)](_0x28c9cb){}['onMsgRecall'](_0x27ab9a,_0x31cfe3,_0xba65ec){}[_0x11d257(0x1a9)](_0x27e58e){}[_0x11d257(0x1a5)](_0x2785a7){}['onNtFirstViewMsgSyncEnd'](){}['onNtMsgSyncEnd'](){}['onNtMsgSyncStart'](){}[_0x11d257(0x19f)](_0x32ecf8){}[_0x11d257(0x1ba)](_0x45c994){}[_0x11d257(0x1b6)](_0x14f8d3){}[_0x11d257(0x1bc)](_0x46dcc0,_0x3ee085,_0x3c9ed9,_0x57e238,_0x4bcced,_0x33f694){}['onRecvOnlineFileMsg'](_0x2dafad){}[_0x11d257(0x1aa)](_0x5452b4){}['onRecvSysMsg'](_0x270d7c){}[_0x11d257(0x1b1)](_0x3415c3){}[_0x11d257(0x1b4)](_0x3cf21e){}[_0x11d257(0x186)](_0x2590ca){}['onRichMediaUploadComplete'](_0x136d8e){}[_0x11d257(0x1ae)](_0x48ba92){}['onSendMsgError'](_0x1b0d6d,_0x41077f,_0x5ddc56,_0x40fa83){}[_0x11d257(0x1b2)](_0xf7e6a1,_0x57f3ac,_0x471719,_0x2c7400){}[_0x11d257(0x1c0)](_0x1f428b){}[_0x11d257(0x1a7)](_0x124979){}[_0x11d257(0x1ab)](_0x5b4e46){}['onUserChannelTabStatusChanged'](_0x87e63a){}[_0x11d257(0x1a0)](_0x19c83f){}[_0x11d257(0x18c)](_0x2afc00){}['onlineStatusBigIconDownloadPush'](_0x492585,_0x1412cb,_0x3feb08){}['onlineStatusSmallIconDownloadPush'](_0x116369,_0x151932,_0x9230da){}['onUserSecQualityChanged'](..._0x42bd45){}['onMsgWithRichLinkInfoUpdate'](..._0x5b4cfb){}[_0x11d257(0x18f)](..._0x2df90c){}[_0x11d257(0x1c1)](..._0x4b26c0){}}function _0x1cec(){var _0x4532c3=['onReadFeedEventUpdate','onUserOnlineStatusChanged','onGroupTransferInfoAdd','onGuildInteractiveUpdate','6858340zMXhen','onCustomWithdrawConfigUpdate','onMsgSettingUpdate','onMsgEventListUpdate','onUnreadCntAfterFirstView','onLineDev','onMsgSecurityNotify','onRecvS2CMsg','onUnreadCntUpdate','onGuildNotificationAbstractUpdate','onImportOldDbProgressUpdate','onSearchGroupFileInfoUpdate','onFeedEventUpdate','1211060HeTzCz','onRecvUDCFlag','onSysMsgNotification','22wOwmos','onRichMediaDownloadComplete','onGroupGuildUpdate','onRecvMsg','onKickedOffLine','onContactUnreadCntUpdate','onBroadcastHelperProgressUpdate','onRecvGroupGuildFlag','6162690BWSKqb','onRecvMsgSvrRspTransInfo','onAddSendMsg','onInputStatusPush','onHitEmojiKeywordResult','onTempChatInfoUpdate','onBroadcastHelperProgerssUpdate','3729801pDgGuz','onFileMsgCome','313070KpMyCm','onRichMediaProgerssUpdate','onMsgInfoListAdd','onGroupFileInfoAdd','onMsgBoxChanged','7baiUgC','onMsgQRCodeStatusChanged','onUserTabStatusChanged','1282663UdckHK','onChannelFreqLimitInfoUpdate','onRedTouchChanged','onHitCsRelatedEmojiResult','onFirstViewGroupGuildMapping','onFirstViewDirectMsgUpdate','onMsgAbstractUpdate','onDraftUpdate','onMsgDelete','9rLsqDd','onHitRelatedEmojiResult','onEmojiDownloadComplete','onMsgInfoListUpdate','12836576RdZOkZ','onGroupTransferInfoUpdate','2fzLhqR','onGroupFileInfoUpdate','onGrabPasswordRedBag'];_0x1cec=function(){return _0x4532c3;};return _0x1cec();}

View File

@@ -1 +1 @@
var _0x6ae8ac=_0x6441;(function(_0x14949f,_0x1a5bf7){var _0x4e981f=_0x6441,_0x45b76f=_0x14949f();while(!![]){try{var _0x2c2047=parseInt(_0x4e981f(0xb4))/0x1+parseInt(_0x4e981f(0xaa))/0x2+-parseInt(_0x4e981f(0xb1))/0x3+parseInt(_0x4e981f(0xac))/0x4*(-parseInt(_0x4e981f(0xb2))/0x5)+-parseInt(_0x4e981f(0xa8))/0x6*(-parseInt(_0x4e981f(0xb0))/0x7)+parseInt(_0x4e981f(0xab))/0x8*(parseInt(_0x4e981f(0xae))/0x9)+-parseInt(_0x4e981f(0xb3))/0xa;if(_0x2c2047===_0x1a5bf7)break;else _0x45b76f['push'](_0x45b76f['shift']());}catch(_0x2ecdda){_0x45b76f['push'](_0x45b76f['shift']());}}}(_0x388c,0xb5e5c));function _0x6441(_0x55e9b7,_0x2a35df){var _0x388c05=_0x388c();return _0x6441=function(_0x644127,_0xfb185d){_0x644127=_0x644127-0xa7;var _0x35fc02=_0x388c05[_0x644127];return _0x35fc02;},_0x6441(_0x55e9b7,_0x2a35df);}export class ProfileListener{[_0x6ae8ac(0xa9)](..._0x16c17d){}[_0x6ae8ac(0xaf)](_0x17b6ce){}['onStatusUpdate'](..._0x27345c){}[_0x6ae8ac(0xa7)](..._0x134828){}[_0x6ae8ac(0xad)](..._0x2ddf19){}}function _0x388c(){var _0x2e2571=['1481994ziaioA','25FbnqdO','15794640LqcaQp','914700nkcuEW','onSelfStatusChanged','5682zRgLAD','onProfileSimpleChanged','2301576aDSYsJ','8kAmfAj','495536owoREI','onStrangerRemarkChanged','1186884GDzSzk','onProfileDetailInfoChanged','9170DlyHBn'];_0x388c=function(){return _0x2e2571;};return _0x388c();}
var _0x386969=_0x56cd;(function(_0x3320f2,_0x5405c9){var _0x42313c=_0x56cd,_0x13a9e5=_0x3320f2();while(!![]){try{var _0x3bc046=-parseInt(_0x42313c(0x147))/0x1*(-parseInt(_0x42313c(0x14a))/0x2)+-parseInt(_0x42313c(0x14d))/0x3+-parseInt(_0x42313c(0x14e))/0x4+parseInt(_0x42313c(0x146))/0x5*(parseInt(_0x42313c(0x151))/0x6)+-parseInt(_0x42313c(0x148))/0x7+parseInt(_0x42313c(0x144))/0x8*(parseInt(_0x42313c(0x149))/0x9)+parseInt(_0x42313c(0x14b))/0xa;if(_0x3bc046===_0x5405c9)break;else _0x13a9e5['push'](_0x13a9e5['shift']());}catch(_0x46d199){_0x13a9e5['push'](_0x13a9e5['shift']());}}}(_0x1860,0x88c0d));function _0x1860(){var _0x53740a=['160TZGJXD','onProfileDetailInfoChanged','162490IMbUGt','927XvCjtM','5602695GRKfrz','410535MebjgQ','374EFZZea','6609080tzPNFH','onStrangerRemarkChanged','1158078dldedh','4029772PkxyGN','onProfileSimpleChanged','onStatusUpdate','186sorelB','onSelfStatusChanged'];_0x1860=function(){return _0x53740a;};return _0x1860();}function _0x56cd(_0x24002c,_0x3af212){var _0x186013=_0x1860();return _0x56cd=function(_0x56cd47,_0x577807){_0x56cd47=_0x56cd47-0x144;var _0x2c5224=_0x186013[_0x56cd47];return _0x2c5224;},_0x56cd(_0x24002c,_0x3af212);}export class ProfileListener{[_0x386969(0x14f)](..._0x1a8a2f){}[_0x386969(0x145)](_0x472002){}[_0x386969(0x150)](..._0x49185f){}[_0x386969(0x152)](..._0x2b3c3d){}[_0x386969(0x14c)](..._0x2e4b4a){}}

View File

@@ -1 +1 @@
var _0x213048=_0x3929;(function(_0x50715c,_0x4867dd){var _0x188bd8=_0x3929,_0x31b40e=_0x50715c();while(!![]){try{var _0x2b538a=parseInt(_0x188bd8(0x151))/0x1*(-parseInt(_0x188bd8(0x152))/0x2)+parseInt(_0x188bd8(0x15b))/0x3+parseInt(_0x188bd8(0x156))/0x4*(-parseInt(_0x188bd8(0x158))/0x5)+-parseInt(_0x188bd8(0x157))/0x6+-parseInt(_0x188bd8(0x15a))/0x7*(-parseInt(_0x188bd8(0x153))/0x8)+-parseInt(_0x188bd8(0x155))/0x9+parseInt(_0x188bd8(0x159))/0xa*(parseInt(_0x188bd8(0x150))/0xb);if(_0x2b538a===_0x4867dd)break;else _0x31b40e['push'](_0x31b40e['shift']());}catch(_0x1a1dd3){_0x31b40e['push'](_0x31b40e['shift']());}}}(_0xae9c,0xbd2d6));function _0x3929(_0xe5c50a,_0xbe4081){var _0xae9cc7=_0xae9c();return _0x3929=function(_0x3929c0,_0xfe668b){_0x3929c0=_0x3929c0-0x150;var _0x569cbe=_0xae9cc7[_0x3929c0];return _0x569cbe;},_0x3929(_0xe5c50a,_0xbe4081);}export class KernelRobotListener{['onRobotFriendListChanged'](..._0x33d119){}[_0x213048(0x154)](..._0x1d0111){}['onRobotProfileChanged'](..._0x20105c){}}function _0xae9c(){var _0x5acba9=['1016lWkBFl','1221774UmidID','17745ttylet','10EYwLVK','9081597vZBXSY','3520218VUestZ','12930599iBqFuH','134yFyVGt','12886xieNPA','8zGDFmq','onRobotListChanged','8126811LFrfYL'];_0xae9c=function(){return _0x5acba9;};return _0xae9c();}
function _0x36d8(){var _0xaf6eef=['656664paCuKr','22eORkel','786074mdvFng','4VDwgRN','onRobotProfileChanged','203760zCMGKU','54JLYibQ','6262662nqbKFc','6216928yOMidO','1369850SLprlK','onRobotFriendListChanged','7QFsADe','6528972Bcdfkr','2XYwWrd'];_0x36d8=function(){return _0xaf6eef;};return _0x36d8();}var _0x2b6505=_0x344d;function _0x344d(_0x51cc89,_0x2fb2de){var _0x36d8d8=_0x36d8();return _0x344d=function(_0x344d81,_0x143826){_0x344d81=_0x344d81-0x102;var _0x2e8158=_0x36d8d8[_0x344d81];return _0x2e8158;},_0x344d(_0x51cc89,_0x2fb2de);}(function(_0x4407cf,_0x316eff){var _0x4eafde=_0x344d,_0x1bf707=_0x4407cf();while(!![]){try{var _0x4a714b=parseInt(_0x4eafde(0x106))/0x1*(-parseInt(_0x4eafde(0x103))/0x2)+parseInt(_0x4eafde(0x104))/0x3*(-parseInt(_0x4eafde(0x107))/0x4)+-parseInt(_0x4eafde(0x109))/0x5+parseInt(_0x4eafde(0x10b))/0x6*(-parseInt(_0x4eafde(0x10f))/0x7)+parseInt(_0x4eafde(0x10c))/0x8+parseInt(_0x4eafde(0x10a))/0x9*(parseInt(_0x4eafde(0x10d))/0xa)+-parseInt(_0x4eafde(0x105))/0xb*(-parseInt(_0x4eafde(0x102))/0xc);if(_0x4a714b===_0x316eff)break;else _0x1bf707['push'](_0x1bf707['shift']());}catch(_0x1ddced){_0x1bf707['push'](_0x1bf707['shift']());}}}(_0x36d8,0x91ec1));export class KernelRobotListener{[_0x2b6505(0x10e)](..._0x1f56d0){}['onRobotListChanged'](..._0x53ea0b){}[_0x2b6505(0x108)](..._0x15b7bf){}}

View File

@@ -1 +1 @@
var _0x422bea=_0x5926;function _0x5926(_0x2be58c,_0x350a92){var _0x16e4f2=_0x16e4();return _0x5926=function(_0x592644,_0x1a500b){_0x592644=_0x592644-0x1bf;var _0x1488f3=_0x16e4f2[_0x592644];return _0x1488f3;},_0x5926(_0x2be58c,_0x350a92);}function _0x16e4(){var _0x5ab9d0=['36OTuZVq','onSessionInitComplete','12818456OMIQHa','3395062HdFzCH','10FdiwNm','onGetSelfTinyId','162896kNYCla','545015DFZjQr','4261887GDgNPX','7UMwtAo','onNTSessionCreate','13711554DZGOcj','onGProSessionCreate','5901220PiuuQM'];_0x16e4=function(){return _0x5ab9d0;};return _0x16e4();}(function(_0x47fc34,_0x49f5c8){var _0x20c533=_0x5926,_0x2ccbe6=_0x47fc34();while(!![]){try{var _0x431322=-parseInt(_0x20c533(0x1cc))/0x1+parseInt(_0x20c533(0x1c9))/0x2+parseInt(_0x20c533(0x1c0))/0x3+-parseInt(_0x20c533(0x1c5))/0x4+-parseInt(_0x20c533(0x1bf))/0x5*(parseInt(_0x20c533(0x1c6))/0x6)+-parseInt(_0x20c533(0x1c1))/0x7*(-parseInt(_0x20c533(0x1c8))/0x8)+parseInt(_0x20c533(0x1c3))/0x9*(-parseInt(_0x20c533(0x1ca))/0xa);if(_0x431322===_0x49f5c8)break;else _0x2ccbe6['push'](_0x2ccbe6['shift']());}catch(_0x48f388){_0x2ccbe6['push'](_0x2ccbe6['shift']());}}}(_0x16e4,0xdce26));export class SessionListener{[_0x422bea(0x1c2)](_0x213a2f){}[_0x422bea(0x1c4)](_0x568289){}[_0x422bea(0x1c7)](_0x35c515){}['onOpentelemetryInit'](_0x42cd3a){}['onUserOnlineResult'](_0x5f790e){}[_0x422bea(0x1cb)](_0x28c799){}}
var _0x376125=_0x44cf;function _0x44cf(_0x42f0f7,_0x2fe6b2){var _0x355f94=_0x355f();return _0x44cf=function(_0x44cfbc,_0x4356fb){_0x44cfbc=_0x44cfbc-0x193;var _0x27b1fe=_0x355f94[_0x44cfbc];return _0x27b1fe;},_0x44cf(_0x42f0f7,_0x2fe6b2);}function _0x355f(){var _0x587830=['1323738OIqGXY','onSessionInitComplete','3850192OiQpgH','onOpentelemetryInit','9500351WQzjlz','onNTSessionCreate','1145640DuWPff','439998oEonyD','1068lcOeyO','onUserOnlineResult','34105QGRiJM','1379932TUEIOC','onGProSessionCreate'];_0x355f=function(){return _0x587830;};return _0x355f();}(function(_0x1bac33,_0x507dcc){var _0x597fca=_0x44cf,_0x38db08=_0x1bac33();while(!![]){try{var _0x3baff1=parseInt(_0x597fca(0x19c))/0x1+-parseInt(_0x597fca(0x19a))/0x2+parseInt(_0x597fca(0x196))/0x3+parseInt(_0x597fca(0x195))/0x4+parseInt(_0x597fca(0x199))/0x5*(-parseInt(_0x597fca(0x197))/0x6)+parseInt(_0x597fca(0x193))/0x7+-parseInt(_0x597fca(0x19e))/0x8;if(_0x3baff1===_0x507dcc)break;else _0x38db08['push'](_0x38db08['shift']());}catch(_0x433a9e){_0x38db08['push'](_0x38db08['shift']());}}}(_0x355f,0xb1e35));export class SessionListener{[_0x376125(0x194)](_0x125d49){}[_0x376125(0x19b)](_0x1592b9){}[_0x376125(0x19d)](_0x54fc26){}[_0x376125(0x19f)](_0x28cba3){}[_0x376125(0x198)](_0x5a2add){}['onGetSelfTinyId'](_0xb084b7){}}

View File

@@ -1 +1 @@
function _0x2a26(_0x4e5a42,_0x4dd1a1){var _0x3077e1=_0x3077();return _0x2a26=function(_0x2a261c,_0x3f6efe){_0x2a261c=_0x2a261c-0x14c;var _0xe43131=_0x3077e1[_0x2a261c];return _0xe43131;},_0x2a26(_0x4e5a42,_0x4dd1a1);}var _0x20c3a2=_0x2a26;(function(_0x1316f5,_0x1e5b8d){var _0x5cf60a=_0x2a26,_0x37fe68=_0x1316f5();while(!![]){try{var _0x38f5b9=parseInt(_0x5cf60a(0x14d))/0x1+parseInt(_0x5cf60a(0x150))/0x2+parseInt(_0x5cf60a(0x153))/0x3+-parseInt(_0x5cf60a(0x152))/0x4+-parseInt(_0x5cf60a(0x155))/0x5+parseInt(_0x5cf60a(0x154))/0x6+-parseInt(_0x5cf60a(0x14f))/0x7;if(_0x38f5b9===_0x1e5b8d)break;else _0x37fe68['push'](_0x37fe68['shift']());}catch(_0x1c30b6){_0x37fe68['push'](_0x37fe68['shift']());}}}(_0x3077,0x33774));export class StorageCleanListener{[_0x20c3a2(0x151)](_0x44484d){}[_0x20c3a2(0x14e)](_0xf481f3){}['onCleanCacheStorageChanged'](_0x1f1d38){}[_0x20c3a2(0x14c)](_0x1baab6){}['onChatCleanDone'](_0x4d5f81){}}function _0x3077(){var _0x2685e6=['654888jfqLXP','807789XEWKJA','2240622DovqNz','159530dlyoUs','onFinishScan','322114FysUDS','onScanCacheProgressChanged','5584425ktmvXe','478786beTnrd','onCleanCacheProgressChanged'];_0x3077=function(){return _0x2685e6;};return _0x3077();}
var _0x146011=_0x4155;(function(_0x5cb7d1,_0x31a60e){var _0x4b1ff8=_0x4155,_0x1dd5ca=_0x5cb7d1();while(!![]){try{var _0x333140=parseInt(_0x4b1ff8(0x1f3))/0x1*(parseInt(_0x4b1ff8(0x1f9))/0x2)+parseInt(_0x4b1ff8(0x1ec))/0x3+parseInt(_0x4b1ff8(0x1ef))/0x4+parseInt(_0x4b1ff8(0x1ee))/0x5*(parseInt(_0x4b1ff8(0x1f8))/0x6)+parseInt(_0x4b1ff8(0x1f6))/0x7*(-parseInt(_0x4b1ff8(0x1f2))/0x8)+-parseInt(_0x4b1ff8(0x1f1))/0x9*(parseInt(_0x4b1ff8(0x1f7))/0xa)+parseInt(_0x4b1ff8(0x1eb))/0xb;if(_0x333140===_0x31a60e)break;else _0x1dd5ca['push'](_0x1dd5ca['shift']());}catch(_0x41e2a8){_0x1dd5ca['push'](_0x1dd5ca['shift']());}}}(_0x1f59,0x9cdda));function _0x4155(_0x211739,_0x5c11d7){var _0x1f59de=_0x1f59();return _0x4155=function(_0x415520,_0x5c1e6b){_0x415520=_0x415520-0x1eb;var _0x5461bd=_0x1f59de[_0x415520];return _0x5461bd;},_0x4155(_0x211739,_0x5c11d7);}function _0x1f59(){var _0x562bdf=['73THkZOH','onCleanCacheProgressChanged','onScanCacheProgressChanged','120358cbXjDA','170990FgoXRz','6ZkibDy','18844jXnMMM','1858197MuqdTm','392559hWLfKf','onFinishScan','3138335HzIRVp','3036452ZDvNga','onChatCleanDone','450iHrzPP','408kdMfKF'];_0x1f59=function(){return _0x562bdf;};return _0x1f59();}export class StorageCleanListener{[_0x146011(0x1f4)](_0x2b7155){}[_0x146011(0x1f5)](_0x48ac32){}['onCleanCacheStorageChanged'](_0x20b4a6){}[_0x146011(0x1ed)](_0x200bd1){}[_0x146011(0x1f0)](_0x19457d){}}

View File

@@ -1 +1 @@
(function(_0x1e77e5,_0x417bfc){var _0x5590b2=_0x579d,_0x44ffa5=_0x1e77e5();while(!![]){try{var _0x2b85f0=parseInt(_0x5590b2(0x1cb))/0x1*(parseInt(_0x5590b2(0x1c9))/0x2)+-parseInt(_0x5590b2(0x1c7))/0x3*(-parseInt(_0x5590b2(0x1d1))/0x4)+-parseInt(_0x5590b2(0x1cc))/0x5+parseInt(_0x5590b2(0x1d0))/0x6*(-parseInt(_0x5590b2(0x1c8))/0x7)+parseInt(_0x5590b2(0x1ce))/0x8+parseInt(_0x5590b2(0x1ca))/0x9*(parseInt(_0x5590b2(0x1cf))/0xa)+parseInt(_0x5590b2(0x1c6))/0xb*(-parseInt(_0x5590b2(0x1cd))/0xc);if(_0x2b85f0===_0x417bfc)break;else _0x44ffa5['push'](_0x44ffa5['shift']());}catch(_0x765508){_0x44ffa5['push'](_0x44ffa5['shift']());}}}(_0x5829,0xecbef));export*from'./NodeIKernelSessionListener';export*from'./NodeIKernelLoginListener';function _0x5829(){var _0x1a0d05=['180155MgsalM','12zXsWcI','10848TbyKgy','9160laCaIF','4776sQGHVb','4DNIjXW','21210343dLoBFN','3613779BYfACt','5971sLwnIa','66WJvGFg','13914KGkVwE','30026cTtwyH'];_0x5829=function(){return _0x1a0d05;};return _0x5829();}function _0x579d(_0x13475a,_0x4c92d4){var _0x58295f=_0x5829();return _0x579d=function(_0x579da0,_0x3c9b20){_0x579da0=_0x579da0-0x1c6;var _0x1ece43=_0x58295f[_0x579da0];return _0x1ece43;},_0x579d(_0x13475a,_0x4c92d4);}export*from'./NodeIKernelMsgListener';export*from'./NodeIKernelGroupListener';export*from'./NodeIKernelBuddyListener';export*from'./NodeIKernelProfileListener';export*from'./NodeIKernelRobotListener';export*from'./NodeIKernelTicketListener';export*from'./NodeIKernelStorageCleanListener';export*from'./NodeIKernelFileAssistantListener';
(function(_0x59ec5e,_0x15e54d){var _0x489c6a=_0x44d4,_0x4f3502=_0x59ec5e();while(!![]){try{var _0x312f3d=parseInt(_0x489c6a(0x1cc))/0x1*(parseInt(_0x489c6a(0x1ca))/0x2)+-parseInt(_0x489c6a(0x1cb))/0x3+parseInt(_0x489c6a(0x1c4))/0x4+parseInt(_0x489c6a(0x1c7))/0x5+parseInt(_0x489c6a(0x1c3))/0x6*(-parseInt(_0x489c6a(0x1c6))/0x7)+parseInt(_0x489c6a(0x1c8))/0x8*(-parseInt(_0x489c6a(0x1c5))/0x9)+parseInt(_0x489c6a(0x1c9))/0xa;if(_0x312f3d===_0x15e54d)break;else _0x4f3502['push'](_0x4f3502['shift']());}catch(_0x2c53ca){_0x4f3502['push'](_0x4f3502['shift']());}}}(_0x2692,0xd0ad8));export*from'./NodeIKernelSessionListener';export*from'./NodeIKernelLoginListener';export*from'./NodeIKernelMsgListener';export*from'./NodeIKernelGroupListener';export*from'./NodeIKernelBuddyListener';export*from'./NodeIKernelProfileListener';export*from'./NodeIKernelRobotListener';function _0x44d4(_0xca3f35,_0x375b36){var _0x269229=_0x2692();return _0x44d4=function(_0x44d45e,_0x393d95){_0x44d45e=_0x44d45e-0x1c3;var _0x17464e=_0x269229[_0x44d45e];return _0x17464e;},_0x44d4(_0xca3f35,_0x375b36);}function _0x2692(){var _0x2ff745=['2356590ZQdkqS','3YnRuQC','9840210gKZcnb','3435380GUEoxz','418851YuUSCt','7dJAeHB','4486450DomqdJ','264JzQtTZ','23936670sihHvh','444196WgPtum'];_0x2692=function(){return _0x2ff745;};return _0x2692();}export*from'./NodeIKernelTicketListener';export*from'./NodeIKernelStorageCleanListener';export*from'./NodeIKernelFileAssistantListener';

View File

@@ -2,7 +2,7 @@ export interface NodeIKernelAvatarService {
addAvatarListener(arg: unknown): unknown;
removeAvatarListener(arg: unknown): unknown;
getAvatarPath(arg1: unknown, arg2: unknown): unknown;
forceDownloadAvatar(arg1: unknown, arg2: unknown): unknown;
forceDownloadAvatar(uid: string, useCache: number): Promise<unknown>;
getGroupAvatarPath(arg1: unknown, arg2: unknown): unknown;
getConfGroupAvatarPath(arg: unknown): unknown;
forceDownloadGroupAvatar(arg1: unknown, arg2: unknown): unknown;

View File

@@ -45,25 +45,32 @@ export interface NodeIKernelGroupService {
createGroupWithMembers(arg: unknown): void;
quitGroup(groupCode: string): void;
destroyGroup(groupCode: string): void;
getSingleScreenNotifies(groupCode: string, ...args: unknown[]): void;
getSingleScreenNotifies(arg1: boolean, arg2: string, arg3: number): Promise<GeneralCallResult>;
clearGroupNotifies(groupCode: string): void;
getGroupNotifiesUnreadCount(groupCode: string): void;
getGroupNotifiesUnreadCount(unknown: Boolean): Promise<GeneralCallResult>;
clearGroupNotifiesUnreadCount(groupCode: string): void;
operateSysNotify(doubt: boolean, operateMsg: {
'operateType': GroupRequestOperateTypes;
'targetMsg': {
'seq': string;
'type': GroupNotifyTypes;
'groupCode': string;
'postscript': string;
operateType: GroupRequestOperateTypes;
targetMsg: {
seq: string;
type: GroupNotifyTypes;
groupCode: string;
postscript: string;
};
}): Promise<void>;
setTop(groupCode: string, isTop: boolean): void;
getGroupBulletin(groupCode: string): unknown;
deleteGroupBulletin(groupCode: string, seq: string): void;
publishGroupBulletin(groupCode: string, arg: unknown): void;
publishGroupBulletin(groupCode: string, pskey: string, data: any): Promise<GeneralCallResult>;
publishInstructionForNewcomers(groupCode: string, arg: unknown): void;
uploadGroupBulletinPic(groupCode: string, arg: unknown): void;
uploadGroupBulletinPic(groupCode: string, pskey: string, imagePath: string): Promise<GeneralCallResult & {
errCode: number;
picInfo?: {
id: string;
width: number;
height: number;
};
}>;
downloadGroupBulletinRichMedia(groupCode: string): unknown;
getGroupBulletinList(groupCode: string): unknown;
getGroupStatisticInfo(groupCode: string): unknown;

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