Compare commits

...
506 Commits
Author SHA1 Message Date
手瓜一十雪 db5bd5c8a4 chore: 1.3.2 version
release / check-version (push) Canceled after 0s
release / build-linux (arm64, linux) (push) Canceled after 0s
release / build-linux (x64, linux) (push) Canceled after 0s
release / build-win32 (x64, win32) (push) Canceled after 0s
release / release-napcat (push) Canceled after 0s
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
手瓜一十雪 52c6927c44 chore: release script
release / check-version (push) Canceled after 0s
release / build-linux (arm64, linux) (push) Canceled after 0s
release / build-linux (x64, linux) (push) Canceled after 0s
release / build-win32 (x64, win32) (push) Canceled after 0s
release / release-napcat (push) Canceled after 0s
2024-05-09 18:46:32 +08:00
Version a16e0a21a2 chore:version change 2024-05-09 10:42:30 +00:00
手瓜一十雪 e796b21157 chore: version 2024-05-09 17:50:20 +08:00
手瓜一十雪 1c6bc478b4 build: 1.3.0-beta5 2024-05-09 17:05:11 +08:00
手瓜一十雪 98f39c6388 docs: change 2024-05-09 17:00:38 +08:00
手瓜一十雪 570c83571b build: 1.3.0-beta4 2024-05-09 16:55:38 +08:00
手瓜一十雪 c0c38d89e0 Merge branch 'main' of https://github.com/NapNeko/NapCatQQ 2024-05-09 16:55:12 +08:00
手瓜一十雪 b866cfc03c fix: Group Into Member Info 2024-05-09 16:54:32 +08:00
手瓜一十雪 28c2755b37 docs: change thank list 2024-05-09 15:29:31 +08:00
手瓜一十雪 57bfc5c73a docs: change version 2024-05-09 12:48:25 +08:00
手瓜一十雪 0f3f7d53a3 docs: change 2024-05-09 00:10:41 +08:00
手瓜一十雪 529e50fd7f build: 1.3.0-beta3 2024-05-08 22:34:01 +08:00
手瓜一十雪 2fa283f91d buid: 1.3.0-beta3 2024-05-08 22:33:00 +08:00
手瓜一十雪 029a9ade93 build: 1.3.0-beta2 2024-05-08 21:42:23 +08:00
手瓜一十雪 f1ca8b15c8 feat:webui finish 2024-05-08 21:40:30 +08:00
手瓜一十雪 4d8edd5da9 fix:webui config some value 2024-05-08 21:29:40 +08:00
手瓜一十雪 6c63990653 fix: redirect html 2024-05-08 21:12:03 +08:00
手瓜一十雪 5b521409c6 fix: asset not load 2024-05-08 21:00:53 +08:00
手瓜一十雪 3268fc1014 fix: QQ Login Check 2024-05-08 20:54:43 +08:00
手瓜一十雪 19afb4941b feat: webui auth 2024-05-08 20:33:48 +08:00
手瓜一十雪 40e5111d41 Merge branch 'main' of https://github.com/NapNeko/NapCatQQ 2024-05-08 20:11:30 +08:00
手瓜一十雪 a3a40e1e74 feat: webui finish without auth 2024-05-08 20:10:33 +08:00
手瓜一十雪 101caa6826 docs: add qrcode expired 2024-05-08 20:01:19 +08:00
手瓜一十雪 875fed8d77 fix: qrcode expired try 2024-05-08 19:59:42 +08:00
手瓜一十雪 69e28eb000 feat: qrcode expired try 2024-05-08 19:43:33 +08:00
手瓜一十雪 e5d3a8360c fix:config 2024-05-08 18:45:45 +08:00
手瓜一十雪 4545d9285b feat: webui finish!! 2024-05-08 18:37:11 +08:00
手瓜一十雪 6702024805 fix: webui getConfig 2024-05-08 18:31:30 +08:00
手瓜一十雪 78bad4842b style: webui 2024-05-08 18:24:24 +08:00
手瓜一十雪 b9a913cfed feat: Ui Config 2024-05-08 18:11:38 +08:00
手瓜一十雪 6f5a6f353f feat: get config 2024-05-08 15:42:22 +08:00
手瓜一十雪 790c4f589d feat: Login HeartBeat 2024-05-08 15:07:20 +08:00
手瓜一十雪 cd1bd3461f fix: GetQuickList 2024-05-08 14:46:51 +08:00
手瓜一十雪 0280dcd6a8 fix: webui Confi&webui Login 2024-05-08 14:29:18 +08:00
手瓜一十雪 fc337292bc feat: add QQLogin 2024-05-07 22:51:43 +08:00
手瓜一十雪 fb1daa0e21 fix 2024-05-07 22:45:36 +08:00
手瓜一十雪 579b9dc0c2 fix: WebUiConfig 2024-05-07 22:44:55 +08:00
手瓜一十雪 dedd0be352 feat:QQLogin Api 2024-05-07 22:35:15 +08:00
手瓜一十雪 1c7d9c3513 fix:webui login 2024-05-07 22:26:17 +08:00
手瓜一十雪 0c7dfe2af4 fix 2024-05-07 22:16:11 +08:00
手瓜一十雪 8d1351a8a3 fix:login 2024-05-07 22:15:07 +08:00
手瓜一十雪 e6e68a6036 feat: signCredential 2024-05-07 22:11:52 +08:00
手瓜一十雪 24658edc45 fix:webui auth ratelimit 2024-05-07 22:04:21 +08:00
手瓜一十雪 09eaa3116a feat:fix 2024-05-07 21:47:52 +08:00
手瓜一十雪 e9bff466b5 fix:port use 2024-05-07 21:24:49 +08:00
手瓜一十雪 5d77f50160 feat:webui-test 2024-05-07 21:17:31 +08:00
手瓜一十雪 2ab91e363f feat: auth api router 2024-05-07 21:06:04 +08:00
手瓜一十雪 34d881426f fear: webui quick login 2024-05-07 20:50:25 +08:00
手瓜一十雪 13ecaa0ad4 feat:webui log 2024-05-07 20:08:59 +08:00
手瓜一十雪 ce6185b1f7 feat: webui set config 2024-05-07 19:57:23 +08:00
手瓜一十雪 2cfde6b75a fix: webui not login get config 2024-05-07 19:55:11 +08:00
手瓜一十雪 37d0354751 feat: webui OB11Config 2024-05-07 19:48:25 +08:00
linyuchen 0a0edcf203 build: v1.3.0-beta1 2024-05-07 16:28:28 +08:00
linyuchen d6aad2ea28 build-1.3.0-beta1 2024-05-07 16:27:26 +08:00
linyuchen 63084506ee chore(build): Update core.lib 2024-05-07 16:26:52 +08:00
手瓜一十雪 c5d313574f feat: webui OB11Config 2024-05-07 12:31:30 +08:00
手瓜一十雪 caab998212 feat: webui getQrcode 2024-05-07 12:23:58 +08:00
linyuchen aa037cc3d9 doc: Update changelog 2024-05-07 08:42:48 +08:00
linyuchen 642bffe374 chore: rollback version 2024-05-07 08:13:56 +08:00
linyuchen d682b154fc build: fix auto download image, fix rkey error 2024-05-07 08:12:12 +08:00
手瓜一十雪 d4a06d98cf Merge branch 'main' of https://github.com/NapNeko/NapCatQQ 2024-05-06 23:02:26 +08:00
手瓜一十雪 856b5e16b1 feat: webui LoginStatus 2024-05-06 23:02:00 +08:00
linyuchen a0aa208860 Merge remote-tracking branch 'origin/main' 2024-05-06 22:53:53 +08:00
linyuchen 037a11e04f chore: Update submodule core 2024-05-06 22:53:38 +08:00
手瓜一十雪 bd8a1d715f feat: login handler 2024-05-06 22:52:57 +08:00
手瓜一十雪 54ab1dc091 feat: webui Login Router 2024-05-06 22:40:21 +08:00
手瓜一十雪 9471e63857 feat: webui login limit 2024-05-06 22:24:27 +08:00
手瓜一十雪 fa4a403f38 feat: webui auth helper 2024-05-06 22:11:13 +08:00
手瓜一十雪 d608d65bf4 fix:useport try 2024-05-06 21:46:43 +08:00
手瓜一十雪 c0f2df172a feat: webui config 2024-05-06 21:34:17 +08:00
手瓜一十雪 788ef5d81c chore: web ui/api move 2024-05-06 21:12:34 +08:00
手瓜一十雪 1c6b5cffe1 feat: webuiapi init 2024-05-06 21:10:37 +08:00
手瓜一十雪 c04382b623 chore: sync core repo 2024-05-06 20:59:30 +08:00
linyuchen 0bbe51f8fd fix: rkey cached 2024-05-06 19:45:20 +08:00
linyuchen ff7d7d15a0 Merge remote-tracking branch 'origin/main'
# Conflicts:
#	src/core
2024-05-06 19:44:50 +08:00
linyuchen 4b3d083d3a fix: rkey cached 2024-05-06 19:44:36 +08:00
linyuchen a566dd390b fix: rkey cached 2024-05-06 19:44:25 +08:00
手瓜一十雪 7d1442da04 build: 1.3.0-disable webui 2024-05-06 17:49:12 +08:00
手瓜一十雪 17fc982f55 build: 1.3.0-beta2 2024-05-06 17:01:16 +08:00
手瓜一十雪 ba417e2274 build: 1.3.0-beta1 2024-05-06 16:06:16 +08:00
手瓜一十雪 d345094b75 fix:rkey 2024-05-06 16:05:15 +08:00
手瓜一十雪 6da477480d feat: sync core 2024-05-06 16:04:29 +08:00
手瓜一十雪 e274088c06 feat:webui index 2024-05-06 15:12:27 +08:00
手瓜一十雪 1bcaa73c5c fix: webui style 2024-05-06 12:36:02 +08:00
手瓜一十雪 ca94e8f621 fix: webui ui 2024-05-06 12:32:21 +08:00
手瓜一十雪 1c4e198f59 fix 2024-05-06 12:30:26 +08:00
手瓜一十雪 fdd13f9c66 fix:Login 2024-05-05 22:49:56 +08:00
手瓜一十雪 4333ab624e fix: version check 2024-05-05 21:41:36 +08:00
手瓜一十雪 9fe1eb3a42 remove: webui log 2024-05-05 21:29:09 +08:00
linyuchen ad251a7682 fix: http download filename special character 2024-05-05 20:05:52 +08:00
linyuchen 1fa740de2d refactor: OB11Message add filed message_seq 2024-05-05 19:40:26 +08:00
linyuchen 466b89064a Merge remote-tracking branch 'origin/main' 2024-05-05 19:25:37 +08:00
linyuchen 2748cb0ba3 refactor: Moehoo和QQ版本绑定,不再兼容多个版本 2024-05-05 19:25:17 +08:00
手瓜一十雪 aef0d5bdde Merge branch 'main' of https://github.com/NapNeko/NapCatQQ 2024-05-05 15:51:39 +08:00
手瓜一十雪 c71e8f024a chore:sync core 2024-05-05 15:51:23 +08:00
手瓜一十雪 9411f07321 fix:docs 2024-05-05 15:45:05 +08:00
手瓜一十雪 9b2a5c9bbf feat: ChangeLog 2024-05-05 15:44:38 +08:00
手瓜一十雪 2b275523a0 fix: webui api 2024-05-05 15:34:07 +08:00
手瓜一十雪 31fe2f6da4 fix: webui build 2024-05-05 15:17:17 +08:00
手瓜一十雪 f95db623a5 feat: webui style 2024-05-05 14:39:16 +08:00
手瓜一十雪 a46313e483 fix:webui-style 2024-05-05 14:35:49 +08:00
手瓜一十雪 31c330826e feat: webui-test-0 2024-05-05 14:32:48 +08:00
手瓜一十雪 c4cf800142 fix: webui-10 2024-05-05 14:14:27 +08:00
手瓜一十雪 b64a2b0006 fix:webui-9 2024-05-05 14:11:51 +08:00
手瓜一十雪 a3702f2270 fix: webapi config 2024-05-05 14:04:29 +08:00
手瓜一十雪 d221b1d470 fix: webui - 8 2024-05-05 13:49:08 +08:00
手瓜一十雪 0b22a6bc1d fix: webui-7 2024-05-05 13:45:44 +08:00
手瓜一十雪 07e8acd003 fix: remove unuse 2024-05-05 13:42:43 +08:00
手瓜一十雪 9fce617c57 fix: webui-6 2024-05-05 13:40:54 +08:00
手瓜一十雪 8d5c736975 fix: webui-6 2024-05-05 13:36:53 +08:00
手瓜一十雪 4ccec05186 Merge branch 'main' of https://github.com/NapNeko/NapCatQQ 2024-05-05 13:28:30 +08:00
手瓜一十雪 a4f456f002 fix: webui-5 2024-05-05 13:28:16 +08:00
linyuchen fbdb941c27 Merge remote-tracking branch 'origin/main' 2024-05-05 13:26:52 +08:00
linyuchen a41cd42e8d build-1.2.1-beta1,fix: webapi群成员列表加入缓存,表情回应兼容int类型emoji_id 2024-05-05 13:26:33 +08:00
手瓜一十雪 77521e4627 feat: webui-4 2024-05-05 13:23:05 +08:00
手瓜一十雪 b6a1242bac feat:webui-3 2024-05-05 13:03:56 +08:00
手瓜一十雪 2f325cfe26 feat:webui-2 2024-05-05 13:01:23 +08:00
手瓜一十雪 193b0ad0f0 feat: webui-1 2024-05-05 12:57:32 +08:00
手瓜一十雪 ed476b7793 fix 2024-05-05 12:43:32 +08:00
linyuchen 720fd94b7f Merge remote-tracking branch 'origin/main' 2024-05-04 23:24:41 +08:00
linyuchen ff87da105c fix: /get_cookies return 2024-05-04 23:24:32 +08:00
手瓜一十雪 a875e65536 doc: change 2024-05-04 23:23:45 +08:00
手瓜一十雪 0b2c6bb662 style&feat: cache cookies&group member 2024-05-04 23:22:21 +08:00
手瓜一十雪 e44e2fbbb7 fix 2024-05-04 22:41:37 +08:00
手瓜一十雪 b3c93644fd fix 2024-05-04 22:32:22 +08:00
手瓜一十雪 a56b7ff636 fix 2024-05-04 22:26:36 +08:00
linyuchen c724236930 fix: Get group member list no_cache 2024-05-04 22:09:46 +08:00
linyuchen 4853320b2b Update submodule 2024-05-04 22:02:08 +08:00
linyuchen ba1acb6ac1 Merge remote-tracking branch 'origin/main' 2024-05-04 21:57:02 +08:00
linyuchen f32a6320fc remove webapi get group members 2024-05-04 21:56:45 +08:00
手瓜一十雪 9f914ce36a change: toDo 2024-05-04 18:13:30 +08:00
手瓜一十雪 b037644e5a chore: release script 2024-05-03 21:51:42 +08:00
linyuchen afd8c59f83 style: eslint 2024-05-03 21:34:16 +08:00
linyuchen 8aa4af3e91 Merge remote-tracking branch 'origin/main' 2024-05-03 21:29:30 +08:00
linyuchen 630a8a2b97 doc: update 2024-05-03 21:29:14 +08:00
手瓜一十雪 dc34c4d00c fix
release / check-version (push) Canceled after 0s
release / build-linux (arm64, linux) (push) Canceled after 0s
release / build-linux (x64, linux) (push) Canceled after 0s
release / build-win32 (x64, win32) (push) Canceled after 0s
release / release-napcat (push) Canceled after 0s
2024-05-03 21:22:16 +08:00
linyuchen fb42729dec doc: update 2024-05-03 21:06:50 +08:00
手瓜一十雪 b06989216a fix 2024-05-03 21:03:13 +08:00
手瓜一十雪 e5144f08cd fix 2024-05-03 21:00:17 +08:00
手瓜一十雪 c4a60190e8 fix 2024-05-03 20:44:04 +08:00
手瓜一十雪 efe9e4fa4c fix 2024-05-03 20:34:32 +08:00
Version 45800b1559 chore:version change 2024-05-03 12:29:17 +00:00
linyuchen b0b2b8104f build: update core.lib 2024-05-03 20:27:46 +08:00
linyuchen 8dbc012825 Merge remote-tracking branch 'origin/main' 2024-05-03 20:26:55 +08:00
手瓜一十雪 a434176063 docs: change 2024-05-03 20:26:25 +08:00
linyuchen a013f750c7 fix: Sync get_group_notice return structure to gocq 2024-05-03 20:24:25 +08:00
手瓜一十雪 aa1f49d02f build: 1.2.0-beta18 2024-05-03 20:16:37 +08:00
手瓜一十雪 7125a26309 update: appid 2024-05-03 20:13:08 +08:00
手瓜一十雪 329a35ebf0 docs: change 2024-05-03 18:06:05 +08:00
手瓜一十雪 d30043f595 build: 1.2.0-beta17 2024-05-03 16:59:10 +08:00
手瓜一十雪 745dfa1911 build: 1.2.0-beta16 2024-05-03 14:36:39 +08:00
手瓜一十雪 76203f49a7 fix 2024-05-03 14:06:23 +08:00
手瓜一十雪 870a915377 fix 2024-05-03 14:02:40 +08:00
linyuchen c174fce227 chore: update submodule core 2024-05-03 13:04:49 +08:00
linyuchen 2b6e42e919 Merge remote-tracking branch 'origin/main' 2024-05-03 13:04:19 +08:00
linyuchen df73e1e5a3 refactor: ordered onebot11.json keys 2024-05-03 13:04:02 +08:00
手瓜一十雪 3e902311d4 docs: change 2024-05-03 12:58:15 +08:00
linyuchen 64a0037265 update core.lib 2024-05-03 12:34:35 +08:00
linyuchen bcd4e38093 Merge remote-tracking branch 'origin/main' 2024-05-03 12:32:04 +08:00
linyuchen 181a77d627 fix: Unset other admin notice not work 2024-05-03 12:31:35 +08:00
手瓜一十雪 b353595ba9 build: 1.2.0-beta15 2024-05-03 12:24:39 +08:00
linyuchen 75e3bb4f17 docs: update README.md 2024-05-03 11:12:36 +08:00
linyuchen d2fa9192d4 chore: build core 2024-05-03 10:00:29 +08:00
linyuchen 4bcadc2de4 chore: build core 2024-05-03 09:59:25 +08:00
linyuchen 8ddff74260 update submodule core 2024-05-03 01:18:27 +08:00
linyuchen 95940fdb64 update core.lib 2024-05-03 01:01:05 +08:00
linyuchen 9cd5708948 feat: forward single msg
feat: statistic sent receive msg count by api get_status
2024-05-03 00:59:07 +08:00
linyuchen d361683d79 Merge remote-tracking branch 'origin/main' 2024-05-02 23:29:35 +08:00
手瓜一十雪 9ad17a01f7 fix 2024-05-02 23:06:57 +08:00
手瓜一十雪 22ca1d443c fix 2024-05-02 23:05:14 +08:00
linyuchen 2662e875ca refactor: send music card
feat: send mface
2024-05-02 22:23:59 +08:00
手瓜一十雪 8ae0d07ec1 chore: sync core to core.lib 2024-05-02 21:42:13 +08:00
手瓜一十雪 76a9edb7f5 build: 1.2.0-beta14 2024-05-02 21:34:38 +08:00
手瓜一十雪 0ccb464e5b feat: add log 2024-05-02 21:26:14 +08:00
手瓜一十雪 bef600efa2 fix 2024-05-02 21:25:29 +08:00
手瓜一十雪 58a182cd33 docs: change 2024-05-02 20:55:54 +08:00
手瓜一十雪 aa43334f41 Build: 1.2.0-beta12 2024-05-02 20:47:29 +08:00
手瓜一十雪 a2a4c97f6c fix: sync core 2024-05-02 18:47:01 +08:00
手瓜一十雪 4217ba99fd build: 1.2.0-beta12 2024-05-02 18:33:52 +08:00
linyuchen 589725f5cc build: v1.2.0.beta11.修复linux图链 2024-05-02 18:23:44 +08:00
linyuchen 3fea4602f8 Merge remote-tracking branch 'origin/main'
# Conflicts:
#	src/core
#	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/apis/window.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-02 18:20:52 +08:00
linyuchen 8ea6aae875 build: v1.2.0.beta11.修复linux图链 2024-05-02 18:17:41 +08:00
linyuchen 2c70b2af68 build: v1.2.0.beta11.修复linux图链 2024-05-02 18:17:33 +08:00
手瓜一十雪 54a2cbcb42 Merge branch 'main' of https://github.com/NapNeko/NapCatQQ 2024-05-02 18:16:19 +08:00
手瓜一十雪 fdef821c60 style: lint 2024-05-02 18:16:03 +08:00
手瓜一十雪 dfa798a35d fix 2024-05-02 18:15:26 +08:00
手瓜一十雪 39b8eb6ff1 script: mail change 2024-05-02 18:13:32 +08:00
手瓜一十雪 6cf71f67a9 update: core.lib 2024-05-02 18:11:59 +08:00
手瓜一十雪 f2e919725e build: 1.2.0-beta11 2024-05-02 18:08:26 +08:00
linyuchen 869599126e Update README.md 2024-05-02 03:33:29 +08:00
linyuchen 3b1b200f6f Update README.md 2024-05-02 01:28:24 +08:00
linyuchen 93c646e3e4 Update README.md 2024-05-02 01:27:37 +08:00
手瓜一十雪 3552f80a21 fix 2024-05-01 23:56:43 +08:00
linyuchen 66d3a63998 build: v1.2.0.beta10 2024-05-01 19:12:30 +08:00
linyuchen 6447825978 build: v1.2.0.beta10 2024-05-01 18:48:47 +08:00
linyuchen 18b7df9fca feat: get_group_list, get_friend_list no_cache 2024-05-01 18:46:13 +08:00
linyuchen c3781cab96 Merge remote-tracking branch 'origin/main' 2024-05-01 18:35:57 +08:00
linyuchen 776098dba6 fix: listener crash 2024-05-01 18:35:40 +08:00
linyuchen 8d1b4f61e7 fix: listener crash 2024-05-01 18:35:16 +08:00
手瓜一十雪 c13e2bdb96 build: 1.2.0-beta9 2024-05-01 17:24:32 +08:00
手瓜一十雪 4682254157 build: 1.2.0-beta.8 2024-05-01 16:14:13 +08:00
linyuchen d7ca6b9213 refactor AsyncQueue 2024-05-01 16:04:23 +08:00
linyuchen 4a76afbde8 refactor AsyncQueue 2024-05-01 16:03:53 +08:00
手瓜一十雪 a68349c23a build: 1.2.0-beta 2024-05-01 14:18:36 +08:00
linyuchen 920e005366 build: v1.2.0.beta7 2024-05-01 12:22:48 +08:00
linyuchen 659f339020 build: v1.2.0.beta7 2024-05-01 12:19:50 +08:00
linyuchen 3ee2d463af Merge remote-tracking branch 'origin/main'
# Conflicts:
#	src/core
2024-05-01 12:18:07 +08:00
linyuchen 686ddb5460 优化rkey获取 2024-05-01 12:17:30 +08:00
linyuchen e5d62488b7 优化rkey获取 2024-05-01 12:17:25 +08:00
linyuchen eb93dd5005 fix: no_cache param of api get_group_list 2024-04-30 18:49:55 +08:00
手瓜一十雪 6999d02d2d fix 2024-04-30 12:11:28 +08:00
手瓜一十雪 790e2b1427 docs: change 2024-04-29 21:08:26 +08:00
手瓜一十雪 a29c7cdfe4 build: 1.2.0-beta 2024-04-29 20:53:52 +08:00
手瓜一十雪 6b7cd692a6 build: 1.2.0-beta 2024-04-29 20:50:50 +08:00
手瓜一十雪 4d3925872a fix 2024-04-29 20:49:31 +08:00
linyuchen 2bd0f6934a update core.lib 2024-04-29 20:35:22 +08:00
linyuchen 51783f17ed Merge remote-tracking branch 'origin/main' 2024-04-29 20:32:59 +08:00
linyuchen ce3aef3526 update core.lib 2024-04-29 20:32:39 +08:00
手瓜一十雪 ee70afdfbb build: 1.2.0-beta 2024-04-29 20:22:30 +08:00
手瓜一十雪 d96c4a56a2 fix 2024-04-29 20:21:36 +08:00
手瓜一十雪 9a39513dea fix 2024-04-29 17:57:11 +08:00
手瓜一十雪 8f22d63315 build: 1.2.0-beta 2024-04-29 16:58:07 +08:00
手瓜一十雪 7f2a5bb95e fix 2024-04-29 16:46:16 +08:00
手瓜一十雪 0118dbd5fb fix 2024-04-29 16:21:21 +08:00
手瓜一十雪 09405de26c fix 2024-04-29 15:55:28 +08:00
手瓜一十雪 efa5ee0e57 fix 2024-04-29 15:48:50 +08:00
手瓜一十雪 80d558f37a fix 2024-04-29 15:37:12 +08:00
linyuchen 901adc3fc7 update submodule core ref 2024-04-29 15:17:41 +08:00
linyuchen 01417be954 refactor: optimize msg db 2024-04-29 15:17:24 +08:00
linyuchen 43b780cbe6 refactor: show quick login error 2024-04-29 11:46:03 +08:00
linyuchen e83f36a12f refactor: show quick login error 2024-04-29 11:45:43 +08:00
linyuchen 77e3fc4ab0 refactor: get image url 2024-04-29 11:45:26 +08:00
linyuchen eafd1adaba build: test music sign 2024-04-29 00:24:52 +08:00
linyuchen 6b53abb7c9 Merge remote-tracking branch 'origin/main' 2024-04-29 00:24:26 +08:00
linyuchen f994c5d284 build: test music sign 2024-04-29 00:24:12 +08:00
手瓜一十雪 6fda220107 fix: typo 2024-04-29 00:14:50 +08:00
手瓜一十雪 da290ed1c3 fix: typo 2024-04-29 00:14:12 +08:00
手瓜一十雪 7e9cd80a1c fix 2024-04-29 00:13:39 +08:00
linyuchen 379b7413d8 refactor: music sign 2024-04-29 00:11:58 +08:00
linyuchen 9181a4df16 Merge remote-tracking branch 'origin/main' 2024-04-29 00:11:51 +08:00
linyuchen df982afd51 refactor: music sign 2024-04-29 00:11:32 +08:00
手瓜一十雪 5c2c3b4317 build: 1.2.0-beta 2024-04-28 23:11:48 +08:00
手瓜一十雪 92d1309103 fix 2024-04-28 22:26:28 +08:00
手瓜一十雪 c43ee3c1d6 Merge branch 'main' of https://github.com/NapNeko/NapCatQQ 2024-04-28 22:15:32 +08:00
手瓜一十雪 e0726e5283 fix 2024-04-28 21:58:23 +08:00
手瓜一十雪 5f3775584b fix 2024-04-28 21:55:22 +08:00
手瓜一十雪 77873d63c5 fix 2024-04-28 21:44:43 +08:00
手瓜一十雪 9e6b09765e fix 2024-04-28 21:43:41 +08:00
手瓜一十雪 1ad6ea4049 add: GetEssenceMsg 2024-04-28 21:43:15 +08:00
手瓜一十雪 7c41da1cb9 docs:change 2024-04-28 21:32:49 +08:00
linyuchen adcf4bfc53 build: test prod 2024-04-28 21:05:30 +08:00
linyuchen 7a6321a9c1 Merge remote-tracking branch 'origin/main' 2024-04-28 21:03:11 +08:00
linyuchen d56b27a7b0 build: test prod 2024-04-28 21:02:56 +08:00
手瓜一十雪 ed7657ab5f build: 1.2.0-beta 2024-04-28 20:55:24 +08:00
手瓜一十雪 a414838416 Merge branch 'main' of https://github.com/NapNeko/NapCatQQ 2024-04-28 20:54:21 +08:00
手瓜一十雪 93646577dc fix:ref to main 2024-04-28 20:53:34 +08:00
linyuchen 46db66038e build: test core.lib 2024-04-28 20:49:54 +08:00
linyuchen efc4e9ce56 build: pre-release 2024-04-28 20:40:37 +08:00
linyuchen 8d5eac7f80 Merge remote-tracking branch 'origin/main' 2024-04-28 20:39:33 +08:00
linyuchen 7b94e49b81 fix: log send msg group name 2024-04-28 20:39:16 +08:00
手瓜一十雪 c35fd4bdc8 build:test 2024-04-28 20:38:44 +08:00
手瓜一十雪 98590e2d90 fix 2024-04-28 20:36:52 +08:00
手瓜一十雪 e6da0e5dd5 fix 2024-04-28 20:36:30 +08:00
手瓜一十雪 cb2baf747d fix 2024-04-28 20:32:37 +08:00
手瓜一十雪 a2f2eb03ce Merge branch 'main' of https://github.com/NapNeko/NapCatQQ 2024-04-28 20:30:56 +08:00
手瓜一十雪 5c6acbb780 fix 2024-04-28 20:30:53 +08:00
linyuchen 1be7031199 update core 2024-04-28 19:46:09 +08:00
linyuchen ed6399bde9 Merge remote-tracking branch 'origin/main' 2024-04-28 19:40:44 +08:00
linyuchen 6709893781 refactor: sent msg log 2024-04-28 19:40:28 +08:00
手瓜一十雪 686a426cda fix 2024-04-28 19:37:26 +08:00
linyuchen 4f90bc7813 refactor: sent msg log 2024-04-28 19:34:16 +08:00
linyuchen e307b289ae Merge remote-tracking branch 'origin/main' 2024-04-28 18:54:03 +08:00
手瓜一十雪 3baeff61a7 chore: 新增手动打包测试 2024-04-28 18:44:32 +08:00
手瓜一十雪 93ab9d12ee fix 2024-04-28 18:42:04 +08:00
手瓜一十雪 36e1317792 fix 2024-04-28 18:32:12 +08:00
手瓜一十雪 fa3e90a021 fix 2024-04-28 18:23:59 +08:00
手瓜一十雪 782a69cf13 fix 2024-04-28 18:22:58 +08:00
linyuchen d495f351c0 Merge remote-tracking branch 'origin/main' 2024-04-28 18:22:27 +08:00
linyuchen 30bd3d2d52 refactor: ws log 2024-04-28 18:22:17 +08:00
手瓜一十雪 ff5a21cca5 fix 2024-04-28 18:21:36 +08:00
linyuchen f8abb73c92 refactor: get friends, get groups, get group members, get group member 2024-04-28 18:14:21 +08:00
linyuchen e97f323d9a Update musicSignUrl to docs & onebot11 config 2024-04-28 13:08:56 +08:00
linyuchen 3d27a4c05d doc: typo 2024-04-28 12:58:34 +08:00
linyuchen 9dbc13dbe4 Merge remote-tracking branch 'origin/main'
# Conflicts:
#	CHANGELOG.md
2024-04-28 12:57:38 +08:00
linyuchen c46a4c75b1 feat: Music sign 2024-04-28 12:56:51 +08:00
手瓜一十雪 0bded73f16 fix 2024-04-28 12:50:24 +08:00
手瓜一十雪 1333733684 build: change 2024-04-28 12:49:04 +08:00
手瓜一十雪 003be934de fix 2024-04-28 12:40:43 +08:00
手瓜一十雪 93ef20d358 fix 2024-04-28 12:34:13 +08:00
手瓜一十雪 94e1a6f0ba fix 2024-04-28 12:30:03 +08:00
手瓜一十雪 8661d09d57 fix 2024-04-28 11:19:09 +08:00
手瓜一十雪 0e5e21dc4e fix 2024-04-28 10:13:39 +08:00
linyuchen 3b25c4987c Merge remote-tracking branch 'origin/main' 2024-04-28 09:18:26 +08:00
linyuchen 2212eb17aa optimize: send record msg error 2024-04-28 09:18:04 +08:00
手瓜一十雪 768bac1db8 fix: remove darwin build 2024-04-28 00:02:26 +08:00
手瓜一十雪 3aef75085f build: new 2024-04-27 23:51:09 +08:00
手瓜一十雪 ce8bef638a fix:token workflow 2024-04-27 23:50:34 +08:00
手瓜一十雪 f0a0c90304 feat:设置自身在线状态 2024-04-27 23:18:03 +08:00
手瓜一十雪 cd6c32b21d docs:CHANGELOG 2024-04-27 22:54:05 +08:00
手瓜一十雪 b31876d2d1 fix 2024-04-27 22:52:57 +08:00
手瓜一十雪 ebab8a190e fix 2024-04-27 22:10:54 +08:00
手瓜一十雪 1b7ce8e7a5 fix 2024-04-27 22:10:07 +08:00
linyuchen 646bb6bd79 doc: change log 2024-04-27 21:21:52 +08:00
linyuchen 5a84b97ca9 fix: first get image rkey 2024-04-27 21:15:24 +08:00
linyuchen 6d41b5a4a1 Merge remote-tracking branch 'origin/main'
# Conflicts:
#	src/core
2024-04-27 21:07:32 +08:00
linyuchen a8bce36f3b fix: first get image rkey 2024-04-27 21:06:58 +08:00
手瓜一十雪 ac2132f8ba fix 2024-04-27 20:50:28 +08:00
手瓜一十雪 cab4b57abe fix 2024-04-27 20:49:41 +08:00
手瓜一十雪 938fb30359 fix 2024-04-27 20:49:00 +08:00
linyuchen 62346d7d9d Merge remote-tracking branch 'origin/main' 2024-04-27 20:14:26 +08:00
linyuchen cf1e5ca64b doc: changelog 2024-04-27 20:13:59 +08:00
手瓜一十雪 7d2d683d96 fix 2024-04-27 20:12:42 +08:00
手瓜一十雪 fe5042f1c3 Merge branch 'main' of https://github.com/NapNeko/NapCatQQ 2024-04-27 20:11:53 +08:00
手瓜一十雪 a1dd76aee0 fix 2024-04-27 20:09:08 +08:00
linyuchen d1c91be167 feat: 表情回应api和上报 2024-04-27 19:51:59 +08:00
linyuchen 9748d99f34 optimize: log 2024-04-27 19:21:54 +08:00
linyuchen c90ffbeb62 refactor: config使用QQ号区分 2024-04-27 19:06:39 +08:00
linyuchen eb7fafeabf optimize: 不支持的消息类型提示 2024-04-27 19:06:08 +08:00
linyuchen 3e50629462 optimize: log 2024-04-27 18:41:03 +08:00
linyuchen 65281a4554 optimize: log 2024-04-27 18:40:45 +08:00
手瓜一十雪 454ec09d6a fix 2024-04-27 17:58:00 +08:00
手瓜一十雪 60e3c6858d build: test 2024-04-27 17:53:31 +08:00
手瓜一十雪 f911f5b4fc fix:update win appid to 23159 2024-04-27 17:49:00 +08:00
手瓜一十雪 ad1694d291 fix 2024-04-27 17:42:28 +08:00
手瓜一十雪 1130965f26 fix 2024-04-27 17:41:49 +08:00
linyuchen fe1f28998b fix: listener proxy 2024-04-27 17:05:43 +08:00
linyuchen 45727fce05 Merge remote-tracking branch 'origin/main' 2024-04-27 17:05:16 +08:00
linyuchen d5c23e5add fix: listener proxy 2024-04-27 17:05:09 +08:00
linyuchen e3a8285f6c fix: listener proxy 2024-04-27 17:04:53 +08:00
手瓜一十雪 a791221cf6 fix 2024-04-27 16:28:43 +08:00
手瓜一十雪 b954d9b403 fix 2024-04-27 16:05:59 +08:00
手瓜一十雪 5e7e24a271 chore: script move 2024-04-27 15:13:53 +08:00
手瓜一十雪 ffb1e598f6 fix 2024-04-27 15:06:59 +08:00
linyuchen bc2da8a645 fix: log config 2024-04-27 12:20:28 +08:00
linyuchen 6f2be3ed30 fix: log config 2024-04-27 12:20:17 +08:00
linyuchen 033a7bffb3 refactor: log 2024-04-27 11:45:24 +08:00
linyuchen f2b2ea61a1 refactor: core 2024-04-27 01:03:13 +08:00
linyuchen 6f0783acc4 refactor: core 2024-04-27 01:02:58 +08:00
linyuchen ce60aa3823 Merge remote-tracking branch 'origin/main' 2024-04-27 00:53:01 +08:00
linyuchen 8075e70606 refactor: core 2024-04-27 00:51:10 +08:00
linyuchen 4402fc2d0a refactor: core 2024-04-27 00:50:08 +08:00
手瓜一十雪 3e3ecda551 Merge branch 'main' of https://github.com/NapNeko/NapCatQQ 2024-04-26 22:56:49 +08:00
手瓜一十雪 50beb8f346 fix: Linux Script CRLF to LF 2024-04-26 22:56:38 +08:00
手瓜一十雪 8e033e3e06 fix 2024-04-26 22:53:46 +08:00
linyuchen dc029a318b refactor: core addListener 2024-04-26 20:21:41 +08:00
手瓜一十雪 8e91bc2c8e fix 2024-04-26 18:46:12 +08:00
linyuchen 0ff5b4e90b refactor: core 2024-04-26 13:55:35 +08:00
手瓜一十雪 20dec19bfe Merge branch 'main' of https://github.com/NapNeko/NapCatQQ 2024-04-26 11:30:51 +08:00
手瓜一十雪 d261fbff26 fix 2024-04-26 11:30:05 +08:00
手瓜一十雪 6594b33bcc docs: change 2024-04-26 08:09:15 +08:00
linyuchen a1bb6cc1b1 refactor: mface url 2024-04-26 00:16:36 +08:00
linyuchen 7ce195b68e Merge remote-tracking branch 'origin/main'
# Conflicts:
#	src/onebot11/index.ts
2024-04-25 22:11:10 +08:00
手瓜一十雪 16d8d04aaa fix 2024-04-25 20:40:32 +08:00
手瓜一十雪 59565f7d90 fix 2024-04-25 18:34:40 +08:00
手瓜一十雪 43784a2495 fix 2024-04-25 18:29:31 +08:00
手瓜一十雪 3811d7469e fix 2024-04-25 18:15:40 +08:00
手瓜一十雪 c72b40a1e1 fix 2024-04-25 18:15:03 +08:00
linyuchen f00933969d refactor: get image rkey 2024-04-25 15:13:26 +08:00
linyuchen 759adc45e3 refactor: mark msg as read 2024-04-25 15:13:11 +08:00
linyuchen 27ecf78372 refactor: mark msg as read 2024-04-25 15:12:53 +08:00
手瓜一十雪 c91b83a7ba docs: change 2024-04-25 10:38:01 +08:00
手瓜一十雪 39373ee63a Merge pull request #8 from Fripine/feat/add_FriendAddNoticeEvent
feat: add FriendAddNoticeEvent
2024-04-25 10:27:01 +08:00
Fripine 2db64c69ae Update constructor.ts 2024-04-25 00:54:36 +08:00
linyuchen a699b71c02 fix: check rkey 2024-04-24 21:05:51 +08:00
linyuchen 6c07d22cda Merge remote-tracking branch 'origin/main'
# Conflicts:
#	package.json
2024-04-24 21:04:34 +08:00
linyuchen a2ee900ed5 fix: check rkey 2024-04-24 21:03:47 +08:00
Fripine e709f31b99 Update constructor.ts 2024-04-24 19:19:36 +08:00
Fripine 35afb12756 Update constructor.ts 2024-04-24 18:48:03 +08:00
Fripine 9bed9fe162 Update constructor.ts 2024-04-24 17:47:01 +08:00
Fripine 4ff5553804 construct FriendAddEvent 2024-04-24 17:38:35 +08:00
Fripine 32213be7a7 add FriendAddEvent 2024-04-24 17:34:22 +08:00
Fripine 84894a73e1 Create OB11FriendAddNoticeEvent.ts 2024-04-24 17:32:31 +08:00
手瓜一十雪 b6ea185ce7 build: test 2024-04-24 15:31:51 +08:00
手瓜一十雪 814ac0f731 fix:package 2024-04-24 12:20:41 +08:00
手瓜一十雪 a40bb29da3 fix: build 2024-04-24 12:19:30 +08:00
手瓜一十雪 e9b90079c0 fix 2024-04-24 12:13:34 +08:00
手瓜一十雪 dba383c27e fix 2024-04-24 12:09:26 +08:00
手瓜一十雪 42059b5817 fix 2024-04-24 12:01:32 +08:00
手瓜一十雪 f92a17c01b fix 2024-04-24 12:00:13 +08:00
手瓜一十雪 d6552ce333 fix: native hook debug to release 2024-04-24 10:19:28 +08:00
手瓜一十雪 0db89bde5a docs: noify CQCode 2024-04-24 10:14:27 +08:00
手瓜一十雪 56a12185d4 Merge pull request #7 from initialencounter/patch-1
feat(onebot11):  Improve error handling in JSON parsing
2024-04-24 00:07:55 +08:00
风宝宝 c40170db5d feat(onebot11): Improve error handling in JSON parsing
发生错误直接被 catch 掉了,没有提示,[使用docker启动后,请求被重置](https://github.com/NapNeko/NapCat-Docker/issues/8)
2024-04-23 21:33:09 +08:00
linyuchen 1df3e9c414 doc: update 2024-04-23 18:58:51 +08:00
linyuchen b1570df8b9 update core 2024-04-23 18:39:58 +08:00
linyuchen 023fd1ce36 Merge remote-tracking branch 'origin/main' 2024-04-23 18:38:44 +08:00
linyuchen a7fe74bc0c fix: rkey 2024-04-23 18:38:13 +08:00
手瓜一十雪 26c9abd9da docs: rf install with build
移除编译安装教程 因不指定参数编译和下载到的一样 指定后编译需要编译环境 例如msvc/gcc
2024-04-21 19:17:22 +08:00
linyuchen a5e34645c5 fix: ffmpeg path for video.ts 2024-04-20 08:21:48 +08:00
linyuchen b2831c0a19 doc: update 2024-04-20 08:21:03 +08:00
linyuchen 648c1ea0f9 fix: reading qq version 2024-04-19 11:31:47 +08:00
linyuchen 9cd927e06a doc: update README.md 2024-04-19 10:28:20 +08:00
linyuchen 4272413f55 Merge remote-tracking branch 'origin/main' 2024-04-19 10:27:40 +08:00
linyuchen e1711b7af6 doc: update README.md 2024-04-19 10:27:26 +08:00
Version f7d3f27d45 chore:version change 2024-04-18 12:17:53 +00:00
linyuchen 3a7a47f82d style: eslint
release / check-version (push) Canceled after 0s
release / build-linux (arm64, darwin) (push) Canceled after 0s
release / build-linux (arm64, linux) (push) Canceled after 0s
release / build-linux (x64, darwin) (push) Canceled after 0s
release / build-linux (x64, linux) (push) Canceled after 0s
release / build-win32 (x64, win32) (push) Canceled after 0s
release / release-napcat (push) Canceled after 0s
2024-04-18 20:17:06 +08:00
linyuchen cc211706d5 fix: check version catch 2024-04-18 20:10:09 +08:00
linyuchen 22f74be4cd try send markdown 2024-04-18 18:23:20 +08:00
linyuchen 5a00d14f94 Merge remote-tracking branch 'origin/main' 2024-04-18 17:44:06 +08:00
linyuchen ecb4e7bf9f fix: ws token not work 2024-04-18 17:43:43 +08:00
linyuchen 56e5b546e1 Update README.md 2024-04-17 21:44:40 +08:00
linyuchen 272f5a2f4f Update README.md 2024-04-17 21:33:25 +08:00
linyuchen ddcbe78a01 chore: release.yml
release / check-version (push) Canceled after 0s
release / build-linux (arm64, darwin) (push) Canceled after 0s
release / build-linux (arm64, linux) (push) Canceled after 0s
release / build-linux (x64, darwin) (push) Canceled after 0s
release / build-linux (x64, linux) (push) Canceled after 0s
release / build-win32 (x64, win32) (push) Canceled after 0s
release / release-napcat (push) Canceled after 0s
2024-04-17 18:40:49 +08:00
linyuchen 00b6c964e2 chore: release not need git submodule 2024-04-17 18:37:11 +08:00
linyuchen d7d2b06ecc chore: change action token 2024-04-17 18:27:08 +08:00
Version fafc59360d chore:version change 2024-04-17 09:50:56 +00:00
linyuchen 19e105785e update core 2024-04-17 17:38:02 +08:00
linyuchen b87ac09e43 update core 2024-04-17 17:37:23 +08:00
linyuchen af9092d7c7 fix: send forward msg 2024-04-17 17:35:14 +08:00
linyuchen 24a1ffd652 fix: http server cors 2024-04-17 17:06:24 +08:00
linyuchen 662813cc58 fix: postLoginStatus on error 2024-04-17 17:01:29 +08:00
linyuchen d890b78290 refactor: auto_escape of send msg 2024-04-16 23:22:37 +08:00
linyuchen 58747d7d4a fix: delete group 2024-04-16 23:10:29 +08:00
linyuchen 0773a4f39c feat: Support post url params 2024-04-16 23:09:56 +08:00
linyuchen 66cc7f8a1f feat: http heart 2024-04-16 20:58:29 +08:00
linyuchen 01ab40bf4a Merge remote-tracking branch 'origin/main' 2024-04-16 20:28:26 +08:00
linyuchen 4c09147fd1 fix: cq code auto escape
fix: get groups no cache
2024-04-16 20:28:05 +08:00
手瓜一十雪 f9f426d788 build:friend history 2024-04-16 18:50:39 +08:00
手瓜一十雪 ff8fa1bf31 fix 2024-04-16 18:39:15 +08:00
手瓜一十雪 59f99e4f6a fix 2024-04-16 18:36:51 +08:00
手瓜一十雪 7449ce9c3b fix 2024-04-16 18:32:02 +08:00
手瓜一十雪 f6bc8f0a1f fix 2024-04-16 18:26:50 +08:00
手瓜一十雪 4d10b8cdee Revert "chore:version change"
This reverts commit 36ce3b08fe.
2024-04-16 14:13:22 +08:00
手瓜一十雪 5a61c5de09 limit:workflow 2024-04-16 14:10:31 +08:00
手瓜一十雪 f84d0db811 fix 2024-04-16 14:01:05 +08:00
Version 36ce3b08fe chore:version change 2024-04-16 05:57:37 +00:00
手瓜一十雪 da8ea5b545 Revert "chore:version change"
This reverts commit 034d12c347.
2024-04-16 13:57:04 +08:00
手瓜一十雪 fad3dbf4cd fix 2024-04-16 13:56:07 +08:00
Version 034d12c347 chore:version change 2024-04-16 05:54:20 +00:00
手瓜一十雪 c94dbf1d9a fix:workflow 2024-04-16 13:53:14 +08:00
手瓜一十雪 e516687a9e fix 2024-04-16 13:50:01 +08:00
手瓜一十雪 4a2f77b0a6 fix 2024-04-16 13:49:32 +08:00
手瓜一十雪 7b29ecba71 fix 2024-04-16 13:47:42 +08:00
手瓜一十雪 11241b8e07 Revert "chore:version change"
This reverts commit 52bbd1f20b.
2024-04-16 13:44:22 +08:00
Version 52bbd1f20b chore:version change 2024-04-16 05:42:48 +00:00
手瓜一十雪 4044750515 fix 2024-04-16 13:42:22 +08:00
手瓜一十雪 b670c546b9 Merge branch 'main' of https://github.com/NapNeko/NapCatQQ 2024-04-16 13:38:00 +08:00
手瓜一十雪 f37bbf93cb fix 2024-04-16 13:37:42 +08:00
linyuchen 87311ab41a Merge remote-tracking branch 'origin/main' 2024-04-16 13:28:15 +08:00
linyuchen ecb4d1845c update core 2024-04-16 13:28:05 +08:00
手瓜一十雪 35c232ab25 fix
Build / build-linux (arm64, darwin) (push) Skipped
Build / build-linux (arm64, linux) (push) Skipped
Build / build-linux (x64, darwin) (push) Skipped
Build / build-linux (x64, linux) (push) Skipped
Build / build-win32 (x64, win32) (push) Skipped
release / check-version (push) Canceled after 0s
release / build-linux (arm64, darwin) (push) Canceled after 0s
release / build-linux (arm64, linux) (push) Canceled after 0s
release / build-linux (x64, darwin) (push) Canceled after 0s
release / build-linux (x64, linux) (push) Canceled after 0s
release / build-win32 (x64, win32) (push) Canceled after 0s
release / release-napcat (push) Canceled after 0s
2024-04-16 13:27:33 +08:00
linyuchen df0be2e251 Merge remote-tracking branch 'origin/main' 2024-04-16 13:25:25 +08:00
linyuchen 871b3a102b refactor: recall get_group_list if groups is empty 2024-04-16 13:25:12 +08:00
手瓜一十雪 02299e3892 fix 2024-04-16 13:17:30 +08:00
手瓜一十雪 6af4d6f5b8 fix 2024-04-16 13:14:09 +08:00
手瓜一十雪 4fb5700367 fix 2024-04-16 13:12:33 +08:00
手瓜一十雪 8579276381 fix 2024-04-16 13:10:07 +08:00
手瓜一十雪 7ba60b22c5 fix 2024-04-16 13:06:07 +08:00
linyuchen 031932f41c Merge remote-tracking branch 'origin/main' 2024-04-16 13:00:02 +08:00
linyuchen 079d0a89b1 fix: tsconfig path alias 2024-04-16 12:59:52 +08:00
手瓜一十雪 c4fdce6d64 fix 2024-04-16 12:55:16 +08:00
手瓜一十雪 5604c2b29f Merge branch 'main' of https://github.com/NapNeko/NapCatQQ 2024-04-16 12:55:05 +08:00
手瓜一十雪 74b5ab2b47 fix 2024-04-16 12:53:37 +08:00
linyuchen c29cbfe123 Merge remote-tracking branch 'origin/main' 2024-04-16 12:51:42 +08:00
手瓜一十雪 6fe5cb1ffd remove
Build / build-linux (arm64, darwin) (push) Skipped
Build / build-linux (arm64, linux) (push) Skipped
Build / build-linux (x64, darwin) (push) Skipped
Build / build-linux (x64, linux) (push) Skipped
Build / build-win32 (x64, win32) (push) Skipped
release / check-version (push) Canceled after 0s
release / build-linux (arm64, darwin) (push) Canceled after 0s
release / build-linux (arm64, linux) (push) Canceled after 0s
release / build-linux (x64, darwin) (push) Canceled after 0s
release / build-linux (x64, linux) (push) Canceled after 0s
release / build-win32 (x64, win32) (push) Canceled after 0s
release / release-napcat (push) Canceled after 0s
2024-04-16 12:51:12 +08:00
linyuchen 7edd5a7a8e Merge remote-tracking branch 'origin/main' 2024-04-16 12:50:22 +08:00
linyuchen c1edc1b99b fix: Send empty forward msg 2024-04-16 12:50:14 +08:00
手瓜一十雪 4d1d890f72 fix 2024-04-16 12:47:36 +08:00
手瓜一十雪 fe0f82fa2b fix:checkVesion 2024-04-16 12:46:37 +08:00
手瓜一十雪 84083a65a8 fix:checkVesion 2024-04-16 12:45:07 +08:00
手瓜一十雪 fc91c6bc08 fix 2024-04-16 12:43:39 +08:00
手瓜一十雪 09120171ba fix
Build / build-linux (arm64, darwin) (push) Skipped
Build / build-linux (arm64, linux) (push) Skipped
Build / build-linux (x64, darwin) (push) Skipped
Build / build-linux (x64, linux) (push) Skipped
Build / build-win32 (x64, win32) (push) Skipped
release / check-version (push) Canceled after 0s
release / build-linux (arm64, darwin) (push) Canceled after 0s
release / build-linux (arm64, linux) (push) Canceled after 0s
release / build-linux (x64, darwin) (push) Canceled after 0s
release / build-linux (x64, linux) (push) Canceled after 0s
release / build-win32 (x64, win32) (push) Canceled after 0s
release / release-napcat (push) Canceled after 0s
2024-04-16 12:42:07 +08:00
手瓜一十雪 a362f920dc fix:workflow 2024-04-16 12:41:18 +08:00
手瓜一十雪 9d7729f548 fix:workflow 2024-04-16 12:21:50 +08:00
手瓜一十雪 ed56e177cf chore:workflow version 2024-04-16 11:49:44 +08:00
手瓜一十雪 9db28bd502 fix:version output 2024-04-16 11:43:14 +08:00
linyuchen aded70eb2e Create LICENSE 2024-04-16 10:27:32 +08:00
手瓜一十雪 dfbad85465 re:version 2024-04-16 10:02:40 +08:00
手瓜一十雪 52076fe182 chore: version 2024-04-16 08:50:48 +08:00
linyuchen 5575c3cb13 style: remove unused import 2024-04-15 22:44:48 +08:00
linyuchen 637d32efff fix: calculate qq level 2024-04-15 22:44:29 +08:00
linyuchen fd54658e53 todo: retry get groups if groups length is 0 2024-04-15 22:42:31 +08:00
linyuchen 2f39a8d76e refactor: rename extends api folder 2024-04-15 22:39:31 +08:00
linyuchen 6a3e793500 style: comment unused function 2024-04-15 22:39:06 +08:00
linyuchen 3b3ffeda6b script: gen version 2024-04-15 22:36:06 +08:00
linyuchen f7d92a3b11 Merge remote-tracking branch 'origin/main'
# Conflicts:
#	script/napcat.bat
2024-04-15 22:31:18 +08:00
linyuchen d9d9ba8bf1 fix: Support Onebot v11 get_forward_msg 2024-04-15 17:39:18 +08:00
linyuchen d66ab7d389 chore: start bat 2024-04-15 01:38:46 +08:00
306 changed files with 6724 additions and 2299 deletions

No files matched your search

+9 -2
View File
@@ -1,6 +1,11 @@
name: "Build"
on:
workflow_dispatch:
push:
branches:
- main
permissions: write-all
jobs:
build-linux:
@@ -9,7 +14,7 @@ jobs:
strategy:
fail-fast: false
matrix:
target_platform: [linux,darwin]
target_platform: [linux]
target_arch: [x64, arm64]
steps:
- name: Clone Main Repository
@@ -17,6 +22,7 @@ jobs:
with:
repository: 'NapNeko/NapCatQQ'
submodules: true
ref: main
token: ${{ secrets.NAPCAT_BUILD }}
- name: Use Node.js 20.X
uses: actions/setup-node@v4
@@ -48,6 +54,7 @@ jobs:
with:
repository: 'NapNeko/NapCatQQ'
submodules: true
ref: main
token: ${{ secrets.NAPCAT_BUILD }}
- name: Use Node.js 20.X
uses: actions/setup-node@v4
@@ -64,4 +71,4 @@ jobs:
uses: actions/upload-artifact@v4
with:
name: NapCat.${{ matrix.target_platform }}.${{ matrix.target_arch }}
path: dist
path: dist
+52 -6
View File
@@ -1,16 +1,42 @@
name: "release"
on:
push:
tags:
- "v*"
permissions: write-all
jobs:
check-version:
runs-on: ubuntu-latest
steps:
- name: Clone Repository
uses: actions/checkout@v4
with:
ref: main
token: ${{ secrets.GITHUB_TOKEN }}
- name: Extract version from tag
run: echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_ENV
- name: Use Node.js 20.X
uses: actions/setup-node@v4
with:
node-version: 20.x
- name: Check Version
run: |
ls
node ./script/checkVersion.cjs
sh ./checkVersion.sh
build-linux:
needs: [check-version]
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
target_platform: [linux,darwin]
target_platform: [linux]
target_arch: [x64, arm64]
steps:
- name: Clone Main Repository
@@ -18,13 +44,17 @@ jobs:
with:
repository: 'NapNeko/NapCatQQ'
submodules: true
ref: main
token: ${{ secrets.NAPCAT_BUILD }}
- name: Use Node.js 20.X
uses: actions/setup-node@v4
with:
node-version: 20.x
node-version: 20.x
- name: Build NuCat Linux
run: |
export NAPCAT_BUILDSYS=${{ matrix.target_platform }}
export NAPCAT_BUILDARCH=${{ matrix.target_arch }}
npm i --arch=${{ matrix.target_arch }} --platform=${{ matrix.target_platform }}
npm run build:prod
cd dist
@@ -37,6 +67,7 @@ jobs:
path: dist
build-win32:
runs-on: ubuntu-latest
needs: [check-version]
strategy:
fail-fast: false
matrix:
@@ -48,23 +79,30 @@ jobs:
with:
repository: 'NapNeko/NapCatQQ'
submodules: true
ref: main
token: ${{ secrets.NAPCAT_BUILD }}
- name: Use Node.js 20.X
uses: actions/setup-node@v4
with:
node-version: 20.x
- name: Build NuCat Linux
run: |
export NAPCAT_BUILDSYS=${{ matrix.target_platform }}
export NAPCAT_BUILDARCH=${{ matrix.target_arch }}
npm i --arch=${{ matrix.target_arch }} --platform=${{ matrix.target_platform }}
npm run build:prod
cd dist
npm i --omit=dev --arch=${{ matrix.target_arch }} --platform=${{ matrix.target_platform }}
cd ..
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: NapCat.${{ matrix.target_platform }}.${{ matrix.target_arch }}
path: dist
release-napcat:
needs: [build-win32,build-linux]
runs-on: ubuntu-latest
@@ -78,15 +116,23 @@ jobs:
base=$(basename "$dir")
zip -r "${base}.zip" "$dir"
done
- name: Extract version from tag
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
- name: Create Release Draft and Upload Artifacts
uses: softprops/action-gh-release@v1
with:
name: NapCat V0.0.0
token: ${{ secrets.NAPCAT_BUILD }}
name: NapCat V${{ env.VERSION }}
token: ${{ secrets.GITHUB_TOKEN }}
body_path: CHANGELOG.md
files: |
NapCat.win32.x64.zip
NapCat.linux.x64.zip
NapCat.linux.arm64.zip
NapCat.darwin.x64.zip
NapCat.darwin.arm64.zip
# NapCat.darwin.x64.zip
# NapCat.darwin.arm64.zip
draft: true
+3 -2
View File
@@ -1,11 +1,11 @@
# Logs
# Develop
node_modules/
package-lock.json
pnpm-lock.yaml
out/
dist/
src/core.lib/common/
test
# Editor
.vscode/*
@@ -14,3 +14,4 @@ src/core.lib/common/
# Build
*.db
checkVersion.sh
+13
View File
@@ -0,0 +1,13 @@
# v1.3.2
QQ Version: Windows 9.9.9-23424 / Linux 3.2.7-23361
## 修复与优化
* 重置Rkey获取机制,使用接口分发Rkey
* 尝试修复启动时消息处理需要等待过长时间
* 修复多图情况为同一张图片的问题
## 新增与调整
* 新增扩展获取好友分类列表 Api /get_friends_with_category
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)
+21
View File
@@ -0,0 +1,21 @@
MIT License
Copyright (c) 2024 NapCatQQ
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
+12 -144
View File
@@ -4,162 +4,30 @@
## 项目介绍
NapCatQQ(瞌睡猫QQ,不准叫我NCQQ!),像睡着了一样在后台低占用运行的无头(没有界面)的NTQQ
NapCatQQ 是基于 PC NTQQ 本体实现一套无头 Bot 框架。
目前测试在 Windows 上表现优秀,最低可达只占用内存 **20M**左右
名字寓意 瞌睡猫QQ,像睡着了一样在后台低占用运行的无需GUI界面的NTQQ。
由于 Linux 上的 QQ 图形依赖较多,会导致内存占用小高,大约 **100+M**,目前正在研究如何优化
## 如何使用
具体占用会因人而异,QQ 群、好友越多占用越高
可前往 [Release](https://github.com/NapNeko/NapCatQQ/releases/) 页面下载最新版本
## 下载
**首次使用** 请务必前往 [官方文档](https://napneko.github.io/) 查看使用文档与教程
前往 Release 页面下载最新版本
## 启动
NapCat 是基于 官方NTQQ 实现的Bot框架,因此先需要安装官方QQ,**注意同个账号不能同时登录原版 QQ 和 NapCatQQ**
*如果没有安装 QQ 请往后翻查看安装方法*
修改 `config/onebot11.json`内容,并重名为 `onebot11_<你的QQ号>.json`,如`onebot11_1234567.json`
json 配置内容参数解释:
```json5
{
// 是否启用http服务,如果启用,可以通过http接口发送消息
"enableHttp": false,
// http服务端口
"httpPort": 3000,
// 是否启用正向websocket服务
"enableWs": false,
// 正向websocket服务端口
"wsPort": 3001,
// 是否启用反向websocket服务
"enableWsReverse": false,
// 反向websocket对接的地址, 如["ws://127.0.0.1:8080/onebot/v11/ws"]
"wsReverseUrls": [],
// 是否启用http上报服务
"enableHttpPost": false,
// http上报地址, 如["http://127.0.0.1:8080/onebot/v11/http"]
"httpPostUrls": [],
// http上报密钥,可为空
"httpSecret": "",
// 消息上报格式,array为消息组,string为cq码字符串
"messagePostFormat": "array",
// 是否上报自己发送的消息
"reportSelfMessage": false,
// 是否开启调试模式,开启后上报消息会携带一个raw字段,为原始消息内容
"debug": false,
// 调用get_file接口时如果获取不到url则使用base64字段返回文件内容
"enableLocalFile2Url": true,
// ws心跳间隔,单位毫秒
"heartInterval": 30000,
// access_token,可以为空
"token": ""
}
```
### Windows 启动
运行`powershell ./napcat.ps1`, 或者 `napcat.bat`,如果出现乱码,可以尝试运行`napcat-utf8.ps1` 或 `napcat-utf8.bat`
*如果出现 powershell 运行不了,以管理员身份打开 powershell,输入 `Set-ExecutionPolicy RemoteSigned`*
### Linux 启动
运行`napcat.sh`
## 使用无需扫码快速登录
前提是你已经成功登录过QQ,可以加参数` -q <你的QQ>` 进行登录,如`napcat.sh -q 1234567`
## 安装
### Linux安装
#### 安装 Linux QQ(22741),已经安装了的可以跳过
目前还在研究怎么精简安装,暂时只能安装官方QQ整体依赖
下载QQ
[deb x86版本](https://dldir1.qq.com/qqfile/qq/QQNT/Linux/QQ_3.2.7_240403_amd64_01.deb)
[deb arm版本](https://dldir1.qq.com/qqfile/qq/QQNT/Linux/QQ_3.2.7_240403_arm64_01.deb)
[rpm x86版本](https://dldir1.qq.com/qqfile/qq/QQNT/Linux/QQ_3.2.7_240403_x86_64_01.rpm)
[rpm arm版本](https://dldir1.qq.com/qqfile/qq/QQNT/Linux/QQ_3.2.7_240403_aarch64_01.rpm)
```bash
sudo apt install ./qq.deb
```
```bash
安装QQ的依赖
sudo apt install libgbm1 libasound2
```
### Windows 安装
#### 安装Windows QQ(22741),已经安装了的可以跳过
[Windows版本QQ下载](https://dldir1.qq.com/qqfile/qq/QQNT/Windows/QQ_9.9.9_240403_x64_01.exe)
### 编译安装 NapCat
**如果你是直接下载编译好的版本,可以跳过这一步**
准备环境 [node18.18](https://nodejs.org/download/release/v18.18.2/)
```
export NODE_ENV=production
npm install
```
## 常见问题
### 二维码无法扫描
NapCat 会自动保存二维码到目录,可以手动打开图片扫描
如果没有条件访问本地目录,可以将二维码解析的 url 复制到二维码生成网站上生成二维码,然后手机QQ扫描
### 语音、视频发送失败
需要配置 ffmpeg,将 ffmpeg 目录加入环境变量,如果仍未生效,可以修改 napcat 启动脚本加入 FFMPEG_PATH 变量指定到 ffmpeg
程序的完整路径
如 Windows 上修改 napcat.ps1,在第一行加入
```powershell
$env:FFMPEG_PATH="d:\ffmpeg\bin\ffmpeg.exe"
```
### 出现 error code v2:-1 之类的提示
不用管,这是正常现象,是因为 QQ 本身的问题,不影响使用
## API 文档
参考 [LLOneBot](https://llonebot.github.io/zh-CN/develop/api) 的文档
<!--
QQ群:545402644
-->
## 声明
## 项目声明
* 请不要在无关地方宣传NapCatQQ,本项目只是用于学习 node 相关知识,切勿用于违法用途
* NapCat 不会收集用户隐私信息,但是未来可能会为了更好的利于 NapCat 的优化会收集一些设备信息,如 cpu 架构,系统版本等
## 相关链接
[TG群](https://t.me/+nLZEnpne-pQ1OWFl)
[Telegram Link](https://t.me/+nLZEnpne-pQ1OWFl)
## 鸣谢名单
[OpenShamrock]()
[Lagrange]()
[Lagrange](https://github.com/LagrangeDev/Lagrange.Core)
<!--
QQ群:545402644
-->
+7 -5
View File
@@ -2,14 +2,15 @@
"name": "napcat",
"private": true,
"type": "module",
"version": "1.0.2",
"version": "1.3.2",
"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 && vite build --mode production",
"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}",
@@ -21,6 +22,7 @@
"@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",
@@ -47,17 +49,17 @@
},
"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",
"protobufjs": "^7.2.6",
"qrcode-terminal": "^0.12.0",
"silk-wasm": "^3.3.4",
"sqlite3": "^5.1.7",
"uuid": "^9.0.1",
"ws": "^8.16.0",
"yaml": "^2.4.1"
"ws": "^8.16.0"
}
}
+13
View File
@@ -0,0 +1,13 @@
let fs = require("fs");
let 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")
}
+32
View File
@@ -0,0 +1,32 @@
let fs = require('fs');
let path = require('path');
const coreDistDir = path.join(path.resolve(__dirname, '../'), 'src/core/dist/core/src');
const coreLibDir = path.join(path.resolve(__dirname, '../'), 'src/core.lib/src');
function copyDir(currentPath, outputDir) {
fs.readdir(currentPath, { withFileTypes: true }, (err, entries) => {
if (err?.errno === -4058) return;
entries.forEach(entry => {
const localBasePath = path.join(currentPath, entry.name);
const outputLocalBasePath = path.join(outputDir, entry.name);
if (entry.isDirectory()) {
// 如果是目录,递归调用
if (!fs.existsSync(outputLocalBasePath)) {
fs.mkdirSync(outputLocalBasePath, { recursive: true });
}
copyDir(localBasePath, outputLocalBasePath);
}
else{
// 如果是文件,直接复制
fs.copyFile(localBasePath, outputLocalBasePath, (err) => {
if (err) throw err;
});
}
});
});
}
copyDir(coreDistDir, coreLibDir);
+21
View File
@@ -0,0 +1,21 @@
import fs from 'fs'
import path from 'path'
import { version } from '../src/onebot11/version'
const manifestPath = path.join(__dirname, '../package.json')
function readManifest (): any {
if (fs.existsSync(manifestPath)) {
return JSON.parse(fs.readFileSync(manifestPath, 'utf-8'))
}
}
function writeManifest (manifest: any) {
fs.writeFileSync(manifestPath, JSON.stringify(manifest, null, 2))
}
const manifest = readManifest()
if (version !== manifest.version) {
manifest.version = version
writeManifest(manifest)
}
+3
View File
@@ -0,0 +1,3 @@
chcp 65001
set ELECTRON_RUN_AS_NODE=1
"H:\Program Files\QQNT最新版\QQ.exe" %~dp0/napcat.cjs %*
File renamed without changes.
-85
View File
@@ -1,85 +0,0 @@
import {
type Friend,
type FriendRequest,
type Group,
type GroupMember, GroupNotify,
type SelfInfo
} from '@/core/qqnt/entities';
import { isNumeric } from './utils/helper';
import { log } from '@/common/utils/log';
export const selfInfo: SelfInfo = {
uid: '',
uin: '',
nick: '',
online: true
};
// groupCode -> Group
export const groups: Map<string, Group> = new Map<string, Group>();
// 群号 -> 群成员map(uid=>GroupMember)
export const groupMembers: Map<string, Map<string, GroupMember>> = new Map<string, Map<string, GroupMember>>();
// uid -> Friend
export const friends: Map<string, Friend> = new Map<string, Friend>();
export const friendRequests: Record<string, FriendRequest> = {}; // flag->FriendRequest
export const groupNotifies: Record<string, GroupNotify> = {}; // flag->GroupNotify
export const napCatError = {
ffmpegError: '',
httpServerError: '',
wsServerError: '',
otherError: 'NapCat未能正常启动,请检查日志查看错误'
};
export async function getFriend(uinOrUid: string): Promise<Friend | undefined> {
uinOrUid = uinOrUid.toString();
if (isNumeric(uinOrUid)) {
const friendList = Array.from(friends.values());
return friendList.find(friend => friend.uin === uinOrUid);
} else {
return friends.get(uinOrUid);
}
}
export async function getGroup(qq: string): Promise<Group | undefined> {
const group = groups.get(qq.toString());
return group;
}
export async function getGroupMember(groupQQ: string | number, memberUinOrUid: string | number) {
groupQQ = groupQQ.toString();
memberUinOrUid = memberUinOrUid.toString();
const members = groupMembers.get(groupQQ);
if (!members) {
return null;
}
// log('getGroupMember', members);
if (isNumeric(memberUinOrUid)) {
return Array.from(members.values()).find(member => member.uin === memberUinOrUid);
} else {
return members.get(memberUinOrUid);
}
}
export async function refreshGroupMembers(groupQQ: string) {
// const group = groups.find(group => group.groupCode === groupQQ)
// if (group) {
// group.members = await NTQQGroupApi.getGroupMembers(groupQQ)
// }
}
export const uid2UinMap: Record<string, string> = {}; // 一串加密的字符串(uid) -> qq号
export function getUidByUin(uin: string) {
for (const uid in uid2UinMap) {
if (uid2UinMap[uid] === uin) {
return uid;
}
}
}
export const tempGroupCodeMap: Record<string, string> = {}; // peerUid => 群号
+26 -17
View File
@@ -1,17 +1,19 @@
import express, { Express, Request, Response } from 'express';
import cors from 'cors';
import http from 'http';
import { log } from '../utils/log';
import { log, logDebug, logError } from '../utils/log';
import { ob11Config } from '@/onebot11/config';
type RegisterHandler = (res: Response, payload: any) => Promise<any>
export abstract class HttpServerBase {
name: string = 'LLOneBot';
name: string = 'NapCatQQ';
private readonly expressAPP: Express;
private server: http.Server | null = null;
constructor() {
this.expressAPP = express();
this.expressAPP.use(cors());
this.expressAPP.use(express.urlencoded({ extended: true, limit: '5000mb' }));
this.expressAPP.use((req, res, next) => {
// 兼容处理没有带content-type的请求
@@ -21,7 +23,7 @@ export abstract class HttpServerBase {
// 调用原始的express.json()处理器
originalJson(req, res, (err) => {
if (err) {
log('Error parsing JSON:', err);
logError('Error parsing JSON:', err);
return res.status(400).send('Invalid JSON');
}
next();
@@ -35,14 +37,14 @@ export abstract class HttpServerBase {
const authHeader = req.get('authorization');
if (authHeader) {
clientToken = authHeader.split('Bearer ').pop() || '';
log('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();
}
log('receive http url token', clientToken);
logDebug('receive http url token', clientToken);
}
if (serverToken && clientToken != serverToken) {
@@ -51,14 +53,14 @@ export abstract class HttpServerBase {
next();
}
start(port: number) {
start(port: number, host: string) {
try {
this.expressAPP.get('/', (req: Request, res: Response) => {
res.send(`${this.name}已启动`);
});
this.listen(port);
this.listen(port, host);
} catch (e: any) {
log('HTTP服务启动失败', e.toString());
logError('HTTP服务启动失败', e.toString());
// llonebotError.httpServerError = "HTTP服务启动失败, " + e.toString()
}
}
@@ -71,9 +73,9 @@ export abstract class HttpServerBase {
}
}
restart(port: number) {
restart(port: number, host: string) {
this.stop();
this.start(port);
this.start(port, host);
}
abstract handleFailed(res: Response, payload: any, err: any): void
@@ -86,7 +88,7 @@ export abstract class HttpServerBase {
// @ts-expect-error wait fix
if (!this.expressAPP[method]) {
const err = `${this.name} register router failed,${method} not exist`;
log(err);
logError(err);
throw err;
}
// @ts-expect-error wait fix
@@ -94,8 +96,10 @@ export abstract class HttpServerBase {
let payload = req.body;
if (method == 'get') {
payload = req.query;
} else if (req.query) {
payload = { ...req.query, ...req.body };
}
log('收到http请求', url, payload);
logDebug('收到http请求', url, payload);
try {
res.send(await handler(res, payload));
} catch (e: any) {
@@ -104,10 +108,15 @@ export abstract class HttpServerBase {
});
}
protected listen(port: number) {
this.server = this.expressAPP.listen(port, '0.0.0.0', () => {
const info = `${this.name} started 0.0.0.0:${port}`;
log(info);
});
protected listen(port: number, host: string = '0.0.0.0') {
host = host || '0.0.0.0';
try {
this.server = this.expressAPP.listen(port, host, () => {
const info = `${this.name} started ${host}:${port}`;
log(info);
});
}catch (e: any) {
logError('HTTP服务启动失败, 请检查监听的ip地址和端口', e.stack.toString());
}
}
}
+8 -3
View File
@@ -27,11 +27,16 @@ export class WebsocketServerBase {
constructor() {
}
start(port: number) {
start(port: number, host: string = '') {
try {
this.ws = new WebSocketServer({ port });
this.ws = new WebSocketServer({
port ,
host: '',
maxPayload: 1024 * 1024 * 1024
});
log(`ws服务启动成功, ${host}:${port}`);
} catch (e: any) {
throw Error('ws服务启动失败, ' + e.toString());
throw Error('ws服务启动失败, 请检查监听的ip和端口' + e.toString());
}
this.ws.on('connection', (wsClient, req) => {
const url: string = req.url!.split('?').shift() || '/';
+35
View File
@@ -0,0 +1,35 @@
import { sleep } from '@/common/utils/helper';
type AsyncQueueTask = (() => void) | (()=>Promise<void>);
export class AsyncQueue {
private tasks: (AsyncQueueTask)[] = [];
public addTask(task: AsyncQueueTask) {
this.tasks.push(task);
// console.log('addTask', this.tasks.length);
if (this.tasks.length === 1) {
this.runQueue().then().catch(()=>{});
}
}
private async runQueue() {
// console.log('runQueue', this.tasks.length);
while (this.tasks.length > 0) {
const task = this.tasks[0];
// console.log('typeof task', typeof task);
try {
const taskRet = task();
// console.log('type of taskRet', typeof taskRet, taskRet);
if (taskRet instanceof Promise) {
await taskRet;
}
} catch (e) {
console.error(e);
}
this.tasks.shift();
await sleep(100);
}
}
}
+67
View File
@@ -0,0 +1,67 @@
import path from 'node:path';
import fs from 'node:fs';
import { log, logDebug, logError } from '@/common/utils/log';
const configDir = path.resolve(__dirname, 'config');
fs.mkdirSync(configDir, { recursive: true });
export class ConfigBase<T>{
constructor() {
}
protected getKeys(): string[] | null {
// 决定 key 在json配置文件中的顺序
return null;
}
getConfigDir(){
const configDir = path.resolve(__dirname, 'config');
fs.mkdirSync(configDir, { recursive: true });
return configDir;
}
getConfigPath(): string {
throw new Error('Method not implemented.');
}
read() {
const configPath = this.getConfigPath();
if (!fs.existsSync(configPath)) {
try{
fs.writeFileSync(configPath, JSON.stringify(this, this.getKeys(), 2));
log(`配置文件${configPath}已创建\n如果修改此文件后需要重启 NapCat 生效`);
}
catch (e: any) {
logError(`创建配置文件 ${configPath} 时发生错误:`, e.message);
}
return this;
}
try {
const data = JSON.parse(fs.readFileSync(configPath, 'utf-8'));
logDebug(`配置文件${configPath}已加载`, data);
Object.assign(this, data);
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-expect-error
this.save(this); // 保存一次,让新版本的字段写入
return this;
} catch (e: any) {
if (e instanceof SyntaxError) {
logError(`配置文件 ${configPath} 格式错误,请检查配置文件:`, e.message);
} else {
logError(`读取配置文件 ${configPath} 时发生错误:`, e.message);
}
return this;
}
}
save(config: T) {
Object.assign(this, config);
const configPath = this.getConfigPath();
try {
fs.writeFileSync(configPath, JSON.stringify(this, this.getKeys(), 2));
} catch (e: any) {
logError(`保存配置文件 ${configPath} 时发生错误:`, e.message);
}
}
}
+18 -6
View File
@@ -37,24 +37,36 @@ type QQVersionConfigInfo = {
}
let _qqVersionConfigInfo: QQVersionConfigInfo = {
'baseVersion': '9.9.9-22578',
'curVersion': '9.9.9-22578',
'baseVersion': '9.9.9-23361',
'curVersion': '9.9.9-23361',
'prevVersion': '',
'onErrorVersions': [],
'buildId': '22578'
'buildId': '23361'
};
if (fs.existsSync(configVersionInfoPath)) {
_qqVersionConfigInfo = JSON.parse(fs.readFileSync(configVersionInfoPath).toString());
try {
const _ =JSON.parse(fs.readFileSync(configVersionInfoPath).toString());
_qqVersionConfigInfo = Object.assign(_qqVersionConfigInfo, _);
} catch (e) {
console.error('Load QQ version config info failed, Use default version', e);
}
}
export const qqVersionConfigInfo: QQVersionConfigInfo = _qqVersionConfigInfo;
export const qqPkgInfo: QQPkgInfo = require(pkgInfoPath);
// platform_type: 3,
// app_type: 4,
// app_version: '9.9.9-23159',
// qua: 'V1_WIN_NQ_9.9.9_23159_GW_B',
// appid: '537213764',
// platVer: '10.0.26100',
// clientVer: '9.9.9-23159',
let _appid: string = '537213335'; // 默认为 Windows 平台的 appid
let _appid: string = '537213803'; // 默认为 Windows 平台的 appid
if (systemPlatform === 'linux') {
_appid = '537213710';
_appid = '537213827';
}
// todo: mac 平台的 appid
export const appid = _appid;
+2 -2
View File
@@ -1,7 +1,7 @@
import fs from 'fs';
import { encode, getDuration, getWavFileInfo, isWav } from 'silk-wasm';
import fsPromise from 'fs/promises';
import { log } from './log';
import { log, logError } from './log';
import path from 'node:path';
import { v4 as uuidv4 } from 'uuid';
import { spawn } from 'node:child_process';
@@ -129,7 +129,7 @@ export async function encodeSilk(filePath: string) {
};
}
} catch (error: any) {
log('convert silk failed', error.stack);
logError('convert silk failed', error.stack);
return {};
}
}
+19
View File
@@ -0,0 +1,19 @@
import * as os from 'os';
import path from 'node:path';
import fs from 'fs';
export function getModuleWithArchName(moduleName: string) {
const systemPlatform = os.platform();
const cpuArch = os.arch();
return `${moduleName}-${systemPlatform}-${cpuArch}.node`;
}
export function cpModule(moduleName: string) {
const currentDir = path.resolve(__dirname);
const fileName = `./${getModuleWithArchName(moduleName)}`;
try {
fs.copyFileSync(path.join(currentDir, fileName), path.join(currentDir, `${moduleName}.node`));
} catch (e) {
}
}
-323
View File
@@ -1,323 +0,0 @@
import { ElementType, FileElement, PicElement, PttElement, RawMessage, VideoElement } from '@/core/qqnt/entities';
import sqlite3 from 'sqlite3';
import { log } from '@/common/utils/log';
type DBMsg = {
id: number,
longId: string,
seq: number,
peerUid: string,
msg: string
}
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;
createConnection(dbPath: string) {
if (this.db) {
return;
}
this.db = new sqlite3.Database(dbPath, sqlite3.OPEN_READWRITE | sqlite3.OPEN_CREATE, (err) => {
if (err) {
log('Could not connect to database', err);
return;
}
this.createTable();
});
}
protected createTable() {
throw new Error('Method not implemented.');
}
close() {
this.db?.close();
}
}
class DBUtil extends DBUtilBase {
private msgCache: Map<string, RawMessage> = new Map<string, RawMessage>();
constructor() {
super();
const interval = 1000 * 60 * 10; // 10分钟清理一次缓存
setInterval(() => {
log('清理消息缓存');
this.msgCache.forEach((msg, key) => {
if ((Date.now() - parseInt(msg.msgTime) * 1000) > interval) {
this.msgCache.delete(key);
}
});
}, interval);
}
protected createTable() {
// 消息记录
const createTableSQL = `
CREATE TABLE IF NOT EXISTS msgs (
id INTEGER PRIMARY KEY AUTOINCREMENT,
long_id TEXT NOT NULL UNIQUE,
seq INTEGER NOT NULL,
peer_uid TEXT NOT NULL,
msg TEXT NOT NULL
)`;
this.db!.run(createTableSQL, function (err) {
if (err) {
log('Could not create table', err);
}
});
// 文件缓存
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) {
log('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) {
log('Could not create table temp_uins', err);
}
});
}
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) {
log('Could not get msg by short id', err);
resolve(null);
}
try {
const msg = JSON.parse(row.msg);
msg.id = row.id;
return resolve(msg);
} catch (e) {
return resolve(null);
}
});
});
}
async getMsgByShortId(shortId: number): Promise<RawMessage | null> {
const getStmt = 'SELECT * FROM msgs WHERE id = ?';
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 long_id = ?', [longId]);
}
async getMsgBySeq(peerUid: string, seq: string): Promise<RawMessage | null> {
const stmt = 'SELECT * FROM msgs WHERE peer_uid = ? AND seq = ?';
return this.getMsg(stmt, [peerUid, seq]);
}
async addMsg(msg: RawMessage, update = true): Promise<number> {
log('正在记录消息到数据库', msg.msgId);
const existMsg = await this.getMsgByLongId(msg.msgId);
if (existMsg) {
// log('消息已存在,更新数据库', msg.msgId);
if (update) this.updateMsg(msg).then();
return existMsg.id!;
}
const stmt = this.db!.prepare('INSERT INTO msgs (long_id, seq, peer_uid, msg) VALUES (?, ?, ?, ?)');
// const runAsync = promisify(stmt.run.bind(stmt));
return new Promise((resolve, reject) => {
// eslint-disable-next-line @typescript-eslint/no-this-alias
const dbInstance = this;
stmt.run(msg.msgId, msg.msgSeq, msg.peerUid, JSON.stringify(msg), function (err: any) {
if (err) {
if (err.errno === 19) {
// log('消息已存在,更新数据库', msg.msgId);
dbInstance.getMsgByLongId(msg.msgId).then((msg: RawMessage | null) => {
if (msg) {
dbInstance.msgCache.set(msg.msgId, msg);
// log('获取消息短id成功', msg.id);
resolve(msg.id!);
} else {
log('db could not get msg by long id', err);
resolve(-1);
}
});
} else {
log('db could not add msg', err);
resolve(-1);
}
} else {
// log("addMsg", this);
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-expect-error
msg.id = this.lastID;
dbInstance.msgCache.set(msg.msgId, msg);
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// log('获取消息短id成功', this.lastID);
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-expect-error
resolve(this.lastID);
}
});
});
}
async updateMsg(msg: RawMessage) {
const existMsg = this.msgCache.get(msg.msgId);
if (existMsg) {
Object.assign(existMsg, msg);
}
const stmt = this.db!.prepare('UPDATE msgs SET msg = ?, seq = ? WHERE long_id = ?');
try {
stmt.run(JSON.stringify(msg), msg.msgSeq, msg.msgId);
} catch (e) {
log('updateMsg db error', e);
}
}
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) {
log('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) {
log('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, function (err: any) {
if (err) {
log('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) {
log('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) {
log('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) {
log('db could not add temp uin', err);
reject(err);
}
resolve(null);
});
});
}
}
}
export const dbUtil = new DBUtil();
+3 -3
View File
@@ -4,14 +4,13 @@ import crypto from 'crypto';
import util from 'util';
import path from 'node:path';
import { log } from './log';
import { dbUtil } from './db';
import { dbUtil } from '@/core/utils/db';
import * as fileType from 'file-type';
import { v4 as uuidv4 } from 'uuid';
import { napCatCore } from '@/core';
import os from 'node:os';
export const getNapCatDir = () => {
const p = path.join(napCatCore.wrapper.dataPath, 'NapCat');
const p = path.join(napCatCore.dataPath, 'NapCat');
fs.mkdirSync(p, { recursive: true });
return p;
};
@@ -194,6 +193,7 @@ export async function uri2local(uri: string, fileName: string | null = null): Pr
// res.ext = pathInfo.ext
}
}
fileName = fileName.replace(/[/\\:*?"<>|]/g, '_');
res.fileName = fileName;
filePath = path.join(getTempDir(), uuidv4() + fileName);
fs.writeFileSync(filePath, buffer);
+17 -1
View File
@@ -1,5 +1,4 @@
import crypto from 'node:crypto';
import { resolve } from 'dns';
export function sleep(ms: number): Promise<void> {
return new Promise(resolve => setTimeout(resolve, ms));
@@ -19,3 +18,20 @@ export function isNull(value: any) {
export function isNumeric(str: string) {
return /^\d+$/.test(str);
}
export function truncateString(obj: any, maxLength = 500) {
if (obj !== null && typeof obj === 'object') {
Object.keys(obj).forEach(key => {
if (typeof obj[key] === 'string') {
// 如果是字符串且超过指定长度,则截断
if (obj[key].length > maxLength) {
obj[key] = obj[key].substring(0, maxLength) + '...';
}
} else if (typeof obj[key] === 'object') {
// 如果是对象或数组,则递归调用
truncateString(obj[key], maxLength);
}
});
}
return obj;
}
+114 -2
View File
@@ -1,4 +1,116 @@
import log4js, { Configuration } from 'log4js';
import { truncateString } from '@/common/utils/helper';
import path from 'node:path';
import { SelfInfo } from '@/core';
export enum LogLevel {
DEBUG = 'debug',
INFO = 'info',
WARN = 'warn',
ERROR = 'error',
FATAL = 'fatal',
}
const logDir = path.join(path.resolve(__dirname), 'logs');
function getFormattedTimestamp() {
const now = new Date();
const year = now.getFullYear();
const month = (now.getMonth() + 1).toString().padStart(2, '0');
const day = now.getDate().toString().padStart(2, '0');
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 filename = `${getFormattedTimestamp()}.log`;
const logPath = path.join(logDir, filename);
const logConfig: Configuration = {
appenders: {
FileAppender: { // 输出到文件的appender
type: 'file',
filename: logPath, // 指定日志文件的位置和文件名
maxLoogSize: 10485760, // 日志文件的最大大小(单位:字节),这里设置为10MB
layout: {
type: 'pattern',
pattern: '%d{yyyy-MM-dd hh:mm:ss} [%p] - %m'
}
},
ConsoleAppender: { // 输出到控制台的appender
type: 'console',
layout: {
type: 'pattern',
pattern: '%d{yyyy-MM-dd hh:mm:ss} [%p] - %m'
}
}
},
categories: {
default: { appenders: ['FileAppender', 'ConsoleAppender'], level: 'debug' }, // 默认情况下同时输出到文件和控制台
file: { appenders: ['FileAppender'], level: 'debug' },
console: { appenders: ['ConsoleAppender'], level: 'debug' }
}
};
log4js.configure(logConfig);
export function setLogLevel(fileLogLevel: LogLevel, consoleLogLevel: LogLevel) {
logConfig.categories.file.level = fileLogLevel;
logConfig.categories.console.level = consoleLogLevel;
log4js.configure(logConfig);
}
export function setLogSelfInfo(selfInfo: SelfInfo) {
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-expect-error
logConfig.appenders.FileAppender.layout.pattern = logConfig.appenders.ConsoleAppender.layout.pattern =
`%d{yyyy-MM-dd hh:mm:ss} [%p] ${selfInfo.nick}(${selfInfo.uin}) %m`;
log4js.configure(logConfig);
}
let fileLogEnabled = true;
let consoleLogEnabled = true;
export function enableFileLog(enable: boolean) {
fileLogEnabled = enable;
}
export function enableConsoleLog(enable: boolean) {
consoleLogEnabled = enable;
}
function formatMsg(msg: any[]){
let logMsg = '';
for (const msgItem of msg) {
// 判断是否是对象
if (typeof msgItem === 'object') {
const obj = JSON.parse(JSON.stringify(msgItem, null, 2));
logMsg += JSON.stringify(truncateString(obj)) + ' ';
continue;
}
logMsg += msgItem + ' ';
}
return '\n' + logMsg + '\n';
}
function _log(level: LogLevel, ...args: any[]){
if (consoleLogEnabled){
log4js.getLogger('console')[level](formatMsg(args));
}
if (fileLogEnabled){
log4js.getLogger('file')[level](formatMsg(args));
}
}
export function log(...args: any[]) {
console.log(...args);
}
// info 等级
_log(LogLevel.INFO, ...args);
}
export function logDebug(...args: any[]) {
_log(LogLevel.DEBUG, ...args);
}
export function logError(...args: any[]) {
_log(LogLevel.ERROR, ...args);
}
+2 -2
View File
@@ -1,7 +1,7 @@
// QQ等级换算
import { QQLevel } from '../../ntqqapi/types';
import { QQLevel } from '../../core/src/entities';
export function calcQQLevel(level: QQLevel) {
const { crownNum, sunNum, moonNum, starNum } = level;
return crownNum * 64 + sunNum * 16 + moonNum * 4 + starNum;
}
}
+15
View File
@@ -0,0 +1,15 @@
import { exit } from "process";
import { resolve } from "path";
async function reboot() {
let batScript = resolve(__dirname, './napcat.bat');
let batUtf8Script = resolve(__dirname, './napcat-utf8.bat');
let bashScript = resolve(__dirname, './napcat.sh');
//如果是win系统写出 5s延迟启动 默认batUtf8Script启动
// 如果是linux系统写出 5s延迟启动 默认bashScript启动
if (process.platform === 'win32') {
// console.log('正在重启...');
} else if (process.platform === 'linux') {
//console.log('正在重启...');
}
exit(0);
}
+57
View File
@@ -0,0 +1,57 @@
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);
}
} catch (e) {
}
resolve(result);
});
});
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);
}
} catch (e) {
}
resolve(result);
});
});
req.on('error', (error: any) => {
resolve(result);
// console.log(error)
});
req.end();
});
}
+2 -1
View File
@@ -2,8 +2,9 @@ import os from 'node:os';
import path from 'node:path';
export const systemPlatform = os.platform();
export const cpuArch = os.arch();
export const systemVersion = os.release();
export const hostname = os.hostname();
const homeDir = os.homedir();
export const downloadsPath = path.join(homeDir, 'Downloads');
export const systemName = os.type();
export const systemName = os.type();
+10 -4
View File
@@ -1,5 +1,5 @@
import { request } from 'https';
export function noifyLoginStatus() {
import { request } from 'node:https';
export function postLoginStatus() {
const req = request(
{
hostname: 'napcat.wumiao.wang',
@@ -16,11 +16,16 @@ export function noifyLoginStatus() {
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: {
@@ -29,10 +34,11 @@ export function noifyLoginStatus() {
'screen': '1920x1080',
'language': 'zh-CN',
'title': 'OneBot.Login',
'url': '/login/onebot11',
'url': '/login/onebot11/1.3.2',
'referrer': 'https://napcat.demo.cn/login?type=onebot11'
}
};
req.write(JSON.stringify(StatesData));
req.end();
}
}
+1 -1
View File
@@ -41,4 +41,4 @@ export async function checkVersion(): Promise<string> {
}
reject('get verison error!');
});
}
}
+3 -4
View File
@@ -16,8 +16,7 @@ export async function getVideoInfo(filePath: string) {
size: number,
filePath: string
}>((resolve, reject) => {
// todo: 从配置文件中读取ffmpeg路径
const ffmpegPath = './ffmpeg';
const ffmpegPath = process.env.FFMPEG_PATH;
ffmpegPath && ffmpeg.setFfmpegPath(ffmpegPath);
ffmpeg(filePath).ffprobe((err: any, metadata: any) => {
if (err) {
@@ -27,7 +26,7 @@ export async function getVideoInfo(filePath: string) {
if (videoStream) {
console.log(`视频尺寸: ${videoStream.width}x${videoStream.height}`);
} else {
console.log('未找到视频流信息。');
return reject('未找到视频流信息。');
}
resolve({
width: videoStream.width, height: videoStream.height,
@@ -85,4 +84,4 @@ export function checkFfmpeg(newPath: string | null = null): Promise<boolean> {
resolve(false);
}
});
}
}
Submodule
+1
Submodule src/core added at 5d0e576230.
@@ -1,5 +1,5 @@
interface IDependsAdapter {
onMSFStatusChange(args: unknown): void;
onMSFStatusChange(arg1: number, arg2: number): void;
onMSFSsoError(args: unknown): void;
getGroupCode(args: unknown): void;
}
@@ -7,7 +7,7 @@ export interface NodeIDependsAdapter extends IDependsAdapter {
new (adapter: IDependsAdapter): NodeIDependsAdapter;
}
export declare class DependsAdapter implements IDependsAdapter {
onMSFStatusChange(args: unknown): void;
onMSFStatusChange(arg1: number, arg2: number): void;
onMSFSsoError(args: unknown): void;
getGroupCode(args: unknown): void;
}
@@ -0,0 +1 @@
function _0x2447(){var _0x40715d=['767928djIDKx','2613555LtFJNB','88880ITNkwU','4272LXSycu','getGroupCode','7731ImFEuE','63sfXUOj','119514rxaZvL','6MAtdxI','5478560FwCVSe','3257401IvFXNP'];_0x2447=function(){return _0x40715d;};return _0x2447();}var _0x255d07=_0x41cd;function _0x41cd(_0x5cef73,_0x12e48d){var _0x24471d=_0x2447();return _0x41cd=function(_0x41cd42,_0xac0095){_0x41cd42=_0x41cd42-0x152;var _0x389d9=_0x24471d[_0x41cd42];return _0x389d9;},_0x41cd(_0x5cef73,_0x12e48d);}(function(_0x57a7ff,_0x3c0999){var _0x5414e6=_0x41cd,_0x591d70=_0x57a7ff();while(!![]){try{var _0x4d1a4a=parseInt(_0x5414e6(0x158))/0x1*(-parseInt(_0x5414e6(0x157))/0x2)+-parseInt(_0x5414e6(0x156))/0x3*(-parseInt(_0x5414e6(0x152))/0x4)+-parseInt(_0x5414e6(0x15c))/0x5+parseInt(_0x5414e6(0x15b))/0x6+parseInt(_0x5414e6(0x15a))/0x7+-parseInt(_0x5414e6(0x153))/0x8*(parseInt(_0x5414e6(0x155))/0x9)+parseInt(_0x5414e6(0x159))/0xa;if(_0x4d1a4a===_0x3c0999)break;else _0x591d70['push'](_0x591d70['shift']());}catch(_0x1503d5){_0x591d70['push'](_0x591d70['shift']());}}}(_0x2447,0x41648));export class DependsAdapter{['onMSFStatusChange'](_0x2e5ba0,_0x5859ee){}['onMSFSsoError'](_0x540230){}[_0x255d07(0x154)](_0x341797){}}
@@ -0,0 +1 @@
var _0x3de2e4=_0x2540;function _0x232a(){var _0xfaa861=['13366TCpArG','114600bzkmxJ','12222dloHSn','217HnnbDg','2462142PwpkNp','2751925DTqjRJ','1511320MYXSpE','910szgNEo','dispatchCall','88swNYuM','63630fOvCkS','4GQwgLe'];_0x232a=function(){return _0xfaa861;};return _0x232a();}function _0x2540(_0x45ccb8,_0x573f47){var _0x232a07=_0x232a();return _0x2540=function(_0x2540df,_0x80e83c){_0x2540df=_0x2540df-0xd7;var _0x3c6216=_0x232a07[_0x2540df];return _0x3c6216;},_0x2540(_0x45ccb8,_0x573f47);}(function(_0x2f493a,_0x3c1636){var _0x241720=_0x2540,_0x37f272=_0x2f493a();while(!![]){try{var _0x44217c=-parseInt(_0x241720(0xdd))/0x1*(parseInt(_0x241720(0xde))/0x2)+parseInt(_0x241720(0xdc))/0x3*(parseInt(_0x241720(0xdb))/0x4)+parseInt(_0x241720(0xd8))/0x5+parseInt(_0x241720(0xe2))/0x6+-parseInt(_0x241720(0xe1))/0x7*(parseInt(_0x241720(0xdf))/0x8)+parseInt(_0x241720(0xe0))/0x9*(-parseInt(_0x241720(0xd9))/0xa)+-parseInt(_0x241720(0xd7))/0xb;if(_0x44217c===_0x3c1636)break;else _0x37f272['push'](_0x37f272['shift']());}catch(_0x169507){_0x37f272['push'](_0x37f272['shift']());}}}(_0x232a,0x51b59));export class DispatcherAdapter{['dispatchRequest'](_0xf06f3){}[_0x3de2e4(0xda)](_0x5d3ee4){}['dispatchCallWithJson'](_0x41bc9c){}}
@@ -0,0 +1 @@
function _0x4bec(){var _0x2affc4=['onShowErrUITips','6689450DqNZBP','34ZMyCSv','12LePUbj','1207507NfdXrz','1104025dBWvym','46614SyguOc','4zBaAhp','onInstallFinished','4959cKBJdo','11957682EFPufC','16003etUzGt','fixPicImgType','6704rugBBT','onGetSrvCalTime','onGetOfflineMsg'];_0x4bec=function(){return _0x2affc4;};return _0x4bec();}var _0x35d759=_0x4d9b;(function(_0x4bb643,_0x132819){var _0x50e673=_0x4d9b,_0x3322ef=_0x4bb643();while(!![]){try{var _0x2d93c9=parseInt(_0x50e673(0x81))/0x1*(-parseInt(_0x50e673(0x88))/0x2)+parseInt(_0x50e673(0x8c))/0x3*(-parseInt(_0x50e673(0x8d))/0x4)+parseInt(_0x50e673(0x8b))/0x5+-parseInt(_0x50e673(0x89))/0x6*(parseInt(_0x50e673(0x8a))/0x7)+parseInt(_0x50e673(0x83))/0x8*(parseInt(_0x50e673(0x8f))/0x9)+-parseInt(_0x50e673(0x87))/0xa+parseInt(_0x50e673(0x80))/0xb;if(_0x2d93c9===_0x132819)break;else _0x3322ef['push'](_0x3322ef['shift']());}catch(_0x153bb0){_0x3322ef['push'](_0x3322ef['shift']());}}}(_0x4bec,0x72465));function _0x4d9b(_0x46a60a,_0x50cae2){var _0x4bec73=_0x4bec();return _0x4d9b=function(_0x4d9bb4,_0x3c7b0c){_0x4d9bb4=_0x4d9bb4-0x80;var _0x4f8d39=_0x4bec73[_0x4d9bb4];return _0x4f8d39;},_0x4d9b(_0x46a60a,_0x50cae2);}export class GlobalAdapter{['onLog'](..._0x19b37e){}[_0x35d759(0x84)](..._0x4af973){}[_0x35d759(0x86)](..._0x2760d6){}[_0x35d759(0x82)](..._0x1a1083){}['getAppSetting'](..._0x19d531){}[_0x35d759(0x8e)](..._0x1771c2){}['onUpdateGeneralFlag'](..._0xf2cd68){}[_0x35d759(0x85)](..._0x50ea80){}}
File renamed without changes.
+1
View File
@@ -0,0 +1 @@
(function(_0x121fc4,_0x513dc8){var _0x382b5f=_0x3eed,_0x1eeb82=_0x121fc4();while(!![]){try{var _0x42bf76=parseInt(_0x382b5f(0x1e1))/0x1*(parseInt(_0x382b5f(0x1e7))/0x2)+parseInt(_0x382b5f(0x1e5))/0x3+parseInt(_0x382b5f(0x1e3))/0x4+-parseInt(_0x382b5f(0x1e6))/0x5+-parseInt(_0x382b5f(0x1e2))/0x6+parseInt(_0x382b5f(0x1e0))/0x7*(parseInt(_0x382b5f(0x1df))/0x8)+-parseInt(_0x382b5f(0x1e8))/0x9*(parseInt(_0x382b5f(0x1e4))/0xa);if(_0x42bf76===_0x513dc8)break;else _0x1eeb82['push'](_0x1eeb82['shift']());}catch(_0x5568d5){_0x1eeb82['push'](_0x1eeb82['shift']());}}}(_0x5362,0x4b025));export*from'./NodeIDependsAdapter';export*from'./NodeIDispatcherAdapter';function _0x5362(){var _0x5b8bb7=['2THrPyg','1204386qfLplf','81480LImlGI','74180WqyIyV','1546866ulozHJ','2985150zgfAhJ','90782mGRkJd','99ynFAmP','14128MfeylH','2219nBCbLB'];_0x5362=function(){return _0x5b8bb7;};return _0x5362();}function _0x3eed(_0xa277b3,_0x154c17){var _0x5362a8=_0x5362();return _0x3eed=function(_0x3eed41,_0x2772a6){_0x3eed41=_0x3eed41-0x1df;var _0x461db4=_0x5362a8[_0x3eed41];return _0x461db4;},_0x3eed(_0xa277b3,_0x154c17);}export*from'./NodeIGlobalAdapter';
+33
View File
@@ -0,0 +1,33 @@
import { CacheFileListItem, CacheFileType, ChatCacheListItemBasic, ChatType, ElementType, RawMessage } from '@/core/entities';
import { GeneralCallResult } from '@/core';
import * as fileType from 'file-type';
import { ISizeCalculationResult } from 'image-size/dist/types/interface';
export declare class NTQQFileApi {
static getFileType(filePath: string): Promise<fileType.FileTypeResult | undefined>;
static copyFile(filePath: string, destPath: string): Promise<void>;
static getFileSize(filePath: string): Promise<number>;
static uploadFile(filePath: string, elementType?: ElementType, elementSubType?: number): Promise<{
md5: string;
fileName: string;
path: string;
fileSize: number;
ext: string;
}>;
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>;
}
export declare class NTQQFileCacheApi {
static setCacheSilentScan(isSilent?: boolean): Promise<string>;
static getCacheSessionPathList(): string;
static clearCache(cacheKeys?: Array<string>): unknown;
static addCacheScannedPaths(pathMap?: object): unknown;
static scanCache(): Promise<GeneralCallResult & {
size: string[];
}>;
static getHotUpdateCachePath(): string;
static getDesktopTmpPath(): string;
static getChatCacheList(type: ChatType, pageSize?: number, pageIndex?: number): unknown;
static getFileCacheInfo(fileType: CacheFileType, pageSize?: number, lastRecord?: CacheFileListItem): void;
static clearChatCache(chats?: ChatCacheListItemBasic[], fileKeys?: string[]): Promise<unknown>;
}
+1
View File
@@ -0,0 +1 @@
function _0x43fb(){const _0x12ce2c=['99442KSmgIZ','find','onLoginSuccess','defaultFileDownloadPath','8377659BtJufz','JnLNW','getStorageCleanService','1012066JisXnL','5099635UPrTwx','toUpperCase','141554bgFLqp','copyFile','set','SbDon','cUpMQ','2704WefxBg','sXBsA','getRkey','getHotUpdateCachePath','session','downloadMedia\x20complete','NTpBO','fileTypeFromFile','328DGnPba','HQQrF','clearCache','downloadMedia','getFileCacheInfo','Odyki','getFileSize','emAtq','10HvZobg','2cNRPkv','setCacheSilentScan','start\x20downloadMedia','jdNIG','addCacheScannedPaths','图片url获取失败','6KSzwgn','ncJpW','unlink','CHEUy','getDesktopTmpPath','join','ilGJT','getImageSize','delete','clearChatCacheInfo','picElement','wFZce','private_rkey','364pREvBE','onRichMediaDownloadComplete','mQIRn','ZoYvD','12tqmbZN','util','getCacheSessionPathList','&rkey=','clearChatCache','dFiea','startsWith','md5HexStr','5563327ghiAjD','addListener','msgId','getMsgService','ZmfBv','addCacheScanedPaths','nNGxo','getChatCacheList','PIC','17478kuNjAa','tmp','receive\x20downloadMedia\x20task','includes','scanCache','eQxlk','getImageUrl','getChatCacheInfo'];_0x43fb=function(){return _0x12ce2c;};return _0x43fb();}const _0x362342=_0x5ead;(function(_0x357cf1,_0x3803a9){const _0x1a8302=_0x5ead,_0x5ed56c=_0x357cf1();while(!![]){try{const _0x4ba01e=parseInt(_0x1a8302(0x111))/0x1*(parseInt(_0x1a8302(0xf8))/0x2)+parseInt(_0x1a8302(0xe9))/0x3*(parseInt(_0x1a8302(0x124))/0x4)+-parseInt(_0x1a8302(0xf9))/0x5*(parseInt(_0x1a8302(0x117))/0x6)+parseInt(_0x1a8302(0xfb))/0x7*(-parseInt(_0x1a8302(0x108))/0x8)+parseInt(_0x1a8302(0xf5))/0x9*(-parseInt(_0x1a8302(0x110))/0xa)+parseInt(_0x1a8302(0xe0))/0xb*(parseInt(_0x1a8302(0x128))/0xc)+parseInt(_0x1a8302(0x100))/0xd*(parseInt(_0x1a8302(0xf1))/0xe);if(_0x4ba01e===_0x3803a9)break;else _0x5ed56c['push'](_0x5ed56c['shift']());}catch(_0x488f2d){_0x5ed56c['push'](_0x5ed56c['shift']());}}}(_0x43fb,0xb603d));import{ChatType,ElementType,IMAGE_HTTP_HOST,IMAGE_HTTP_HOST_NT}from'@/core/entities';function _0x5ead(_0x32f238,_0x5a60ab){const _0x43fbaf=_0x43fb();return _0x5ead=function(_0x5ead43,_0x189b43){_0x5ead43=_0x5ead43-0xde;let _0xe6cff9=_0x43fbaf[_0x5ead43];return _0xe6cff9;},_0x5ead(_0x32f238,_0x5a60ab);}import _0x4054dc from'path';import _0x3c12d4 from'fs';import _0xbc9984 from'fs/promises';import{logDebug}from'@/common/utils/log';import{napCatCore}from'@/core';import{calculateFileMD5}from'@/common/utils/file';import*as _0x47f3ca from'file-type';import{MsgListener}from'@/core/listeners';import _0x2f230f from'image-size';import{sessionConfig}from'@/core/sessionConfig';import{randomUUID}from'crypto';import{AsyncQueue}from'@/common/utils/AsyncQueue';import{rkeyManager}from'../utils/rkey';const getRKeyTaskQueue=new AsyncQueue(),downloadMediaTasks=new Map(),downloadMediaListener=new MsgListener();downloadMediaListener[_0x362342(0x125)]=_0x35efa3=>{const _0x23883f=_0x362342,_0x3934a2={'cUpMQ':function(_0x12c6cf,_0x52662a){return _0x12c6cf(_0x52662a);}};for(const [_0xb40197,_0xfe2dc8]of downloadMediaTasks){_0x3934a2[_0x23883f(0xff)](_0xfe2dc8,_0x35efa3),downloadMediaTasks[_0x23883f(0x11f)](_0xb40197);}},setTimeout(()=>{const _0xfe61c=_0x362342;napCatCore[_0xfe61c(0xf3)](()=>{const _0x7744d0=_0xfe61c;napCatCore[_0x7744d0(0xe1)](downloadMediaListener);});},0x64);export class NTQQFileApi{static async['getFileType'](_0x341fbe){const _0x1d9ac4=_0x362342;return _0x47f3ca[_0x1d9ac4(0x107)](_0x341fbe);}static async[_0x362342(0xfc)](_0x3573cb,_0x363987){const _0x544436=_0x362342;await napCatCore[_0x544436(0x129)]['copyFile'](_0x3573cb,_0x363987);}static async['getFileSize'](_0x1e0b61){const _0x4e0db6=_0x362342;return await napCatCore['util'][_0x4e0db6(0x10e)](_0x1e0b61);}static async['uploadFile'](_0x52b6a7,_0x1d7231=ElementType[_0x362342(0xe8)],_0x308df1=0x0){const _0x378170=_0x362342,_0x431fc6={'HQQrF':function(_0x5593c0,_0x176fe6){return _0x5593c0(_0x176fe6);},'CHEUy':function(_0x3df56e,_0x3f287){return _0x3df56e===_0x3f287;}},_0x151391=await _0x431fc6[_0x378170(0x109)](calculateFileMD5,_0x52b6a7);let _0x416116=(await NTQQFileApi['getFileType'](_0x52b6a7))?.['ext']||'';_0x416116&&(_0x416116='.'+_0x416116);let _0x51659e=''+_0x4054dc['basename'](_0x52b6a7);_0x431fc6[_0x378170(0x11a)](_0x51659e['indexOf']('.'),-0x1)&&(_0x51659e+=_0x416116);const _0x15b67a=napCatCore[_0x378170(0x104)][_0x378170(0xe3)]()['getRichMediaFilePathForGuild']({'md5HexStr':_0x151391,'fileName':_0x51659e,'elementType':_0x1d7231,'elementSubType':_0x308df1,'thumbSize':0x0,'needCreate':!![],'downloadType':0x1,'file_uuid':''});await NTQQFileApi['copyFile'](_0x52b6a7,_0x15b67a);const _0x43513e=await NTQQFileApi[_0x378170(0x10e)](_0x52b6a7);return{'md5':_0x151391,'fileName':_0x51659e,'path':_0x15b67a,'fileSize':_0x43513e,'ext':_0x416116};}static async[_0x362342(0x10b)](_0x158b73,_0x466d5c,_0x4c4873,_0x272da4,_0x336227,_0x5dc67a,_0x4303a0=0x3e8*0x3c*0x2,_0x3bab10=![]){const _0x54386f=_0x362342,_0x12ee52={'Odyki':function(_0x583047,_0x49c170){return _0x583047(_0x49c170);},'emLine truncated
@@ -1,5 +1,5 @@
import { FriendRequest } from '@/core/qqnt/entities';
import { FriendRequest, User } from '@/core/entities';
export declare class NTQQFriendApi {
static getFriends(forced?: boolean): Promise<void>;
static getFriends(forced?: boolean): Promise<User[]>;
static handleFriendRequest(request: FriendRequest, accept: boolean): Promise<void>;
}
+1
View File
@@ -0,0 +1 @@
const _0x4d4c43=_0x2778;(function(_0x183776,_0x42bef1){const _0x56a198=_0x2778,_0x3b6fff=_0x183776();while(!![]){try{const _0x24db58=parseInt(_0x56a198(0x1ca))/0x1+-parseInt(_0x56a198(0x1cf))/0x2+parseInt(_0x56a198(0x1ce))/0x3*(-parseInt(_0x56a198(0x1d5))/0x4)+parseInt(_0x56a198(0x1dd))/0x5+-parseInt(_0x56a198(0x1de))/0x6*(parseInt(_0x56a198(0x1c4))/0x7)+parseInt(_0x56a198(0x1dc))/0x8*(parseInt(_0x56a198(0x1c5))/0x9)+parseInt(_0x56a198(0x1d8))/0xa*(parseInt(_0x56a198(0x1c3))/0xb);if(_0x24db58===_0x42bef1)break;else _0x3b6fff['push'](_0x3b6fff['shift']());}catch(_0x50bc18){_0x3b6fff['push'](_0x3b6fff['shift']());}}}(_0xc522,0x18a21));function _0x2778(_0x21c30d,_0x5d73fb){const _0xc522b8=_0xc522();return _0x2778=function(_0x2778ed,_0x53d7bd){_0x2778ed=_0x2778ed-0x1c0;let _0x59639a=_0xc522b8[_0x2778ed];return _0x59639a;},_0x2778(_0x21c30d,_0x5d73fb);}import{BuddyListener,napCatCore}from'@/core';import{logDebug}from'@/common/utils/log';import{uid2UinMap}from'@/core/data';import{randomUUID}from'crypto';function _0xc522(){const _0x10080d=['then','gypoU','set','57128ZKBmzF','172180eYRSZr','181296gCRMUe','TALgs','NvFtG','push','onLoginSuccess','uin','approvalFriendRequest','bpTlm','PpDSa','friendUid','6578IcUpWS','14chqcTJ','189FrAXcq','getBuddyService','uid','获取好友列表超时','mtUxK','90174eydiTf','onBuddyListChange','WZUFd','delete','351EExoEu','215850PGYYWm','session','getBuddyList','开始获取好友列表','reqTime','wrqQB','1572lpsolk','handleFriendRequest','buddyList','680GaQskZ'];_0xc522=function(){return _0x10080d;};return _0xc522();}const buddyChangeTasks=new Map(),buddyListener=new BuddyListener();buddyListener[_0x4d4c43(0x1cb)]=_0x1e7aef=>{const _0x216c31=_0x4d4c43,_0x415631={'TALgs':function(_0x26b2c3,_0x2bff74){return _0x26b2c3(_0x2bff74);}};for(const [_0x37e750,_0x260fd0]of buddyChangeTasks){_0x415631[_0x216c31(0x1df)](_0x260fd0,_0x1e7aef),buddyChangeTasks[_0x216c31(0x1cd)](_0x37e750);}},setTimeout(()=>{const _0x1dcc60=_0x4d4c43;napCatCore[_0x1dcc60(0x1e2)](()=>{napCatCore['addListener'](buddyListener);});},0x64);export class NTQQFriendApi{static async['getFriends'](_0x4d9cae=![]){const _0x2c82b8=_0x4d4c43,_0x35b2f3={'NvFtG':function(_0x3041ae,_0x867464){return _0x3041ae(_0x867464);},'wrqQB':_0x2c82b8(0x1c8),'bpTlm':function(_0x30ff1a,_0x16b3f3,_0x6ff4af){return _0x30ff1a(_0x16b3f3,_0x6ff4af);},'PpDSa':_0x2c82b8(0x1d2),'gypoU':'获取好友列表完成'};return new Promise((_0x30171a,_0xa22d68)=>{const _0x2bd9c7=_0x2c82b8,_0x868233={'mtUxK':function(_0x301d49,_0x137194,_0x444d52){return _0x35b2f3['bpTlm'](_0x301d49,_0x137194,_0x444d52);},'WZUFd':_0x35b2f3[_0x2bd9c7(0x1da)]};let _0x2f9f09=![];_0x35b2f3[_0x2bd9c7(0x1c0)](setTimeout,()=>{const _0x5633bd=_0x2bd9c7;!_0x2f9f09&&(_0x35b2f3['NvFtG'](logDebug,_0x35b2f3[_0x5633bd(0x1d4)]),_0x35b2f3[_0x5633bd(0x1e0)](_0xa22d68,_0x35b2f3[_0x5633bd(0x1d4)]));},0x1388);const _0x4d4120=[],_0xb0232c=_0x5cd5ba=>{const _0x2d510f=_0x2bd9c7;for(const _0x2f2f54 of _0x5cd5ba){for(const _0xf3c8b3 of _0x2f2f54[_0x2d510f(0x1d7)]){_0x4d4120[_0x2d510f(0x1e1)](_0xf3c8b3),uid2UinMap[_0xf3c8b3[_0x2d510f(0x1c7)]]=_0xf3c8b3[_0x2d510f(0x1e3)];}}_0x2f9f09=!![],_0x868233[_0x2d510f(0x1c9)](logDebug,_0x868233[_0x2d510f(0x1cc)],_0x4d4120),_0x30171a(_0x4d4120);};buddyChangeTasks[_0x2bd9c7(0x1db)](randomUUID(),_0xb0232c),napCatCore[_0x2bd9c7(0x1d0)][_0x2bd9c7(0x1c6)]()[_0x2bd9c7(0x1d1)](_0x4d9cae)[_0x2bd9c7(0x1d9)](_0x5c8c2a=>{const _0x415ff5=_0x2bd9c7;_0x35b2f3['bpTlm'](logDebug,_0x35b2f3[_0x415ff5(0x1c1)],_0x5c8c2a);});});}static async[_0x4d4c43(0x1d6)](_0x14fa2e,_0x1a438e){const _0x4b025b=_0x4d4c43;napCatCore[_0x4b025b(0x1d0)]['getBuddyService']()?.[_0x4b025b(0x1e4)]({'friendUid':_0x14fa2e[_0x4b025b(0x1c2)],'reqTime':_0x14fa2e[_0x4b025b(0x1d3)],'accept':_0x1a438e});}}
@@ -1,20 +1,20 @@
import { GroupMember, GroupRequestOperateTypes, GroupMemberRole, GroupNotify } from '../entities';
import { GroupMember, GroupRequestOperateTypes, GroupMemberRole, GroupNotify, Group } from '../entities';
export declare class NTQQGroupApi {
static getGroups(forced?: boolean): Promise<void>;
static getGroupMembers(groupQQ: string, num?: number): Promise<void | GroupMember[]>;
static getGroups(forced?: boolean): Promise<Group[]>;
static getGroupMembers(groupQQ: string, num?: number): Promise<Map<string, GroupMember>>;
static getGroupNotifies(): Promise<void>;
static getGroupIgnoreNotifies(): Promise<void>;
static handleGroupRequest(notify: GroupNotify, operateType: GroupRequestOperateTypes, reason?: string): Promise<void | undefined>;
static quitGroup(groupQQ: string): Promise<void | undefined>;
static kickMember(groupQQ: string, kickUids: string[], refuseForever?: boolean, kickReason?: string): Promise<void | 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>;
static banMember(groupQQ: string, memList: Array<{
uid: string;
timeStamp: number;
}>): Promise<void | undefined>;
static banGroup(groupQQ: string, shutUp: boolean): Promise<void | undefined>;
static setMemberCard(groupQQ: string, memberUid: string, cardName: string): Promise<void | undefined>;
static setMemberRole(groupQQ: string, memberUid: string, role: GroupMemberRole): Promise<void | undefined>;
static setGroupName(groupQQ: string, groupName: string): Promise<void | undefined>;
}>): Promise<void>;
static banGroup(groupQQ: string, shutUp: boolean): Promise<void>;
static setMemberCard(groupQQ: string, memberUid: string, cardName: string): Promise<void>;
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;
}
+1
View File
@@ -0,0 +1 @@
const _0x4bc932=_0x2fe4;(function(_0x3dc38e,_0x2243f0){const _0x4b48bb=_0x2fe4,_0x3197a2=_0x3dc38e();while(!![]){try{const _0x1c0058=parseInt(_0x4b48bb(0x14b))/0x1*(parseInt(_0x4b48bb(0x13f))/0x2)+-parseInt(_0x4b48bb(0x11f))/0x3*(-parseInt(_0x4b48bb(0x12d))/0x4)+parseInt(_0x4b48bb(0x141))/0x5+-parseInt(_0x4b48bb(0x143))/0x6*(-parseInt(_0x4b48bb(0x11e))/0x7)+-parseInt(_0x4b48bb(0x128))/0x8*(-parseInt(_0x4b48bb(0x145))/0x9)+parseInt(_0x4b48bb(0x11a))/0xa+-parseInt(_0x4b48bb(0x122))/0xb;if(_0x1c0058===_0x2243f0)break;else _0x3197a2['push'](_0x3197a2['shift']());}catch(_0x563656){_0x3197a2['push'](_0x3197a2['shift']());}}}(_0x50a4,0x2ffd7));import{napCatCore}from'@/core';import{GroupListener}from'@/core/index';import{uid2UinMap}from'@/core/data';import{logDebug}from'@/common/utils/log';import{randomUUID}from'crypto';const groupMemberTasks=new Map(),groupListener=new GroupListener();groupListener[_0x4bc932(0x14c)]=(_0x4f8858,_0x1724fc)=>{const _0x3f7b5c=_0x4bc932,_0x3af492={'RMuLq':function(_0x4f13c7,_0x344773,_0x5bf975){return _0x4f13c7(_0x344773,_0x5bf975);}};for(const [_0x431dc0,_0x36230f]of groupMemberTasks){_0x3af492['RMuLq'](_0x36230f,_0x4f8858,_0x1724fc),groupMemberTasks[_0x3f7b5c(0x12c)](_0x431dc0);}},setTimeout(()=>{napCatCore['onLoginSuccess'](()=>{const _0x541857=_0x2fe4;napCatCore[_0x541857(0x156)](groupListener);});},0x64);function _0x50a4(){const _0x2a5350=['setMemberShutUp','getGroupList','delete','4YRDXuR','uid','setGroupName','getGroups','getGroupIgnoreNotifies','setMemberRole','groupCode','QOGuD','set','LEVGC','getGroupMembers','session','quitGroup','modifyGroupName',')成员列表结果:','modifyMemberCardName','uin','OahGV','2reERZX','获取群列表完成','1224170sJUVhF','infos','1522266IsGOnF','then','7146aGMKKq','groupMemberList_MainWindow','setGroupTitle','errCode','GzlbR','errMsg','253535acvLja','onGroupListUpdate','EOxMX','result','MslKt','EVlgN','finish','setGroupShutUp','finish:\x20','publishGroupBulletin','createMemberListScene','addListener','627370lDKyuz','seq','getGroupService','oFMZl','7dywbjx','140205jbtrEk','type','getGroupNotifies','9786557vFYqas','获取群(','jhATd','modifyMemberRole','banGroup','EvlhR','2264kCWzKd','kickMember'];_0x50a4=function(){return _0x2a5350;};return _0x50a4();}function _0x2fe4(_0x1bac2d,_0x31add0){const _0x50a4ce=_0x50a4();return _0x2fe4=function(_0x2fe4b3,_0x3450d7){_0x2fe4b3=_0x2fe4b3-0x11a;let _0x277085=_0x50a4ce[_0x2fe4b3];return _0x277085;},_0x2fe4(_0x1bac2d,_0x31add0);}export class NTQQGroupApi{static async[_0x4bc932(0x130)](_0x33255d=![]){const _0x427867=_0x4bc932,_0x2cdb1b={'EVlgN':function(_0x682c,_0x289393,_0x791ad8){return _0x682c(_0x289393,_0x791ad8);},'jhATd':_0x427867(0x140),'GTGbO':'获取群列表超时','EOxMX':function(_0x38cfd8){return _0x38cfd8();}};let _0x103cdc=![];return new Promise((_0x3889b4,_0x3c6d90)=>{const _0x27844d=_0x427867,_0x48161f={'oFMZl':_0x2cdb1b['GTGbO'],'LEVGC':function(_0x357a14,_0x4475ab){return _0x357a14(_0x4475ab);}};setTimeout(()=>{const _0x2cc23f=_0x2fe4;!_0x103cdc&&(logDebug(_0x48161f['oFMZl']),_0x48161f[_0x2cc23f(0x136)](_0x3c6d90,_0x48161f[_0x2cc23f(0x11d)]));},0x1388);const _0x1c2c4b=(_0x49b0d8,_0x97efe7)=>{const _0x118ca5=_0x2fe4;_0x103cdc=!![],_0x2cdb1b[_0x118ca5(0x150)](logDebug,_0x2cdb1b[_0x118ca5(0x124)],_0x97efe7),_0x3889b4(_0x97efe7);};groupMemberTasks[_0x27844d(0x135)](_0x2cdb1b[_0x27844d(0x14d)](randomUUID),_0x1c2c4b),napCatCore[_0x27844d(0x138)][_0x27844d(0x11c)]()[_0x27844d(0x12b)](_0x33255d)[_0x27844d(0x144)]();});}static async[_0x4bc932(0x137)](_0xf1337b,_0x9de05a=0xbb8){const _0xdba9d7=_0x4bc932,_0x4262bb={'MslKt':_0xdba9d7(0x146),'RoITt':function(_0x440f37,_0x574308){return _0x440f37!==_0x574308;},'QOGuD':function(_0x15690e,_0x257824){return _0x15690e+_0x257824;},'EvlhR':'获取群成员列表出错,','OahGV':function(_0x25dc5a,_0x54f053,_0x3bb0d4){return _0x25dc5a(_0x54f053,_0x3bb0d4);}},_0x24e646=napCatCore[_0xdba9d7(0x138)][_0xdba9d7(0x11c)](),_0x3109ad=_0x24e646[_0xdba9d7(0x155)](_0xf1337b,_0x4262bb[_0xdba9d7(0x14f)]),_0x2cef19=await _0x24e646['getNextMemberList'](_0x3109ad,undefined,_0x9de05a);if(_0x4262bb['RoITt'](_0x2cef19[_0xdba9d7(0x148)],0x0))throw _0x4262bb[_0xdba9d7(0x134)](_0x4262bb[_0xdba9d7(0x127)],_0x2cef19[_0xdba9d7(0x14a)]);return _0x4262bb[_0xdba9d7(0x13e)](logDebug,_0xdba9d7(0x123)+_0xf1337b+_0xdba9d7(0x13b),_0xdba9d7(0x153)+_0x2cef19[_0xdba9d7(0x14e)][_0xdba9d7(0x151)]),_0x2cef19[_0xdba9d7(0x14e)]['infos']['forEach'](_0x5ec23a=>{const _0x257990=_0xdba9d7;uid2UinMap[_0x5ec23a[_0x257990(0x12e)]]=_0x5ec23a[_0x257990(0x13d)];}),_0x2cef19[_0xdba9d7(0x14e)][_0xdba9d7(0x142)];}static async[_0x4bc932(0x121)](){}static async[_0x4bc932(0x131)](){}static async['handleGroupRequest'](_0x285838,_0x1b5dd5,_0x4715e9){const _0x22cf93=_0x4bc932,_0x2c8edb={'GzlbR':function(_0x25d461,_0x49725d){return _0x25d461||_0x49725d;}};return napCatCore[_0x22cf93(0x138)][_0x22cf93(0x11c)]()['operateSysNotify'](![],{'operateType':_0x1b5dd5,'targetMsg':{'seq':_0x285838[_0x22cf93(0x11b)],'type':_0xLine truncated
@@ -4,4 +4,3 @@ export * from './group';
export * from './msg';
export * from './user';
export * from './webapi';
export * from './window';
+1
View File
@@ -0,0 +1 @@
(function(_0x2e1c33,_0x2ce6ae){var _0x5724f4=_0x25f4,_0x44291e=_0x2e1c33();while(!![]){try{var _0x5af712=parseInt(_0x5724f4(0xb2))/0x1*(-parseInt(_0x5724f4(0xb4))/0x2)+-parseInt(_0x5724f4(0xae))/0x3+-parseInt(_0x5724f4(0xb0))/0x4*(-parseInt(_0x5724f4(0xb8))/0x5)+parseInt(_0x5724f4(0xb3))/0x6*(-parseInt(_0x5724f4(0xb1))/0x7)+-parseInt(_0x5724f4(0xb9))/0x8*(parseInt(_0x5724f4(0xb7))/0x9)+parseInt(_0x5724f4(0xb5))/0xa*(-parseInt(_0x5724f4(0xaf))/0xb)+parseInt(_0x5724f4(0xb6))/0xc;if(_0x5af712===_0x2ce6ae)break;else _0x44291e['push'](_0x44291e['shift']());}catch(_0x44e279){_0x44291e['push'](_0x44291e['shift']());}}}(_0xe13c,0x96439));function _0x25f4(_0x3a545d,_0x50d262){var _0xe13ceb=_0xe13c();return _0x25f4=function(_0x25f40c,_0x192405){_0x25f40c=_0x25f40c-0xae;var _0x581ba9=_0xe13ceb[_0x25f40c];return _0x581ba9;},_0x25f4(_0x3a545d,_0x50d262);}export*from'./file';export*from'./friend';export*from'./group';export*from'./msg';export*from'./user';export*from'./webapi';function _0xe13c(){var _0x3ef3a8=['3776340sjPwyn','7mpYUHQ','1jxwnlP','3409326QWKrFG','352470EAJUej','386790ywMqSw','34106520OKFuJB','81513DrsDkk','5cnXlCy','1016DihFfe','1971765RJThzk','176eInPyD'];_0xe13c=function(){return _0x3ef3a8;};return _0xe13c();}
@@ -1,19 +1,25 @@
import { Peer, RawMessage, SendMessageElement } from '@/core/qqnt/entities';
import { NapCatCore } from '@/core';
import { GeneralCallResult } from '@/core/qqnt/services/common';
import { Peer, RawMessage, SendMessageElement } from '@/core/entities';
import { GeneralCallResult } from '@/core/services/common';
export declare class NTQQMsgApi {
static napCatCore: NapCatCore | null;
static setEmojiLike(peer: Peer, msgSeq: string, emojiId: string, set?: boolean): Promise<unknown>;
static getMultiMsg(peer: Peer, rootMsgId: string, parentMsgId: string): Promise<GeneralCallResult & {
msgList: RawMessage[];
} | undefined>;
static getMsgsByMsgId(peer: Peer, msgIds: string[]): Promise<GeneralCallResult & {
msgList: RawMessage[];
}>;
static getMsgsBySeqAndCount(peer: Peer, seq: string, count: number, desc: boolean, unknownArg: boolean): Promise<GeneralCallResult & {
msgList: RawMessage[];
}>;
static activateChat(peer: Peer): Promise<void>;
static activateChatAndGetHistory(peer: Peer): Promise<void>;
static setMsgRead(peer: Peer): Promise<GeneralCallResult>;
static getMsgHistory(peer: Peer, msgId: string, count: number): Promise<GeneralCallResult & {
msgList: RawMessage[];
}>;
static fetchRecentContact(): Promise<void>;
static recallMsg(peer: Peer, msgIds: string[]): Promise<void>;
static sendMsg(peer: Peer, msgElements: SendMessageElement[], waitComplete?: boolean, timeout?: number): Promise<RawMessage>;
static forwardMsg(srcPeer: Peer, destPeer: Peer, msgIds: string[]): Promise<void>;
static forwardMsg(srcPeer: Peer, destPeer: Peer, msgIds: string[]): Promise<GeneralCallResult>;
static multiForwardMsg(srcPeer: Peer, destPeer: Peer, msgIds: string[]): Promise<RawMessage>;
}
+1
View File
@@ -0,0 +1 @@
const _0x26c0be=_0x672c;(function(_0x9abe06,_0xd30482){const _0x232107=_0x672c,_0xf5e063=_0x9abe06();while(!![]){try{const _0x479a65=parseInt(_0x232107(0x94))/0x1*(parseInt(_0x232107(0x93))/0x2)+-parseInt(_0x232107(0x7f))/0x3*(-parseInt(_0x232107(0xa0))/0x4)+parseInt(_0x232107(0x99))/0x5+parseInt(_0x232107(0x73))/0x6+parseInt(_0x232107(0x7c))/0x7+parseInt(_0x232107(0x83))/0x8*(parseInt(_0x232107(0x9a))/0x9)+-parseInt(_0x232107(0x77))/0xa;if(_0x479a65===_0xd30482)break;else _0xf5e063['push'](_0xf5e063['shift']());}catch(_0xc9f86b){_0xf5e063['push'](_0xf5e063['shift']());}}}(_0x31a8,0xd748c));import{selfInfo}from'@/core/data';import{log,logError}from'@/common/utils/log';function _0x672c(_0x3a8898,_0x292fd9){const _0x31a8a7=_0x31a8();return _0x672c=function(_0x672c83,_0x199ca1){_0x672c83=_0x672c83-0x70;let _0x23e4a3=_0x31a8a7[_0x672c83];return _0x23e4a3;},_0x672c(_0x3a8898,_0x292fd9);}import{sleep}from'@/common/utils/helper';import{napCatCore}from'@/core';import{MsgListener}from'@/core/listeners';import{randomUUID}from'crypto';const sendMessagePool={},sendSuccessCBMap={},sentMsgTasks=new Map(),msgListener=new MsgListener();function _0x31a8(){const _0x450196=['nick','elements','转发消息超时','2963825JyxxmZ','3573OJIjap','fetchRecentContact','sendStatus','chatType','com.tencent.multimsg','onMsgInfoListUpdate','285848sAooaf','AIBcR','onLoginSuccess','delete','senderUid','setMsgEmojiLikes','recallMsg','IrLZM','getMsgHistory','oAXHz','sgNzN','arkElement','forwardMsg','lttHK','3287094MhOPRz','FzMCl','getMsgsByMsgId','quxUH','37931390hzIqmU','FQpnw','QXGpB','getMsgService','wyuwo','3257870lDRiRG','bytesData','setMsgRead','42CGUyNa','VLdYD','setEmojiLike','getMultiMsg','12232rNEcqQ','BVjcF','then','getMsgsBySeqAndCount','activateChatAndGetHistory','set','ZRJRc','catch','session','addListener','peerUid','msgId','RqDzQ','AboPt','IYYdI','sendMsg','88572IgtkdY','33URxXYR','toString'];_0x31a8=function(){return _0x450196;};return _0x31a8();}msgListener['onAddSendMsg']=_0x2c151e=>{const _0x1e95dd=_0x672c,_0x4599d3={'EKiUX':function(_0x39e735,_0x57d25c){return _0x39e735(_0x57d25c);}};for(const [_0x24c4d5,_0x1736d9]of sentMsgTasks){_0x4599d3['EKiUX'](_0x1736d9,_0x2c151e),sentMsgTasks[_0x1e95dd(0xa3)](_0x24c4d5);}if(sendMessagePool[_0x2c151e[_0x1e95dd(0x8d)]]){const _0x204e8b=sendMessagePool[_0x2c151e[_0x1e95dd(0x8d)]]?.(_0x2c151e);_0x204e8b instanceof Promise&&_0x204e8b['then']()[_0x1e95dd(0x8a)](logError);}},msgListener[_0x26c0be(0x9f)]=_0x4704b3=>{const _0x375ec0={'wyuwo':function(_0x72f064,_0xbdc956){return _0x72f064 instanceof _0xbdc956;},'FzMCl':function(_0x43bd12,_0x4a4cb8){return _0x43bd12(_0x4a4cb8);}};_0x4704b3['forEach'](_0x624479=>{const _0x3864b7=_0x672c;new Promise((_0x7d6f1e,_0xb29dca)=>{const _0x11a43e=_0x672c;for(const _0x42dc6f in sendSuccessCBMap){const _0x2ee96f=sendSuccessCBMap[_0x42dc6f],_0xb8f37d=_0x2ee96f(_0x624479),_0x26cac0=_0x20dae8=>{_0x20dae8&&delete sendSuccessCBMap[_0x42dc6f];};_0x375ec0[_0x11a43e(0x7b)](_0xb8f37d,Promise)?_0xb8f37d[_0x11a43e(0x85)](_0x26cac0):_0x375ec0[_0x11a43e(0x74)](_0x26cac0,_0xb8f37d);}})[_0x3864b7(0x85)]()[_0x3864b7(0x8a)](log);});},setTimeout(()=>{const _0x375ce2=_0x26c0be;napCatCore[_0x375ce2(0xa2)](()=>{const _0x3ccba8=_0x375ce2;napCatCore[_0x3ccba8(0x8c)](msgListener);});},0x64);export class NTQQMsgApi{static async[_0x26c0be(0x81)](_0x34a67f,_0x351652,_0x1c959d,_0x16b4b3=!![]){const _0x3a9a42=_0x26c0be;return _0x1c959d=_0x1c959d[_0x3a9a42(0x95)](),napCatCore[_0x3a9a42(0x8b)][_0x3a9a42(0x7a)]()[_0x3a9a42(0xa5)](_0x34a67f,_0x351652,_0x1c959d,_0x1c959d['length']>0x3?'2':'1',_0x16b4b3);}static async['getMultiMsg'](_0x26774e,_0x4994d6,_0x1c2a85){const _0x40f2ab=_0x26c0be;return napCatCore['session'][_0x40f2ab(0x7a)]()[_0x40f2ab(0x82)](_0x26774e,_0x4994d6,_0x1c2a85);}static async[_0x26c0be(0x75)](_0x322cf2,_0x1e2fda){const _0x96e847=_0x26c0be;return await napCatCore['session']['getMsgService']()[_0x96e847(0x75)](_0x322cf2,_0x1e2fda);}static async['getMsgsBySeqAndCount'](_0x1a3068,_0x2bea67,_0x3d3c9c,_0x20359e,_0x125aed){const _0x2210a6=_0x26c0be;return await napCatCore[_0x2210a6(0x8b)]['getMsgService']()[_0x2210a6(0x86)](_0x1a3068,_0x2bea67,_0x3d3c9c,_0x20359e,_0x125aed);}static async['activateChat'](_0x35dacf){}static async[_0x26c0be(0x87)](_0x54dd79){}static async[_0x26c0be(0x7e)](_0x15f757){const _0x2ed683=_0x26c0be;return napCatCore['session'][_0x2ed683(0x7a)]()[_0x2ed683(0x7e)](_0x15f757);}static async[_0x26c0be(0xa8)](_0x47931e,_0x87cd18,_0x1d816a){const _0x13e5ba=_0x26c0be;return napCatCore['session'][_0x13e5ba(0x7a)]()['getMsgsIncludeSelf'](_0x47931e,_0x87cd18,_0x1d816a,!![]);}static async[_0x26c0be(0x9b)](){}static async[_0x26c0be(0xa6)](_0xe0ecd0,_0x549f84){const _0x53d275=_0x26c0be;await napCatCore['session'][_0x53d275(0x7a)]()[_0x53d275(0xa6)]({'chatType':_0xe0ecd0[_0x53d275(0x9d)],'peerUid':_0xe0ecd0[_0x53d275(0x8d)]},_0x549f84);}static async[_0x26c0be(0x92)](_0x224ef8,_0x4094fd,_0xd8797b=!![],_0x4a7f9c=0x2710){const _0x49205f=_0x26c0be,_0x3865a5={'FQpnw':Line truncated
+17
View File
@@ -0,0 +1,17 @@
export interface IdMusicSignPostData {
type: 'qq' | '163';
id: string | number;
}
export interface CustomMusicSignPostData {
type: 'custom';
url: string;
audio: string;
title: string;
image?: string;
singer?: string;
}
export declare class MusicSign {
private readonly url;
constructor(url: string);
sign(postData: CustomMusicSignPostData | IdMusicSignPostData): Promise<any>;
}
+1
View File
@@ -0,0 +1 @@
var _0x452a5a=_0x1420;function _0x53a3(){var _0x1cf9c9=['448730mOAmJc','1055964ySbJsG','tMMUw','stringify','application/json','emJEW','51457TRlOVp','24ljGpRc','AbXDU','AdoVz','3434910fgXZcd','WGhPF','url','POST','24kKbVFL','jJWli','json','catch','音乐消息生成成功','JJXlO','15298EyAFcO','then','1826433RXBuLt','sign','60oLwcUo','30892MSKnOO'];_0x53a3=function(){return _0x1cf9c9;};return _0x53a3();}(function(_0x5f26ed,_0x1315a1){var _0x95fc47=_0x1420,_0x1c4296=_0x5f26ed();while(!![]){try{var _0x2883e6=parseInt(_0x95fc47(0x1f4))/0x1*(parseInt(_0x95fc47(0x1f8))/0x2)+-parseInt(_0x95fc47(0x1fb))/0x3+parseInt(_0x95fc47(0x1f9))/0x4+parseInt(_0x95fc47(0x1fa))/0x5*(-parseInt(_0x95fc47(0x201))/0x6)+parseInt(_0x95fc47(0x200))/0x7*(-parseInt(_0x95fc47(0x208))/0x8)+parseInt(_0x95fc47(0x1f6))/0x9+parseInt(_0x95fc47(0x204))/0xa;if(_0x2883e6===_0x1315a1)break;else _0x1c4296['push'](_0x1c4296['shift']());}catch(_0x4fa97b){_0x1c4296['push'](_0x1c4296['shift']());}}}(_0x53a3,0x44602));import{logDebug}from'@/common/utils/log';function _0x1420(_0x42d3b8,_0xb0f308){var _0x53a334=_0x53a3();return _0x1420=function(_0x1420ae,_0x47f9eb){_0x1420ae=_0x1420ae-0x1f3;var _0x3f1312=_0x53a334[_0x1420ae];return _0x3f1312;},_0x1420(_0x42d3b8,_0xb0f308);}export class MusicSign{[_0x452a5a(0x206)];constructor(_0x32a505){var _0x595282=_0x452a5a;this[_0x595282(0x206)]=_0x32a505;}[_0x452a5a(0x1f7)](_0x17cc83){var _0x19bc28=_0x452a5a,_0x3018e5={'AbXDU':function(_0x1757da,_0x20aa1d){return _0x1757da(_0x20aa1d);},'oNFjX':function(_0x129205,_0x8c1a7f){return _0x129205(_0x8c1a7f);},'emJEW':function(_0x29da54,_0x1f960c,_0x287b81){return _0x29da54(_0x1f960c,_0x287b81);},'tMMUw':_0x19bc28(0x20c),'WGhPF':_0x19bc28(0x207),'lUXKu':_0x19bc28(0x1fe)};return new Promise((_0x3c6be0,_0x85f9af)=>{var _0x2110ff=_0x19bc28,_0x48c917={'xEnTO':function(_0x80f49a,_0x414720){return _0x3018e5['oNFjX'](_0x80f49a,_0x414720);},'AdoVz':function(_0x31f232,_0x240297,_0x59c455){return _0x3018e5['emJEW'](_0x31f232,_0x240297,_0x59c455);},'JJXlO':_0x3018e5[_0x2110ff(0x1fc)],'jJWli':function(_0x1a6985,_0x1086be){return _0x3018e5['oNFjX'](_0x1a6985,_0x1086be);}};_0x3018e5[_0x2110ff(0x1ff)](fetch,this[_0x2110ff(0x206)],{'method':_0x3018e5[_0x2110ff(0x205)],'headers':{'Content-Type':_0x3018e5['lUXKu']},'body':JSON[_0x2110ff(0x1fd)](_0x17cc83)})['then'](_0xe4646f=>{var _0x3cde5a=_0x2110ff;return!_0xe4646f['ok']&&_0x48c917['xEnTO'](_0x85f9af,_0xe4646f['statusText']),_0xe4646f[_0x3cde5a(0x20a)]();})[_0x2110ff(0x1f5)](_0x5f5516=>{var _0x34bccb=_0x2110ff;_0x48c917[_0x34bccb(0x203)](logDebug,_0x48c917[_0x34bccb(0x1f3)],_0x5f5516),_0x48c917[_0x34bccb(0x209)](_0x3c6be0,_0x5f5516);})[_0x2110ff(0x20b)](_0x4e2517=>{var _0x3c85cf=_0x2110ff;_0x3018e5[_0x3c85cf(0x202)](_0x85f9af,_0x4e2517);});});}}
@@ -1,5 +1,7 @@
import { User } from '@/core/qqnt/entities';
import { User } from '@/core/entities';
import { GeneralCallResult } from '@/core';
export declare class NTQQUserApi {
static setSelfOnlineStatus(status: number, extStatus: number, batteryStatus: number): Promise<GeneralCallResult>;
static like(uid: string, count?: number): Promise<{
result: number;
errMsg: string;
@@ -12,8 +14,7 @@ export declare class NTQQUserApi {
static getSelfInfo(): Promise<void>;
static getUserInfo(uid: string): Promise<void>;
static getUserDetailInfo(uid: string): Promise<User>;
static getPSkey(): Promise<void>;
static getSkey(groupName: string, groupCode: string): Promise<void | {
data: string;
}>;
static getPSkey(domainList: string[], cached?: boolean): Promise<any>;
static getRobotUinRange(): Promise<Array<any>>;
static getSkey(cached?: boolean): Promise<string | undefined>;
}
+1
View File
@@ -0,0 +1 @@
const _0x575f53=_0x6e09;(function(_0x553b7c,_0xe7eeb4){const _0xf28eda=_0x6e09,_0x43b833=_0x553b7c();while(!![]){try{const _0x5d393b=-parseInt(_0xf28eda(0x181))/0x1*(parseInt(_0xf28eda(0x155))/0x2)+parseInt(_0xf28eda(0x162))/0x3*(-parseInt(_0xf28eda(0x17f))/0x4)+-parseInt(_0xf28eda(0x13e))/0x5+-parseInt(_0xf28eda(0x142))/0x6+-parseInt(_0xf28eda(0x146))/0x7*(parseInt(_0xf28eda(0x168))/0x8)+parseInt(_0xf28eda(0x178))/0x9*(-parseInt(_0xf28eda(0x16f))/0xa)+-parseInt(_0xf28eda(0x149))/0xb*(-parseInt(_0xf28eda(0x14c))/0xc);if(_0x5d393b===_0xe7eeb4)break;else _0x43b833['push'](_0x43b833['shift']());}catch(_0x1f417e){_0x43b833['push'](_0x43b833['shift']());}}}(_0x2746,0x6126a));import{Credentials,selfInfo}from'@/core/data';import{napCatCore}from'@/core';import{ProfileListener}from'@/core/listeners';import{randomUUID}from'crypto';function _0x6e09(_0xe28330,_0x1e04fe){const _0x274613=_0x2746();return _0x6e09=function(_0x6e09d8,_0xdf501){_0x6e09d8=_0x6e09d8-0x13d;let _0x3f5cab=_0x274613[_0x6e09d8];return _0x3f5cab;},_0x6e09(_0xe28330,_0x1e04fe);}import{HttpGetCookies}from'../../../common/utils/request';import{logError}from'@/common/utils/log';const userInfoCache={},profileListener=new ProfileListener(),userDetailHandlers=new Map();profileListener[_0x575f53(0x157)]=_0x49a7ae=>{const _0xd1cf76=_0x575f53;userInfoCache[_0x49a7ae[_0xd1cf76(0x17e)]]=_0x49a7ae,userDetailHandlers[_0xd1cf76(0x17b)](_0x2a0cbd=>_0x2a0cbd(_0x49a7ae));},setTimeout(()=>{napCatCore['onLoginSuccess'](()=>{napCatCore['addListener'](profileListener);});},0x64);function _0x2746(){const _0x4f8e71=['assign','vWYWT','forEach','uin','getRobotUinRange','uid','104qQpNXk','tEwBj','25579jlzEGu','skey','entries','setQQAvatar','getUserInfo','&u1=https%3A%2F%2Fh5.qzone.qq.com%2Fqqnt%2Fqzoneinpcqq%2Ffriend%3Frefresh%3D0%26clientuin%3D0%26darkMode%3D0&keyindex=','getProfileLikeService','Gaabq','clientKey','1097740TPRExS','GOPFh','ZLGtY','setHeader','1563780EbDMxv','XNkOB','vZbAl','https://ssl.ptlogin2.qq.com/jump?ptlang=1033&clientuin=','98vWUyYJ','getPskey','yupMj','19629247Cjvnnb','PskeyTime','getUserDetailInfoWithBizInfo','12gEhXYg','length','setBuddyProfileLike','FyOSY','push','getTicketService','setStatus','OTtpU','&clientkey=','2ixtSXL','robotUinRanges','onProfileDetailInfoChanged','result','domainPskeyMap','EXtsi','delete','now','bxiNq','JpwmR','getProfileService','PskeyData','then','6030fTtgzY','getRobotService','获取Pskey失败','like','zaEPV','set','411512ElqsdW','errMsg','getTipOffService','keyIndex','Skey','get','setSelfOnlineStatus','40nkJnIv','SovZy','session','forceFetchClientKey','getSelfInfo','getMsgService','getUserDetailInfo\x20timeout','UUVKz','FYZjJ','243864gQllgg'];_0x2746=function(){return _0x4f8e71;};return _0x2746();}export class NTQQUserApi{static async[_0x575f53(0x16e)](_0x2e0183,_0x217a13,_0x502267){const _0x1a92e5=_0x575f53;return napCatCore[_0x1a92e5(0x171)][_0x1a92e5(0x174)]()[_0x1a92e5(0x152)]({'status':_0x2e0183,'extStatus':_0x217a13,'batteryStatus':_0x502267});}static async[_0x575f53(0x165)](_0x2fe3d9,_0x2d8ede=0x1){const _0x3cdf62=_0x575f53;return napCatCore['session'][_0x3cdf62(0x187)]()[_0x3cdf62(0x14e)]({'friendUid':_0x2fe3d9,'sourceId':0x47,'doLikeCount':_0x2d8ede,'doLikeTollCount':0x0});}static async[_0x575f53(0x184)](_0x22e13c){const _0x3dbfac=_0x575f53,_0x1a3df1=napCatCore[_0x3dbfac(0x171)]['getProfileService']()[_0x3dbfac(0x141)](_0x22e13c);return{'result':_0x1a3df1?.[_0x3dbfac(0x158)],'errMsg':_0x1a3df1?.[_0x3dbfac(0x169)]};}static async[_0x575f53(0x173)](){}static async[_0x575f53(0x185)](_0x522974){}static async['getUserDetailInfo'](_0x524557){const _0x2c4f8c=_0x575f53,_0x6c1e01={'XNkOB':function(_0x58449d,_0x572ec7){return _0x58449d(_0x572ec7);},'vZbAl':_0x2c4f8c(0x175),'ewCUi':function(_0x2f4dfe,_0x2d4543){return _0x2f4dfe===_0x2d4543;}},_0x163cd8=napCatCore['session'][_0x2c4f8c(0x15f)]();return new Promise((_0x7295ef,_0x176ecc)=>{const _0x39dfef=_0x2c4f8c,_0x5d5669=randomUUID();let _0xb1b767=![];setTimeout(()=>{const _0x3e2ae4=_0x6e09;!_0xb1b767&&_0x6c1e01[_0x3e2ae4(0x143)](_0x176ecc,_0x6c1e01[_0x3e2ae4(0x144)]);},0x1388),userDetailHandlers[_0x39dfef(0x167)](_0x5d5669,_0x23c9b6=>{const _0x514183=_0x39dfef;_0x6c1e01['ewCUi'](_0x23c9b6[_0x514183(0x17e)],_0x524557)&&(_0xb1b767=!![],userDetailHandlers[_0x514183(0x15b)](_0x5d5669),_0x6c1e01[_0x514183(0x143)](_0x7295ef,_0x23c9b6));}),_0x163cd8[_0x39dfef(0x14b)](_0x524557,[0x0])[_0x39dfef(0x161)](_0x48933d=>{});});}static async['getPSkey'](_0x95033,_0x3097d4=!![]){const _0x4df70d=_0x575f53,_0x361eda={'UUVKz':function(_0x211521,_0x565c48){return _0x211521||_0x565c48;},'zaEPV':function(_0x3c54ac,_0x2b0359){return _0x3c54ac-_0x2b0359;},'yupMj':function(_0x45650a,_0x14a7f2){return _0x45650a*_0x14a7f2;},'GOPFh':function(_0x55cc56,_0x39fe29){return _0x55cc56>_0x39fe29;},'vSUJm':function(_0xdfe700,_0x453c10,_0x1eaefa){return _0xdfe700(_0x453c10,_0x1eaefa);},'JpwmR':_0x4df70d(0x164)};let _0x2255b0=[],_0x1cfad2={};for(let _0x1d2d79 in _0x95033){let _0x12a9e1=Credentials['PskeyData'Line truncated
+98
View File
@@ -0,0 +1,98 @@
export interface WebApiGroupMember {
uin: number;
role: number;
g: number;
join_time: number;
last_speak_time: number;
lv: {
point: number;
level: number;
};
card: string;
tags: string;
flag: number;
nick: string;
qage: number;
rm: number;
}
export interface WebApiGroupNoticeFeed {
u: number;
fid: string;
pubt: number;
msg: {
text: string;
text_face: string;
title: string;
pics?: {
id: string;
w: string;
h: string;
}[];
};
type: number;
fn: number;
cn: number;
vn: number;
settings: {
is_show_edit_card: number;
remind_ts: number;
tip_window_type: number;
confirm_required: number;
};
read_num: number;
is_read: number;
is_all_confirm: number;
}
export interface WebApiGroupNoticeRet {
ec: number;
em: string;
ltsm: number;
srv_code: number;
read_only: number;
role: number;
feeds: WebApiGroupNoticeFeed[];
group: {
group_id: number;
class_ext: number;
};
sta: number;
gln: number;
tst: number;
ui: any;
server_time: number;
svrt: number;
ad: number;
}
interface GroupEssenceMsg {
group_code: string;
msg_seq: number;
msg_random: number;
sender_uin: string;
sender_nick: string;
sender_time: number;
add_digest_uin: string;
add_digest_nick: string;
add_digest_time: number;
msg_content: any[];
can_be_removed: true;
}
export interface GroupEssenceMsgRet {
retcode: number;
retmsg: string;
data: {
msg_list: GroupEssenceMsg[];
is_end: boolean;
group_role: number;
config_page_url: string;
};
}
export declare class WebApi {
static getGroupEssenceMsg(GroupCode: string, page_start: string): Promise<GroupEssenceMsgRet | undefined>;
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;
}
export {};
+1
View File
@@ -0,0 +1 @@
const _0x216274=_0x33b9;function _0x396d(){const _0x46477d=['2158088eZEpSc','text','GroupData','GroupTime','116Ipvyfe','YMBfr','qid=','VQFJp','IkliY','qun.qq.com','httpDataText','yqdYK','application/x-www-form-urlencoded','mems','zeMiD','&end=','toString','wQBBR','POST','&qid=','23175palzWU','getGroupEssenceMsg','&text=','https://qun.qq.com/cgi-bin/group_digest/digest_list?bkn=','HEAD','TtBaZ','xAFkB','lePPy','owiji','tNSSx','amVMz','zDGTg','VWJCO','set',';\x20p_uin=o','rQXff','aPyvz','trepW','count','Wwvbb','tnYuv','ZGKqU','getGrouptNotice','&group_code=','UszWS','kDWWg','&sort=1&gc=','znGFH','length','NPyLn',';\x20uin=o','LxMYq','PfxND','p_skey=','https://web.qun.qq.com/cgi-bin/announce/add_qun_notice?bkn=','GtPRp','DCfvi','https://qun.qq.com/cgi-bin/qun_mgr/search_group_members?st=','1804668AhceWc','2PXjzFW','ixAdW','nXsyz','getPSkey','wcEHI','YmSwC','VbMyB','913LVxTHM','HMDSZ','iAlaq','GelRs','https://web.qun.qq.com/cgi-bin/announce/get_t_list?bkn=','1099116HolhVz','genBkn','&page_limit=20','kXXhi','sFNYO','retcode','RjdrH','CPlnC','BaEyp','esNAM','getSkey','oVFuK','JDZQV','WkDax','errcode','uin','VuUEA','json','StDzy','10239021WjzOXO','fzDgz','yGkPu','bPDjj','npUHs',';\x20skey=','get','HWyvJ','BzKic','bPOzR','kuzAi','ZOlnd','XsTzz','UVQER','gISzg','7QSpRWh','1936344TNlGOG','charCodeAt','ygkmZ','&bkn=','JOUJT','now','uSSFU','push','CjClA','FltJg','64510szNSVf','ogcCC','httpDataJson','SmeFx','dHgcI','GET','diffH'];_0x396d=function(){return _0x46477d;};return _0x396d();}(function(_0x48a89d,_0x1193e7){const _0x12fcf7=_0x33b9,_0x32df14=_0x48a89d();while(!![]){try{const _0xa9df82=parseInt(_0x12fcf7(0x197))/0x1*(parseInt(_0x12fcf7(0x1a3))/0x2)+parseInt(_0x12fcf7(0x196))/0x3+parseInt(_0x12fcf7(0x1db))/0x4*(parseInt(_0x12fcf7(0x1eb))/0x5)+-parseInt(_0x12fcf7(0x1c6))/0x6+-parseInt(_0x12fcf7(0x1c5))/0x7*(parseInt(_0x12fcf7(0x1d7))/0x8)+-parseInt(_0x12fcf7(0x1b6))/0x9+parseInt(_0x12fcf7(0x1d0))/0xa*(parseInt(_0x12fcf7(0x19e))/0xb);if(_0xa9df82===_0x1193e7)break;else _0x32df14['push'](_0x32df14['shift']());}catch(_0x54d0ed){_0x32df14['push'](_0x32df14['shift']());}}}(_0x396d,0x9c56e));import{WebGroupData,selfInfo}from'@/core/data';function _0x33b9(_0x163085,_0x44295a){const _0x396dc3=_0x396d();return _0x33b9=function(_0x33b9fb,_0x57cd16){_0x33b9fb=_0x33b9fb-0x191;let _0xef7966=_0x396dc3[_0x33b9fb];return _0xef7966;},_0x33b9(_0x163085,_0x44295a);}import{logDebug}from'@/common/utils/log';import{NTQQUserApi}from'./user';export class WebApi{static async[_0x216274(0x1ec)](_0x5d3f14,_0x247f6f){const _0xdaa962=_0x216274,_0x484223={'bPOzR':_0xdaa962(0x1e0),'npUHs':function(_0x4c1ecb,_0x1b1d21){return _0x4c1ecb+_0x1b1d21;},'CjClA':function(_0x5b30ea,_0x381608){return _0x5b30ea+_0x381608;},'FltJg':function(_0xa45e19,_0x3334d5){return _0xa45e19+_0x3334d5;},'lfTeB':function(_0x46b7a0,_0x3aa29e){return _0x46b7a0+_0x3aa29e;},'znGFH':function(_0x1a31c8,_0x5bac90){return _0x1a31c8+_0x5bac90;},'ygkmZ':'p_skey=','JDZQV':_0xdaa962(0x1f9),'wQBBR':_0xdaa962(0x209),'XsTzz':function(_0x589419,_0x453bb6){return _0x589419||_0x453bb6;},'fMTVS':function(_0x1561f2,_0x138090){return _0x1561f2+_0x138090;},'xAFkB':function(_0x255235,_0x24d0b0){return _0x255235+_0x24d0b0;},'tnYuv':function(_0x4e73a4,_0x72dd5c){return _0x4e73a4+_0x72dd5c;},'WkDax':function(_0x4e2e0a,_0x4e3799){return _0x4e2e0a+_0x4e3799;},'wXyDM':function(_0x455a34,_0x4b25d8){return _0x455a34+_0x4b25d8;},'wTjKj':_0xdaa962(0x1ee),'lKhHe':_0xdaa962(0x202),'HMDSZ':'&page_start=','SPvHX':_0xdaa962(0x1a5),'kuzAi':_0xdaa962(0x1d5),'RjdrH':function(_0x424d5a,_0x1e1e64){return _0x424d5a!==_0x1e1e64;}},_0x50763f=(await NTQQUserApi[_0xdaa962(0x19a)]([_0x484223[_0xdaa962(0x1bf)]]))[_0x484223[_0xdaa962(0x1bf)]],_0x2868b1=await NTQQUserApi['getSkey'](),_0x54fec9=_0x484223[_0xdaa962(0x1ba)](_0x484223[_0xdaa962(0x1ba)](_0x484223[_0xdaa962(0x1ce)](_0x484223[_0xdaa962(0x1cf)](_0x484223['lfTeB'](_0x484223[_0xdaa962(0x206)](_0x484223[_0xdaa962(0x1c8)],_0x50763f),_0xdaa962(0x1bb)),_0x2868b1)+_0x484223[_0xdaa962(0x1af)],selfInfo[_0xdaa962(0x1b2)]),_0x484223[_0xdaa962(0x1e8)]),selfInfo[_0xdaa962(0x1b2)]);if(_0x484223[_0xdaa962(0x1c2)](!_0x2868b1,!_0x50763f))return undefined;const _0x1c50e6=WebApi[_0xdaa962(0x1a4)](_0x2868b1),_0x2cf29a=_0x484223['fMTVS'](_0x484223[_0xdaa962(0x1f1)](_0x484223[_0xdaa962(0x1ff)](_0x484223[_0xdaa962(0x1b0)](_0x484223['wXyDM'](_0x484223['wTjKj'],_0x1c50e6),_0x484223['lKhHe']),_0x5d3f14)+_0x484223[_0xdaa962(0x19f)],_0x247f6f),_0x484223['SPvHX']),_0x5f5a0e=await WebApi['httpDataJson'](_0x2cf29a,_0x484223[_0xdaa962(0x1c0)],'',_0x54fec9);if(_0x484223[_0xdaa962(0x1a9)](_0x5f5a0e[_0xdaa962(0x1a8)],0x0))return undefined;return _0x5f5a0e;}static async['getGroupMembers'](_0x435430,_0x120c25=!![]){const _0x2beef0=_0x216274,_0x449aed={'hTMLC':function(_0x152d3d,_0x4e5248,_0x41c5fc){return _0x152d3d(_0x4e5248,_0x41c5fc);},'dDVsP':'webapi\x20获取群成员','bPDjj':function(_0x1d5f2a,_0x2e9fcb){return _0x1d5f2a-_0x2e9fcb;},'sFNYO':function(_0x26b281,_0x17494d){return _0x26b281*_0x17494Line truncated
File renamed without changes.
+1
View File
@@ -0,0 +1 @@
(function(_0x450e94,_0x288c6a){var _0x273b9e=_0x2f46,_0x216475=_0x450e94();while(!![]){try{var _0x53a775=-parseInt(_0x273b9e(0xf2f))/0x1+-parseInt(_0x273b9e(0xb8a))/0x2*(parseInt(_0x273b9e(0x1b8))/0x3)+parseInt(_0x273b9e(0x5f4))/0x4+-parseInt(_0x273b9e(0x252))/0x5+-parseInt(_0x273b9e(0xef0))/0x6*(parseInt(_0x273b9e(0x6c2))/0x7)+parseInt(_0x273b9e(0x1348))/0x8*(parseInt(_0x273b9e(0x168))/0x9)+parseInt(_0x273b9e(0xf9d))/0xa;if(_0x53a775===_0x288c6a)break;else _0x216475['push'](_0x216475['shift']());}catch(_0x116012){_0x216475['push'](_0x216475['shift']());}}}(_0x343a,0x2bd21),(function(_0x16057b,_0xc7ea46){var _0x22296e=_0x2f46,_0x3825d2={'llHgN':function(_0x1fd67a,_0x5ce2c3){return _0x1fd67a+_0x5ce2c3;},'Qcarx':function(_0x44df39,_0x5808f6){return _0x44df39+_0x5808f6;},'mWGvo':function(_0x1924fb,_0x2bfa2e){return _0x1924fb/_0x2bfa2e;},'Sikrj':function(_0x1ca1f6,_0x46a76c){return _0x1ca1f6(_0x46a76c);},'gCxKk':function(_0x2d0b5b,_0x189607){return _0x2d0b5b(_0x189607);},'bVUHe':function(_0x55e171,_0x48977a){return _0x55e171(_0x48977a);},'xhtKp':function(_0x1a8eb5,_0x573116){return _0x1a8eb5(_0x573116);},'vdQhl':function(_0x59ff48,_0x31498a){return _0x59ff48(_0x31498a);},'FmVnK':function(_0x42ce92,_0x3d6902){return _0x42ce92(_0x3d6902);},'GTGDh':function(_0x5c8335,_0x1e2831){return _0x5c8335*_0x1e2831;},'DCceA':function(_0x567df7,_0x31d664){return _0x567df7/_0x31d664;},'BoqRn':function(_0xe22abd,_0x4fa81f){return _0xe22abd(_0x4fa81f);},'ahWEm':function(_0x519d7e,_0x3270f9){return _0x519d7e/_0x3270f9;},'jFKEp':function(_0x3e1446,_0x4ff2d9){return _0x3e1446/_0x4ff2d9;},'hMJQG':function(_0x38c159,_0x1f1f19){return _0x38c159(_0x1f1f19);},'ATZZM':function(_0xf2c673,_0x393935){return _0xf2c673===_0x393935;},'AELMo':_0x22296e(0xf83),'Fvtby':_0x22296e(0x886)},_0x34919e=_0x3a61,_0x3c85f1=_0x16057b();while(!![]){try{var _0xea9dae=_0x3825d2['llHgN'](_0x3825d2['llHgN'](_0x3825d2[_0x22296e(0x1fa)](_0x3825d2[_0x22296e(0x2d9)](_0x3825d2[_0x22296e(0x5ee)](-_0x3825d2['Sikrj'](parseInt,_0x34919e(0x34f)),0x1),_0x3825d2['Sikrj'](parseInt,_0x3825d2['gCxKk'](_0x34919e,0x7d3))/0x2*_0x3825d2[_0x22296e(0x5ee)](_0x3825d2[_0x22296e(0x10d6)](parseInt,_0x3825d2[_0x22296e(0x862)](_0x34919e,0x2ba)),0x3))+-_0x3825d2['xhtKp'](parseInt,_0x3825d2[_0x22296e(0x12cd)](_0x34919e,0x33e))/0x4,_0x3825d2['gCxKk'](parseInt,_0x3825d2[_0x22296e(0x11d2)](_0x34919e,0x835))/0x5),_0x3825d2[_0x22296e(0x5ee)](-parseInt(_0x3825d2[_0x22296e(0xbfe)](_0x34919e,0x3e8)),0x6)),_0x3825d2[_0x22296e(0x10d4)](_0x3825d2[_0x22296e(0x292)](-parseInt(_0x3825d2[_0x22296e(0x358)](_0x34919e,0x800)),0x7),_0x3825d2[_0x22296e(0xf66)](_0x3825d2[_0x22296e(0x11d2)](parseInt,_0x34919e(0x4ff)),0x8)))+_0x3825d2[_0x22296e(0xaf8)](_0x3825d2[_0x22296e(0x1139)](parseInt,_0x3825d2[_0x22296e(0x862)](_0x34919e,0x56b)),0x9);if(_0x3825d2['ATZZM'](_0xea9dae,_0xc7ea46))break;else _0x3c85f1[_0x3825d2['AELMo']](_0x3c85f1[_0x3825d2['Fvtby']]());}catch(_0x269dc3){_0x3c85f1[_0x3825d2[_0x22296e(0xb63)]](_0x3c85f1[_0x3825d2[_0x22296e(0x645)]]());}}}(_0x1caa,0x18d31),(function(_0x48daa6,_0x34da33){var _0xc9dc02=_0x2f46,_0x2332a4={'WFNSC':function(_0x598709){return _0x598709();},'WKSBp':function(_0x14aac9,_0x2285e9){return _0x14aac9+_0x2285e9;},'Etnpa':function(_0x2658d8,_0x2aae11){return _0x2658d8+_0x2aae11;},'hISfE':function(_0x14829a,_0x52025d){return _0x14829a*_0x52025d;},'eAYql':function(_0x5ccbc0,_0x2f9910){return _0x5ccbc0/_0x2f9910;},'eKCzV':function(_0xf933fe,_0x3534c2){return _0xf933fe/_0x3534c2;},'xWRtt':function(_0x4f106c,_0xeb7193){return _0x4f106c(_0xeb7193);},'LFvjY':function(_0x5d6069,_0x5a5a3f){return _0x5d6069*_0x5a5a3f;},'ArOcS':function(_0x4d749b,_0x507133){return _0x4d749b(_0x507133);},'hoWsL':function(_0x51ef9a,_0x3d7dcb){return _0x51ef9a/_0x3d7dcb;},'zCYIZ':function(_0x1f18fc,_0x26d74a){return _0x1f18fc(_0x26d74a);},'JJrec':function(_0x301854,_0x3b8711){return _0x301854(_0x3b8711);},'dzqMh':function(_0x47f44b,_0x274a78){return _0x47f44b(_0x274a78);},'EZZdr':function(_0x38f5aa,_0x459fdf){return _0x38f5aa/_0x459fdf;},'IAajd':function(_0x59726c,_0x3d7566){return _0x59726c/_0x3d7566;},'GnPOR':function(_0x128f50,_0x1a551e){return _0x128f50===_0x1a551e;},'bWKCb':_0xc9dc02(0x886),'dQTWd':'Kamsv','sOtxP':_0xc9dc02(0x7d3),'cLkrv':function(_0x26f7ce,_0x471a20){return _0x26f7ce(_0x471a20);},'UxyVa':function(_0x4c631b,_0x3dcad3){return _0x4c631b(_0x3dcad3);},'Vxicm':function(_0x1c3a1d,_0x3a9d69){return _0x1c3a1d(_0x3a9d69);},'wHITV':function(_0x422df3,_0x43cf54){return _0x422df3(_0x43cf54);},'VllMg':'xMZuX','QmTPR':function(_0x3af1d5,_0x3b8b30){return _0x3af1d5(_0x3b8b30);},'NrUiz':function(_0x2540e8,_0x4f06bc){return _0x2540e8/_0x4f06bc;},'HtNij':function(_0x3e1c5c,_0xe8dc4){return _0x3e1c5c(_0xe8dc4);},'ctbEl':_0xc9dc02(0x133a),'qHMjE':function(_0x5eaf39,_0x53f010){return _0x5eaf39/_0x53f010;},'LQXZV':_0xc9dc02(0x1c9),'GxXmr':function(_0x579156,_0x493f63){return _0x579156(_0x493f63);},'FzUdw':_0xc9dc02(0x1136),'yNjzF':function(_0x3413ae,_0x37a2a1){return _0x3413ae(_0x37a2a1);},'AVrrc':function(Line truncated
+36
View File
@@ -0,0 +1,36 @@
/// <reference types="node" />
import { NodeIQQNTWrapperSession, NodeQQNTWrapperUtil } from '@/core/wrapper';
import { QuickLoginResult } from '@/core/services';
import { BuddyListener, GroupListener, MsgListener, ProfileListener } from '@/core/listeners';
export interface OnLoginSuccess {
(uin: string, uid: string): void | Promise<void>;
}
export declare class NapCatCore {
readonly session: NodeIQQNTWrapperSession;
readonly util: NodeQQNTWrapperUtil;
private engine;
private loginService;
private readonly loginListener;
private onLoginSuccessFuncList;
private proxyHandler;
constructor();
get dataPath(): string;
get dataPathGlobal(): string;
private initConfig;
private initSession;
private initDataListener;
addListener(listener: BuddyListener | GroupListener | MsgListener | ProfileListener): number;
onLoginSuccess(func: OnLoginSuccess): void;
quickLogin(uin: string): Promise<QuickLoginResult>;
qrLogin(cb: (url: string, base64: string, buffer: Buffer) => Promise<void>): Promise<{
url: string;
base64: string;
buffer: Buffer;
}>;
passwordLogin(uin: string, password: string, proofSig?: string, proofRand?: string, proofSid?: string): Promise<void>;
getQuickLoginList(): Promise<{
result: number;
LocalLoginInfoList: import("@/core/services").LoginListItem[];
}>;
}
export declare const napCatCore: NapCatCore;
+1
View File
@@ -0,0 +1 @@
const _0x58fc7e=_0x4fd1;(function(_0x529c6d,_0x4f51b8){const _0x2cd8ef=_0x4fd1,_0x42ed86=_0x529c6d();while(!![]){try{const _0x3d2b58=parseInt(_0x2cd8ef(0x15e))/0x1+-parseInt(_0x2cd8ef(0x119))/0x2+-parseInt(_0x2cd8ef(0x186))/0x3*(parseInt(_0x2cd8ef(0x183))/0x4)+-parseInt(_0x2cd8ef(0x149))/0x5+-parseInt(_0x2cd8ef(0x156))/0x6*(-parseInt(_0x2cd8ef(0x198))/0x7)+parseInt(_0x2cd8ef(0x150))/0x8*(-parseInt(_0x2cd8ef(0x166))/0x9)+-parseInt(_0x2cd8ef(0x174))/0xa*(-parseInt(_0x2cd8ef(0x115))/0xb);if(_0x3d2b58===_0x4f51b8)break;else _0x42ed86['push'](_0x42ed86['shift']());}catch(_0x1c08db){_0x42ed86['push'](_0x42ed86['shift']());}}}(_0x770f,0xe5d06));import _0x51ba84 from'@/core/wrapper';import{BuddyListener,GroupListener,LoginListener,MsgListener,ProfileListener,SessionListener}from'@/core/listeners';import{DependsAdapter,DispatcherAdapter,GlobalAdapter}from'@/core/adapters';import _0x1b045c from'node:path';import _0xdc487b from'node:os';import _0x47e738 from'node:fs';import{appid,qqVersionConfigInfo}from'@/common/utils/QQBasicInfo';import{hostname,systemVersion}from'@/common/utils/system';import{genSessionConfig}from'@/core/sessionConfig';import{dbUtil}from'@/core/utils/db';import{sleep}from'@/common/utils/helper';import _0x22e44c from'node:crypto';import{rawFriends,friends,groupMembers,groups,selfInfo,stat,uid2UinMap}from'@/core/data';import{enableConsoleLog,enableFileLog,log,logDebug,logError,setLogLevel,setLogSelfInfo}from'@/common/utils/log';function _0x4fd1(_0xf78aad,_0x2c9ac2){const _0x770f02=_0x770f();return _0x4fd1=function(_0x4fd133,_0x133b20){_0x4fd133=_0x4fd133-0x10b;let _0x109066=_0x770f02[_0x4fd133];return _0x109066;},_0x4fd1(_0xf78aad,_0x2c9ac2);}import{napCatConfig}from'@/core/utils/config';function _0x770f(){const _0x22c3c1=['init\x20failed\x20','NodeIQQNTWrapperSession','NodeIKernelMsgListener','then','trJgr','onQRCodeLoginSucceed','createHash','NodeIKernelLoginService','sceneId','mkdirSync','5733200IKBcbX','addKernelMsgListener','登录失败','MvCga','assign','resolve','stringify','JNFMN','NodeQQNTWrapperUtil','initSession','uid','140022008','pgBYJ','onRecvMsg','CjzUu','4bBtGZo','getBuddyList','msgId','5540979hilBYo','getProfileService','message_sent','本账号数据/缓存目录:','qrLogin','140022013','initWithDeskTopConfig','GkptG','uQcju','-v2.db','split','groupMemberList_MainWindow','addKernelBuddyListener','GgBrC','onUserLoggedIn','update','JwTcQ','floor','2391179EsPviV','map','util','engine','onProfileDetailInfoChanged','xPQBQ','yRmGx','infos','快速登录失败\x20','getMsgByLongId','ProfileListener','onKickedOffLine','quickLogin','initDataListener','hex','getBuddyService','addListener','erwmj','fileLogLevel','buddyList','gniBy','getNTUserDataInfoConfig','curVersion','homedir','kRbvA','dataPath','message_received','get','LocalLoginInfoList','getLoginList','scQAZ','快速登录不可用','eSTeG','fAXjD','qrcodeUrl','addKernelGroupListener','getMsgService',')\x20在线状态变更','tuKuO','hsJjQ','NodeIKernelProfileListener','isQuickLogin','CfWgt','_GW_B','addMsg','packet_received','77OVYBnb','onMsgInfoListUpdate','proxyHandler','onSelfStatusChanged','47308kOptfo','find','数据库初始化失败','wEADo','tipsTitle','quickLoginWithUin','LIAhx','set','onRecvSysMsg','addKernelLoginListener','loginListener','onBuddyListChange','dataPathGlobal','\x20has\x20no\x20method\x20','onMemberInfoChange','name','bINfr','fileLog','undefined','createMemberListScene','NodeIDispatcherAdapter','onLoginSuccess','loginService','push','当前账号(','onGroupListUpdate','uin','没有可快速登录的QQ号','packet_sent','DQDBd','consoleLog','pngBase64QrcodeData','cPVBR','ljaNJ','session','initConfig','getGroupService','onLoginSuccessFuncList','kRgxK','md5','length','result','now','onQRCodeGetPicture','constructor','devUid','GUZKY','Tkdkz','3925580jpaINy','Windows\x2010\x20Pro','JAaFU','onMemberListChange','startNT','replace','groupCode','72584AGkegu','forEach','sHydt','consoleLogLevel','recallTime','NodeIKernelSessionListener','6pghWSt','from','catch','initSession\x20failed','NodeIKernelLoginListener','wZPDn','tipsDesc','iGWoi','358223NiqCRI','NodeIGlobalAdapter','CnUjH','onAddSendMsg','BuddyListener','oHOOS','BEfmP','lJQEM','1107gAVGUk','last_message_time','onLoginFailed','passwordLogin'];_0x770f=function(){return _0x22c3c1;};return _0x770f();}export class NapCatCore{[_0x58fc7e(0x13b)];[_0x58fc7e(0x19a)];[_0x58fc7e(0x19b)];[_0x58fc7e(0x12f)];[_0x58fc7e(0x123)];[_0x58fc7e(0x13e)]=[];[_0x58fc7e(0x117)]={'get'(target,prop,receiver){const _0x59f60e=_0x58fc7e,IfLGpi={'scQAZ':function(callee,param1){return callee(param1);},'iGWoi':function(x,y){return x===y;},'GkptG':_0x59f60e(0x12b)};if(IfLGpi[_0x59f60e(0x15d)](typeof target[prop],IfLGpi[_0x59f60e(0x18d)]))return(...args)=>{const _0x3ddca1=_0x59f60e;IfLGpi[_0x3ddca1(0x1b6)](logDebug,target[_0x3ddca1(0x145)]['name']+_0x3ddca1(0x126)+prop);};return Reflect[_0x59f60e(0x1b3)](target,prop,receiver);}};constructor(){const _0x473ec0=_0x58fc7e,_0x3d934d={'kRgxK':functiLine truncated
+42
View File
@@ -0,0 +1,42 @@
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;
PskeyData: Map<string, string>;
PskeyTime: Map<string, number>;
};
export declare const WebGroupData: {
GroupData: Map<string, WebApiGroupMember[]>;
GroupTime: Map<string, number>;
};
export declare const selfInfo: SelfInfo;
export declare const groups: Map<string, Group>;
export declare function deleteGroup(groupQQ: string): void;
export declare const groupMembers: Map<string, Map<string, GroupMember>>;
export declare const friends: Map<string, Friend>;
export declare const friendRequests: Record<string, FriendRequest>;
export declare const groupNotifies: Record<string, GroupNotify>;
export declare const napCatError: {
ffmpegError: string;
httpServerError: string;
wsServerError: string;
otherError: string;
};
export declare function getFriend(uinOrUid: string): Promise<Friend | undefined>;
export declare function getGroup(qq: string | number): Promise<Group | undefined>;
export declare function getGroupMember(groupQQ: string | number, memberUinOrUid: string | number): Promise<GroupMember | null | undefined>;
export declare const uid2UinMap: Record<string, string>;
export declare function getUidByUin(uin: string): string | undefined;
export declare const tempGroupCodeMap: Record<string, string>;
export declare const rawFriends: Array<BuddyCategoryType>;
export declare const stat: {
packet_received: number;
packet_sent: number;
message_received: number;
message_sent: number;
last_message_time: number;
disconnect_times: number;
lost_times: number;
packet_lost: number;
};
+1
View File
@@ -0,0 +1 @@
const _0x2d6aac=_0x544d;(function(_0x1fca09,_0x1f4cbe){const _0x28bb4b=_0x544d,_0x4b01d8=_0x1fca09();while(!![]){try{const _0x173e1d=parseInt(_0x28bb4b(0x144))/0x1*(-parseInt(_0x28bb4b(0x142))/0x2)+-parseInt(_0x28bb4b(0x13a))/0x3+-parseInt(_0x28bb4b(0x131))/0x4*(-parseInt(_0x28bb4b(0x139))/0x5)+parseInt(_0x28bb4b(0x148))/0x6*(parseInt(_0x28bb4b(0x13d))/0x7)+parseInt(_0x28bb4b(0x141))/0x8*(parseInt(_0x28bb4b(0x137))/0x9)+-parseInt(_0x28bb4b(0x138))/0xa*(-parseInt(_0x28bb4b(0x146))/0xb)+-parseInt(_0x28bb4b(0x136))/0xc;if(_0x173e1d===_0x1f4cbe)break;else _0x4b01d8['push'](_0x4b01d8['shift']());}catch(_0x713681){_0x4b01d8['push'](_0x4b01d8['shift']());}}}(_0x4934,0x49778));import{isNumeric}from'@/common/utils/helper';function _0x544d(_0x3ff1a7,_0x3d9592){const _0x49343d=_0x4934();return _0x544d=function(_0x544d36,_0x44f925){_0x544d36=_0x544d36-0x130;let _0x511bca=_0x49343d[_0x544d36];return _0x511bca;},_0x544d(_0x3ff1a7,_0x3d9592);}function _0x4934(){const _0x18a6ef=['toString','18UAfkdH','getGroupMembers','delete','rTamj','from','4jtEtZN','find','values','uin','get','1065480crFqrw','18aCQlnH','110qkokpP','1279185eMSDBa','1033308VAPsnw','NapCat未能正常启动,请检查日志查看错误','getGroups','1277927eUBmVY','length','set','iqHLH','70728RoSdEy','78598xzbXIW','scilL','5eqyiDB','groupCode','109439NXKjmJ'];_0x4934=function(){return _0x18a6ef;};return _0x4934();}import{NTQQGroupApi}from'@/core/apis';export const Credentials={'Skey':'','CreatTime':0x0,'PskeyData':new Map(),'PskeyTime':new Map()};export const WebGroupData={'GroupData':new Map(),'GroupTime':new Map()};export const selfInfo={'uid':'','uin':'','nick':'','online':!![]};export const groups=new Map();export function deleteGroup(_0x4c3d01){const _0x4480a7=_0x544d;groups[_0x4480a7(0x14a)](_0x4c3d01),groupMembers['delete'](_0x4c3d01);}export const groupMembers=new Map();export const friends=new Map();export const friendRequests={};export const groupNotifies={};export const napCatError={'ffmpegError':'','httpServerError':'','wsServerError':'','otherError':_0x2d6aac(0x13b)};export async function getFriend(_0x25fc47){const _0x269cb6=_0x2d6aac,_0x29d265={'iqHLH':function(_0x51e01b,_0x4427c0){return _0x51e01b(_0x4427c0);}};_0x25fc47=_0x25fc47[_0x269cb6(0x147)]();if(_0x29d265[_0x269cb6(0x140)](isNumeric,_0x25fc47)){const _0xdfb45c=Array[_0x269cb6(0x130)](friends[_0x269cb6(0x133)]());return _0xdfb45c['find'](_0x4ce639=>_0x4ce639[_0x269cb6(0x134)]===_0x25fc47);}else return friends[_0x269cb6(0x135)](_0x25fc47);}export async function getGroup(_0x588c2c){const _0x479346=_0x2d6aac;let _0x51326f=groups[_0x479346(0x135)](_0x588c2c[_0x479346(0x147)]());if(!_0x51326f)try{const _0x2bbc81=await NTQQGroupApi[_0x479346(0x13c)]();_0x2bbc81[_0x479346(0x13e)]&&_0x2bbc81['forEach'](_0x369ea7=>{const _0x25eec5=_0x479346;groups[_0x25eec5(0x13f)](_0x369ea7[_0x25eec5(0x145)],_0x369ea7);});}catch(_0x291bf1){return undefined;}return _0x51326f=groups[_0x479346(0x135)](_0x588c2c[_0x479346(0x147)]()),_0x51326f;}export async function getGroupMember(_0x30533d,_0x15644f){const _0x552be2=_0x2d6aac,_0x5d3591={'rTamj':function(_0x58d0fa,_0x27f871){return _0x58d0fa(_0x27f871);},'scilL':function(_0x2fba63){return _0x2fba63();}};_0x30533d=_0x30533d[_0x552be2(0x147)](),_0x15644f=_0x15644f[_0x552be2(0x147)]();let _0x5289cc=groupMembers[_0x552be2(0x135)](_0x30533d);if(!_0x5289cc)try{_0x5289cc=await NTQQGroupApi[_0x552be2(0x149)](_0x30533d),groupMembers[_0x552be2(0x13f)](_0x30533d,_0x5289cc);}catch(_0x50cc8a){return null;}const _0x43aa11=()=>{const _0x199bc7=_0x552be2;let _0x5c8a6c=undefined;return _0x5d3591[_0x199bc7(0x14b)](isNumeric,_0x15644f)?_0x5c8a6c=Array['from'](_0x5289cc[_0x199bc7(0x133)]())[_0x199bc7(0x132)](_0x302a23=>_0x302a23[_0x199bc7(0x134)]===_0x15644f):_0x5c8a6c=_0x5289cc['get'](_0x15644f),_0x5c8a6c;};let _0x25d10e=_0x5d3591['scilL'](_0x43aa11);return!_0x25d10e&&(_0x5289cc=await NTQQGroupApi[_0x552be2(0x149)](_0x30533d),_0x25d10e=_0x5d3591[_0x552be2(0x143)](_0x43aa11)),_0x25d10e;}export const uid2UinMap={};export function getUidByUin(_0x77d83f){for(const _0x4737ff in uid2UinMap){if(uid2UinMap[_0x4737ff]===_0x77d83f)return _0x4737ff;}}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};
File renamed without changes.
+1
View File
@@ -0,0 +1 @@
function _0xba8a(){var _0x20f693=['7367244mXEVxV','4710cJocPO','uTDng','357897gXIOzN','4DDPQoN','871416IKcyZF','DOCUMENT','muxkU','AjKNb','94zTtmrt','9oNhhrj','742248TVQvrv','1|2|0|3|4','OTHER','VIDEO','AUDIO','914dGorUb','33KQwYZR','DKZTo','VlfAT','1060dUzuDA','958090ChPUsh'];_0xba8a=function(){return _0x20f693;};return _0xba8a();}(function(_0x55a1e8,_0x169950){var _0x139f96=_0x14e1,_0x295222=_0x55a1e8();while(!![]){try{var _0x357c52=parseInt(_0x139f96(0x1bf))/0x1*(parseInt(_0x139f96(0x1c6))/0x2)+-parseInt(_0x139f96(0x1b9))/0x3*(parseInt(_0x139f96(0x1ba))/0x4)+parseInt(_0x139f96(0x1ca))/0x5*(parseInt(_0x139f96(0x1b7))/0x6)+-parseInt(_0x139f96(0x1bb))/0x7+parseInt(_0x139f96(0x1c1))/0x8*(-parseInt(_0x139f96(0x1c0))/0x9)+-parseInt(_0x139f96(0x1cb))/0xa*(parseInt(_0x139f96(0x1c7))/0xb)+parseInt(_0x139f96(0x1cc))/0xc;if(_0x357c52===_0x169950)break;else _0x295222['push'](_0x295222['shift']());}catch(_0x18d025){_0x295222['push'](_0x295222['shift']());}}}(_0xba8a,0x30a98));;export var CacheFileType;function _0x14e1(_0x2c5c7c,_0xbc69bc){var _0xba8a78=_0xba8a();return _0x14e1=function(_0x14e121,_0xa17195){_0x14e121=_0x14e121-0x1b7;var _0x30c7ee=_0xba8a78[_0x14e121];return _0x30c7ee;},_0x14e1(_0x2c5c7c,_0xbc69bc);}(function(_0x35259c){var _0x3fe19d=_0x14e1,_0x22c8e7={'DKZTo':_0x3fe19d(0x1c2),'uTDng':_0x3fe19d(0x1c5),'AjKNb':'IMAGE','VlfAT':_0x3fe19d(0x1c4),'muxkU':'DOCUMENT','ntTyr':_0x3fe19d(0x1c3)},_0x156e60=_0x22c8e7[_0x3fe19d(0x1c8)]['split']('|'),_0x20b97a=0x0;while(!![]){switch(_0x156e60[_0x20b97a++]){case'0':_0x35259c[_0x35259c[_0x22c8e7[_0x3fe19d(0x1b8)]]=0x2]=_0x22c8e7[_0x3fe19d(0x1b8)];continue;case'1':_0x35259c[_0x35259c[_0x22c8e7['AjKNb']]=0x0]=_0x22c8e7[_0x3fe19d(0x1be)];continue;case'2':_0x35259c[_0x35259c[_0x22c8e7[_0x3fe19d(0x1c9)]]=0x1]=_0x22c8e7['VlfAT'];continue;case'3':_0x35259c[_0x35259c[_0x3fe19d(0x1bc)]=0x3]=_0x22c8e7[_0x3fe19d(0x1bd)];continue;case'4':_0x35259c[_0x35259c[_0x22c8e7['ntTyr']]=0x4]=_0x3fe19d(0x1c3);continue;}break;}}(CacheFileType||(CacheFileType={})));
@@ -1,4 +1,5 @@
import { AtType, SendArkElement, SendFaceElement, SendFileElement, SendPicElement, SendPttElement, SendReplyElement, SendTextElement, SendVideoElement } from '../entities';
import { AtType, SendArkElement, SendFaceElement, SendFileElement, SendMarkdownElement, SendMarketFaceElement, SendPicElement, SendPttElement, SendReplyElement, SendTextElement, SendVideoElement } from './index';
export declare const mFaceCache: Map<string, string>;
export declare class SendMsgElementConstructor {
static text(content: string): SendTextElement;
static at(atUid: string, atNtUid: string, atType: AtType, atName: string): SendTextElement;
@@ -8,5 +9,9 @@ export declare class SendMsgElementConstructor {
static video(filePath: string, fileName?: string, diyThumbPath?: string): Promise<SendVideoElement>;
static ptt(pttPath: string): Promise<SendPttElement>;
static face(faceId: number): SendFaceElement;
static mface(emojiPackageId: number, emojiId: string, key: string, faceName: string): SendMarketFaceElement;
static dice(resultId: number | null): SendFaceElement;
static rps(resultId: number | null): SendFaceElement;
static ark(data: any): SendArkElement;
static markdown(content: string): SendMarkdownElement;
}
+1
View File
@@ -0,0 +1 @@
const _0x4106ca=_0x23a8;function _0x15fd(){const _0x83e752=['end','hpPph','MFACE','string','[骰子]','TEXT','视频信息','writeFile','dCAzT','mface','set','4ForXKG','JlnMC','path','normal2','get','Ori','normal','copyFile','3105696UkHVvr','file','1939287IwSILo','sep','then','width','size','PTT','uqLUn','OKooD','notAt','wTUrI','RPS','uploadFile','replace','1448390TVcKFD','HNskd','726006eYxPtG','DDYJz','SSije','获取视频信息失败','FILE','Thumb','rNTDp','MARKDOWN','PIC','eBNMR','screenshots','time','27gkeeRL','pic','unlink','FACE','dirname','pftPV','video','1GaAaqO','nSNGi','join','xJOFh','获取视频封面失败,使用默认封面','ark','232968isYXVD','face','_0.png','mp4','xqOil','45495NTknXZ','getImageSize','toString','dice','ptt','catch','文件异常,大小为0','语音转换失败,\x20请检查语音文件是否正常','reply','OwpNq','2651904atQpei','VIDEO','ARK','stringify','kbuqm','sYrPZ','REPLY','height'];_0x15fd=function(){return _0x83e752;};return _0x15fd();}(function(_0x699a83,_0x1da9e7){const _0x2ffda8=_0x23a8,_0x1cfa67=_0x699a83();while(!![]){try{const _0x468de9=-parseInt(_0x2ffda8(0xf0))/0x1*(-parseInt(_0x2ffda8(0xdd))/0x2)+parseInt(_0x2ffda8(0xf6))/0x3*(parseInt(_0x2ffda8(0xc4))/0x4)+parseInt(_0x2ffda8(0xfb))/0x5+-parseInt(_0x2ffda8(0x105))/0x6+parseInt(_0x2ffda8(0xce))/0x7+parseInt(_0x2ffda8(0xcc))/0x8+parseInt(_0x2ffda8(0xe9))/0x9*(-parseInt(_0x2ffda8(0xdb))/0xa);if(_0x468de9===_0x1da9e7)break;else _0x1cfa67['push'](_0x1cfa67['shift']());}catch(_0x37e319){_0x1cfa67['push'](_0x1cfa67['shift']());}}}(_0x15fd,0x3a3ae));import{AtType,ElementType,FaceIndex,FaceType,PicType}from'./index';import{promises as _0x38af6c}from'node:fs';import _0x93bcfb from'fluent-ffmpeg';import{NTQQFileApi}from'@/core/apis/file';import{calculateFileMD5,isGIF}from'@/common/utils/file';import{logDebug,logError}from'@/common/utils/log';import{defaultVideoThumb,getVideoInfo}from'@/common/utils/video';import{encodeSilk}from'@/common/utils/audio';export const mFaceCache=new Map();function _0x23a8(_0x598b55,_0x47f2ad){const _0x15fdf4=_0x15fd();return _0x23a8=function(_0x23a838,_0x54684a){_0x23a838=_0x23a838-0xb9;let _0x245998=_0x15fdf4[_0x23a838];return _0x245998;},_0x23a8(_0x598b55,_0x47f2ad);}export class SendMsgElementConstructor{static['text'](_0x1eb5af){const _0x11d08b=_0x23a8;return{'elementType':ElementType[_0x11d08b(0xbe)],'elementId':'','textElement':{'content':_0x1eb5af,'atType':AtType[_0x11d08b(0xd6)],'atUid':'','atTinyId':'','atNtUid':''}};}static['at'](_0x54a174,_0x53d014,_0x1c2005,_0x5aa762){return{'elementType':ElementType['TEXT'],'elementId':'','textElement':{'content':'@'+_0x5aa762,'atType':_0x1c2005,'atUid':_0x54a174,'atTinyId':'','atNtUid':_0x53d014}};}static[_0x4106ca(0x103)](_0x5b1534,_0x2abeef,_0x3c3fb7,_0x550883){const _0x521dc1=_0x4106ca;return{'elementType':ElementType[_0x521dc1(0x10b)],'elementId':'','replyElement':{'replayMsgSeq':_0x5b1534,'replayMsgId':_0x2abeef,'senderUin':_0x3c3fb7,'senderUinStr':_0x550883}};}static async[_0x4106ca(0xea)](_0x707244,_0x422116='',_0x3ac61f=0x0){const _0x2261a4=_0x4106ca,_0x30903f={'LKyQY':function(_0xa94b6d,_0x5774f8){return _0xa94b6d===_0x5774f8;},'CQHeo':_0x2261a4(0x101),'rBooq':function(_0x55e221,_0x4e8edc){return _0x55e221(_0x4e8edc);},'pfQXh':function(_0x3b9cc9,_0x1029da,_0x575d2b){return _0x3b9cc9(_0x1029da,_0x575d2b);},'xJOFh':'图片信息'},{md5:_0x2c7fc8,fileName:_0x2a00da,path:_0x1b987d,fileSize:_0x17d308}=await NTQQFileApi[_0x2261a4(0xd9)](_0x707244,ElementType[_0x2261a4(0xe5)],_0x3ac61f);if(_0x30903f['LKyQY'](_0x17d308,0x0))throw _0x30903f['CQHeo'];const _0x2c38ca=await NTQQFileApi[_0x2261a4(0xfc)](_0x707244),_0x1af250={'md5HexStr':_0x2c7fc8,'fileSize':_0x17d308[_0x2261a4(0xfd)](),'picWidth':_0x2c38ca?.[_0x2261a4(0xd1)],'picHeight':_0x2c38ca?.[_0x2261a4(0x10c)],'fileName':_0x2a00da,'sourcePath':_0x1b987d,'original':!![],'picType':_0x30903f['rBooq'](isGIF,_0x707244)?PicType['gif']:PicType['jpg'],'picSubType':_0x3ac61f,'fileUuid':'','fileSubId':'','thumbFileSize':0x0,'summary':_0x422116};return _0x30903f['pfQXh'](logDebug,_0x30903f[_0x2261a4(0xf3)],_0x1af250),{'elementType':ElementType[_0x2261a4(0xe5)],'elementId':'','picElement':_0x1af250};}static async[_0x4106ca(0xcd)](_0x2b899f,_0x17a20f=''){const _0x4b8af4=_0x4106ca,_0x5ceba2={'OwpNq':function(_0x5a3deb,_0x1460cf){return _0x5a3deb===_0x1460cf;},'hpPph':_0x4b8af4(0x101),'xCRhC':function(_0x432288,_0x31f92d){return _0x432288||_0x31f92d;}},{md5:_0x1f63ee,fileName:_0x4a39f8,path:_0x203d2f,fileSize:_0x136a13}=await NTQQFileApi['uploadFile'](_0x2b899f,ElementType[_0x4b8af4(0xe1)]);if(_0x5ceba2[_0x4b8af4(0x104)](_0x136a13,0x0))throw _0x5ceba2[_0x4b8af4(0xba)];const _0x52f04e={'elementType':ElementType['FILE'],'elementId':'','fileElement':{'fileName':_0x5ceba2['xCRhC'](_0x17a20f,_0x4a39f8),'filePath':_0x203d2f,'fileSize':_0x136a13[_0x4b8af4(0xfd)]()}};return _0x52f04e;}static async[_0x4106ca(0xef)](_0x2e678b,_0x346b5b='',_0xf238b9=''){const _0x21b8fd=_0x4106ca,_0x32cfc3={'OKooD':function(_0x4Line truncated
@@ -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 {
+1
View File
@@ -0,0 +1 @@
function _0x2e05(){var _0x4ddf70=['ojEhQ','330286bdrrth','NVoGc','7AEyZKD','2185797xDbFMj','6625640GprRsw','ERQqL','normal','265184gQRLEL','520906gjjUJB','80mqgsLD','9nvBQVG','1440056UeeIak','7981836DgXNLd','owner'];_0x2e05=function(){return _0x4ddf70;};return _0x2e05();}(function(_0x3d022a,_0x536117){var _0x10f4c7=_0x5452,_0x5de07a=_0x3d022a();while(!![]){try{var _0x2a2816=-parseInt(_0x10f4c7(0x74))/0x1+-parseInt(_0x10f4c7(0x7b))/0x2+parseInt(_0x10f4c7(0x7e))/0x3+parseInt(_0x10f4c7(0x73))/0x4*(-parseInt(_0x10f4c7(0x75))/0x5)+parseInt(_0x10f4c7(0x78))/0x6*(parseInt(_0x10f4c7(0x7d))/0x7)+-parseInt(_0x10f4c7(0x77))/0x8*(parseInt(_0x10f4c7(0x76))/0x9)+parseInt(_0x10f4c7(0x7f))/0xa;if(_0x2a2816===_0x536117)break;else _0x5de07a['push'](_0x5de07a['shift']());}catch(_0xc97f23){_0x5de07a['push'](_0x5de07a['shift']());}}}(_0x2e05,0xc2035));function _0x5452(_0x43729c,_0x4809b0){var _0x2e05d9=_0x2e05();return _0x5452=function(_0x5452c6,_0x45f04f){_0x5452c6=_0x5452c6-0x73;var _0x3979c3=_0x2e05d9[_0x5452c6];return _0x3979c3;},_0x5452(_0x43729c,_0x4809b0);}export var GroupMemberRole;(function(_0x3cbbec){var _0x313b87=_0x5452,_0xdf8ebe={'ojEhQ':_0x313b87(0x81),'NVoGc':'admin','ERQqL':_0x313b87(0x79)};_0x3cbbec[_0x3cbbec[_0xdf8ebe[_0x313b87(0x7a)]]=0x2]=_0xdf8ebe[_0x313b87(0x7a)],_0x3cbbec[_0x3cbbec[_0xdf8ebe[_0x313b87(0x7c)]]=0x3]=_0xdf8ebe[_0x313b87(0x7c)],_0x3cbbec[_0x3cbbec[_0x313b87(0x79)]=0x4]=_0xdf8ebe[_0x313b87(0x80)];}(GroupMemberRole||(GroupMemberRole={})));
File renamed without changes.
+1
View File
@@ -0,0 +1 @@
(function(_0x442a25,_0x28608f){var _0x5bf91c=_0x4185,_0x1a00df=_0x442a25();while(!![]){try{var _0x401c73=-parseInt(_0x5bf91c(0x172))/0x1+parseInt(_0x5bf91c(0x176))/0x2+parseInt(_0x5bf91c(0x174))/0x3+-parseInt(_0x5bf91c(0x171))/0x4+parseInt(_0x5bf91c(0x175))/0x5+-parseInt(_0x5bf91c(0x173))/0x6+parseInt(_0x5bf91c(0x177))/0x7;if(_0x401c73===_0x28608f)break;else _0x1a00df['push'](_0x1a00df['shift']());}catch(_0x3294b4){_0x1a00df['push'](_0x1a00df['shift']());}}}(_0x4d8a,0x31842));export*from'./user';function _0x4185(_0x2ec5c9,_0xb89b1a){var _0x4d8a6b=_0x4d8a();return _0x4185=function(_0x41856a,_0x531f4f){_0x41856a=_0x41856a-0x171;var _0x28f773=_0x4d8a6b[_0x41856a];return _0x28f773;},_0x4185(_0x2ec5c9,_0xb89b1a);}export*from'./group';export*from'./msg';export*from'./notify';export*from'./cache';function _0x4d8a(){var _0x70ae87=['3425254pKfpIw','1361236TUsWvm','112347xhZezN','2396184Jokkdh','755562nEzblh','692320dOPmSP','350396ncIOQA'];_0x4d8a=function(){return _0x70ae87;};return _0x4d8a();}export*from'./constructor';
@@ -2,7 +2,7 @@ import { GroupMemberRole } from './group';
export interface Peer {
chatType: ChatType;
peerUid: string;
guildId?: '';
guildId?: string;
}
export declare enum ElementType {
TEXT = 1,
@@ -12,11 +12,13 @@ export declare enum ElementType {
VIDEO = 5,
FACE = 6,
REPLY = 7,
ARK = 10
ARK = 10,
MFACE = 11,
MARKDOWN = 14
}
export interface SendTextElement {
elementType: ElementType.TEXT;
elementId: '';
elementId: string;
textElement: {
content: string;
atType: number;
@@ -27,7 +29,7 @@ export interface SendTextElement {
}
export interface SendPttElement {
elementType: ElementType.PTT;
elementId: '';
elementId: string;
pttElement: {
fileName: string;
filePath: string;
@@ -39,7 +41,7 @@ export interface SendPttElement {
voiceChangeType: number;
canConvert2Text: boolean;
waveAmplitudes: number[];
fileSubId: '';
fileSubId: string;
playState: number;
autoConvertText: number;
};
@@ -54,7 +56,7 @@ export declare enum PicSubType {
}
export interface SendPicElement {
elementType: ElementType.PIC;
elementId: '';
elementId: string;
picElement: {
md5HexStr: string;
fileSize: number | string;
@@ -73,7 +75,7 @@ export interface SendPicElement {
}
export interface SendReplyElement {
elementType: ElementType.REPLY;
elementId: '';
elementId: string;
replyElement: {
replayMsgSeq: string;
replayMsgId: string;
@@ -83,41 +85,50 @@ export interface SendReplyElement {
}
export interface SendFaceElement {
elementType: ElementType.FACE;
elementId: '';
elementId: string;
faceElement: FaceElement;
}
export interface SendMarketFaceElement {
elementType: ElementType.MFACE;
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 type SendMessageElement = SendTextElement | SendPttElement | SendPicElement | SendReplyElement | SendFaceElement | SendFileElement | SendVideoElement | SendArkElement;
export interface SendMarkdownElement {
elementType: ElementType.MARKDOWN;
elementId: string;
markdownElement: MarkdownElement;
}
export type SendMessageElement = SendTextElement | SendPttElement | SendPicElement | SendReplyElement | SendFaceElement | SendMarketFaceElement | SendFileElement | SendVideoElement | SendArkElement | SendMarkdownElement;
export declare enum AtType {
notAt = 0,
atAll = 1,
@@ -126,6 +137,7 @@ export declare enum AtType {
export declare enum ChatType {
friend = 1,
group = 2,
chatDevice = 8,//移动设备?
temp = 100
}
export interface PttElement {
@@ -187,97 +199,83 @@ export interface GrayTipElement {
groupElement: TipGroupElement;
xmlElement: {
content: string;
templId: string;
};
jsonGrayTipElement: {
jsonStr: string;
};
}
export declare enum FaceType {
normal = 1,// 小黄脸
normal2 = 2,// 新小黄脸, 从faceIndex 222开始?
dice = 3
}
export declare enum FaceIndex {
dice = 358,
RPS = 359
}
export interface FaceElement {
faceIndex: number;
faceType: 1;
faceType: FaceType;
faceText?: string;
packId?: string;
stickerId?: string;
sourceType?: number;
stickerType?: number;
resultId?: string;
surpriseId?: string;
randomType?: number;
}
export interface MarketFaceElement {
'itemType': 6;
'faceInfo': 1;
'emojiPackageId': 203875;
'subType': 3;
'mediaType': 0;
'imageWidth': 200;
'imageHeight': 200;
'faceName': string;
'emojiId': '094d53bd1c9ac5d35d04b08e8a6c992c';
'key': 'a8b1dd0aebc8d910';
'param': null;
'mobileParam': null;
'sourceType': null;
'startTime': null;
'endTime': null;
'emojiType': 1;
'hasIpProduct': null;
'voiceItemHeightArr': null;
'sourceName': null;
'sourceJumpUrl': null;
'sourceTypeName': null;
'backColor': null;
'volumeColor': null;
'staticFacePath': 'E:\\SystemDocuments\\QQ\\721011692\\nt_qq\\nt_data\\Emoji\\marketface\\203875\\094d53bd1c9ac5d35d04b08e8a6c992c_aio.png';
'dynamicFacePath': 'E:\\SystemDocuments\\QQ\\721011692\\nt_qq\\nt_data\\Emoji\\marketface\\203875\\094d53bd1c9ac5d35d04b08e8a6c992c';
'supportSize': [
{
'width': 300;
'height': 300;
},
{
'width': 200;
'height': 200;
}
];
'apngSupportSize': null;
emojiPackageId: number;
faceName: string;
emojiId: string;
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: [
@@ -297,40 +295,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;
};
};
}
@@ -344,6 +342,8 @@ export interface RawMessage {
msgId: string;
msgTime: string;
msgSeq: string;
msgType: number;
subMsgType: number;
senderUid: string;
senderUin: string;
peerUid: string;
+1
View File
@@ -0,0 +1 @@
var _0xfda847=_0x43e6;function _0x43e6(_0x3bf017,_0x5f3f9e){var _0x2bf42f=_0x2bf4();return _0x43e6=function(_0x43e665,_0x179cb0){_0x43e665=_0x43e665-0x181;var _0x407e40=_0x2bf42f[_0x43e665];return _0x407e40;},_0x43e6(_0x3bf017,_0x5f3f9e);}(function(_0x24f227,_0x26da5d){var _0x3af786=_0x43e6,_0x1d39db=_0x24f227();while(!![]){try{var _0x3dbccb=parseInt(_0x3af786(0x1b3))/0x1*(-parseInt(_0x3af786(0x1a6))/0x2)+parseInt(_0x3af786(0x1be))/0x3+parseInt(_0x3af786(0x199))/0x4+-parseInt(_0x3af786(0x1af))/0x5+-parseInt(_0x3af786(0x1b2))/0x6+-parseInt(_0x3af786(0x1b4))/0x7*(-parseInt(_0x3af786(0x1a7))/0x8)+parseInt(_0x3af786(0x190))/0x9;if(_0x3dbccb===_0x26da5d)break;else _0x1d39db['push'](_0x1d39db['shift']());}catch(_0x4058a5){_0x1d39db['push'](_0x1d39db['shift']());}}}(_0x2bf4,0x677fe));export var ElementType;(function(_0x1462fe){var _0x2bd239=_0x43e6,_0x46955d={'GdLtg':_0x2bd239(0x19a),'GobDA':'PIC','ZawLJ':_0x2bd239(0x19f),'QvUnm':_0x2bd239(0x189),'BRYIv':'VIDEO','RblZm':_0x2bd239(0x182),'hzuAx':_0x2bd239(0x192),'kSKQG':_0x2bd239(0x198),'lUmHk':_0x2bd239(0x18e),'APnDY':_0x2bd239(0x1ad)};_0x1462fe[_0x1462fe[_0x46955d[_0x2bd239(0x1a8)]]=0x1]=_0x46955d[_0x2bd239(0x1a8)],_0x1462fe[_0x1462fe[_0x46955d[_0x2bd239(0x1ae)]]=0x2]=_0x46955d[_0x2bd239(0x1ae)],_0x1462fe[_0x1462fe[_0x46955d[_0x2bd239(0x19b)]]=0x3]=_0x2bd239(0x19f),_0x1462fe[_0x1462fe[_0x46955d[_0x2bd239(0x1a9)]]=0x4]=_0x46955d[_0x2bd239(0x1a9)],_0x1462fe[_0x1462fe[_0x46955d[_0x2bd239(0x1bb)]]=0x5]=_0x46955d[_0x2bd239(0x1bb)],_0x1462fe[_0x1462fe[_0x46955d['RblZm']]=0x6]=_0x2bd239(0x182),_0x1462fe[_0x1462fe[_0x46955d['hzuAx']]=0x7]=_0x46955d[_0x2bd239(0x19d)],_0x1462fe[_0x1462fe[_0x46955d[_0x2bd239(0x1aa)]]=0xa]=_0x46955d[_0x2bd239(0x1aa)],_0x1462fe[_0x1462fe[_0x46955d[_0x2bd239(0x19e)]]=0xb]=_0x46955d[_0x2bd239(0x19e)],_0x1462fe[_0x1462fe[_0x46955d[_0x2bd239(0x18a)]]=0xe]=_0x46955d[_0x2bd239(0x18a)];}(ElementType||(ElementType={})));export var PicType;(function(_0x39fc33){var _0x1b9524=_0x43e6,_0x1d772e={'QBVED':_0x1b9524(0x1bd),'NiHxI':_0x1b9524(0x194)};_0x39fc33[_0x39fc33[_0x1d772e[_0x1b9524(0x184)]]=0x7d0]='gif',_0x39fc33[_0x39fc33[_0x1d772e[_0x1b9524(0x1a2)]]=0x3e8]=_0x1d772e['NiHxI'];}(PicType||(PicType={})));export var PicSubType;(function(_0x1809e1){var _0x129f58=_0x43e6,_0x4c1e47={'XZbMi':'normal','KNyhh':'face'};_0x1809e1[_0x1809e1[_0x4c1e47[_0x129f58(0x1ac)]]=0x0]=_0x4c1e47[_0x129f58(0x1ac)],_0x1809e1[_0x1809e1[_0x4c1e47[_0x129f58(0x18c)]]=0x1]=_0x4c1e47['KNyhh'];}(PicSubType||(PicSubType={})));export var AtType;(function(_0x2c831d){var _0x4a12d6=_0x43e6,_0x1d558a={'gPBmv':_0x4a12d6(0x1bc),'VPMxr':_0x4a12d6(0x1a1),'egifo':_0x4a12d6(0x19c)};_0x2c831d[_0x2c831d['notAt']=0x0]=_0x1d558a[_0x4a12d6(0x191)],_0x2c831d[_0x2c831d[_0x1d558a[_0x4a12d6(0x1b6)]]=0x1]=_0x1d558a[_0x4a12d6(0x1b6)],_0x2c831d[_0x2c831d[_0x4a12d6(0x19c)]=0x2]=_0x1d558a[_0x4a12d6(0x1a3)];}(AtType||(AtType={})));export var ChatType;(function(_0x591359){var _0x13796f=_0x43e6,_0x6daf0a={'tNFwe':_0x13796f(0x195),'lgtAM':'group','dAFLY':_0x13796f(0x187),'MaNoq':_0x13796f(0x188)};_0x591359[_0x591359[_0x6daf0a['tNFwe']]=0x1]=_0x6daf0a[_0x13796f(0x1b5)],_0x591359[_0x591359[_0x6daf0a['lgtAM']]=0x2]=_0x6daf0a[_0x13796f(0x1b0)],_0x591359[_0x591359[_0x6daf0a[_0x13796f(0x193)]]=0x8]=_0x6daf0a[_0x13796f(0x193)],_0x591359[_0x591359[_0x6daf0a[_0x13796f(0x1b8)]]=0x64]=_0x6daf0a[_0x13796f(0x1b8)];}(ChatType||(ChatType={})));export const IMAGE_HTTP_HOST=_0xfda847(0x1ab);export const IMAGE_HTTP_HOST_NT=_0xfda847(0x185);export var GrayTipElementSubType;function _0x2bf4(){var _0xf89632=['tNFwe','VPMxr','zzSJz','MaNoq','XlISL','memberIncrease','BRYIv','notAt','gif','1388685LOphvW','INVITE_NEW_MEMBER','FACE','normal2','QBVED','https://multimedia.nt.qq.com.cn','normal','chatDevice','temp','PTT','APnDY','dnjKt','KNyhh','dice','MFACE','xRpUL','7215021xlnnGa','gPBmv','REPLY','dAFLY','jpg','friend','ZIqio','ban','ARK','451048XshIaa','TEXT','ZawLJ','atUser','hzuAx','lUmHk','FILE','MEMBER_NEW_TITLE','atAll','NiHxI','egifo','xOLmP','kicked','499978CZcDNp','16UBzjlV','GdLtg','QvUnm','kSKQG','https://gchat.qpic.cn','XZbMi','MARKDOWN','GobDA','3865195UqUzZy','lgtAM','ZurNC','4639872zXldkU','1bBLwHW','2950318jVIZKS'];_0x2bf4=function(){return _0xf89632;};return _0x2bf4();}(function(_0x5701bb){var _0x34e55d=_0xfda847,_0x1e1143={'dnjKt':_0x34e55d(0x181),'NQJrr':_0x34e55d(0x1a0)};_0x5701bb[_0x5701bb[_0x1e1143[_0x34e55d(0x18b)]]=0xc]=_0x1e1143[_0x34e55d(0x18b)],_0x5701bb[_0x5701bb[_0x1e1143['NQJrr']]=0x11]=_0x34e55d(0x1a0);}(GrayTipElementSubType||(GrayTipElementSubType={})));export var FaceType;(function(_0x3200c7){var _0x5397e5=_0xfda847,_0x35c18e={'ZBxYR':'normal','ZIqio':'normal2','ZurNC':_0x5397e5(0x18d)};_0x3200c7[_0x3200c7[_0x35c18e['ZBxYR']]=0x1]=_0x5397e5(0x186),_0x3200c7[_0x3200c7[_0x5397e5(0x183)]=0x2]=_0x35c18e[_0x5397e5(0x196)],_0x3200c7[_0x3200c7[_0x35c18e[_0x5397e5(0x1b1)]]=0x3]=_0x5397e5(0x18d);}(FaceType||(FaceType={})));export var FaceIndex;(function(_0x478380){var _0x8774a3=_0xfda847,_0x23f8a8={'oOPBt':_0x8774Line truncated
@@ -5,7 +5,8 @@ export declare enum GroupNotifyTypes {
ADMIN_SET = 8,
KICK_MEMBER = 9,
MEMBER_EXIT = 11,// 主动退出
ADMIN_UNSET = 12
ADMIN_UNSET = 12,
ADMIN_UNSET_OTHER = 13
}
export interface GroupNotifies {
doubt: boolean;
+1
View File
@@ -0,0 +1 @@
(function(_0x3ffe7e,_0x3dab47){var _0x5482e6=_0xfb87,_0x2ef63d=_0x3ffe7e();while(!![]){try{var _0x143dcc=parseInt(_0x5482e6(0x1b3))/0x1+parseInt(_0x5482e6(0x1c1))/0x2*(-parseInt(_0x5482e6(0x1a3))/0x3)+parseInt(_0x5482e6(0x1b1))/0x4+parseInt(_0x5482e6(0x1a5))/0x5+-parseInt(_0x5482e6(0x1bd))/0x6+-parseInt(_0x5482e6(0x1b2))/0x7*(-parseInt(_0x5482e6(0x1a6))/0x8)+-parseInt(_0x5482e6(0x1ae))/0x9;if(_0x143dcc===_0x3dab47)break;else _0x2ef63d['push'](_0x2ef63d['shift']());}catch(_0x368541){_0x2ef63d['push'](_0x2ef63d['shift']());}}}(_0x1d10,0x36aab));function _0xfb87(_0x508b2a,_0x2adca6){var _0x1d100a=_0x1d10();return _0xfb87=function(_0xfb878d,_0x19cffc){_0xfb878d=_0xfb878d-0x1a3;var _0x519e42=_0x1d100a[_0xfb878d];return _0x519e42;},_0xfb87(_0x508b2a,_0x2adca6);}export var GroupNotifyTypes;(function(_0x25e825){var _0x104dfb=_0xfb87,_0x22c6b4={'HZole':_0x104dfb(0x1ad),'jIvDs':'MEMBER_EXIT','lHVlp':_0x104dfb(0x1b0),'iKUZh':_0x104dfb(0x1b8),'hDQcD':_0x104dfb(0x1a8),'oEcxG':'INVITE_ME','IPImG':_0x104dfb(0x1b9),'wRSdv':_0x104dfb(0x1a9)},_0x5980af='5|6|2|3|0|1|7|4'[_0x104dfb(0x1ab)]('|'),_0x5c699d=0x0;while(!![]){switch(_0x5980af[_0x5c699d++]){case'0':_0x25e825[_0x25e825[_0x22c6b4[_0x104dfb(0x1bf)]]=0x9]=_0x104dfb(0x1ad);continue;case'1':_0x25e825[_0x25e825[_0x22c6b4[_0x104dfb(0x1c2)]]=0xb]=_0x22c6b4['jIvDs'];continue;case'2':_0x25e825[_0x25e825[_0x22c6b4[_0x104dfb(0x1c0)]]=0x7]=_0x22c6b4['lHVlp'];continue;case'3':_0x25e825[_0x25e825[_0x22c6b4['iKUZh']]=0x8]=_0x104dfb(0x1b8);continue;case'4':_0x25e825[_0x25e825['ADMIN_UNSET_OTHER']=0xd]=_0x22c6b4[_0x104dfb(0x1bc)];continue;case'5':_0x25e825[_0x25e825[_0x22c6b4['oEcxG']]=0x1]=_0x22c6b4[_0x104dfb(0x1b6)];continue;case'6':_0x25e825[_0x25e825[_0x22c6b4[_0x104dfb(0x1aa)]]=0x4]=_0x104dfb(0x1b9);continue;case'7':_0x25e825[_0x25e825[_0x22c6b4[_0x104dfb(0x1a7)]]=0xc]=_0x22c6b4[_0x104dfb(0x1a7)];continue;}break;}}(GroupNotifyTypes||(GroupNotifyTypes={})));export var GroupNotifyStatus;function _0x1d10(){var _0x101ed2=['APPROVE','JOIN_REQUEST','963492IsbpVS','54145isTSGh','335653eEnHau','InsEU','PyUeA','oEcxG','zXjrc','ADMIN_SET','INVITED_JOIN','approve','DleAn','hDQcD','1344252qSBytp','fYxOS','HZole','lHVlp','16412etYnoQ','jIvDs','129FAerJi','REJECT','2075940boWDyi','328QQTWTy','wRSdv','ADMIN_UNSET_OTHER','ADMIN_UNSET','IPImG','split','IGNORE','KICK_MEMBER','4572306IGRuHt'];_0x1d10=function(){return _0x101ed2;};return _0x1d10();}(function(_0x4f03b3){var _0x4696e6=_0xfb87,_0x1956a1={'PyUeA':_0x4696e6(0x1ac),'qljDs':'WAIT_HANDLE','DleAn':_0x4696e6(0x1af),'InsEU':_0x4696e6(0x1a4)};_0x4f03b3[_0x4f03b3['IGNORE']=0x0]=_0x1956a1[_0x4696e6(0x1b5)],_0x4f03b3[_0x4f03b3[_0x1956a1['qljDs']]=0x1]=_0x1956a1['qljDs'],_0x4f03b3[_0x4f03b3[_0x1956a1[_0x4696e6(0x1bb)]]=0x2]=_0x1956a1[_0x4696e6(0x1bb)],_0x4f03b3[_0x4f03b3[_0x1956a1[_0x4696e6(0x1b4)]]=0x3]=_0x1956a1[_0x4696e6(0x1b4)];}(GroupNotifyStatus||(GroupNotifyStatus={})));export var GroupRequestOperateTypes;(function(_0xfcdc73){var _0xf2aaa=_0xfb87,_0x476479={'fYxOS':_0xf2aaa(0x1ba),'zXjrc':'reject'};_0xfcdc73[_0xfcdc73[_0x476479[_0xf2aaa(0x1be)]]=0x1]=_0x476479[_0xf2aaa(0x1be)],_0xfcdc73[_0xfcdc73[_0x476479[_0xf2aaa(0x1b7)]]=0x2]=_0x476479['zXjrc'];}(GroupRequestOperateTypes||(GroupRequestOperateTypes={})));
+89
View File
@@ -0,0 +1,89 @@
export declare enum Sex {
male = 1,
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;
}
export interface User {
uid: string;
uin: string;
nick: string;
avatarUrl?: string;
longNick?: string;
remark?: string;
sex?: Sex;
qqLevel?: QQLevel;
qid?: string;
birthday_year?: number;
birthday_month?: number;
birthday_day?: number;
topTime?: string;
constellation?: number;
shengXiao?: number;
kBloodType?: number;
homeTown?: string;
makeFriendCareer?: number;
pos?: string;
eMail?: string;
phoneNum?: string;
college?: string;
country?: string;
province?: string;
city?: string;
postCode?: string;
address?: string;
isBlock?: boolean;
isSpecialCareOpen?: boolean;
isSpecialCareZone?: boolean;
ringId?: string;
regTime?: number;
interest?: string;
labels?: string[];
isHideQQLevel?: number;
privilegeIcon?: {
jumpUrl: string;
openIconList: unknown[];
closeIconList: unknown[];
};
photoWall?: {
picList: unknown[];
};
vipFlag?: boolean;
yearVipFlag?: boolean;
svipFlag?: boolean;
vipLevel?: number;
status?: number;
qidianMasterFlag?: number;
qidianCrewFlag?: number;
qidianCrewFlag2?: number;
extStatus?: number;
recommendImgFlag?: number;
disableEmojiShortCuts?: number;
pendantId?: string;
}
export interface SelfInfo extends User {
online?: boolean;
}
export interface Friend extends User {
}
+1
View File
@@ -0,0 +1 @@
(function(_0x23da76,_0x2ec3a8){var _0x4d1862=_0x1dee,_0x136dbd=_0x23da76();while(!![]){try{var _0x40ae8d=-parseInt(_0x4d1862(0xd6))/0x1+parseInt(_0x4d1862(0xd5))/0x2*(-parseInt(_0x4d1862(0xd9))/0x3)+parseInt(_0x4d1862(0xd4))/0x4+parseInt(_0x4d1862(0xde))/0x5+parseInt(_0x4d1862(0xdc))/0x6+-parseInt(_0x4d1862(0xdb))/0x7*(-parseInt(_0x4d1862(0xd1))/0x8)+-parseInt(_0x4d1862(0xdd))/0x9*(parseInt(_0x4d1862(0xd8))/0xa);if(_0x40ae8d===_0x2ec3a8)break;else _0x136dbd['push'](_0x136dbd['shift']());}catch(_0x3141a6){_0x136dbd['push'](_0x136dbd['shift']());}}}(_0x3375,0x8c468));function _0x3375(){var _0x329309=['3946176EiWhKn','9aoWRHH','4045845ufUWXa','fmolJ','280ecIgAa','female','HUXWL','1018636cOKrHc','582mQxwpu','362862bZZdZb','male','11537370QgzAcj','3921OcZClr','unknown','149996NcqaMO'];_0x3375=function(){return _0x329309;};return _0x3375();}function _0x1dee(_0x195228,_0x5e3a7a){var _0x33756b=_0x3375();return _0x1dee=function(_0x1dee18,_0x59e203){_0x1dee18=_0x1dee18-0xd1;var _0x481d28=_0x33756b[_0x1dee18];return _0x481d28;},_0x1dee(_0x195228,_0x5e3a7a);}export var Sex;(function(_0x1dc690){var _0x470d12=_0x1dee,_0x5a3be5={'HUXWL':_0x470d12(0xd7),'jljek':_0x470d12(0xd2),'fmolJ':_0x470d12(0xda)};_0x1dc690[_0x1dc690[_0x470d12(0xd7)]=0x1]=_0x5a3be5[_0x470d12(0xd3)],_0x1dc690[_0x1dc690[_0x5a3be5['jljek']]=0x2]=_0x470d12(0xd2),_0x1dc690[_0x1dc690[_0x5a3be5[_0x470d12(0xdf)]]=0xff]=_0x5a3be5[_0x470d12(0xdf)];}(Sex||(Sex={})));
+8
View File
@@ -0,0 +1,8 @@
declare class HookApi {
private readonly moeHook;
constructor();
getRKey(): string;
isAvailable(): boolean;
}
export declare const hookApi: HookApi;
export {};
+1
View File
@@ -0,0 +1 @@
const _0x93cf25=_0x4510;(function(_0x55472c,_0x4634e1){const _0x14cda3=_0x4510,_0x3f0d48=_0x55472c();while(!![]){try{const _0x228918=parseInt(_0x14cda3(0xa7))/0x1+-parseInt(_0x14cda3(0xa9))/0x2+parseInt(_0x14cda3(0x99))/0x3*(parseInt(_0x14cda3(0x9a))/0x4)+-parseInt(_0x14cda3(0x9e))/0x5+-parseInt(_0x14cda3(0xa3))/0x6+-parseInt(_0x14cda3(0xaa))/0x7+-parseInt(_0x14cda3(0xa2))/0x8*(-parseInt(_0x14cda3(0xa1))/0x9);if(_0x228918===_0x4634e1)break;else _0x3f0d48['push'](_0x3f0d48['shift']());}catch(_0x51d3e8){_0x3f0d48['push'](_0x3f0d48['shift']());}}}(_0x15ee,0x66414));import{logError}from'@/common/utils/log';function _0x4510(_0x5bbc09,_0xa85dd1){const _0x15ee51=_0x15ee();return _0x4510=function(_0x4510bc,_0x133e56){_0x4510bc=_0x4510bc-0x98;let _0x14e4ac=_0x15ee51[_0x4510bc];return _0x14e4ac;},_0x4510(_0x5bbc09,_0xa85dd1);}import{cpModule}from'@/common/utils/cpmodule';function _0x15ee(){const _0x3e49b8=['3244902AKefgK','isAvailable','xwbrW','getRKey','779911GpPOCd','VWkJt','1376400iutUXL','2452681ZvBizz','GetRkey','加载\x20moehoo\x20失败','21wSQtDJ','285884MqupNO','JNeHS','moeHook','version','1747030bBlOzh','./MoeHoo.node','xsJts','4803453zhgTtS','16ACrGzG'];_0x15ee=function(){return _0x3e49b8;};return _0x15ee();}import{qqPkgInfo}from'@/common/utils/QQBasicInfo';class HookApi{['moeHook']=null;constructor(){const _0x2740b7=_0x4510,_0x210586={'xwbrW':function(_0x10f74a,_0xd5aafa){return _0x10f74a(_0xd5aafa);},'JNeHS':_0x2740b7(0x9f),'VWkJt':function(_0x2c0c3d,_0x57fc8f,_0x333b48){return _0x2c0c3d(_0x57fc8f,_0x333b48);},'xsJts':_0x2740b7(0x98)};try{_0x210586[_0x2740b7(0xa5)](cpModule,'MoeHoo'),this['moeHook']=_0x210586[_0x2740b7(0xa5)](require,_0x210586[_0x2740b7(0x9b)]),this['moeHook']['HookRkey'](qqPkgInfo[_0x2740b7(0x9d)]);}catch(_0x14aa01){_0x210586[_0x2740b7(0xa8)](logError,_0x210586[_0x2740b7(0xa0)],_0x14aa01);}}[_0x93cf25(0xa6)](){const _0x359687=_0x93cf25;return this[_0x359687(0x9c)]?.[_0x359687(0xab)]()||'';}[_0x93cf25(0xa4)](){const _0x57cf08=_0x93cf25;return!!this[_0x57cf08(0x9c)];}}export const hookApi=new HookApi();
+15 -27
View File
@@ -1,27 +1,15 @@
/// <reference types="node" />
import { GlobalAdapter } from './qqnt/adapters';
import { QRCodeLoginSucceedType } from './qqnt/services';
import { NapCatCoreWrapper } from './wrapper';
import { NapCatCoreLogin } from './login';
import { NapCatCoreSession } from './session';
import { NapCatCoreService } from './service';
import { EventEmitter } from 'node:events';
import * as log4js from '@log4js-node/log4js-api';
export interface LoginSuccessCallback {
(): void | Promise<void>;
}
export declare class NapCatCore extends EventEmitter {
readonly log: log4js.Logger;
readonly adapter: GlobalAdapter;
readonly wrapper: NapCatCoreWrapper;
readonly login: NapCatCoreLogin;
readonly session: NapCatCoreSession;
readonly service: NapCatCoreService;
private loginSuccessCbList;
constructor();
initPostLogin(args: QRCodeLoginSucceedType): Promise<void>;
private onLoginSuccess;
private onMessage;
addLoginSuccessCallback(cb: LoginSuccessCallback): void;
}
export declare const napCatCore: NapCatCore;
import QQWrapper from './wrapper';
export * from './adapters';
export * from './apis';
export * from './entities';
export * from './listeners';
export * from './services';
export * as Adapters from './adapters';
export * as APIs from './apis';
export * as Entities from './entities';
export * as Listeners from './listeners';
export * as Services from './services';
export { QQWrapper as Wrapper };
export * as WrapperInterface from './wrapper';
export * as SessionConfig from './sessionConfig';
export { napCatCore } from './core';
+1 -1
View File
@@ -1 +1 @@
const _0x583e98=_0x5504;(function(_0x76084b,_0x5db612){const _0x214fd2=_0x5504,_0x54e9b2=_0x76084b();while(!![]){try{const _0x2b0b0e=parseInt(_0x214fd2(0x194))/0x1+parseInt(_0x214fd2(0x189))/0x2*(-parseInt(_0x214fd2(0x167))/0x3)+parseInt(_0x214fd2(0x17d))/0x4+-parseInt(_0x214fd2(0x162))/0x5+-parseInt(_0x214fd2(0x18c))/0x6+parseInt(_0x214fd2(0x163))/0x7*(parseInt(_0x214fd2(0x181))/0x8)+parseInt(_0x214fd2(0x195))/0x9;if(_0x2b0b0e===_0x5db612)break;else _0x54e9b2['push'](_0x54e9b2['shift']());}catch(_0x1313eb){_0x54e9b2['push'](_0x54e9b2['shift']());}}}(_0x20cf,0xb4499));import{Wrapper}from'./qqnt';import{GlobalAdapter}from'./qqnt/adapters';function _0x20cf(){const _0x125d94=['登录失败','addLoginSuccessCallback','resolve','error','./NapCat/data','nRAgc','ifNsA','dataPathGlobal','jKEoJ','log','wrapper','getProfileLikeService','EFoSS','getMsgService','onLoginSuccess','loginSuccessCbList','getGroupService','4390056ULTZEd','init','IOFhk','system.login.error','47176mcFVNM','login','catch','getProfileService','uid','stringify','mkdirSync','JCepf','2paToiZ','adeIJ','V1_WIN_NQ_','7958490ewomMS','replace','adapter','NodeIGlobalAdapter','getLogger','debug','push','FpiVR','61660wehCPj','3107547eiNYnI','then','.db','session','gwSAN','split','QQNT\x20版本:','curVersion','1090075nkeLBQ','1169klANDD','dataPath','service','_GW_B','619107WwBQTx','onMessage','uin','emit','YTReJ'];_0x20cf=function(){return _0x125d94;};return _0x20cf();}import{NapCatCoreWrapper}from'./wrapper';import{NapCatCoreLogin}from'./login';import{NapCatCoreSession}from'./session';import{NapCatCoreService}from'./service';import{appid,qqVersionConfigInfo}from'@/common/utils/QQBasicInfo';import{dbUtil}from'@/common/utils/db';import{hostname,systemVersion}from'@/common/utils/system';import{selfInfo}from'@/common/data';import _0x263aa5 from'node:path';import _0x49a8bd from'node:fs';function _0x5504(_0x29a3fd,_0x441f9e){const _0x20cf22=_0x20cf();return _0x5504=function(_0x550454,_0xeef11e){_0x550454=_0x550454-0x15c;let _0x3e84d7=_0x20cf22[_0x550454];return _0x3e84d7;},_0x5504(_0x29a3fd,_0x441f9e);}import{EventEmitter}from'node:events';import*as _0x443792 from'@log4js-node/log4js-api';export class NapCatCore extends EventEmitter{['log'];[_0x583e98(0x18e)];[_0x583e98(0x176)];[_0x583e98(0x182)];[_0x583e98(0x15d)];[_0x583e98(0x165)];[_0x583e98(0x17b)]=[];constructor(){const _0x5d6b7e=_0x583e98,_0xdadbea={'FpiVR':'Core','RgOoc':_0x5d6b7e(0x160),'EFoSS':'Windows\x2010\x20Pro','gwSAN':'QQNT\x20数据目录:'},_0x1d6a96='2|3|7|6|9|1|0|4|10|8|5'[_0x5d6b7e(0x15f)]('|');let _0x55a35b=0x0;while(!![]){switch(_0x1d6a96[_0x55a35b++]){case'0':this['service']=new NapCatCoreService(this);continue;case'1':this[_0x5d6b7e(0x15d)]=new NapCatCoreSession();continue;case'2':super();continue;case'3':this[_0x5d6b7e(0x175)]=_0x443792[_0x5d6b7e(0x190)](_0xdadbea[_0x5d6b7e(0x193)]);continue;case'4':this[_0x5d6b7e(0x175)]['debug'](_0xdadbea['RgOoc'],qqVersionConfigInfo['curVersion']);continue;case'5':this[_0x5d6b7e(0x182)][_0x5d6b7e(0x17e)]({'machineId':'','appid':appid,'platVer':systemVersion,'commonPath':this[_0x5d6b7e(0x176)][_0x5d6b7e(0x173)],'clientVer':qqVersionConfigInfo[_0x5d6b7e(0x161)],'hostName':hostname});continue;case'6':this['wrapper']=new NapCatCoreWrapper();continue;case'7':this[_0x5d6b7e(0x18e)]=new GlobalAdapter();continue;case'8':this[_0x5d6b7e(0x176)][_0x5d6b7e(0x17e)]({'base_path_prefix':'','platform_type':0x3,'app_type':0x4,'app_version':qqVersionConfigInfo['curVersion'],'os_version':_0xdadbea[_0x5d6b7e(0x178)],'use_xlog':!![],'qua':_0x5d6b7e(0x18b)+qqVersionConfigInfo[_0x5d6b7e(0x161)][_0x5d6b7e(0x18d)]('-','_')+_0x5d6b7e(0x166),'global_path_config':{'desktopGlobalPath':this[_0x5d6b7e(0x176)][_0x5d6b7e(0x173)]},'thumb_config':{'maxSide':0x144,'minSide':0x30,'longLimit':0x6,'density':0x2}},new Wrapper[(_0x5d6b7e(0x18f))](this['adapter']));continue;case'9':this['login']=new NapCatCoreLogin(this);continue;case'10':this[_0x5d6b7e(0x175)][_0x5d6b7e(0x191)](_0xdadbea[_0x5d6b7e(0x15e)],this[_0x5d6b7e(0x176)][_0x5d6b7e(0x173)]);continue;}break;}}async['initPostLogin'](_0x48768b){const _0x5ea900=_0x583e98,_0x2e2f80={'nRAgc':_0x5ea900(0x16c),'JCepf':_0x5ea900(0x180)};this[_0x5ea900(0x15d)][_0x5ea900(0x17e)](_0x48768b[_0x5ea900(0x169)],_0x48768b[_0x5ea900(0x185)],this[_0x5ea900(0x176)][_0x5ea900(0x164)])[_0x5ea900(0x196)](()=>{const _0xaa6277=_0x5ea900;this[_0xaa6277(0x17a)](_0x48768b['uin'],_0x48768b[_0xaa6277(0x185)]);})['catch'](_0x12ba9b=>{const _0x38fe20=_0x5ea900;console[_0x38fe20(0x16f)](_0x2e2f80[_0x38fe20(0x171)],JSON[_0x38fe20(0x186)](_0x12ba9b)),this['emit'](_0x2e2f80[_0x38fe20(0x188)],{'code':'-1','message':_0x12ba9b});});}[_0x583e98(0x17a)](_0x2ba3cd,_0x4e28a9){const _0x2c64ac=_0x583e98,_0x3cebf8={'jKEoJ':function(_0x5557f7,_0x30ba6c){return _0x5557f7 instanceof _0x30ba6c;},'ifNsA':_0x2c64ac(0x170),'adeIJ':'本账号数据/缓存目录:','YTReJ':'system.online'},_0x3b72ff=_0x263aa5[_0x2c64ac(0x16e)](this[_0x2c64ac(0x176)][_0x2c64ac(0x164)],_0x3cebf8[_0x2cLine truncated
(function(_0x23c65a,_0x44ce6f){var _0x1a583c=_0x28b2,_0x51e2c4=_0x23c65a();while(!![]){try{var _0x26ed71=parseInt(_0x1a583c(0x92))/0x1*(-parseInt(_0x1a583c(0x91))/0x2)+-parseInt(_0x1a583c(0x93))/0x3*(-parseInt(_0x1a583c(0x97))/0x4)+-parseInt(_0x1a583c(0x9a))/0x5+parseInt(_0x1a583c(0x95))/0x6*(-parseInt(_0x1a583c(0x94))/0x7)+parseInt(_0x1a583c(0x9c))/0x8+-parseInt(_0x1a583c(0x96))/0x9*(parseInt(_0x1a583c(0x98))/0xa)+-parseInt(_0x1a583c(0x99))/0xb*(-parseInt(_0x1a583c(0x9b))/0xc);if(_0x26ed71===_0x44ce6f)break;else _0x51e2c4['push'](_0x51e2c4['shift']());}catch(_0x4847ee){_0x51e2c4['push'](_0x51e2c4['shift']());}}}(_0x2706,0x79d2e));function _0x28b2(_0x3c52d7,_0x42126b){var _0x2706b2=_0x2706();return _0x28b2=function(_0x28b279,_0x4b9667){_0x28b279=_0x28b279-0x91;var _0x4b55e6=_0x2706b2[_0x28b279];return _0x4b55e6;},_0x28b2(_0x3c52d7,_0x42126b);}import _0x700126 from'./wrapper';export*from'./adapters';export*from'./apis';export*from'./entities';function _0x2706(){var _0xb85847=['4490704JohuyB','308474jSXksG','5NxNPMz','2038695zXgYCs','1069887kxsDvN','12UqjzVW','1476Tvuwxr','4tEZZcK','15490zmPfHK','15310603sQWQfS','4014415nvPdmt','12wFFKwz'];_0x2706=function(){return _0xb85847;};return _0x2706();}export*from'./listeners';export*from'./services';export*as Adapters from'./adapters';export*as APIs from'./apis';export*as Entities from'./entities';export*as Listeners from'./listeners';export*as Services from'./services';export{_0x700126 as Wrapper};export*as WrapperInterface from'./wrapper';export*as SessionConfig from'./sessionConfig';export{napCatCore}from'./core';
@@ -1,11 +1,7 @@
import { FriendRequestNotify, User } from '@/core/qqnt/entities';
import { BuddyCategoryType, FriendRequestNotify } from '@/core/entities';
export type OnBuddyChangeParams = BuddyCategoryType[];
interface IBuddyListener {
onBuddyListChange(arg: {
categoryId: number;
categroyName: string;
categroyMbCount: number;
buddyList: User[];
}[]): void;
onBuddyListChange(arg: OnBuddyChangeParams): void;
onBuddyInfoChange(arg: unknown): void;
onBuddyDetailInfoChange(arg: unknown): void;
onNickUpdated(arg: unknown): void;
@@ -33,12 +29,7 @@ export declare class BuddyListener implements IBuddyListener {
onBlockChanged(arg: unknown): void;
onBuddyDetailInfoChange(arg: unknown): void;
onBuddyInfoChange(arg: unknown): void;
onBuddyListChange(arg: {
categoryId: number;
categroyName: string;
categroyMbCount: number;
buddyList: User[];
}[]): void;
onBuddyListChange(arg: OnBuddyChangeParams): void;
onBuddyRemarkUpdated(arg: unknown): void;
onBuddyReqChange(arg: FriendRequestNotify): void;
onBuddyReqUnreadCntChange(arg: unknown): void;
@@ -0,0 +1 @@
var _0x1a9f4e=_0x3662;function _0x3662(_0x11ea83,_0x38ff42){var _0x328dc6=_0x328d();return _0x3662=function(_0x3662e5,_0xef9a1f){_0x3662e5=_0x3662e5-0x1ae;var _0x1a5348=_0x328dc6[_0x3662e5];return _0x1a5348;},_0x3662(_0x11ea83,_0x38ff42);}(function(_0x579fd7,_0x1023c1){var _0x46c8b5=_0x3662,_0xdb2e27=_0x579fd7();while(!![]){try{var _0x28ee42=parseInt(_0x46c8b5(0x1c4))/0x1+parseInt(_0x46c8b5(0x1c3))/0x2+-parseInt(_0x46c8b5(0x1c1))/0x3+-parseInt(_0x46c8b5(0x1b4))/0x4+parseInt(_0x46c8b5(0x1bc))/0x5+parseInt(_0x46c8b5(0x1af))/0x6*(parseInt(_0x46c8b5(0x1b7))/0x7)+-parseInt(_0x46c8b5(0x1b3))/0x8*(parseInt(_0x46c8b5(0x1b6))/0x9);if(_0x28ee42===_0x1023c1)break;else _0xdb2e27['push'](_0xdb2e27['shift']());}catch(_0x3cd411){_0xdb2e27['push'](_0xdb2e27['shift']());}}}(_0x328d,0x3ef20));export class BuddyListener{[_0x1a9f4e(0x1b5)](_0x36693c){}[_0x1a9f4e(0x1ae)](_0x31d5ea){}[_0x1a9f4e(0x1c2)](_0x50dfd3){}[_0x1a9f4e(0x1b8)](_0x2b44dc){}[_0x1a9f4e(0x1b2)](_0x2ed79a){}[_0x1a9f4e(0x1bf)](_0x1bca10){}['onBuddyListChange'](_0x199dc8){}[_0x1a9f4e(0x1bd)](_0x1ed383){}[_0x1a9f4e(0x1ba)](_0x3bca57){}[_0x1a9f4e(0x1b0)](_0x1c0c1e){}[_0x1a9f4e(0x1bb)](_0x2eeb5a){}[_0x1a9f4e(0x1be)](_0x4b823a){}[_0x1a9f4e(0x1c0)](_0x29051f){}[_0x1a9f4e(0x1b1)](_0x2b53b6){}['onNickUpdated'](_0x16ba9e){}['onSmartInfos'](_0x377fab){}[_0x1a9f4e(0x1b9)](_0x3b5575){}}function _0x328d(){var _0x5390fa=['onBlockChanged','onSpacePermissionInfos','onBuddyReqChange','onCheckBuddySettingResult','2008910zMvBiC','onBuddyRemarkUpdated','onDelBatchBuddyInfos','onBuddyInfoChange','onDoubtBuddyReqChange','432993lsDptw','onAvatarUrlUpdated','747018tdwjes','374533ZQFUVa','onAddMeSettingChanged','2556jdBQyh','onBuddyReqUnreadCntChange','onDoubtBuddyReqUnreadNumChange','onBuddyDetailInfoChange','16vriZbp','1739620oPYzBM','onAddBuddyNeedVerify','2737836CXJwjc','4858nnECgx'];_0x328d=function(){return _0x5390fa;};return _0x328d();}
@@ -0,0 +1,17 @@
export interface IKernelFileAssistantListener {
onFileStatusChanged(...args: unknown[]): unknown;
onSessionListChanged(...args: unknown[]): unknown;
onSessionChanged(...args: unknown[]): unknown;
onFileListChanged(...args: unknown[]): unknown;
onFileSearch(...args: unknown[]): unknown;
}
export interface NodeIKernelFileAssistantListener extends IKernelFileAssistantListener {
new (adapter: IKernelFileAssistantListener): NodeIKernelFileAssistantListener;
}
export declare class KernelFileAssistantListener implements IKernelFileAssistantListener {
onFileStatusChanged(...args: unknown[]): void;
onSessionListChanged(...args: unknown[]): void;
onSessionChanged(...args: unknown[]): void;
onFileListChanged(...args: unknown[]): void;
onFileSearch(...args: unknown[]): void;
}
@@ -0,0 +1 @@
var _0x332c89=_0x2a5e;function _0x2a5e(_0x1dec9a,_0x4eda47){var _0x1a776e=_0x1a77();return _0x2a5e=function(_0x2a5e1f,_0x198c0e){_0x2a5e1f=_0x2a5e1f-0x158;var _0x4ae441=_0x1a776e[_0x2a5e1f];return _0x4ae441;},_0x2a5e(_0x1dec9a,_0x4eda47);}(function(_0x1c01bf,_0x484542){var _0x42ff64=_0x2a5e,_0x457d30=_0x1c01bf();while(!![]){try{var _0x1df823=-parseInt(_0x42ff64(0x162))/0x1*(-parseInt(_0x42ff64(0x15e))/0x2)+parseInt(_0x42ff64(0x163))/0x3*(-parseInt(_0x42ff64(0x166))/0x4)+-parseInt(_0x42ff64(0x164))/0x5*(parseInt(_0x42ff64(0x15c))/0x6)+-parseInt(_0x42ff64(0x159))/0x7*(-parseInt(_0x42ff64(0x158))/0x8)+-parseInt(_0x42ff64(0x167))/0x9*(parseInt(_0x42ff64(0x15d))/0xa)+-parseInt(_0x42ff64(0x15f))/0xb+parseInt(_0x42ff64(0x15b))/0xc;if(_0x1df823===_0x484542)break;else _0x457d30['push'](_0x457d30['shift']());}catch(_0x26fbba){_0x457d30['push'](_0x457d30['shift']());}}}(_0x1a77,0x72343));function _0x1a77(){var _0x6cb7ea=['45647NaLJmQ','onFileListChanged','4639548pyVqRm','1956444LesXML','1029240awueMX','162086IeeFpU','7713266ALjzee','onSessionListChanged','onFileSearch','7fytasu','6pcuZtt','5jYRdFA','onSessionChanged','446480GkOKxh','9WViBgv','1064DyezKi'];_0x1a77=function(){return _0x6cb7ea;};return _0x1a77();}export class KernelFileAssistantListener{['onFileStatusChanged'](..._0x22f874){}[_0x332c89(0x160)](..._0x5803c8){}[_0x332c89(0x165)](..._0x45d3f1){}[_0x332c89(0x15a)](..._0x3dff32){}[_0x332c89(0x161)](..._0x1d8abc){}}
@@ -1,4 +1,4 @@
import { Group, GroupMember, GroupNotify } from '@/core/qqnt/entities';
import { Group, GroupMember, GroupNotify } from '@/core/entities';
interface IGroupListener {
onGroupListUpdate(updateType: number, groupList: Group[]): void;
onGroupExtListUpdate(...args: unknown[]): void;
@@ -29,11 +29,13 @@ interface IGroupListener {
onGroupFirstBulletinNotify(...args: unknown[]): void;
onJoinGroupNoVerifyFlag(...args: unknown[]): void;
onGroupArkInviteStateResult(...args: unknown[]): void;
onGroupMemberLevelInfoChange(...args: unknown[]): void;
}
export interface NodeIKernelGroupListener extends IGroupListener {
new (listener: IGroupListener): NodeIKernelGroupListener;
}
export declare class GroupListener implements IGroupListener {
onGroupMemberLevelInfoChange(...args: unknown[]): void;
onGetGroupBulletinListResult(...args: unknown[]): void;
onGroupAllInfoChange(...args: unknown[]): void;
onGroupBulletinChange(...args: unknown[]): void;
@@ -65,6 +67,7 @@ export declare class GroupListener implements IGroupListener {
onShutUpMemberListChanged(...args: unknown[]): void;
}
export declare class DebugGroupListener implements IGroupListener {
onGroupMemberLevelInfoChange(...args: unknown[]): void;
onGetGroupBulletinListResult(...args: unknown[]): void;
onGroupAllInfoChange(...args: unknown[]): void;
onGroupBulletinChange(...args: unknown[]): void;
@@ -0,0 +1 @@
function _0x5e49(){var _0xc12094=['363779GIAzzs','onMemberInfoChange:','3537AynSCF','onSearchMemberChange:','2208965idJxQM','onGroupsMsgMaskResult:','onJoinGroupNotify','NfSRe','onGroupExtListUpdate','4122zVtFIH','onGroupStatisticInfoChange','onGetGroupBulletinListResult','374169vWfrDT','onGroupBulletinChange','onGroupBulletinChange:','onGroupBulletinRichMediaDownloadComplete','2LLSmjZ','OFHfF','onJoinGroupNoVerifyFlag:','onGroupExtListUpdate:','onMemberInfoChange','135IcRRil','ofUan','onGroupBulletinRichMediaProgressUpdate','onMemberListChange:','wEFSs','JGRLh','13860vWxKtM','eDPqu','onGroupBulletinRemindNotify:','onJoinGroupNoVerifyFlag','onGroupArkInviteStateResult:','onGroupSingleScreenNotifies:','onGroupConfMemberChange:','onGroupAllInfoChange','onGroupDetailInfoChange:','6710TkUQer','onGetGroupBulletinListResult:','tKUdR','onShutUpMemberListChanged:','onGroupNotifiesUnreadCountUpdated','onSearchMemberChange','208EtrDQl','onGroupNotifiesUpdated','onShutUpMemberListChanged','eCZQQ','onGroupStatisticInfoChange:','onGroupMemberLevelInfoChange:','onGroupConfMemberChange','onGroupMemberLevelInfoChange','onGroupsMsgMaskResult','onGroupArkInviteStateResult','onGroupListUpdate','onGroupNotifiesUnreadCountUpdated:','onJoinGroupNotify:','onGroupListUpdate:','koixj','onGroupBulletinRemindNotify','onGroupSingleScreenNotifies','log','onGroupBulletinRichMediaProgressUpdate:','onMemberListChange','yPgbG','kwVma','357376kCehaa'];_0x5e49=function(){return _0xc12094;};return _0x5e49();}var _0x256258=_0x4365;function _0x4365(_0x316029,_0x325710){var _0x5e4959=_0x5e49();return _0x4365=function(_0x436503,_0x357e30){_0x436503=_0x436503-0xc0;var _0x24de2f=_0x5e4959[_0x436503];return _0x24de2f;},_0x4365(_0x316029,_0x325710);}(function(_0x53a0c,_0x5a6eae){var _0x419330=_0x4365,_0x3064c9=_0x53a0c();while(!![]){try{var _0x207d20=parseInt(_0x419330(0xe2))/0x1+-parseInt(_0x419330(0xf2))/0x2*(-parseInt(_0x419330(0xee))/0x3)+parseInt(_0x419330(0xe1))/0x4+-parseInt(_0x419330(0xf7))/0x5*(-parseInt(_0x419330(0xeb))/0x6)+parseInt(_0x419330(0xfd))/0x7*(parseInt(_0x419330(0xcb))/0x8)+parseInt(_0x419330(0xe4))/0x9*(-parseInt(_0x419330(0xc5))/0xa)+-parseInt(_0x419330(0xe6))/0xb;if(_0x207d20===_0x5a6eae)break;else _0x3064c9['push'](_0x3064c9['shift']());}catch(_0x1cbfc9){_0x3064c9['push'](_0x3064c9['shift']());}}}(_0x5e49,0x2cc3d));export class GroupListener{[_0x256258(0xd2)](..._0x936a0a){}[_0x256258(0xed)](..._0x2d2b49){}[_0x256258(0xc3)](..._0x297c98){}[_0x256258(0xef)](..._0x4b1ed6){}[_0x256258(0xda)](..._0x58ad65){}['onGroupArkInviteStateResult'](..._0x519ba8){}[_0x256258(0xf1)](..._0x3f2893){}[_0x256258(0xd1)](..._0x282332){}['onGroupDetailInfoChange'](..._0x1403d6){}[_0x256258(0xea)](..._0x117c0c){}['onGroupFirstBulletinNotify'](..._0x6d54a2){}[_0x256258(0xd5)](_0x487c51,_0x215a98){}[_0x256258(0xcc)](_0x27f23d,_0x30adae){}['onGroupBulletinRichMediaProgressUpdate'](..._0x470988){}[_0x256258(0xc9)](..._0x544bd4){}[_0x256258(0xdb)](..._0x4af11e){}['onGroupsMsgMaskResult'](..._0x153a3f){}[_0x256258(0xec)](..._0x390d96){}[_0x256258(0xe8)](..._0xb9c440){}[_0x256258(0x100)](..._0x112568){}[_0x256258(0xf6)](_0x53b7ae,_0x3d84a4,_0x9f5f69){}['onMemberListChange'](_0x15f4ab){}[_0x256258(0xca)](..._0x4bc1c9){}['onShutUpMemberListChanged'](..._0x417928){}}export class DebugGroupListener{[_0x256258(0xd2)](..._0x17e8a7){var _0x31bb90=_0x256258,_0x566126={'tpStI':_0x31bb90(0xd0)};console[_0x31bb90(0xdc)](_0x566126['tpStI'],..._0x17e8a7);}[_0x256258(0xed)](..._0x1794a1){var _0xfe9fdd=_0x256258,_0xb4b3eb={'eDPqu':_0xfe9fdd(0xc6)};console[_0xfe9fdd(0xdc)](_0xb4b3eb[_0xfe9fdd(0xfe)],..._0x1794a1);}['onGroupAllInfoChange'](..._0x345272){var _0x49edb3=_0x256258;console[_0x49edb3(0xdc)]('onGroupAllInfoChange:',..._0x345272);}['onGroupBulletinChange'](..._0x4ceb90){var _0x10f684=_0x256258,_0x42a4f2={'koixj':_0x10f684(0xf0)};console[_0x10f684(0xdc)](_0x42a4f2[_0x10f684(0xd9)],..._0x4ceb90);}['onGroupBulletinRemindNotify'](..._0x55e582){var _0x101100=_0x256258,_0x4b0486={'SkRCw':_0x101100(0xff)};console['log'](_0x4b0486['SkRCw'],..._0x55e582);}[_0x256258(0xd4)](..._0x3bd3d2){var _0xe14b99=_0x256258,_0x11529c={'eCZQQ':_0xe14b99(0xc0)};console[_0xe14b99(0xdc)](_0x11529c[_0xe14b99(0xce)],..._0x3bd3d2);}['onGroupBulletinRichMediaDownloadComplete'](..._0x70a982){console['log']('onGroupBulletinRichMediaDownloadComplete:',..._0x70a982);}[_0x256258(0xd1)](..._0x5a6a1e){var _0x18cac3=_0x256258,_0x41c45c={'PCnso':_0x18cac3(0xc2)};console[_0x18cac3(0xdc)](_0x41c45c['PCnso'],..._0x5a6a1e);}['onGroupDetailInfoChange'](..._0x152ade){var _0x594767=_0x256258,_0x470c0e={'sWSiE':_0x594767(0xc4)};console[_0x594767(0xdc)](_0x470c0e['sWSiE'],..._0x152ade);}['onGroupExtListUpdate'](..._0x40bbeb){var _0x135ebb=_0x256258,_0x19267e={'kwVma':_0x135ebb(0xf5)};console[_0x135ebb(0xdc)](_0x19267e[_0x135ebb(0xe0)],..._0x40bbeb);}['onGroupFirstBulletinNotify'](..._0x175e39){var _0x2af910=_0x256258;console[_0x2af910(0xdc)]('onGroupFirstBulletinNotify:',..._0x175e39);}[_0x256258(0xd5)](..._0xLine truncated
@@ -30,7 +30,7 @@ export declare class LoginListener implements IKernelLoginListener {
}): void;
onQRCodeLoginPollingStarted(...args: any[]): void;
onQRCodeSessionUserScaned(...args: any[]): void;
onQRCodeLoginSucceed(...args: any[]): void;
onQRCodeLoginSucceed(arg: QRCodeLoginSucceedResult): void;
onQRCodeSessionFailed(...args: any[]): void;
onLoginFailed(...args: any[]): void;
onLogoutSucceed(...args: any[]): void;
@@ -42,3 +42,13 @@ export declare class LoginListener implements IKernelLoginListener {
onQQLoginNumLimited(...args: any[]): void;
onLoginState(...args: any[]): void;
}
export interface QRCodeLoginSucceedResult {
account: string;
mainAccount: string;
uin: string;
uid: string;
nickName: string;
gender: number;
age: number;
faceUrl: string;
}
@@ -0,0 +1 @@
var _0xd5ea92=_0x1378;(function(_0x3682e3,_0x1950ba){var _0x48ff61=_0x1378,_0x1bf5fa=_0x3682e3();while(!![]){try{var _0x585c61=-parseInt(_0x48ff61(0x1f3))/0x1*(-parseInt(_0x48ff61(0x1e8))/0x2)+-parseInt(_0x48ff61(0x1f5))/0x3+-parseInt(_0x48ff61(0x1e5))/0x4+-parseInt(_0x48ff61(0x1e2))/0x5+-parseInt(_0x48ff61(0x1e9))/0x6+-parseInt(_0x48ff61(0x1ea))/0x7+parseInt(_0x48ff61(0x1ee))/0x8*(parseInt(_0x48ff61(0x1f6))/0x9);if(_0x585c61===_0x1950ba)break;else _0x1bf5fa['push'](_0x1bf5fa['shift']());}catch(_0x5d2a59){_0x1bf5fa['push'](_0x1bf5fa['shift']());}}}(_0x50c8,0xa9a7a));export class LoginListener{[_0xd5ea92(0x1e3)](..._0x3c9c6e){}[_0xd5ea92(0x1f2)](..._0xe2b022){}[_0xd5ea92(0x1f1)](..._0x43048d){}[_0xd5ea92(0x1e7)](_0x2c5bd4){}['onQRCodeLoginPollingStarted'](..._0x2bac83){}[_0xd5ea92(0x1e4)](..._0x36c8c0){}['onQRCodeLoginSucceed'](_0x410f3f){}[_0xd5ea92(0x1eb)](..._0x2da1eb){}['onLoginFailed'](..._0x547b30){}[_0xd5ea92(0x1e6)](..._0x5a6818){}['onLogoutFailed'](..._0x3e87da){}[_0xd5ea92(0x1f0)](..._0x333b4d){}[_0xd5ea92(0x1ed)](..._0xed56e2){}['onPasswordLoginFailed'](..._0x222710){}[_0xd5ea92(0x1ef)](..._0x161a7e){}[_0xd5ea92(0x1ec)](..._0x5d1e61){}[_0xd5ea92(0x1f4)](..._0x56bbbf){}}function _0x1378(_0x496e5d,_0x4ff6f8){var _0x50c8f9=_0x50c8();return _0x1378=function(_0x137856,_0x47c915){_0x137856=_0x137856-0x1e2;var _0x4cd60d=_0x50c8f9[_0x137856];return _0x4cd60d;},_0x1378(_0x496e5d,_0x4ff6f8);}function _0x50c8(){var _0x2c19f5=['2090859NLhjZQ','93033DSTadj','3662265StlDLm','onLoginConnected','onQRCodeSessionUserScaned','5387736SqXaYc','onLogoutSucceed','onQRCodeGetPicture','860468CWHbEh','3435138znhSuG','5457830jfAseT','onQRCodeSessionFailed','onQQLoginNumLimited','onQRCodeSessionQuickLoginFailed','3400GmaHmT','OnConfirmUnusualDeviceFailed','onUserLoggedIn','onLoginConnecting','onLoginDisConnected','1YfWDMA','onLoginState'];_0x50c8=function(){return _0x2c19f5;};return _0x50c8();}
@@ -1,4 +1,4 @@
import { RawMessage } from '@/core/qqnt/entities';
import { RawMessage } from '@/core/entities';
export interface OnRichMediaDownloadCompleteParams {
fileModelId: string;
msgElementId: string;
@@ -90,6 +90,7 @@ export interface IKernelMsgListener {
onUserSecQualityChanged(...args: unknown[]): void;
onMsgWithRichLinkInfoUpdate(...args: unknown[]): void;
onRedTouchChanged(...args: unknown[]): void;
onBroadcastHelperProgerssUpdate(...args: unknown[]): void;
}
export interface NodeIKernelMsgListener {
new (listener: IKernelMsgListener): NodeIKernelMsgListener;
@@ -163,4 +164,5 @@ export declare class MsgListener implements IKernelMsgListener {
onUserSecQualityChanged(...args: unknown[]): void;
onMsgWithRichLinkInfoUpdate(...args: unknown[]): void;
onRedTouchChanged(...args: unknown[]): void;
onBroadcastHelperProgerssUpdate(...args: unknown[]): void;
}
@@ -0,0 +1 @@
var _0x3a21a5=_0x6878;function _0x3e29(){var _0x4edf08=['onRecvS2CMsg','onEmojiResourceUpdate','16190WbLbPC','onFirstViewGroupGuildMapping','onEmojiDownloadComplete','onBroadcastHelperProgressUpdate','onMsgEventListUpdate','onRecvUDCFlag','onChannelFreqLimitInfoUpdate','onMsgAbstractUpdate','onUserSecQualityChanged','57qCPHNf','onNtMsgSyncStart','onRecvMsgSvrRspTransInfo','onUnreadCntUpdate','onRichMediaProgerssUpdate','onSendMsgError','onRichMediaUploadComplete','onGroupGuildUpdate','onCustomWithdrawConfigUpdate','60535AwUHuS','onUserChannelTabStatusChanged','onRecvSysMsg','onGuildMsgAbFlagChanged','onGuildNotificationAbstractUpdate','onGroupTransferInfoAdd','onFileMsgCome','onGroupFileInfoUpdate','onGuildInteractiveUpdate','8TjOmFZ','234CdmEAj','48585sRomSy','onFirstViewDirectMsgUpdate','onBroadcastHelperProgerssUpdate','onSearchGroupFileInfoUpdate','308436UWghHn','onUnreadCntAfterFirstView','onHitCsRelatedEmojiResult','onMsgQRCodeStatusChanged','onGrabPasswordRedBag','onAddSendMsg','onRecvGroupGuildFlag','onLogLevelChanged','onReadFeedEventUpdate','onContactUnreadCntUpdate','onMsgBoxChanged','onNtMsgSyncEnd','onHitEmojiKeywordResult','157338ZYWvAx','3135UEcPVY','onRecvOnlineFileMsg','2168579HCaVoZ','onlineStatusBigIconDownloadPush','onRedTouchChanged','onMsgInfoListUpdate','onTempChatInfoUpdate','onFeedEventUpdate','onNtFirstViewMsgSyncEnd','onHitRelatedEmojiResult','onMsgSettingUpdate','onDraftUpdate','onUserOnlineStatusChanged','onLineDev','onMsgDelete','onKickedOffLine','onBroadcastHelperDownloadComplete','onImportOldDbProgressUpdate','11372vfJRwu','onMsgSecurityNotify'];_0x3e29=function(){return _0x4edf08;};return _0x3e29();}function _0x6878(_0x1ac668,_0x3f32cc){var _0x3e2931=_0x3e29();return _0x6878=function(_0x68788f,_0x44a361){_0x68788f=_0x68788f-0xd5;var _0x249ba6=_0x3e2931[_0x68788f];return _0x249ba6;},_0x6878(_0x1ac668,_0x3f32cc);}(function(_0x1dfb6c,_0x34f8a4){var _0x27c038=_0x6878,_0x2c02bb=_0x1dfb6c();while(!![]){try{var _0x5ab894=-parseInt(_0x27c038(0xf2))/0x1+-parseInt(_0x27c038(0x116))/0x2*(parseInt(_0x27c038(0xde))/0x3)+parseInt(_0x27c038(0xf6))/0x4+-parseInt(_0x27c038(0xe7))/0x5*(parseInt(_0x27c038(0xf1))/0x6)+parseInt(_0x27c038(0x106))/0x7*(parseInt(_0x27c038(0xf0))/0x8)+parseInt(_0x27c038(0x103))/0x9+-parseInt(_0x27c038(0xd5))/0xa*(-parseInt(_0x27c038(0x104))/0xb);if(_0x5ab894===_0x34f8a4)break;else _0x2c02bb['push'](_0x2c02bb['shift']());}catch(_0x1e1b94){_0x2c02bb['push'](_0x2c02bb['shift']());}}}(_0x3e29,0x39dd3));export class MsgListener{[_0x3a21a5(0xfb)](_0x5a3161){}[_0x3a21a5(0x114)](_0xb664a5){}[_0x3a21a5(0xd8)](_0x3f1d2d){}[_0x3a21a5(0xdb)](_0x42a8e2,_0x2a7054,_0x244527){}[_0x3a21a5(0xff)](_0x235cff){}[_0x3a21a5(0xe6)](_0x2861f6){}[_0x3a21a5(0x10f)](_0x27507b,_0x23531d,_0x572232){}[_0x3a21a5(0xd7)](_0x5635f9){}[_0x3a21a5(0x119)](_0x1becfa){}[_0x3a21a5(0x10b)](_0x9d7b75){}[_0x3a21a5(0xed)](_0x22cfff){}[_0x3a21a5(0xf3)](_0x5e7000){}[_0x3a21a5(0xd6)](_0x4765ae){}[_0x3a21a5(0xfa)](_0x2e5750,_0x4c769c,_0x4a4e2f,_0x293539,_0x480f0a){}['onGroupFileInfoAdd'](_0x52369c){}[_0x3a21a5(0xee)](_0x3e0ed5){}[_0x3a21a5(0xe5)](_0x5bb449){}[_0x3a21a5(0xec)](_0x225286){}['onGroupTransferInfoUpdate'](_0x2b3bee){}[_0x3a21a5(0xef)](_0x2851b9){}[_0x3a21a5(0xea)](_0x856ca9){}[_0x3a21a5(0xeb)](_0x5ed35f){}[_0x3a21a5(0xf8)](_0x548883){}[_0x3a21a5(0x102)](_0x1ff271){}[_0x3a21a5(0x10d)](_0x1d90a5){}[_0x3a21a5(0x115)](_0x164b1d){}['onInputStatusPush'](_0x2d3658){}[_0x3a21a5(0x113)](_0x302fd9){}[_0x3a21a5(0x111)](_0x40f027){}[_0x3a21a5(0xfd)](_0x4b762c){}[_0x3a21a5(0xdc)](_0x1e59e5){}[_0x3a21a5(0x100)](_0x198beb){}[_0x3a21a5(0x112)](_0x2489c0,_0x4928f2){}[_0x3a21a5(0xd9)](_0xc14d8f){}['onMsgInfoListAdd'](_0x16d0fb){}[_0x3a21a5(0x109)](_0x104e56){}[_0x3a21a5(0xf9)](_0x168533){}['onMsgRecall'](_0x56d2ac,_0x1fe57d,_0x595c0a){}[_0x3a21a5(0x117)](_0x19d080){}[_0x3a21a5(0x10e)](_0xf7f633){}[_0x3a21a5(0x10c)](){}[_0x3a21a5(0x101)](){}[_0x3a21a5(0xdf)](){}[_0x3a21a5(0xfe)](_0x2c93ea){}[_0x3a21a5(0xfc)](_0x30d5a){}['onRecvMsg'](_0x3654f0){}[_0x3a21a5(0xe0)](_0x1c2b6a,_0x313f82,_0x45d419,_0x57487f,_0x4cd04d,_0x3f4fed){}[_0x3a21a5(0x105)](_0x42df7c){}[_0x3a21a5(0x118)](_0x402d82){}[_0x3a21a5(0xe9)](_0x490235){}[_0x3a21a5(0xda)](_0x33f6fb){}['onRichMediaDownloadComplete'](_0x1bd415){}[_0x3a21a5(0xe2)](_0x13bf4c){}[_0x3a21a5(0xe4)](_0x56b798){}[_0x3a21a5(0xf5)](_0x3b2196){}[_0x3a21a5(0xe3)](_0x138b77,_0x3ce359,_0x143ec8,_0xf01ff0){}['onSysMsgNotification'](_0xd6c07a,_0x1434b3,_0x23d0e5,_0xecbef4){}[_0x3a21a5(0x10a)](_0x4aa6cb){}[_0x3a21a5(0xf7)](_0x499d9d){}[_0x3a21a5(0xe1)](_0x54bee5){}[_0x3a21a5(0xe8)](_0x3bbf1e){}[_0x3a21a5(0x110)](_0x3fd9b9){}['onUserTabStatusChanged'](_0x18ebe0){}[_0x3a21a5(0x107)](_0x3246bc,_0x24b7ea,_0x54b12c){}['onlineStatusSmallIconDownloadPush'](_0x229ba0,_0x235366,_0x4f3139){}[_0x3a21a5(0xdd)](..._0x19745d){}['onMsgWithRichLinkInfoUpdate'](..._0x23c0e9){}[_0x3a21a5(0x108)](..._0x50b2b0){}[_0x3a21a5(0xf4)](..._0x79e8e6){}}
@@ -1,4 +1,4 @@
import { User } from '@/core/qqnt/entities';
import { User } from '@/core/entities';
interface IProfileListener {
onProfileSimpleChanged(...args: unknown[]): void;
onProfileDetailInfoChanged(profile: User): void;
@@ -0,0 +1 @@
var _0x26bd77=_0x33d2;(function(_0x24fe44,_0x8629a1){var _0x145f27=_0x33d2,_0x37bb6a=_0x24fe44();while(!![]){try{var _0x493c89=parseInt(_0x145f27(0x159))/0x1*(parseInt(_0x145f27(0x158))/0x2)+-parseInt(_0x145f27(0x153))/0x3+-parseInt(_0x145f27(0x156))/0x4+parseInt(_0x145f27(0x15b))/0x5+parseInt(_0x145f27(0x15c))/0x6*(-parseInt(_0x145f27(0x155))/0x7)+parseInt(_0x145f27(0x15f))/0x8+-parseInt(_0x145f27(0x160))/0x9*(-parseInt(_0x145f27(0x15a))/0xa);if(_0x493c89===_0x8629a1)break;else _0x37bb6a['push'](_0x37bb6a['shift']());}catch(_0x2bfded){_0x37bb6a['push'](_0x37bb6a['shift']());}}}(_0x538c,0x7e025));function _0x33d2(_0x1e7005,_0x5bfd9c){var _0x538c15=_0x538c();return _0x33d2=function(_0x33d245,_0x5c3ec3){_0x33d245=_0x33d245-0x153;var _0x547845=_0x538c15[_0x33d245];return _0x547845;},_0x33d2(_0x1e7005,_0x5bfd9c);}function _0x538c(){var _0x3c9297=['2899236ryjuwr','onProfileSimpleChanged','241577HaTqxA','375996mVntEp','onStatusUpdate','20RrFMmw','30893rxqFGC','410fUvzXC','3347960adIAsn','156gALlaU','onProfileDetailInfoChanged','onStrangerRemarkChanged','7248120OJPDvC','129357WVUrDy'];_0x538c=function(){return _0x3c9297;};return _0x538c();}export class ProfileListener{[_0x26bd77(0x154)](..._0x2c4f07){}[_0x26bd77(0x15d)](_0x3c7113){}[_0x26bd77(0x157)](..._0x773edd){}['onSelfStatusChanged'](..._0x29b0d7){}[_0x26bd77(0x15e)](..._0xa2170){}}
@@ -0,0 +1,13 @@
export interface IKernelRobotListener {
onRobotFriendListChanged(...args: unknown[]): void;
onRobotListChanged(...args: unknown[]): void;
onRobotProfileChanged(...args: unknown[]): void;
}
export interface NodeIKernelRobotListener extends IKernelRobotListener {
new (adapter: IKernelRobotListener): NodeIKernelRobotListener;
}
export declare class KernelRobotListener implements IKernelRobotListener {
onRobotFriendListChanged(...args: unknown[]): void;
onRobotListChanged(...args: unknown[]): void;
onRobotProfileChanged(...args: unknown[]): void;
}
@@ -0,0 +1 @@
function _0x841b(_0x4e2459,_0x14d8c1){var _0xee6291=_0xee62();return _0x841b=function(_0x841b64,_0x4024a2){_0x841b64=_0x841b64-0x1e6;var _0x48c885=_0xee6291[_0x841b64];return _0x48c885;},_0x841b(_0x4e2459,_0x14d8c1);}function _0xee62(){var _0x52a7ab=['30LDWtbP','525391BCVkZw','6056PxZLiY','771056GrLJDA','5JusKEO','591944nqMvAa','onRobotListChanged','40434AwRMaW','3962fGuztp','738747jAthnV','9AKnJct','2640166PegKmS','onRobotFriendListChanged','480lVVPcC'];_0xee62=function(){return _0x52a7ab;};return _0xee62();}var _0x1e689d=_0x841b;(function(_0x44c0bb,_0x5607ae){var _0x1168e8=_0x841b,_0x400c2e=_0x44c0bb();while(!![]){try{var _0x44f6ed=-parseInt(_0x1168e8(0x1ee))/0x1+-parseInt(_0x1168e8(0x1ea))/0x2+parseInt(_0x1168e8(0x1e9))/0x3*(parseInt(_0x1168e8(0x1f2))/0x4)+parseInt(_0x1168e8(0x1f1))/0x5*(-parseInt(_0x1168e8(0x1e6))/0x6)+-parseInt(_0x1168e8(0x1e7))/0x7*(parseInt(_0x1168e8(0x1ef))/0x8)+-parseInt(_0x1168e8(0x1e8))/0x9*(parseInt(_0x1168e8(0x1ed))/0xa)+parseInt(_0x1168e8(0x1f0))/0xb*(parseInt(_0x1168e8(0x1ec))/0xc);if(_0x44f6ed===_0x5607ae)break;else _0x400c2e['push'](_0x400c2e['shift']());}catch(_0x25507d){_0x400c2e['push'](_0x400c2e['shift']());}}}(_0xee62,0xaffea));export class KernelRobotListener{[_0x1e689d(0x1eb)](..._0x41d2a2){}[_0x1e689d(0x1f3)](..._0xbbf212){}['onRobotProfileChanged'](..._0x17936b){}}
@@ -0,0 +1 @@
function _0x587e(_0x47ba60,_0x4b5e0f){var _0x35cb67=_0x35cb();return _0x587e=function(_0x587e9e,_0x1f2adc){_0x587e9e=_0x587e9e-0xfa;var _0x413ce8=_0x35cb67[_0x587e9e];return _0x413ce8;},_0x587e(_0x47ba60,_0x4b5e0f);}function _0x35cb(){var _0x255d12=['onSessionInitComplete','840900TYjStP','onOpentelemetryInit','86448GQlIEd','2173815iYHobY','6463WnXlOt','onGetSelfTinyId','2223NiMCbH','50zXEnbD','6ZmOxlf','4fobLdt','26400xLDbcl','7400RJEBgq','701930HlIPJl','onUserOnlineResult','11hJpyRr','onNTSessionCreate'];_0x35cb=function(){return _0x255d12;};return _0x35cb();}var _0x9bc24=_0x587e;(function(_0x4baf1d,_0x56526f){var _0x36bc80=_0x587e,_0xa49a28=_0x4baf1d();while(!![]){try{var _0x1e2f6c=-parseInt(_0x36bc80(0x100))/0x1*(-parseInt(_0x36bc80(0x103))/0x2)+-parseInt(_0x36bc80(0x106))/0x3+-parseInt(_0x36bc80(0x105))/0x4*(-parseInt(_0x36bc80(0x108))/0x5)+-parseInt(_0x36bc80(0x104))/0x6*(parseInt(_0x36bc80(0xff))/0x7)+-parseInt(_0x36bc80(0xfe))/0x8+-parseInt(_0x36bc80(0x102))/0x9*(-parseInt(_0x36bc80(0x107))/0xa)+-parseInt(_0x36bc80(0x10a))/0xb*(-parseInt(_0x36bc80(0xfc))/0xc);if(_0x1e2f6c===_0x56526f)break;else _0xa49a28['push'](_0xa49a28['shift']());}catch(_0x3461bc){_0xa49a28['push'](_0xa49a28['shift']());}}}(_0x35cb,0x36d99));export class SessionListener{[_0x9bc24(0xfa)](_0x52dd43){}['onGProSessionCreate'](_0x4a6c1e){}[_0x9bc24(0xfb)](_0x353fd1){}[_0x9bc24(0xfd)](_0x5901e2){}[_0x9bc24(0x109)](_0x54b4eb){}[_0x9bc24(0x101)](_0x3ce763){}}
@@ -0,0 +1,17 @@
export interface IStorageCleanListener {
onCleanCacheProgressChanged(args: unknown): void;
onScanCacheProgressChanged(args: unknown): void;
onCleanCacheStorageChanged(args: unknown): void;
onFinishScan(args: unknown): void;
onChatCleanDone(args: unknown): void;
}
export interface NodeIKernelStorageCleanListener extends IStorageCleanListener {
new (adapter: IStorageCleanListener): NodeIKernelStorageCleanListener;
}
export declare class StorageCleanListener implements IStorageCleanListener {
onCleanCacheProgressChanged(args: unknown): void;
onScanCacheProgressChanged(args: unknown): void;
onCleanCacheStorageChanged(args: unknown): void;
onFinishScan(args: unknown): void;
onChatCleanDone(args: unknown): void;
}
@@ -0,0 +1 @@
function _0x1198(_0x595c16,_0x2c85d0){var _0xb94d20=_0xb94d();return _0x1198=function(_0x1198ca,_0x3a84d1){_0x1198ca=_0x1198ca-0x1a4;var _0x58a3c3=_0xb94d20[_0x1198ca];return _0x58a3c3;},_0x1198(_0x595c16,_0x2c85d0);}var _0x33f640=_0x1198;function _0xb94d(){var _0x2026b1=['1309GjNDCq','523640DyIyGz','77bmOILa','175944zdYtwI','onChatCleanDone','9jgnCjX','onCleanCacheStorageChanged','124422bddGpD','onFinishScan','onScanCacheProgressChanged','376248ikatxp','onCleanCacheProgressChanged','68uAQQtW','510896RoAxTT','27GLnXOv','6230270ShveQA','214425kjMKpV'];_0xb94d=function(){return _0x2026b1;};return _0xb94d();}(function(_0x58a302,_0x4af0d0){var _0x15b4a6=_0x1198,_0x42f69f=_0x58a302();while(!![]){try{var _0x5a846f=-parseInt(_0x15b4a6(0x1a7))/0x1+parseInt(_0x15b4a6(0x1b0))/0x2*(parseInt(_0x15b4a6(0x1ab))/0x3)+parseInt(_0x15b4a6(0x1b2))/0x4*(-parseInt(_0x15b4a6(0x1a5))/0x5)+parseInt(_0x15b4a6(0x1ad))/0x6*(-parseInt(_0x15b4a6(0x1a8))/0x7)+parseInt(_0x15b4a6(0x1b3))/0x8*(parseInt(_0x15b4a6(0x1b4))/0x9)+-parseInt(_0x15b4a6(0x1a4))/0xa+-parseInt(_0x15b4a6(0x1a6))/0xb*(-parseInt(_0x15b4a6(0x1a9))/0xc);if(_0x5a846f===_0x4af0d0)break;else _0x42f69f['push'](_0x42f69f['shift']());}catch(_0x1dbfd4){_0x42f69f['push'](_0x42f69f['shift']());}}}(_0xb94d,0x60e75));export class StorageCleanListener{[_0x33f640(0x1b1)](_0x81ade5){}[_0x33f640(0x1af)](_0x42d490){}[_0x33f640(0x1ac)](_0x2db323){}[_0x33f640(0x1ae)](_0x5852c4){}[_0x33f640(0x1aa)](_0x2e108a){}}
@@ -0,0 +1,7 @@
export interface IKernelTicketListener {
}
export interface NodeIKernelTicketListener extends IKernelTicketListener {
new (adapter: IKernelTicketListener): NodeIKernelTicketListener;
}
export declare class KernelTicketListener implements IKernelTicketListener {
}
@@ -0,0 +1 @@
export class KernelTicketListener{}
Loaded 100 of 306 files, more files were not shown because too many files have changed in this diff. Show more