mirror of
https://github.com/NapNeko/NapCatQQ.git
synced 2025-07-19 12:03:37 +00:00
Compare commits
450 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
6cf209c79c | ||
![]() |
decc5fb3c0 | ||
![]() |
1e0820d613 | ||
![]() |
70124d5177 | ||
![]() |
269de65201 | ||
![]() |
1d11abbfb6 | ||
![]() |
700f308d6e | ||
![]() |
21b6928ca6 | ||
![]() |
998c67a649 | ||
![]() |
fb99e878b0 | ||
![]() |
1619adfc27 | ||
![]() |
5510fb473f | ||
![]() |
be1878cb2b | ||
![]() |
15ab121cbd | ||
![]() |
aa79b0e861 | ||
![]() |
b80e550bcd | ||
![]() |
dbc40b5814 | ||
![]() |
0d5696a644 | ||
![]() |
ceffa05802 | ||
![]() |
d5668920b6 | ||
![]() |
516f2da144 | ||
![]() |
33c94e1888 | ||
![]() |
51ab58cd91 | ||
![]() |
aa7798d1d1 | ||
![]() |
9067a1fc92 | ||
![]() |
4024b6c564 | ||
![]() |
d39730928b | ||
![]() |
e1f049229c | ||
![]() |
8f2676ec19 | ||
![]() |
32d26248dc | ||
![]() |
16f926401b | ||
![]() |
66d60d3599 | ||
![]() |
5a35ab6c34 | ||
![]() |
ba1542bd31 | ||
![]() |
453060945a | ||
![]() |
c8351be461 | ||
![]() |
9954da22a6 | ||
![]() |
907b5611eb | ||
![]() |
5f075de212 | ||
![]() |
8fcf3c5079 | ||
![]() |
07cee90c7a | ||
![]() |
75ad495b98 | ||
![]() |
0bb7288ad2 | ||
![]() |
ad72415532 | ||
![]() |
0ad0353fc0 | ||
![]() |
9fa0dcd7aa | ||
![]() |
1f2e80cd39 | ||
![]() |
6cb6034d43 | ||
![]() |
25134c6ac6 | ||
![]() |
92bf42878a | ||
![]() |
9f4582d158 | ||
![]() |
68af73970e | ||
![]() |
b6ed8d4975 | ||
![]() |
d07d3645ce | ||
![]() |
123759ab17 | ||
![]() |
f2f1f893d8 | ||
![]() |
db93a8eed2 | ||
![]() |
12ab6d4a7d | ||
![]() |
add759e889 | ||
![]() |
f315f7977d | ||
![]() |
f2f6701ebd | ||
![]() |
1a92794d33 | ||
![]() |
7640deb798 | ||
![]() |
f1e8ef1cf6 | ||
![]() |
5e5ac0162e | ||
![]() |
0c013820f0 | ||
![]() |
4b3a9e5847 | ||
![]() |
e4982256a4 | ||
![]() |
babc4927a8 | ||
![]() |
6dd84cf469 | ||
![]() |
a8800e3899 | ||
![]() |
5f03496046 | ||
![]() |
41500c17a2 | ||
![]() |
2dcfde8b9a | ||
![]() |
5c3305d8fa | ||
![]() |
0d1fe99f53 | ||
![]() |
4c03ffeec7 | ||
![]() |
8101d17482 | ||
![]() |
bc7b4dcc2a | ||
![]() |
3db8b9078d | ||
![]() |
943dbbefd3 | ||
![]() |
480abcb853 | ||
![]() |
60aaaff58e | ||
![]() |
e3b889bbe8 | ||
![]() |
ac5506a43b | ||
![]() |
b29f533a3b | ||
![]() |
a8ee86b09e | ||
![]() |
0238c53302 | ||
![]() |
665e3c806f | ||
![]() |
8c96838441 | ||
![]() |
4a722daec6 | ||
![]() |
4e0cdbcb91 | ||
![]() |
08976624cd | ||
![]() |
fdeba94653 | ||
![]() |
d3b100b7e5 | ||
![]() |
1de3e18b08 | ||
![]() |
d5c3c95682 | ||
![]() |
dabe1e29ed | ||
![]() |
203d1c0cfc | ||
![]() |
7edd8601be | ||
![]() |
a4423247f4 | ||
![]() |
4834b203a0 | ||
![]() |
bbabb32d13 | ||
![]() |
95112d6bdf | ||
![]() |
36cdca5a3e | ||
![]() |
6980a9f3fc | ||
![]() |
7b09479cd2 | ||
![]() |
5825fd6f36 | ||
![]() |
2d5b45dd82 | ||
![]() |
52dda1d1fe | ||
![]() |
420624bee4 | ||
![]() |
8abde7b7d0 | ||
![]() |
9e5b1ba28e | ||
![]() |
b9c7d3c18e | ||
![]() |
10aeccbbe5 | ||
![]() |
15d351ebc2 | ||
![]() |
7194f31cb6 | ||
![]() |
84b7e82446 | ||
![]() |
8264423b1a | ||
![]() |
37f897f3bf | ||
![]() |
fe3efac145 | ||
![]() |
9773aebefc | ||
![]() |
06f2b8c371 | ||
![]() |
e8f0bb8350 | ||
![]() |
9bfa6b827b | ||
![]() |
b21bc17a58 | ||
![]() |
f4d5d417d0 | ||
![]() |
91fc83621e | ||
![]() |
461feca0ca | ||
![]() |
5e9afab3f7 | ||
![]() |
2599ca6450 | ||
![]() |
fc99ad3a39 | ||
![]() |
10e1c3e72c | ||
![]() |
af5dedd4d4 | ||
![]() |
3b986c1076 | ||
![]() |
72f77e8b7c | ||
![]() |
e893bf676f | ||
![]() |
80eb34f611 | ||
![]() |
5d01947552 | ||
![]() |
d3a025ef7b | ||
![]() |
c466df841e | ||
![]() |
b3c6e2a0f3 | ||
![]() |
076c9cfed7 | ||
![]() |
c3f3d12f83 | ||
![]() |
44974034ec | ||
![]() |
d6175acd38 | ||
![]() |
62eee5f05c | ||
![]() |
d4e5201913 | ||
![]() |
f4d584765a | ||
![]() |
26e224f852 | ||
![]() |
252358ed66 | ||
![]() |
475afeb7c8 | ||
![]() |
7cbbb846eb | ||
![]() |
25f947968c | ||
![]() |
cad824dcbc | ||
![]() |
e506f50b00 | ||
![]() |
96ec149a98 | ||
![]() |
8c913512f6 | ||
![]() |
4cc307299d | ||
![]() |
407c6b4c5f | ||
![]() |
8f87070434 | ||
![]() |
4a63996ee2 | ||
![]() |
0358fe7620 | ||
![]() |
55e64395ed | ||
![]() |
ff5fb18e14 | ||
![]() |
52dd960857 | ||
![]() |
430221c2de | ||
![]() |
217bdf8f92 | ||
![]() |
38c6c869bf | ||
![]() |
84d46da67e | ||
![]() |
eb9d6240d7 | ||
![]() |
2d44a871b0 | ||
![]() |
3f89f350ff | ||
![]() |
1a8407a782 | ||
![]() |
cf288a3f73 | ||
![]() |
f1f37fb180 | ||
![]() |
fb0dd079fd | ||
![]() |
a6c584c85c | ||
![]() |
77adf35a30 | ||
![]() |
dc6951c2a9 | ||
![]() |
d14ba3f0f7 | ||
![]() |
78ddf36e35 | ||
![]() |
d42734624d | ||
![]() |
b5dbd9d59b | ||
![]() |
bed3e1289b | ||
![]() |
b11ca4e60e | ||
![]() |
4fcf3aa2bd | ||
![]() |
dc39da8ca5 | ||
![]() |
c10c87d28e | ||
![]() |
c6fe6f1cc5 | ||
![]() |
1c2bbeb26d | ||
![]() |
17ed3692d0 | ||
![]() |
966a00f41e | ||
![]() |
fd8d8f89aa | ||
![]() |
305bb74072 | ||
![]() |
7f4dcdd134 | ||
![]() |
aac37dcce1 | ||
![]() |
f539c662a5 | ||
![]() |
c82f346dd0 | ||
![]() |
21b4a87837 | ||
![]() |
ae73bcf24b | ||
![]() |
2a3b56bde1 | ||
![]() |
b8ebededd8 | ||
![]() |
227c4c422c | ||
![]() |
652bfb93cc | ||
![]() |
c2278e3536 | ||
![]() |
caa2fca4e8 | ||
![]() |
745cb0175c | ||
![]() |
e5165a780f | ||
![]() |
b4b91af02b | ||
![]() |
5649ff9c2e | ||
![]() |
5b4bf6c62a | ||
![]() |
93cb662282 | ||
![]() |
00a8715e58 | ||
![]() |
7ecd479b3e | ||
![]() |
8fe7d3aaec | ||
![]() |
f32a693393 | ||
![]() |
17ebc01597 | ||
![]() |
827fb698e1 | ||
![]() |
32bdf10fd2 | ||
![]() |
b795e6c3d2 | ||
![]() |
42ba524e4e | ||
![]() |
317c6d96e3 | ||
![]() |
3692d1499f | ||
![]() |
b21fbad8a3 | ||
![]() |
743334a68a | ||
![]() |
951413eb38 | ||
![]() |
32dcdef853 | ||
![]() |
34c9254d4a | ||
![]() |
14012a4668 | ||
![]() |
575debca63 | ||
![]() |
763cac8532 | ||
![]() |
43faacd7a7 | ||
![]() |
1d4e307e96 | ||
![]() |
7f8933b0de | ||
![]() |
81608ff025 | ||
![]() |
db63675b8e | ||
![]() |
f74a83bc46 | ||
![]() |
bc1deba3e4 | ||
![]() |
d6113a8f0a | ||
![]() |
2062cd48ea | ||
![]() |
1c965ef515 | ||
![]() |
58291b7156 | ||
![]() |
afd1648d80 | ||
![]() |
21814ffa9a | ||
![]() |
9d3522da54 | ||
![]() |
e07a76755e | ||
![]() |
ba46bcdeae | ||
![]() |
8d7e44314c | ||
![]() |
35a67498c7 | ||
![]() |
90dd934f95 | ||
![]() |
4087045542 | ||
![]() |
d11cef5907 | ||
![]() |
76c91d226c | ||
![]() |
c2b4dd2afd | ||
![]() |
25b39cb39a | ||
![]() |
35dcb7b88b | ||
![]() |
e5f7e7c26e | ||
![]() |
c5c11fd6a6 | ||
![]() |
8134083419 | ||
![]() |
a87e624198 | ||
![]() |
e4c62d20b4 | ||
![]() |
fa195d9e55 | ||
![]() |
5ef5773d23 | ||
![]() |
6eea52afdf | ||
![]() |
80e64af30f | ||
![]() |
563b6ddc36 | ||
![]() |
c051ab9dc4 | ||
![]() |
87737a8bdb | ||
![]() |
94273d80b0 | ||
![]() |
a08ec2a4bd | ||
![]() |
d246c556f4 | ||
![]() |
65aa365e38 | ||
![]() |
eeeae449b4 | ||
![]() |
17c10a7ba2 | ||
![]() |
69f4383678 | ||
![]() |
07852a7295 | ||
![]() |
20b7e9b6b5 | ||
![]() |
75f43ccea4 | ||
![]() |
59e5785e93 | ||
![]() |
b38f52dba9 | ||
![]() |
2a6b17a48e | ||
![]() |
a6c056a894 | ||
![]() |
5c3442a71f | ||
![]() |
390253242f | ||
![]() |
9ab80fe1ac | ||
![]() |
91fdd09e7a | ||
![]() |
db5bd5c8a4 | ||
![]() |
ef94c2fe7c | ||
![]() |
72a25ed8e1 | ||
![]() |
eb065e218f | ||
![]() |
33426736fc | ||
![]() |
896658d5ce | ||
![]() |
b14135ed72 | ||
![]() |
a1baf2e32d | ||
![]() |
f9aa2d3bce | ||
![]() |
c95d0e0696 | ||
![]() |
ad4b84d446 | ||
![]() |
3e27d5fcb0 | ||
![]() |
48a100f49a | ||
![]() |
698649f981 | ||
![]() |
780078c3aa | ||
![]() |
4c25e4ddee | ||
![]() |
c0a5ac2ac5 | ||
![]() |
0435409870 | ||
![]() |
c521269409 | ||
![]() |
1e252b7e4c | ||
![]() |
d72b1edc48 | ||
![]() |
f7307e8e01 | ||
![]() |
127905f04b | ||
![]() |
261c6dabd5 | ||
![]() |
cae84bbf02 | ||
![]() |
cdb2bc52fa | ||
![]() |
cd2972eee0 | ||
![]() |
4036aa8d0e | ||
![]() |
52c6927c44 | ||
![]() |
a16e0a21a2 | ||
![]() |
e796b21157 | ||
![]() |
1c6bc478b4 | ||
![]() |
98f39c6388 | ||
![]() |
570c83571b | ||
![]() |
c0c38d89e0 | ||
![]() |
b866cfc03c | ||
![]() |
28c2755b37 | ||
![]() |
57bfc5c73a | ||
![]() |
0f3f7d53a3 | ||
![]() |
529e50fd7f | ||
![]() |
2fa283f91d | ||
![]() |
029a9ade93 | ||
![]() |
f1ca8b15c8 | ||
![]() |
4d8edd5da9 | ||
![]() |
6c63990653 | ||
![]() |
5b521409c6 | ||
![]() |
3268fc1014 | ||
![]() |
19afb4941b | ||
![]() |
40e5111d41 | ||
![]() |
a3a40e1e74 | ||
![]() |
101caa6826 | ||
![]() |
875fed8d77 | ||
![]() |
69e28eb000 | ||
![]() |
e5d3a8360c | ||
![]() |
4545d9285b | ||
![]() |
6702024805 | ||
![]() |
78bad4842b | ||
![]() |
b9a913cfed | ||
![]() |
6f5a6f353f | ||
![]() |
790c4f589d | ||
![]() |
cd1bd3461f | ||
![]() |
0280dcd6a8 | ||
![]() |
fc337292bc | ||
![]() |
fb1daa0e21 | ||
![]() |
579b9dc0c2 | ||
![]() |
dedd0be352 | ||
![]() |
1c7d9c3513 | ||
![]() |
0c7dfe2af4 | ||
![]() |
8d1351a8a3 | ||
![]() |
e6e68a6036 | ||
![]() |
24658edc45 | ||
![]() |
09eaa3116a | ||
![]() |
e9bff466b5 | ||
![]() |
5d77f50160 | ||
![]() |
2ab91e363f | ||
![]() |
34d881426f | ||
![]() |
13ecaa0ad4 | ||
![]() |
ce6185b1f7 | ||
![]() |
2cfde6b75a | ||
![]() |
37d0354751 | ||
![]() |
0a0edcf203 | ||
![]() |
d6aad2ea28 | ||
![]() |
63084506ee | ||
![]() |
c5d313574f | ||
![]() |
caab998212 | ||
![]() |
aa037cc3d9 | ||
![]() |
642bffe374 | ||
![]() |
d682b154fc | ||
![]() |
d4a06d98cf | ||
![]() |
856b5e16b1 | ||
![]() |
a0aa208860 | ||
![]() |
037a11e04f | ||
![]() |
bd8a1d715f | ||
![]() |
54ab1dc091 | ||
![]() |
9471e63857 | ||
![]() |
fa4a403f38 | ||
![]() |
d608d65bf4 | ||
![]() |
c0f2df172a | ||
![]() |
788ef5d81c | ||
![]() |
1c6b5cffe1 | ||
![]() |
c04382b623 | ||
![]() |
0bbe51f8fd | ||
![]() |
ff7d7d15a0 | ||
![]() |
4b3d083d3a | ||
![]() |
a566dd390b | ||
![]() |
7d1442da04 | ||
![]() |
17fc982f55 | ||
![]() |
ba417e2274 | ||
![]() |
d345094b75 | ||
![]() |
6da477480d | ||
![]() |
e274088c06 | ||
![]() |
1bcaa73c5c | ||
![]() |
ca94e8f621 | ||
![]() |
1c4e198f59 | ||
![]() |
fdd13f9c66 | ||
![]() |
4333ab624e | ||
![]() |
9fe1eb3a42 | ||
![]() |
ad251a7682 | ||
![]() |
1fa740de2d | ||
![]() |
466b89064a | ||
![]() |
2748cb0ba3 | ||
![]() |
aef0d5bdde | ||
![]() |
c71e8f024a | ||
![]() |
9411f07321 | ||
![]() |
9b2a5c9bbf | ||
![]() |
2b275523a0 | ||
![]() |
31fe2f6da4 | ||
![]() |
f95db623a5 | ||
![]() |
a46313e483 | ||
![]() |
31c330826e | ||
![]() |
c4cf800142 | ||
![]() |
b64a2b0006 | ||
![]() |
a3702f2270 | ||
![]() |
d221b1d470 | ||
![]() |
0b22a6bc1d | ||
![]() |
07e8acd003 | ||
![]() |
9fce617c57 | ||
![]() |
8d5c736975 | ||
![]() |
4ccec05186 | ||
![]() |
a4f456f002 | ||
![]() |
fbdb941c27 | ||
![]() |
a41cd42e8d | ||
![]() |
77521e4627 | ||
![]() |
b6a1242bac | ||
![]() |
2f325cfe26 | ||
![]() |
193b0ad0f0 | ||
![]() |
ed476b7793 | ||
![]() |
720fd94b7f | ||
![]() |
ff87da105c | ||
![]() |
a875e65536 | ||
![]() |
0b2c6bb662 | ||
![]() |
e44e2fbbb7 | ||
![]() |
b3c93644fd | ||
![]() |
a56b7ff636 | ||
![]() |
c724236930 | ||
![]() |
4853320b2b | ||
![]() |
ba1acb6ac1 | ||
![]() |
f32a6320fc | ||
![]() |
9f914ce36a | ||
![]() |
b037644e5a | ||
![]() |
afd8c59f83 | ||
![]() |
8aa4af3e91 | ||
![]() |
630a8a2b97 |
@@ -5,7 +5,7 @@ root = true
|
||||
|
||||
# Unix-style newlines with a newline ending every file
|
||||
[*]
|
||||
end_of_line = lf
|
||||
end_of_line = lf|crlf
|
||||
insert_final_newline = true
|
||||
|
||||
# Matches multiple files with brace expansion notation
|
||||
|
@@ -1,9 +1,10 @@
|
||||
module.exports = {
|
||||
'env': {
|
||||
'browser': true,
|
||||
'es2021': true,
|
||||
'node': true
|
||||
},
|
||||
'ignorePatterns': ['src/core/', 'src/core.lib/'],
|
||||
'ignorePatterns': ['src/core/', 'src/core.lib/','src/proto/'],
|
||||
'extends': [
|
||||
'eslint:recommended',
|
||||
'plugin:@typescript-eslint/recommended'
|
||||
|
2
.github/workflows/release.yml
vendored
2
.github/workflows/release.yml
vendored
@@ -121,7 +121,7 @@ jobs:
|
||||
run: echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_ENV
|
||||
|
||||
- name: Clone Changes Log
|
||||
run: curl -o CHANGELOG.md https://fastly.jsdelivr.net/gh/NapNeko/NapCatQQ@main/CHANGELOG.md
|
||||
run: curl -o CHANGELOG.md https://fastly.jsdelivr.net/gh/NapNeko/NapCatQQ@main/docs/changelogs/CHANGELOG.v${{ env.VERSION }}.md
|
||||
|
||||
- name: Create Release Draft and Upload Artifacts
|
||||
uses: softprops/action-gh-release@v1
|
||||
|
6
.gitignore
vendored
6
.gitignore
vendored
@@ -1,11 +1,11 @@
|
||||
# Logs
|
||||
|
||||
# Develop
|
||||
node_modules/
|
||||
package-lock.json
|
||||
pnpm-lock.yaml
|
||||
out/
|
||||
dist/
|
||||
src/core.lib/common/
|
||||
/src/core.lib/common/
|
||||
/localdebug/
|
||||
|
||||
# Editor
|
||||
.vscode/*
|
||||
|
28
CHANGELOG.md
28
CHANGELOG.md
@@ -1,28 +0,0 @@
|
||||
# v1.2.0
|
||||
|
||||
QQ Version: Windows 9.9.9-23361 / Linux 3.2.7-23361
|
||||
|
||||
## 修复与优化
|
||||
|
||||
* 修复图片URL,支持 Win/Linux X64 获取Rkey,暂时不支持arm64
|
||||
* 适配最新版 Windows 9.9.9-23361 / Linux 3.2.7-23361 提升了兼容性 - 修复 SYS: Listener Proxy
|
||||
* 修复群成员加入时间 上次活跃 活跃等级字段 - 影响 API: /get_group_member_info /get_group_member_list
|
||||
* 修复视频所需的 ffmpeg 路径不正确导致视频封面和时长获取失败 - 影响 Event/API
|
||||
* 优化数据库对消息储存,消耗储存减少 - 影响 Sys: OneBot
|
||||
* 修复他人管理员被撤销时没有上报
|
||||
|
||||
## 新增与调整
|
||||
* 支持商城表情发送和上报 url
|
||||
* 支持获取群公告 - 新增 API: /_get_group_notice
|
||||
* 支持了设置已读群/私聊消息接口 - 新增 API: /mark_private_msg_as_read /mark_group_msg_as_read
|
||||
* 支持了好友添加上报事件 - 新增 Event: AddFriend
|
||||
* 支持wsHost和httpHost配置
|
||||
* 支持获取官方Bot账号范围 - 新增 API: /get_robot_uin_range
|
||||
* 支持设置自身在线状态 - 新增 API: /set_online_status
|
||||
* 支持表情回应api和上报 - 新增 Event/API
|
||||
* 支持获取Cookies 实现更加稳定 且支持Skey缓存3600S Pskey每次刷新 - 新增 API: /get_cookies
|
||||
* 支持 服务端踢下线 / 其它设备上线 / 重复登录 / 自身在线状态变更 日志 - 新增 Sys: Log
|
||||
* 支持了消息统计 - API: /get_status
|
||||
* 支持单条消息转发 - API /forward_friend_single_msg、/forward_group_single_msg
|
||||
|
||||
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)
|
@@ -26,9 +26,7 @@ NapCatQQ 是基于 PC NTQQ 本体实现一套无头 Bot 框架。
|
||||
|
||||
## 鸣谢名单
|
||||
|
||||
[OpenShamrock]()
|
||||
|
||||
[Lagrange]()
|
||||
[Lagrange](https://github.com/LagrangeDev/Lagrange.Core)
|
||||
|
||||
<!--
|
||||
QQ群:545402644
|
||||
|
17
docs/changelogs/CHANGELOG.v1.3.3.md
Normal file
17
docs/changelogs/CHANGELOG.v1.3.3.md
Normal file
@@ -0,0 +1,17 @@
|
||||
# v1.3.3
|
||||
|
||||
QQ Version: Windows 9.9.9-23424 / Linux 3.2.7-23361
|
||||
|
||||
## 修复与优化
|
||||
* 尝试修复多开崩溃问题
|
||||
* 修复群列表更新问题
|
||||
* 修复兼容性问题支持Win7
|
||||
* 修复下载 http 资源缺少UA
|
||||
* 优化少量消息合并转发速度
|
||||
* 修复加载群通知时出现 getUserDetailInfo timeout 导致程序崩溃
|
||||
|
||||
## 新增与调整
|
||||
* 新增设置群公告 Api: /_send_group_notice
|
||||
* 新增重启实现 包括重启快速登录/普通重启 副作用: 原进程 无法清理
|
||||
|
||||
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)
|
18
docs/changelogs/CHANGELOG.v1.3.5.md
Normal file
18
docs/changelogs/CHANGELOG.v1.3.5.md
Normal file
@@ -0,0 +1,18 @@
|
||||
# v1.3.5
|
||||
|
||||
QQ Version: Windows 9.9.9-23424 / Linux 3.2.7-23361
|
||||
|
||||
## 修复与优化
|
||||
* 优化启动脚本
|
||||
* 修复非管理时群成员减少事件上报 **无法获取操作者与操作类型**
|
||||
* 修复快速重启进程清理问题
|
||||
* 优化配置文件格式 支持自动更新配置 但仍然建议 **备份配置**
|
||||
* 修复正向反向ws多个客户端周期多次心跳问题
|
||||
|
||||
## 新增与调整
|
||||
* 支持WebUi热重载
|
||||
* 新增启动输出WEBUI秘钥
|
||||
* 新增群荣誉信息 /get_group_honor_info
|
||||
* 支持获取群系统消息 /get_group_system_msg
|
||||
|
||||
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)
|
11
docs/changelogs/CHANGELOG.v1.3.6.md
Normal file
11
docs/changelogs/CHANGELOG.v1.3.6.md
Normal file
@@ -0,0 +1,11 @@
|
||||
# v1.3.6
|
||||
|
||||
QQ Version: Windows 9.9.9-23424 / Linux 3.2.7-23361
|
||||
|
||||
## 修复与优化
|
||||
* 修复戳一戳多次上报问题
|
||||
|
||||
## 新增与调整
|
||||
|
||||
|
||||
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)
|
15
docs/changelogs/CHANGELOG.v1.3.8.md
Normal file
15
docs/changelogs/CHANGELOG.v1.3.8.md
Normal file
@@ -0,0 +1,15 @@
|
||||
# v1.3.8
|
||||
|
||||
QQ Version: Windows 9.9.9-23873 / Linux 3.2.7-23361
|
||||
|
||||
## 修复与优化
|
||||
* 优化打包后体积问题
|
||||
* 修复QQ等级获取
|
||||
* 兼容 9.7.x 版本换行符 统一为 \n
|
||||
* 修复处理加群请求 字段异常情况
|
||||
* 修复退群通知问题
|
||||
|
||||
## 新增与调整
|
||||
|
||||
|
||||
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)
|
11
docs/changelogs/CHANGELOG.v1.3.9.md
Normal file
11
docs/changelogs/CHANGELOG.v1.3.9.md
Normal file
@@ -0,0 +1,11 @@
|
||||
# v1.3.9
|
||||
|
||||
QQ Version: Windows 9.9.10-23873 / Linux 3.2.7-23361
|
||||
|
||||
## 修复与优化
|
||||
* 修复QQ等级获取与兼容性问题
|
||||
|
||||
## 新增与调整
|
||||
|
||||
|
||||
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)
|
12
docs/changelogs/CHANGELOG.v1.4.0.md
Normal file
12
docs/changelogs/CHANGELOG.v1.4.0.md
Normal file
@@ -0,0 +1,12 @@
|
||||
# v1.4.0
|
||||
|
||||
QQ Version: Windows 9.9.10-24108 / Linux 3.2.7-23361
|
||||
|
||||
## 修复与优化
|
||||
|
||||
## 新增与调整
|
||||
* 支持空间Cookies获取
|
||||
* 支持获取在线设备 API /get_online_clients
|
||||
* 支持图片OCR API: /.ocr_image /ocr_image
|
||||
|
||||
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)
|
14
docs/changelogs/CHANGELOG.v1.4.1.md
Normal file
14
docs/changelogs/CHANGELOG.v1.4.1.md
Normal file
@@ -0,0 +1,14 @@
|
||||
# v1.4.1
|
||||
|
||||
QQ Version: Windows 9.9.10-24108 / Linux 3.2.7-23361
|
||||
|
||||
## 修复与优化
|
||||
* 提高部分Api兼容性
|
||||
* 优化日志膨胀问题
|
||||
* 在线状态刷新问题修复
|
||||
## 新增与调整
|
||||
* 支持非管理群 本地记录时间数据 (建议 **备份配置 清空配置 重新配置**)
|
||||
* 新增英译中接口 Api: /translate_en2zh
|
||||
* 新增群文件管理相关扩展接口 Api: /get_group_file_count /get_group_file_list /set_group_file_folder /del_group_file /del_group_file_folder
|
||||
|
||||
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)
|
12
docs/changelogs/CHANGELOG.v1.4.2.md
Normal file
12
docs/changelogs/CHANGELOG.v1.4.2.md
Normal file
@@ -0,0 +1,12 @@
|
||||
# v1.4.2
|
||||
|
||||
QQ Version: Windows 9.9.10-24108 / Linux 3.2.7-23361
|
||||
|
||||
## 修复与优化
|
||||
* 修复获取群文件列表Api
|
||||
* 修复退群通知问题
|
||||
|
||||
## 新增与调整
|
||||
|
||||
|
||||
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)
|
11
docs/changelogs/CHANGELOG.v1.4.3.md
Normal file
11
docs/changelogs/CHANGELOG.v1.4.3.md
Normal file
@@ -0,0 +1,11 @@
|
||||
# v1.4.3
|
||||
|
||||
QQ Version: Windows 9.9.10-24108 / Linux 3.2.7-23361
|
||||
|
||||
## 修复与优化
|
||||
* 修复名片通知
|
||||
|
||||
## 新增与调整
|
||||
|
||||
|
||||
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)
|
10
docs/changelogs/CHANGELOG.v1.4.4.md
Normal file
10
docs/changelogs/CHANGELOG.v1.4.4.md
Normal file
@@ -0,0 +1,10 @@
|
||||
# v1.4.4
|
||||
|
||||
QQ Version: Windows 9.9.10-24108 / Linux 3.2.7-23361
|
||||
|
||||
## 更新
|
||||
* **重大更新:**更新了版本号
|
||||
|
||||
|
||||
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)
|
||||
|
10
package.json
10
package.json
@@ -2,7 +2,7 @@
|
||||
"name": "napcat",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"version": "1.2.0",
|
||||
"version": "1.4.4",
|
||||
"scripts": {
|
||||
"watch:dev": "vite --mode development",
|
||||
"watch:prod": "vite --mode production",
|
||||
@@ -10,6 +10,7 @@
|
||||
"build:prod": "vite build --mode production",
|
||||
"build": "npm run build:dev",
|
||||
"build:core": "cd ./src/core && npm run build && cd ../.. && node ./script/copy-core.cjs",
|
||||
"build:webui": "cd ./src/webui && vite build",
|
||||
"watch": "npm run watch:dev",
|
||||
"debug-win": "powershell dist/napcat.ps1",
|
||||
"lint": "eslint --fix src/**/*.{js,ts}",
|
||||
@@ -18,7 +19,6 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@log4js-node/log4js-api": "^1.0.2",
|
||||
"@rollup/plugin-commonjs": "^25.0.7",
|
||||
"@rollup/plugin-node-resolve": "^15.2.3",
|
||||
"@rollup/plugin-typescript": "^11.1.6",
|
||||
"@types/cors": "^2.8.17",
|
||||
@@ -36,7 +36,6 @@
|
||||
"eslint-plugin-import": "^2.29.1",
|
||||
"i": "^0.3.7",
|
||||
"javascript-obfuscator": "^4.1.0",
|
||||
"protobufjs-cli": "^1.1.2",
|
||||
"rollup": "^4.13.2",
|
||||
"rollup-plugin-dts": "^6.1.0",
|
||||
"rollup-plugin-obfuscator": "^1.1.0",
|
||||
@@ -44,9 +43,11 @@
|
||||
"vite": "^5.2.6",
|
||||
"vite-plugin-cp": "^4.0.8",
|
||||
"vite-plugin-dts": "^3.8.2",
|
||||
"vite-tsconfig-paths": "^4.3.2"
|
||||
"vite-tsconfig-paths": "^4.3.2",
|
||||
"@protobuf-ts/plugin": "^2.9.4"
|
||||
},
|
||||
"dependencies": {
|
||||
"ajv": "^8.13.0",
|
||||
"commander": "^12.0.0",
|
||||
"cors": "^2.8.5",
|
||||
"express": "^5.0.0-beta.2",
|
||||
@@ -54,6 +55,7 @@
|
||||
"file-type": "^19.0.0",
|
||||
"fluent-ffmpeg": "^2.1.2",
|
||||
"image-size": "^1.1.1",
|
||||
"json-schema-to-ts": "^3.1.0",
|
||||
"log4js": "^6.9.1",
|
||||
"qrcode-terminal": "^0.12.0",
|
||||
"silk-wasm": "^3.3.4",
|
||||
|
@@ -1,13 +1,42 @@
|
||||
let fs = require("fs");
|
||||
let process = require("process")
|
||||
const fs = require("fs");
|
||||
const process = require("process");
|
||||
|
||||
console.log("[NapCat] [CheckVersion] 开始检测当前仓库版本...");
|
||||
let currentVersion = require("../package.json").version;
|
||||
let targetVersion = process.env.VERSION;
|
||||
console.log("[NapCat] [CheckVersion] currentVersion:", currentVersion, " targetVersion:", targetVersion);
|
||||
// fs.mkdirSync("./dist");
|
||||
if (currentVersion === targetVersion) {
|
||||
fs.writeFileSync("./checkVersion.sh", "#!/bin/bashe\necho \"CheckVersion Is Done\"")
|
||||
} else {
|
||||
let runscript = "sed -i 's/\"version\": \"" + currentVersion + "\"/\"version\": \"" + targetVersion + "\"/g' package.json";
|
||||
fs.writeFileSync("./checkVersion.sh", "#!/bin/bashe\ngit config --global user.email \"bot@test.wumiao.wang\"\n git config --global user.name \"Version\"\n" + runscript + "\ngit add .\n git commit -m \"chore:version change\"\n git push -u origin main")
|
||||
try {
|
||||
const packageJson = require("../package.json");
|
||||
const currentVersion = packageJson.version;
|
||||
const targetVersion = process.env.VERSION;
|
||||
|
||||
console.log("[NapCat] [CheckVersion] currentVersion:", currentVersion, "targetVersion:", targetVersion);
|
||||
|
||||
// 验证 targetVersion 格式
|
||||
if (!targetVersion || typeof targetVersion !== 'string') {
|
||||
console.error("[NapCat] [CheckVersion] 目标版本格式不正确或未设置!");
|
||||
return;
|
||||
}
|
||||
|
||||
// 写入脚本文件的统一函数
|
||||
const writeScriptToFile = (content) => {
|
||||
fs.writeFileSync("./checkVersion.sh", content, { flag: 'w' });
|
||||
console.log("[NapCat] [CheckVersion] checkVersion.sh 文件已更新。");
|
||||
};
|
||||
|
||||
if (currentVersion === targetVersion) {
|
||||
// 不需要更新版本,写入一个简单的脚本
|
||||
const simpleScript = "#!/bin/bash\necho \"CheckVersion Is Done\"";
|
||||
writeScriptToFile(simpleScript);
|
||||
} else {
|
||||
// 更新版本,构建安全的sed命令
|
||||
const safeScriptContent = `
|
||||
#!/bin/bash
|
||||
git config --global user.email "bot@test.wumiao.wang"
|
||||
git config --global user.name "Version"
|
||||
sed -i "s/\\\"version\\\": \\\"${currentVersion}\\\"/\\\"version\\\": \\\"${targetVersion}\\\"/g" package.json
|
||||
git add .
|
||||
git commit -m "chore:version change"
|
||||
git push -u origin main`;
|
||||
writeScriptToFile(safeScriptContent);
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("[NapCat] [CheckVersion] 检测过程中发生错误:", error);
|
||||
}
|
@@ -15,4 +15,4 @@ for %%a in ("!RetString!") do (
|
||||
set "QQPath=!pathWithoutUninstall!QQ.exe"
|
||||
set ELECTRON_RUN_AS_NODE=1
|
||||
echo !QQPath!
|
||||
"!QQPath!" ./napcat.cjs %*
|
||||
"!QQPath!" ./napcat.mjs %*
|
||||
|
@@ -5,11 +5,39 @@ function Get-QQpath {
|
||||
return [System.IO.Path]::GetDirectoryName($uninstallString) + "\QQ.exe"
|
||||
}
|
||||
catch {
|
||||
return "D:\QQ.exe"
|
||||
throw "get QQ path error: $_"
|
||||
}
|
||||
}
|
||||
function Select-QQPath {
|
||||
Add-Type -AssemblyName System.Windows.Forms
|
||||
[System.Windows.Forms.Application]::EnableVisualStyles()
|
||||
|
||||
$dialogTitle = "Select QQ.exe"
|
||||
|
||||
$filePicker = New-Object System.Windows.Forms.OpenFileDialog
|
||||
$filePicker.Title = $dialogTitle
|
||||
$filePicker.Filter = "Executable Files (*.exe)|*.exe|All Files (*.*)|*.*"
|
||||
$filePicker.FilterIndex = 1
|
||||
$null = $filePicker.ShowDialog()
|
||||
if (-not ($filePicker.FileName)) {
|
||||
throw "User did not select an .exe file."
|
||||
}
|
||||
return $filePicker.FileName
|
||||
}
|
||||
|
||||
$params = $args -join " "
|
||||
$QQpath = Get-QQpath
|
||||
$Bootfile = Join-Path $PSScriptRoot "napcat.cjs"
|
||||
Try {
|
||||
$QQpath = Get-QQpath
|
||||
}
|
||||
Catch {
|
||||
$QQpath = Select-QQPath
|
||||
}
|
||||
|
||||
if (!(Test-Path $QQpath)) {
|
||||
throw "provided QQ path is invalid: $QQpath"
|
||||
}
|
||||
|
||||
$Bootfile = Join-Path $PSScriptRoot "napcat.mjs"
|
||||
$env:ELECTRON_RUN_AS_NODE = 1
|
||||
Start-Process powershell -ArgumentList "-noexit", "-noprofile", "-command &{& chcp 65001;& '$QQpath' $Bootfile $params}"
|
||||
$commandInfo = Get-Command $QQpath -ErrorAction Stop
|
||||
Start-Process powershell -ArgumentList "-noexit", "-noprofile", "-command &{& chcp 65001;& '$($commandInfo.Path)' $Bootfile $params}"
|
@@ -14,4 +14,4 @@ for %%a in ("!RetString!") do (
|
||||
set "QQPath=!pathWithoutUninstall!QQ.exe"
|
||||
set ELECTRON_RUN_AS_NODE=1
|
||||
echo !QQPath!
|
||||
"!QQPath!" ./napcat.cjs %*
|
||||
"!QQPath!" ./napcat.mjs %*
|
||||
|
@@ -5,11 +5,39 @@ function Get-QQpath {
|
||||
return [System.IO.Path]::GetDirectoryName($uninstallString) + "\QQ.exe"
|
||||
}
|
||||
catch {
|
||||
return "D:\QQ.exe"
|
||||
throw "get QQ path error: $_"
|
||||
}
|
||||
}
|
||||
function Select-QQPath {
|
||||
Add-Type -AssemblyName System.Windows.Forms
|
||||
[System.Windows.Forms.Application]::EnableVisualStyles()
|
||||
|
||||
$dialogTitle = "Select QQ.exe"
|
||||
|
||||
$filePicker = New-Object System.Windows.Forms.OpenFileDialog
|
||||
$filePicker.Title = $dialogTitle
|
||||
$filePicker.Filter = "Executable Files (*.exe)|*.exe|All Files (*.*)|*.*"
|
||||
$filePicker.FilterIndex = 1
|
||||
$null = $filePicker.ShowDialog()
|
||||
if (-not ($filePicker.FileName)) {
|
||||
throw "User did not select an .exe file."
|
||||
}
|
||||
return $filePicker.FileName
|
||||
}
|
||||
|
||||
$params = $args -join " "
|
||||
$QQpath = Get-QQpath
|
||||
$Bootfile = Join-Path $PSScriptRoot "napcat.cjs"
|
||||
Try {
|
||||
$QQpath = Get-QQpath
|
||||
}
|
||||
Catch {
|
||||
$QQpath = Select-QQPath
|
||||
}
|
||||
|
||||
if (!(Test-Path $QQpath)) {
|
||||
throw "provided QQ path is invalid: $QQpath"
|
||||
}
|
||||
|
||||
$Bootfile = Join-Path $PSScriptRoot "napcat.mjs"
|
||||
$env:ELECTRON_RUN_AS_NODE = 1
|
||||
Start-Process powershell -ArgumentList "-noexit", "-noprofile", "-command &{& '$QQpath' $Bootfile $params}"
|
||||
$commandInfo = Get-Command $QQpath -ErrorAction Stop
|
||||
Start-Process powershell -ArgumentList "-noexit", "-noprofile", "-command &{& '$($commandInfo.Path)' $Bootfile $params}"
|
@@ -1,4 +1,21 @@
|
||||
#!/bin/bash
|
||||
SCRIPT_DIR=$(realpath $(dirname "${BASH_SOURCE[0]}"))
|
||||
|
||||
get_script_dir() {
|
||||
local script_path="${1:-$0}"
|
||||
local script_dir
|
||||
script_path=$(readlink -f "$script_path")
|
||||
script_dir=$(dirname "$script_path")
|
||||
|
||||
echo "$script_dir"
|
||||
}
|
||||
|
||||
SCRIPT_DIR=$(get_script_dir)
|
||||
|
||||
export ELECTRON_RUN_AS_NODE=1
|
||||
/opt/QQ/qq ${SCRIPT_DIR}/napcat.cjs $@
|
||||
|
||||
if ! [ -x /opt/QQ/qq ]; then
|
||||
echo "Error: /opt/QQ/qq is not executable or does not exist." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
/opt/QQ/qq "${SCRIPT_DIR}/napcat.mjs" "$@"
|
||||
|
@@ -37,14 +37,14 @@ export abstract class HttpServerBase {
|
||||
const authHeader = req.get('authorization');
|
||||
if (authHeader) {
|
||||
clientToken = authHeader.split('Bearer ').pop() || '';
|
||||
logDebug('receive http header token', clientToken);
|
||||
//logDebug('receive http header token', clientToken);
|
||||
} else if (req.query.access_token) {
|
||||
if (Array.isArray(req.query.access_token)) {
|
||||
clientToken = req.query.access_token[0].toString();
|
||||
} else {
|
||||
clientToken = req.query.access_token.toString();
|
||||
}
|
||||
logDebug('receive http url token', clientToken);
|
||||
//logDebug('receive http url token', clientToken);
|
||||
}
|
||||
|
||||
if (serverToken && clientToken != serverToken) {
|
||||
@@ -61,12 +61,12 @@ export abstract class HttpServerBase {
|
||||
this.listen(port, host);
|
||||
} catch (e: any) {
|
||||
logError('HTTP服务启动失败', e.toString());
|
||||
// llonebotError.httpServerError = "HTTP服务启动失败, " + e.toString()
|
||||
// httpServerError = "HTTP服务启动失败, " + e.toString()
|
||||
}
|
||||
}
|
||||
|
||||
stop() {
|
||||
// llonebotError.httpServerError = ""
|
||||
// httpServerError = ""
|
||||
if (this.server) {
|
||||
this.server.close();
|
||||
this.server = null;
|
||||
@@ -114,8 +114,10 @@ export abstract class HttpServerBase {
|
||||
this.server = this.expressAPP.listen(port, host, () => {
|
||||
const info = `${this.name} started ${host}:${port}`;
|
||||
log(info);
|
||||
}).on('error', (err) => {
|
||||
logError('HTTP服务启动失败', err.toString());
|
||||
});
|
||||
}catch (e: any) {
|
||||
} catch (e: any) {
|
||||
logError('HTTP服务启动失败, 请检查监听的ip地址和端口', e.stack.toString());
|
||||
}
|
||||
}
|
||||
|
@@ -30,9 +30,10 @@ export class WebsocketServerBase {
|
||||
start(port: number, host: string = '') {
|
||||
try {
|
||||
this.ws = new WebSocketServer({
|
||||
port ,
|
||||
port,
|
||||
host: '',
|
||||
maxPayload: 1024 * 1024 * 1024
|
||||
}).on('error', () => {
|
||||
});
|
||||
log(`ws服务启动成功, ${host}:${port}`);
|
||||
} catch (e: any) {
|
||||
|
@@ -1,6 +1,6 @@
|
||||
import { sleep } from '@/common/utils/helper';
|
||||
|
||||
type AsyncQueueTask = (() => void) | Promise<void> ;
|
||||
type AsyncQueueTask = (() => void) | (()=>Promise<void>);
|
||||
|
||||
|
||||
export class AsyncQueue {
|
||||
@@ -8,20 +8,22 @@ export class AsyncQueue {
|
||||
|
||||
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 {
|
||||
if (task instanceof Promise) {
|
||||
await task;
|
||||
}
|
||||
else{
|
||||
task();
|
||||
const taskRet = task();
|
||||
// console.log('type of taskRet', typeof taskRet, taskRet);
|
||||
if (taskRet instanceof Promise) {
|
||||
await taskRet;
|
||||
}
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
|
@@ -1,6 +1,12 @@
|
||||
import path from 'node:path';
|
||||
import fs from 'node:fs';
|
||||
import { log, logDebug, logError } from '@/common/utils/log';
|
||||
import { dirname } from 'node:path';
|
||||
import { fileURLToPath } from 'node:url';
|
||||
|
||||
|
||||
const __filename = fileURLToPath(import.meta.url);
|
||||
const __dirname = dirname(__filename);
|
||||
|
||||
const configDir = path.resolve(__dirname, 'config');
|
||||
fs.mkdirSync(configDir, { recursive: true });
|
||||
|
99
src/common/utils/EventTask.ts
Normal file
99
src/common/utils/EventTask.ts
Normal file
@@ -0,0 +1,99 @@
|
||||
import { randomUUID } from "crypto";
|
||||
export enum NTEventMode {
|
||||
Once = 1,
|
||||
Twice = 2
|
||||
}
|
||||
export interface NTEventType<U extends (...args: any[]) => any> {
|
||||
EventName: string,
|
||||
EventFunction: U,
|
||||
ListenerName: string,
|
||||
ListenerFunction: Function
|
||||
}
|
||||
interface Internal_MapKey {
|
||||
mode: NTEventMode,
|
||||
timeout: number,
|
||||
createtime: number,
|
||||
func: Function
|
||||
}
|
||||
export class NTEvent<T extends (...args: any[]) => any, R = any> {
|
||||
EventData: NTEventType<T>;
|
||||
EventTask: Map<string, Internal_MapKey> = new Map<string, Internal_MapKey>();
|
||||
constructor(params: NTEventType<T>) {
|
||||
params.ListenerFunction = this.DispatcherListener.bind(this);
|
||||
this.EventData = params;
|
||||
this.EventData.EventFunction = params.EventFunction.bind(this) as any;
|
||||
}
|
||||
async DispatcherListener(...args: any[]) {
|
||||
console.log(...args);
|
||||
this.EventTask.forEach((task, uuid) => {
|
||||
if (task.createtime + task.timeout > Date.now()) {
|
||||
this.EventTask.delete(uuid);
|
||||
return;
|
||||
}
|
||||
task.func(...args);
|
||||
})
|
||||
}
|
||||
async CallTwiceEvent(timeout: number = 3000, ...args: Parameters<T>) {
|
||||
return new Promise<R>((resolve, reject) => {
|
||||
const id = randomUUID();
|
||||
let complete = 0;
|
||||
let retData: R | undefined = undefined;
|
||||
let databack = () => {
|
||||
if (!complete) {
|
||||
this.EventTask.delete(id);
|
||||
reject(new Error('NTEvent EventName:' + this.EventData.EventName + ' EventListener:' + this.EventData.ListenerName + ' timeout'));
|
||||
} else {
|
||||
resolve(retData as R);
|
||||
}
|
||||
}
|
||||
|
||||
let Timeouter = setTimeout(databack, timeout);
|
||||
|
||||
this.EventTask.set(id, {
|
||||
mode: NTEventMode.Once,
|
||||
timeout: timeout,
|
||||
createtime: Date.now(),
|
||||
func: (...args: any[]) => {
|
||||
complete++;
|
||||
retData = args as R;
|
||||
if (complete == 2) {
|
||||
clearTimeout(Timeouter);
|
||||
databack();
|
||||
}
|
||||
}
|
||||
});
|
||||
this.EventData.EventFunction(...args);
|
||||
});
|
||||
}
|
||||
|
||||
async CallOnceEvent(timeout: number = 3000, ...args: Parameters<T>) {
|
||||
return new Promise<R>((resolve, reject) => {
|
||||
const id = randomUUID();
|
||||
let complete = false;
|
||||
let retData: R | undefined = undefined;
|
||||
let databack = () => {
|
||||
if (!complete) {
|
||||
this.EventTask.delete(id);
|
||||
reject(new Error('NTEvent EventName:' + this.EventData.EventName + ' EventListener:' + this.EventData.ListenerName + ' timeout'));
|
||||
} else {
|
||||
resolve(retData as R);
|
||||
}
|
||||
}
|
||||
let Timeouter = setTimeout(databack, timeout);
|
||||
|
||||
this.EventTask.set(id, {
|
||||
mode: NTEventMode.Once,
|
||||
timeout: timeout,
|
||||
createtime: Date.now(),
|
||||
func: (...args: any[]) => {
|
||||
clearTimeout(Timeouter);
|
||||
complete = true;
|
||||
retData = args as R;
|
||||
databack();
|
||||
}
|
||||
});
|
||||
this.EventData.EventFunction(...args);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
145
src/common/utils/LRUCache.ts
Normal file
145
src/common/utils/LRUCache.ts
Normal file
@@ -0,0 +1,145 @@
|
||||
import { logError, logDebug } from "@/common/utils/log";
|
||||
|
||||
type group_id = number;
|
||||
type user_id = number;
|
||||
|
||||
class cacheNode<T> {
|
||||
value: T;
|
||||
groupId: group_id;
|
||||
userId: user_id;
|
||||
prev: cacheNode<T> | null;
|
||||
next: cacheNode<T> | null;
|
||||
timestamp: number;
|
||||
|
||||
constructor(groupId: group_id, userId: user_id, value: T) {
|
||||
this.groupId = groupId;
|
||||
this.userId = userId;
|
||||
this.value = value;
|
||||
this.prev = null;
|
||||
this.next = null;
|
||||
this.timestamp = Date.now();
|
||||
}
|
||||
}
|
||||
|
||||
type cache<T> = { [key: group_id]: { [key: user_id]: cacheNode<T> } };
|
||||
class LRU<T> {
|
||||
private maxAge: number;
|
||||
private maxSize: number;
|
||||
private currentSize: number;
|
||||
private cache: cache<T>;
|
||||
private head: cacheNode<T> | null = null;
|
||||
private tail: cacheNode<T> | null = null;
|
||||
private onFuncs: ((node: cacheNode<T>) => void)[] = [];
|
||||
|
||||
constructor(maxAge: number = 2e4, maxSize: number = 5e3) {
|
||||
this.maxAge = maxAge;
|
||||
this.maxSize = maxSize;
|
||||
this.cache = Object.create(null);
|
||||
this.currentSize = 0;
|
||||
|
||||
if (maxSize == 0) return;
|
||||
setInterval(() => this.removeExpired(), this.maxAge);
|
||||
}
|
||||
|
||||
// 移除LRU节点
|
||||
private removeLRUNode(node: cacheNode<T>) {
|
||||
logDebug(
|
||||
"removeLRUNode",
|
||||
node.groupId,
|
||||
node.userId,
|
||||
node.value,
|
||||
this.currentSize
|
||||
);
|
||||
node.prev = node.next = null;
|
||||
delete this.cache[node.groupId][node.userId];
|
||||
this.removeNode(node);
|
||||
this.onFuncs.forEach((func) => func(node));
|
||||
this.currentSize--;
|
||||
}
|
||||
|
||||
public on(func: (node: cacheNode<T>) => void) {
|
||||
this.onFuncs.push(func);
|
||||
}
|
||||
|
||||
private removeExpired() {
|
||||
const now = Date.now();
|
||||
let current = this.tail;
|
||||
const nodesToRemove: cacheNode<T>[] = [];
|
||||
let removedCount = 0;
|
||||
|
||||
// 收集需要删除的节点
|
||||
while (current && now - current.timestamp > this.maxAge) {
|
||||
nodesToRemove.push(current);
|
||||
current = current.prev;
|
||||
removedCount++;
|
||||
if (removedCount >= 100) break;
|
||||
}
|
||||
|
||||
// 更新链表指向
|
||||
if (nodesToRemove.length > 0) {
|
||||
const newTail = nodesToRemove[nodesToRemove.length - 1].prev;
|
||||
if (newTail) {
|
||||
newTail.next = null;
|
||||
} else {
|
||||
this.head = null;
|
||||
}
|
||||
this.tail = newTail;
|
||||
}
|
||||
|
||||
nodesToRemove.forEach((node) => {
|
||||
node.prev = node.next = null;
|
||||
delete this.cache[node.groupId][node.userId];
|
||||
|
||||
this.currentSize--;
|
||||
this.onFuncs.forEach((func) => func(node));
|
||||
});
|
||||
}
|
||||
|
||||
private addNode(node: cacheNode<T>) {
|
||||
node.next = this.head;
|
||||
if (this.head) this.head.prev = node;
|
||||
if (!this.tail) this.tail = node;
|
||||
this.head = node;
|
||||
}
|
||||
|
||||
private removeNode(node: cacheNode<T>) {
|
||||
if (node.prev) node.prev.next = node.next;
|
||||
if (node.next) node.next.prev = node.prev;
|
||||
if (node === this.head) this.head = node.next;
|
||||
if (node === this.tail) this.tail = node.prev;
|
||||
}
|
||||
|
||||
private moveToHead(node: cacheNode<T>) {
|
||||
if (this.head === node) return;
|
||||
|
||||
this.removeNode(node);
|
||||
this.addNode(node);
|
||||
node.prev = null;
|
||||
}
|
||||
|
||||
public set(groupId: group_id, userId: user_id, value: T) {
|
||||
if (!this.cache[groupId]) {
|
||||
this.cache[groupId] = Object.create(null);
|
||||
}
|
||||
|
||||
const groupObject = this.cache[groupId];
|
||||
|
||||
if (groupObject[userId]) {
|
||||
const node = groupObject[userId];
|
||||
node.value = value;
|
||||
node.timestamp = Date.now();
|
||||
this.moveToHead(node);
|
||||
} else {
|
||||
const node = new cacheNode(groupId, userId, value);
|
||||
groupObject[userId] = node;
|
||||
this.currentSize++;
|
||||
this.addNode(node);
|
||||
if (this.currentSize > this.maxSize) {
|
||||
const tail = this.tail!;
|
||||
this.removeLRUNode(tail);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export default LRU;
|
@@ -55,7 +55,7 @@ if (fs.existsSync(configVersionInfoPath)) {
|
||||
|
||||
export const qqVersionConfigInfo: QQVersionConfigInfo = _qqVersionConfigInfo;
|
||||
|
||||
export const qqPkgInfo: QQPkgInfo = require(pkgInfoPath);
|
||||
export const qqPkgInfo: QQPkgInfo = JSON.parse(fs.readFileSync(pkgInfoPath).toString());
|
||||
// platform_type: 3,
|
||||
// app_type: 4,
|
||||
// app_version: '9.9.9-23159',
|
||||
|
@@ -1,7 +1,12 @@
|
||||
import * as os from 'os';
|
||||
import path from 'node:path';
|
||||
import fs from 'fs';
|
||||
import { dirname } from 'node:path';
|
||||
import { fileURLToPath } from 'node:url';
|
||||
|
||||
|
||||
const __filename = fileURLToPath(import.meta.url);
|
||||
const __dirname = dirname(__filename);
|
||||
export function getModuleWithArchName(moduleName: string) {
|
||||
const systemPlatform = os.platform();
|
||||
const cpuArch = os.arch();
|
||||
@@ -14,6 +19,6 @@ export function cpModule(moduleName: string) {
|
||||
try {
|
||||
fs.copyFileSync(path.join(currentDir, fileName), path.join(currentDir, `${moduleName}.node`));
|
||||
} catch (e) {
|
||||
|
||||
console.error(e);
|
||||
}
|
||||
}
|
||||
|
509
src/common/utils/db.ts
Normal file
509
src/common/utils/db.ts
Normal file
@@ -0,0 +1,509 @@
|
||||
import { ElementType, FileElement, PicElement, PttElement, RawMessage, VideoElement } from '../../core/src/entities';
|
||||
|
||||
import sqlite3 from 'sqlite3';
|
||||
import { log, logDebug, logError } from '@/common/utils/log';
|
||||
import { NTQQMsgApi } from '@/core';
|
||||
import LRU from "@/common/utils/LRUCache";
|
||||
|
||||
export interface IRember {
|
||||
last_sent_time: number;
|
||||
join_time: number;
|
||||
user_id: number;
|
||||
}
|
||||
|
||||
|
||||
type DBMsg = {
|
||||
id: number,
|
||||
shortId: number,
|
||||
longId: string,
|
||||
seq: number,
|
||||
peerUid: string,
|
||||
chatType: number,
|
||||
}
|
||||
|
||||
type DBFile = {
|
||||
name: string; // 文件名
|
||||
path: string;
|
||||
url: string;
|
||||
size: number;
|
||||
uuid: string;
|
||||
msgId: string;
|
||||
elementId: string;
|
||||
element: PicElement | VideoElement | FileElement | PttElement;
|
||||
elementType: ElementType.PIC | ElementType.VIDEO | ElementType.FILE | ElementType.PTT;
|
||||
}
|
||||
|
||||
|
||||
class DBUtilBase {
|
||||
protected db: sqlite3.Database | undefined;
|
||||
|
||||
async init(dbPath: string) {
|
||||
if (this.db) {
|
||||
return;
|
||||
}
|
||||
return new Promise<void>((resolve, reject) => {
|
||||
this.db = new sqlite3.Database(dbPath, sqlite3.OPEN_READWRITE | sqlite3.OPEN_CREATE, (err) => {
|
||||
if (err) {
|
||||
logError('Could not connect to database', err);
|
||||
reject(err);
|
||||
return;
|
||||
}
|
||||
this.createTable();
|
||||
resolve();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
protected createTable() {
|
||||
throw new Error('Method not implemented.');
|
||||
}
|
||||
|
||||
close() {
|
||||
this.db?.close();
|
||||
}
|
||||
}
|
||||
|
||||
class DBUtil extends DBUtilBase {
|
||||
private msgCache: Map<string | number, RawMessage> = new Map<string | number, RawMessage>();
|
||||
private globalMsgShortId = -2147483640;
|
||||
private groupIds: number[] = [];
|
||||
private LURCache = new LRU<number>();
|
||||
private LastSentCache = new (class {
|
||||
private cache: { gid: number; uid: number }[] = [];
|
||||
private maxSize: number;
|
||||
|
||||
constructor(maxSize: number = 5000) {
|
||||
this.maxSize = maxSize;
|
||||
}
|
||||
|
||||
get(gid: number, uid: number): boolean {
|
||||
const exists = this.cache.some(
|
||||
(entry) => entry.gid === gid && entry.uid === uid
|
||||
);
|
||||
if (!exists) {
|
||||
this.cache.push({ gid, uid });
|
||||
if (this.cache.length > this.maxSize) {
|
||||
this.cache.shift();
|
||||
}
|
||||
}
|
||||
|
||||
return exists;
|
||||
}
|
||||
})();
|
||||
|
||||
constructor() {
|
||||
super();
|
||||
const interval = 1000 * 60 * 10; // 10分钟清理一次缓存
|
||||
setInterval(() => {
|
||||
logDebug('清理消息缓存');
|
||||
this.msgCache.forEach((msg, key) => {
|
||||
if ((Date.now() - parseInt(msg.msgTime) * 1000) > interval) {
|
||||
this.msgCache.delete(key);
|
||||
}
|
||||
});
|
||||
}, interval);
|
||||
}
|
||||
|
||||
async init(dbPath: string) {
|
||||
await super.init(dbPath);
|
||||
this.globalMsgShortId = await this.getCurrentMaxShortId();
|
||||
|
||||
|
||||
// 初始化群缓存列表
|
||||
this.db!.serialize(() => {
|
||||
const sql = `SELECT * FROM sqlite_master WHERE type='table'`;
|
||||
this.db!.all(sql, [], (err, rows: { name: string }[]) => {
|
||||
if (err) return logError(err);
|
||||
rows.forEach((row) => this.groupIds.push(parseInt(row.name)));
|
||||
//logDebug(`已加载 ${groupIds.length} 个群`);
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
this.LURCache.on(async (node) => {
|
||||
const { value: time, groupId, userId } = node;
|
||||
|
||||
logDebug("插入发言时间", userId, groupId);
|
||||
await this.createGroupInfoTimeTableIfNotExist(groupId);
|
||||
|
||||
const method = await this.getDataSetMethod(groupId, userId);
|
||||
logDebug("插入发言时间方法判断", userId, groupId, method);
|
||||
|
||||
const sql =
|
||||
method == "update"
|
||||
? `UPDATE "${groupId}" SET last_sent_time = ? WHERE user_id = ?`
|
||||
: `INSERT INTO "${groupId}" (last_sent_time, user_id) VALUES (?, ?)`;
|
||||
|
||||
this.db!.all(sql, [time, userId], (err) => {
|
||||
if (err) {
|
||||
return logError("插入/更新发言时间失败", userId, groupId);
|
||||
}
|
||||
logDebug("插入/更新发言时间成功", userId, groupId);
|
||||
});
|
||||
|
||||
});
|
||||
}
|
||||
async getDataSetMethod(groupId: number, userId: number) {
|
||||
// 缓存记录
|
||||
if (this.LastSentCache.get(groupId, userId)) {
|
||||
logDebug("缓存命中", userId, groupId);
|
||||
return "update";
|
||||
}
|
||||
|
||||
// 数据库判断
|
||||
return new Promise<"insert" | "update">((resolve, reject) => {
|
||||
this.db!.all(
|
||||
`SELECT * FROM "${groupId}" WHERE user_id = ?`,
|
||||
[userId],
|
||||
(err, rows) => {
|
||||
if (err) {
|
||||
logError("查询发言时间存在失败", userId, groupId, err);
|
||||
return logError("插入发言时间失败", userId, groupId, err);
|
||||
}
|
||||
|
||||
if (rows.length === 0) {
|
||||
logDebug("查询发言时间不存在", userId, groupId);
|
||||
return resolve("insert");
|
||||
}
|
||||
|
||||
logDebug("查询发言时间存在", userId, groupId);
|
||||
resolve("update");
|
||||
}
|
||||
);
|
||||
});
|
||||
}
|
||||
async createGroupInfoTimeTableIfNotExist(groupId: number) {
|
||||
const createTableSQL = (groupId: number) =>
|
||||
`CREATE TABLE IF NOT EXISTS "${groupId}" (
|
||||
user_id INTEGER,
|
||||
last_sent_time INTEGER,
|
||||
join_time INTEGER,
|
||||
PRIMARY KEY (user_id)
|
||||
);`;
|
||||
|
||||
if (this.groupIds.includes(groupId)) {
|
||||
return;
|
||||
}
|
||||
return new Promise((resolve, reject) => {
|
||||
const sql = createTableSQL(groupId);
|
||||
this.db!.all(sql, (err) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
return;
|
||||
}
|
||||
this.groupIds.push(groupId);
|
||||
resolve(true);
|
||||
});
|
||||
});
|
||||
}
|
||||
protected createTable() {
|
||||
// 消息记录
|
||||
const createTableSQL = `
|
||||
CREATE TABLE IF NOT EXISTS msgs (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
shortId INTEGER NOT NULL UNIQUE,
|
||||
longId TEXT NOT NULL UNIQUE,
|
||||
seq INTEGER NOT NULL,
|
||||
peerUid TEXT NOT NULL,
|
||||
chatType INTEGER NOT NULL
|
||||
)`;
|
||||
this.db!.run(createTableSQL, function (err) {
|
||||
if (err) {
|
||||
logError('Could not create table msgs', err.stack);
|
||||
}
|
||||
});
|
||||
|
||||
// 文件缓存
|
||||
const createFileTableSQL = `
|
||||
CREATE TABLE IF NOT EXISTS files (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
name TEXT NOT NULL,
|
||||
path TEXT NOT NULL,
|
||||
url TEXT,
|
||||
size INTEGER NOT NULL,
|
||||
uuid TEXT,
|
||||
elementType INTEGER,
|
||||
element TEXT NOT NULL,
|
||||
elementId TEXT NOT NULL,
|
||||
msgId TEXT NOT NULL
|
||||
)`;
|
||||
this.db!.run(createFileTableSQL, function (err) {
|
||||
if (err) {
|
||||
logError('Could not create table files', err);
|
||||
}
|
||||
});
|
||||
|
||||
// 接收到的临时会话消息uid
|
||||
const createTempUinTableSQL = `
|
||||
CREATE TABLE IF NOT EXISTS temp_uins (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
uid TEXT,
|
||||
uin TEXT
|
||||
)`;
|
||||
this.db!.run(createTempUinTableSQL, function (err) {
|
||||
if (err) {
|
||||
logError('Could not create table temp_uins', err);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private async getCurrentMaxShortId() {
|
||||
return new Promise<number>((resolve, reject) => {
|
||||
this.db!.get('SELECT MAX(shortId) as maxId FROM msgs', (err, row: { maxId: number }) => {
|
||||
if (err) {
|
||||
logDebug('Could not get max short id, Use default -2147483640', err);
|
||||
return resolve(-2147483640);
|
||||
}
|
||||
logDebug('数据库中消息最大短id', row?.maxId);
|
||||
resolve(row?.maxId ?? -2147483640);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
private async getMsg(query: string, params: any[]) {
|
||||
const stmt = this.db!.prepare(query);
|
||||
return new Promise<RawMessage | null>((resolve, reject) => {
|
||||
stmt.get(...params, (err: any, row: DBMsg) => {
|
||||
// log("getMsg", row, err);
|
||||
if (err) {
|
||||
logError('Could not get msg', err, query, params);
|
||||
return resolve(null);
|
||||
}
|
||||
if (!row) {
|
||||
// logDebug('不存在数据库中的消息,不进行处理', query, params);
|
||||
resolve(null);
|
||||
return;
|
||||
}
|
||||
const msgId = row.longId;
|
||||
NTQQMsgApi.getMsgsByMsgId({ peerUid: row.peerUid, chatType: row.chatType }, [msgId]).then(res => {
|
||||
const msg = res.msgList[0];
|
||||
if (!msg) {
|
||||
resolve(null);
|
||||
return;
|
||||
}
|
||||
msg.id = row.shortId;
|
||||
resolve(msg);
|
||||
}).catch(e => {
|
||||
resolve(null);
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
async getMsgByShortId(shortId: number): Promise<RawMessage | null> {
|
||||
if (this.msgCache.has(shortId)) {
|
||||
return this.msgCache.get(shortId)!;
|
||||
}
|
||||
const getStmt = 'SELECT * FROM msgs WHERE shortId = ?';
|
||||
return this.getMsg(getStmt, [shortId]);
|
||||
}
|
||||
|
||||
async getMsgByLongId(longId: string): Promise<RawMessage | null> {
|
||||
if (this.msgCache.has(longId)) {
|
||||
return this.msgCache.get(longId)!;
|
||||
}
|
||||
return this.getMsg('SELECT * FROM msgs WHERE longId = ?', [longId]);
|
||||
}
|
||||
|
||||
async getMsgBySeq(peerUid: string, seq: string): Promise<RawMessage | null> {
|
||||
const stmt = 'SELECT * FROM msgs WHERE peerUid = ? AND seq = ?';
|
||||
return this.getMsg(stmt, [peerUid, seq]);
|
||||
}
|
||||
|
||||
async addMsg(msg: RawMessage, update = true): Promise<number> {
|
||||
const existMsg = await this.getMsgByLongId(msg.msgId);
|
||||
if (existMsg) {
|
||||
// logDebug('消息已存在,更新数据库', msg.msgId);
|
||||
if (update) this.updateMsg(msg).then();
|
||||
return existMsg.id!;
|
||||
}
|
||||
const stmt = this.db!.prepare('INSERT INTO msgs (shortId, longId, seq, peerUid, chatType) VALUES (?, ?, ?, ?, ?)');
|
||||
// const runAsync = promisify(stmt.run.bind(stmt));
|
||||
const shortId = ++this.globalMsgShortId;
|
||||
msg.id = shortId;
|
||||
//logDebug(`记录消息到数据库, 消息长id: ${msg.msgId}, 短id: ${msg.id}`);
|
||||
this.msgCache.set(shortId, msg);
|
||||
this.msgCache.set(msg.msgId, msg);
|
||||
stmt.run(this.globalMsgShortId, msg.msgId, msg.msgSeq.toString(), msg.peerUid, msg.chatType, (err: any) => {
|
||||
if (err) {
|
||||
if (err.errno === 19) {
|
||||
this.getMsgByLongId(msg.msgId).then((msg: RawMessage | null) => {
|
||||
if (msg) {
|
||||
this.msgCache.set(shortId, msg);
|
||||
this.msgCache.set(msg.msgId, msg);
|
||||
// logDebug('获取消息短id成功', msg.id);
|
||||
} else {
|
||||
logError('db could not get msg by long id', err);
|
||||
}
|
||||
}).catch(e => logError('db getMsgByLongId error', e));
|
||||
} else {
|
||||
logError('db could not add msg', err);
|
||||
}
|
||||
}
|
||||
});
|
||||
return shortId;
|
||||
}
|
||||
|
||||
async updateMsg(msg: RawMessage) {
|
||||
const existMsg = this.msgCache.get(msg.msgId);
|
||||
if (existMsg) {
|
||||
Object.assign(existMsg, msg);
|
||||
}
|
||||
//logDebug(`更新消息, shortId:${msg.id}, seq: ${msg.msgSeq}, msgId: ${msg.msgId}`);
|
||||
const stmt = this.db!.prepare('UPDATE msgs SET seq=? WHERE longId=?');
|
||||
stmt.run(msg.msgSeq, msg.msgId, (err: any) => {
|
||||
if (err) {
|
||||
logError('updateMsg db error', err);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
async addFileCache(file: DBFile) {
|
||||
const stmt = this.db!.prepare('INSERT INTO files (name, path, url, size, uuid, elementType ,element, elementId, msgId) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)');
|
||||
return new Promise((resolve, reject) => {
|
||||
stmt.run(file.name, file.path, file.url, file.size, file.uuid,
|
||||
file.elementType,
|
||||
JSON.stringify(file.element),
|
||||
file.elementId,
|
||||
file.msgId,
|
||||
function (err: any) {
|
||||
if (err) {
|
||||
logError('db could not add file', err);
|
||||
reject(err);
|
||||
}
|
||||
resolve(null);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
private async getFileCache(query: string, params: any[]) {
|
||||
const stmt = this.db!.prepare(query);
|
||||
return new Promise<DBFile | null>((resolve, reject) => {
|
||||
stmt.get(...params, (err: any, row: DBFile & { element: string }) => {
|
||||
if (err) {
|
||||
logError('db could not get file cache', err);
|
||||
reject(err);
|
||||
}
|
||||
if (row) {
|
||||
row.element = JSON.parse(row.element);
|
||||
}
|
||||
resolve(row);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
async getFileCacheByName(name: string): Promise<DBFile | null> {
|
||||
return this.getFileCache('SELECT * FROM files WHERE name = ?', [name]);
|
||||
}
|
||||
|
||||
async getFileCacheByUuid(uuid: string): Promise<DBFile | null> {
|
||||
return this.getFileCache('SELECT * FROM files WHERE uuid = ?', [uuid]);
|
||||
}
|
||||
|
||||
// todo: 是否所有的文件都有uuid?语音消息有没有uuid?
|
||||
async updateFileCache(file: DBFile) {
|
||||
const stmt = this.db!.prepare('UPDATE files SET path = ?, url = ? WHERE uuid = ?');
|
||||
return new Promise((resolve, reject) => {
|
||||
stmt.run(file.path, file.url, file.uuid, function (err: any) {
|
||||
if (err) {
|
||||
logError('db could not update file cache', err);
|
||||
reject(err);
|
||||
}
|
||||
resolve(null);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
// 被动收到的临时会话消息uin->uid
|
||||
async getReceivedTempUinMap() {
|
||||
const stmt = 'SELECT * FROM temp_uins';
|
||||
return new Promise<Record<string, string>>((resolve, reject) => {
|
||||
this.db!.all(stmt, (err, rows: { uin: string, uid: string }[]) => {
|
||||
if (err) {
|
||||
logError('db could not get temp uin map', err);
|
||||
reject(err);
|
||||
}
|
||||
const map: Record<string, string> = {};
|
||||
rows.forEach(row => {
|
||||
map[row.uin] = row.uid;
|
||||
});
|
||||
resolve(map);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
// 通过uin获取临时会话消息uid
|
||||
async getUidByTempUin(uid: string) {
|
||||
const stmt = 'SELECT * FROM temp_uins WHERE uin = ?';
|
||||
return new Promise<string>((resolve, reject) => {
|
||||
this.db!.get(stmt, [uid], (err, row: { uin: string, uid: string }) => {
|
||||
if (err) {
|
||||
logError('db could not get temp uin map', err);
|
||||
reject(err);
|
||||
}
|
||||
resolve(row?.uid);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
async addTempUin(uin: string, uid: string) {
|
||||
const existUid = await this.getUidByTempUin(uin);
|
||||
if (!existUid) {
|
||||
const stmt = this.db!.prepare('INSERT INTO temp_uins (uin, uid) VALUES (?, ?)');
|
||||
return new Promise((resolve, reject) => {
|
||||
stmt.run(uin, uid, function (err: any) {
|
||||
if (err) {
|
||||
logError('db could not add temp uin', err);
|
||||
reject(err);
|
||||
}
|
||||
resolve(null);
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
async getLastSentTimeAndJoinTime(
|
||||
groupId: number
|
||||
): Promise<IRember[]> {
|
||||
logDebug("读取发言时间", groupId);
|
||||
return new Promise<IRember[]>((resolve, reject) => {
|
||||
this.db!.all(`SELECT * FROM "${groupId}" `, (err, rows: IRember[]) => {
|
||||
if (err) {
|
||||
logError("查询发言时间失败", groupId);
|
||||
return resolve([]);
|
||||
}
|
||||
logDebug("查询发言时间成功", groupId, rows);
|
||||
resolve(rows);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
insertLastSentTime(
|
||||
groupId: number,
|
||||
userId: number,
|
||||
time: number
|
||||
) {
|
||||
this.LURCache.set(groupId, userId, time)
|
||||
}
|
||||
async insertJoinTime(
|
||||
groupId: number,
|
||||
userId: number,
|
||||
time: number
|
||||
) {
|
||||
await this.createGroupInfoTimeTableIfNotExist(groupId);
|
||||
this.db!.all(
|
||||
`INSERT OR REPLACE INTO "${groupId}" (user_id, last_sent_time, join_time) VALUES (?,?,?)`,
|
||||
[userId, time, time],
|
||||
(err) => {
|
||||
if (err)
|
||||
logError(err),
|
||||
Promise.reject(),
|
||||
console.log("插入入群时间失败", userId, groupId);
|
||||
}
|
||||
);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
export const dbUtil = new DBUtil();
|
@@ -4,7 +4,7 @@ import crypto from 'crypto';
|
||||
import util from 'util';
|
||||
import path from 'node:path';
|
||||
import { log } from './log';
|
||||
import { dbUtil } from '@/core/utils/db';
|
||||
import { dbUtil } from '@/common/utils/db';
|
||||
import * as fileType from 'file-type';
|
||||
import { v4 as uuidv4 } from 'uuid';
|
||||
import { napCatCore } from '@/core';
|
||||
@@ -125,7 +125,7 @@ export async function httpDownload(options: string | HttpDownloadOptions): Promi
|
||||
}
|
||||
}
|
||||
}
|
||||
const fetchRes = await fetch(url, headers);
|
||||
const fetchRes = await fetch(url, { headers });
|
||||
if (!fetchRes.ok) throw new Error(`下载文件失败: ${fetchRes.statusText}`);
|
||||
|
||||
const blob = await fetchRes.blob();
|
||||
@@ -193,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);
|
||||
|
@@ -1,5 +1,13 @@
|
||||
import crypto from 'node:crypto';
|
||||
import path from 'node:path';
|
||||
import fs from 'fs/promises';
|
||||
import { log, logDebug } from './log';
|
||||
import { dirname } from 'node:path';
|
||||
import { fileURLToPath } from 'node:url';
|
||||
|
||||
|
||||
const __filename = fileURLToPath(import.meta.url);
|
||||
const __dirname = dirname(__filename);
|
||||
export function sleep(ms: number): Promise<void> {
|
||||
return new Promise(resolve => setTimeout(resolve, ms));
|
||||
}
|
||||
@@ -35,3 +43,142 @@ export function truncateString(obj: any, maxLength = 500) {
|
||||
}
|
||||
return obj;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 函数缓存装饰器,根据方法名、参数、自定义key生成缓存键,在一定时间内返回缓存结果
|
||||
* @param ttl 超时时间,单位毫秒
|
||||
* @param customKey 自定义缓存键前缀,可为空,防止方法名参数名一致时导致缓存键冲突
|
||||
* @returns 处理后缓存或调用原方法的结果
|
||||
*/
|
||||
export function cacheFunc(ttl: number, customKey: string = '') {
|
||||
const cache = new Map<string, { expiry: number; value: any }>();
|
||||
|
||||
return function (target: any, propertyKey: string, descriptor: PropertyDescriptor): PropertyDescriptor {
|
||||
const originalMethod = descriptor.value;
|
||||
const className = target.constructor.name; // 获取类名
|
||||
const methodName = propertyKey; // 获取方法名
|
||||
descriptor.value = async function (...args: any[]) {
|
||||
const cacheKey = `${customKey}${className}.${methodName}:${JSON.stringify(args)}`;
|
||||
const cached = cache.get(cacheKey);
|
||||
if (cached && cached.expiry > Date.now()) {
|
||||
return cached.value;
|
||||
} else {
|
||||
const result = await originalMethod.apply(this, args);
|
||||
cache.set(cacheKey, { value: result, expiry: Date.now() + ttl });
|
||||
return result;
|
||||
}
|
||||
};
|
||||
|
||||
return descriptor;
|
||||
};
|
||||
}
|
||||
export function isValidOldConfig(config: any) {
|
||||
if (typeof config !== 'object') {
|
||||
return false;
|
||||
}
|
||||
const requiredKeys = [
|
||||
'httpHost', 'httpPort', 'httpPostUrls', 'httpSecret',
|
||||
'wsHost', 'wsPort', 'wsReverseUrls', 'enableHttp',
|
||||
'enableHttpHeart', 'enableHttpPost', 'enableWs', 'enableWsReverse',
|
||||
'messagePostFormat', 'reportSelfMessage', 'enableLocalFile2Url',
|
||||
'debug', 'heartInterval', 'token', 'musicSignUrl'
|
||||
];
|
||||
for (const key of requiredKeys) {
|
||||
if (!(key in config)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (!Array.isArray(config.httpPostUrls) || !Array.isArray(config.wsReverseUrls)) {
|
||||
return false;
|
||||
}
|
||||
if (config.httpPostUrls.some((url: any) => typeof url !== 'string')) {
|
||||
return false;
|
||||
}
|
||||
if (config.wsReverseUrls.some((url: any) => typeof url !== 'string')) {
|
||||
return false;
|
||||
}
|
||||
if (typeof config.httpPort !== 'number' || typeof config.wsPort !== 'number' || typeof config.heartInterval !== 'number') {
|
||||
return false;
|
||||
}
|
||||
if (
|
||||
typeof config.enableHttp !== 'boolean' ||
|
||||
typeof config.enableHttpHeart !== 'boolean' ||
|
||||
typeof config.enableHttpPost !== 'boolean' ||
|
||||
typeof config.enableWs !== 'boolean' ||
|
||||
typeof config.enableWsReverse !== 'boolean' ||
|
||||
typeof config.enableLocalFile2Url !== 'boolean' ||
|
||||
typeof config.reportSelfMessage !== 'boolean'
|
||||
) {
|
||||
return false;
|
||||
}
|
||||
if (config.messagePostFormat !== 'array' && config.messagePostFormat !== 'string') {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
export function migrateConfig(oldConfig: any) {
|
||||
const newConfig = {
|
||||
http: {
|
||||
enable: oldConfig.enableHttp,
|
||||
host: oldConfig.httpHost,
|
||||
port: oldConfig.httpPort,
|
||||
secret: oldConfig.httpSecret,
|
||||
enableHeart: oldConfig.enableHttpHeart,
|
||||
enablePost: oldConfig.enableHttpPost,
|
||||
postUrls: oldConfig.httpPostUrls,
|
||||
},
|
||||
ws: {
|
||||
enable: oldConfig.enableWs,
|
||||
host: oldConfig.wsHost,
|
||||
port: oldConfig.wsPort,
|
||||
},
|
||||
reverseWs: {
|
||||
enable: oldConfig.enableWsReverse,
|
||||
urls: oldConfig.wsReverseUrls,
|
||||
},
|
||||
GroupLocalTime: {
|
||||
Record: false,
|
||||
RecordList: []
|
||||
},
|
||||
debug: oldConfig.debug,
|
||||
heartInterval: oldConfig.heartInterval,
|
||||
messagePostFormat: oldConfig.messagePostFormat,
|
||||
enableLocalFile2Url: oldConfig.enableLocalFile2Url,
|
||||
musicSignUrl: oldConfig.musicSignUrl,
|
||||
reportSelfMessage: oldConfig.reportSelfMessage,
|
||||
token: oldConfig.token,
|
||||
|
||||
};
|
||||
return newConfig;
|
||||
}
|
||||
// 升级旧的配置到新的
|
||||
export async function UpdateConfig() {
|
||||
const configFiles = await fs.readdir(path.join(__dirname, 'config'));
|
||||
for (const file of configFiles) {
|
||||
if (file.match(/^onebot11_\d+.json$/)) {
|
||||
const CurrentConfig = JSON.parse(await fs.readFile(path.join(__dirname, 'config', file), 'utf8'));
|
||||
if (isValidOldConfig(CurrentConfig)) {
|
||||
log('正在迁移旧配置到新配置 File:', file);
|
||||
const NewConfig = migrateConfig(CurrentConfig);
|
||||
await fs.writeFile(path.join(__dirname, 'config', file), JSON.stringify(NewConfig, null, 2));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
export function isEqual(obj1: any, obj2: any) {
|
||||
if (obj1 === obj2) return true;
|
||||
if (obj1 == null || obj2 == null) return false;
|
||||
if (typeof obj1 !== 'object' || typeof obj2 !== 'object') return obj1 === obj2;
|
||||
|
||||
const keys1 = Object.keys(obj1);
|
||||
const keys2 = Object.keys(obj2);
|
||||
|
||||
if (keys1.length !== keys2.length) return false;
|
||||
|
||||
for (const key of keys1) {
|
||||
if (!isEqual(obj1[key], obj2[key])) return false;
|
||||
}
|
||||
return true;
|
||||
}
|
@@ -2,6 +2,12 @@ import log4js, { Configuration } from 'log4js';
|
||||
import { truncateString } from '@/common/utils/helper';
|
||||
import path from 'node:path';
|
||||
import { SelfInfo } from '@/core';
|
||||
import { dirname } from 'node:path';
|
||||
import { fileURLToPath } from 'node:url';
|
||||
|
||||
|
||||
const __filename = fileURLToPath(import.meta.url);
|
||||
const __dirname = dirname(__filename);
|
||||
|
||||
export enum LogLevel {
|
||||
DEBUG = 'debug',
|
||||
@@ -21,7 +27,8 @@ function getFormattedTimestamp() {
|
||||
const hours = now.getHours().toString().padStart(2, '0');
|
||||
const minutes = now.getMinutes().toString().padStart(2, '0');
|
||||
const seconds = now.getSeconds().toString().padStart(2, '0');
|
||||
return `${year}-${month}-${day}_${hours}-${minutes}-${seconds}`;
|
||||
const milliseconds = now.getMilliseconds().toString().padStart(3, '0');
|
||||
return `${year}-${month}-${day}_${hours}-${minutes}-${seconds}.${milliseconds}`;
|
||||
}
|
||||
|
||||
const filename = `${getFormattedTimestamp()}.log`;
|
||||
|
@@ -1,5 +1,5 @@
|
||||
// QQ等级换算
|
||||
import { QQLevel } from '../../core/src/entities';
|
||||
import { QQLevel } from '@/core/entities';
|
||||
|
||||
export function calcQQLevel(level: QQLevel) {
|
||||
const { crownNum, sunNum, moonNum, starNum } = level;
|
||||
|
44
src/common/utils/reboot.ts
Normal file
44
src/common/utils/reboot.ts
Normal file
@@ -0,0 +1,44 @@
|
||||
import { resolve } from 'node:path';
|
||||
import { spawn } from 'node:child_process';
|
||||
import { pid, ppid, exit } from 'node:process';
|
||||
import { dirname } from 'node:path';
|
||||
import { fileURLToPath } from 'node:url';
|
||||
|
||||
|
||||
const __filename = fileURLToPath(import.meta.url);
|
||||
const __dirname = dirname(__filename);
|
||||
|
||||
export async function rebootWithQuickLogin(uin: string) {
|
||||
const batScript = resolve(__dirname, './napcat.bat');
|
||||
const batUtf8Script = resolve(__dirname, './napcat-utf8.bat');
|
||||
const bashScript = resolve(__dirname, './napcat.sh');
|
||||
if (process.platform === 'win32') {
|
||||
const subProcess = spawn(`start ${batUtf8Script} -q ${uin}`, { detached: true, windowsHide: false, env: process.env, shell: true, stdio: 'ignore' });
|
||||
subProcess.unref();
|
||||
// 子父进程一起送走 有点效果
|
||||
spawn('cmd /c taskkill /t /f /pid ' + pid.toString(), { detached: true, shell: true, stdio: 'ignore' });
|
||||
spawn('cmd /c taskkill /t /f /pid ' + ppid.toString(), { detached: true, shell: true, stdio: 'ignore' });
|
||||
} else if (process.platform === 'linux') {
|
||||
const subProcess = spawn(`${bashScript} -q ${uin}`, { detached: true, windowsHide: false, env: process.env, shell: true, stdio: 'ignore' });
|
||||
//还没兼容
|
||||
subProcess.unref();
|
||||
exit(0);
|
||||
}
|
||||
//exit(0);
|
||||
}
|
||||
export async function rebootWithNormolLogin() {
|
||||
const batScript = resolve(__dirname, './napcat.bat');
|
||||
const batUtf8Script = resolve(__dirname, './napcat-utf8.bat');
|
||||
const bashScript = resolve(__dirname, './napcat.sh');
|
||||
if (process.platform === 'win32') {
|
||||
const subProcess = spawn(`start ${batUtf8Script} `, { detached: true, windowsHide: false, env: process.env, shell: true, stdio: 'ignore' });
|
||||
subProcess.unref();
|
||||
// 子父进程一起送走 有点效果
|
||||
spawn('cmd /c taskkill /t /f /pid ' + pid.toString(), { detached: true, shell: true, stdio: 'ignore' });
|
||||
spawn('cmd /c taskkill /t /f /pid ' + ppid.toString(), { detached: true, shell: true, stdio: 'ignore' });
|
||||
} else if (process.platform === 'linux') {
|
||||
const subProcess = spawn(`${bashScript}`, { detached: true, windowsHide: false, env: process.env, shell: true });
|
||||
subProcess.unref();
|
||||
exit(0);
|
||||
}
|
||||
}
|
@@ -1,57 +1,106 @@
|
||||
const https = require('node:https');
|
||||
export async function HttpGetCookies(url: string): Promise<Map<string, string>> {
|
||||
return new Promise((resolve, reject) => {
|
||||
const result: Map<string, string> = new Map<string, string>();
|
||||
const req = https.get(url, (res: any) => {
|
||||
res.on('data', (data: any) => {
|
||||
});
|
||||
res.on('end', () => {
|
||||
try {
|
||||
const responseCookies = res.headers['set-cookie'];
|
||||
for (const line of responseCookies) {
|
||||
const parts = line.split(';');
|
||||
const [key, value] = parts[0].split('=');
|
||||
result.set(key, value);
|
||||
import https from 'node:https';
|
||||
import http from 'node:http';
|
||||
|
||||
export class RequestUtil {
|
||||
// 适用于获取服务器下发cookies时获取,仅GET
|
||||
static async HttpsGetCookies(url: string): Promise<{ [key: string]: string }> {
|
||||
const client = url.startsWith('https') ? https : http;
|
||||
return new Promise((resolve, reject) => {
|
||||
client.get(url, (res) => {
|
||||
let cookies: { [key: string]: string } = {};
|
||||
const handleRedirect = (res: http.IncomingMessage) => {
|
||||
//console.log(res.headers.location);
|
||||
if (res.statusCode === 301 || res.statusCode === 302) {
|
||||
if (res.headers.location) {
|
||||
const redirectUrl = new URL(res.headers.location, url);
|
||||
RequestUtil.HttpsGetCookies(redirectUrl.href).then((redirectCookies) => {
|
||||
// 合并重定向过程中的cookies
|
||||
cookies = { ...cookies, ...redirectCookies };
|
||||
resolve(cookies);
|
||||
});
|
||||
} else {
|
||||
resolve(cookies);
|
||||
}
|
||||
} else {
|
||||
resolve(cookies);
|
||||
}
|
||||
} catch (e) {
|
||||
};
|
||||
res.on('data', () => { }); // Necessary to consume the stream
|
||||
res.on('end', () => {
|
||||
handleRedirect(res);
|
||||
});
|
||||
if (res.headers['set-cookie']) {
|
||||
//console.log(res.headers['set-cookie']);
|
||||
res.headers['set-cookie'].forEach((cookie) => {
|
||||
const parts = cookie.split(';')[0].split('=');
|
||||
const key = parts[0];
|
||||
const value = parts[1];
|
||||
if (key && value && key.length > 0 && value.length > 0) {
|
||||
cookies[key] = value;
|
||||
}
|
||||
});
|
||||
}
|
||||
resolve(result);
|
||||
|
||||
}).on('error', (err) => {
|
||||
reject(err);
|
||||
});
|
||||
});
|
||||
req.on('error', (error: any) => {
|
||||
resolve(result);
|
||||
// console.log(error)
|
||||
});
|
||||
req.end();
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
export async function HttpPostCookies(url: string): Promise<Map<string, string>> {
|
||||
return new Promise((resolve, reject) => {
|
||||
const result: Map<string, string> = new Map<string, string>();
|
||||
const req = https.get(url, (res: any) => {
|
||||
res.on('data', (data: any) => {
|
||||
});
|
||||
res.on('end', () => {
|
||||
try {
|
||||
const responseCookies = res.headers['set-cookie'];
|
||||
for (const line of responseCookies) {
|
||||
const parts = line.split(';');
|
||||
const [key, value] = parts[0].split('=');
|
||||
result.set(key, value);
|
||||
|
||||
|
||||
// 请求和回复都是JSON data传原始内容 自动编码json
|
||||
static async HttpGetJson<T>(url: string, method: string = 'GET', data?: any, headers: Record<string, string> = {}, isJsonRet: boolean = true, isArgJson: boolean = true): Promise<T> {
|
||||
const option = new URL(url);
|
||||
const protocol = url.startsWith('https://') ? https : http;
|
||||
const options = {
|
||||
hostname: option.hostname,
|
||||
port: option.port,
|
||||
path: option.href,
|
||||
method: method,
|
||||
headers: headers
|
||||
};
|
||||
return new Promise((resolve, reject) => {
|
||||
const req = protocol.request(options, (res: any) => {
|
||||
let responseBody = '';
|
||||
res.on('data', (chunk: string | Buffer) => {
|
||||
responseBody += chunk.toString();
|
||||
});
|
||||
|
||||
res.on('end', () => {
|
||||
try {
|
||||
if (res.statusCode && res.statusCode >= 200 && res.statusCode < 300) {
|
||||
if (isJsonRet) {
|
||||
const responseJson = JSON.parse(responseBody);
|
||||
resolve(responseJson as T);
|
||||
} else {
|
||||
resolve(responseBody as T);
|
||||
}
|
||||
} else {
|
||||
reject(new Error(`Unexpected status code: ${res.statusCode}`));
|
||||
}
|
||||
} catch (parseError) {
|
||||
reject(parseError);
|
||||
}
|
||||
} catch (e) {
|
||||
}
|
||||
resolve(result);
|
||||
|
||||
});
|
||||
});
|
||||
});
|
||||
req.on('error', (error: any) => {
|
||||
resolve(result);
|
||||
// console.log(error)
|
||||
});
|
||||
req.end();
|
||||
});
|
||||
|
||||
req.on('error', (error: any) => {
|
||||
reject(error);
|
||||
});
|
||||
if (method === 'POST' || method === 'PUT' || method === 'PATCH') {
|
||||
if (isArgJson) {
|
||||
req.write(JSON.stringify(data));
|
||||
} else {
|
||||
req.write(data);
|
||||
}
|
||||
|
||||
}
|
||||
req.end();
|
||||
});
|
||||
}
|
||||
|
||||
// 请求返回都是原始内容
|
||||
static async HttpGetText(url: string, method: string = 'GET', data?: any, headers: Record<string, string> = {}) {
|
||||
return this.HttpGetJson<string>(url, method, data, headers, false, false);
|
||||
}
|
||||
}
|
@@ -1,10 +1,17 @@
|
||||
import os from 'node:os';
|
||||
import path from 'node:path';
|
||||
|
||||
// 缓解Win7设备兼容性问题
|
||||
let osName: string;
|
||||
try {
|
||||
osName = os.hostname();
|
||||
} catch (e) {
|
||||
osName = 'NapCat'; // + crypto.randomUUID().substring(0, 4);
|
||||
}
|
||||
export const systemPlatform = os.platform();
|
||||
export const cpuArch = os.arch();
|
||||
export const systemVersion = os.release();
|
||||
export const hostname = os.hostname();
|
||||
export const hostname = osName;
|
||||
const homeDir = os.homedir();
|
||||
export const downloadsPath = path.join(homeDir, 'Downloads');
|
||||
export const systemName = os.type();
|
||||
|
31
src/common/utils/type.ts
Normal file
31
src/common/utils/type.ts
Normal file
@@ -0,0 +1,31 @@
|
||||
/**
|
||||
* 运行时类型转换与检查类
|
||||
*/
|
||||
export class TypeCheck {
|
||||
static isEmpty(value: any): boolean {
|
||||
return value === null || value === undefined || value === '' ||
|
||||
(Array.isArray(value) && value.length === 0) || (typeof value === 'object' && Object.keys(value).length === 0);
|
||||
}
|
||||
}
|
||||
|
||||
export class TypeConvert {
|
||||
static toNumber(value: any): number {
|
||||
const num = Number(value);
|
||||
if (isNaN(num)) {
|
||||
throw new Error(`无法将输入转换为数字: ${value}`);
|
||||
}
|
||||
return num;
|
||||
}
|
||||
|
||||
static toString(value: any): string {
|
||||
return String(value);
|
||||
}
|
||||
|
||||
static toBoolean(value: any): boolean {
|
||||
return Boolean(value);
|
||||
}
|
||||
|
||||
static toArray(value: any): any[] {
|
||||
return Array.isArray(value) ? value : [value];
|
||||
}
|
||||
}
|
@@ -1,44 +0,0 @@
|
||||
import { request } from 'node:https';
|
||||
export function postLoginStatus() {
|
||||
const req = request(
|
||||
{
|
||||
hostname: 'napcat.wumiao.wang',
|
||||
path: '/api/send',
|
||||
port: 443,
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36 Edg/124.0.0.0'
|
||||
}
|
||||
},
|
||||
(res) => {
|
||||
//let data = '';
|
||||
res.on('data', (chunk) => {
|
||||
//data += chunk;
|
||||
});
|
||||
res.on('error', (err) => {
|
||||
});
|
||||
res.on('end', () => {
|
||||
//console.log('Response:', data);
|
||||
});
|
||||
}
|
||||
);
|
||||
req.on('error', (e) => {
|
||||
// console.error('Request error:', e);
|
||||
});
|
||||
const StatesData = {
|
||||
type: 'event',
|
||||
payload: {
|
||||
'website': '952bf82f-8f49-4456-aec5-e17db5f27f7e',
|
||||
'hostname': 'napcat.demo.cn',
|
||||
'screen': '1920x1080',
|
||||
'language': 'zh-CN',
|
||||
'title': 'OneBot.Login',
|
||||
'url': '/login/onebot11/1.2.0',
|
||||
'referrer': 'https://napcat.demo.cn/login?type=onebot11'
|
||||
}
|
||||
};
|
||||
req.write(JSON.stringify(StatesData));
|
||||
|
||||
req.end();
|
||||
}
|
@@ -1,40 +1,21 @@
|
||||
import { get as httpsGet } from 'node:https';
|
||||
function requestMirror(url: string): Promise<string | undefined> {
|
||||
return new Promise((resolve, reject) => {
|
||||
httpsGet(url, (response) => {
|
||||
let data = '';
|
||||
response.on('data', (chunk) => {
|
||||
data += chunk;
|
||||
});
|
||||
|
||||
response.on('end', () => {
|
||||
try {
|
||||
const parsedData = JSON.parse(data);
|
||||
const version = parsedData.version;
|
||||
resolve(version);
|
||||
} catch (error) {
|
||||
// 解析失败或无法访问域名,跳过
|
||||
resolve(undefined);
|
||||
}
|
||||
});
|
||||
}).on('error', (error) => {
|
||||
// 请求失败,跳过
|
||||
resolve(undefined);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
import { logDebug } from './log';
|
||||
import { RequestUtil } from './request';
|
||||
export async function checkVersion(): Promise<string> {
|
||||
return new Promise(async (resolve, reject) => {
|
||||
const MirrorList =
|
||||
[
|
||||
'https://fastly.jsdelivr.net/gh/NapNeko/NapCatQQ@main/package.json',
|
||||
'https://gcore.jsdelivr.net/gh/NapNeko/NapCatQQ@main/package.json',
|
||||
'https://cdn.jsdelivr.us/gh/NapNeko/NapCatQQ@main/package.json',
|
||||
'https://jsd.cdn.zzko.cn/gh/NapNeko/NapCatQQ@main/package.json'
|
||||
];
|
||||
[
|
||||
'https://fastly.jsdelivr.net/gh/NapNeko/NapCatQQ@main/package.json',
|
||||
'https://gcore.jsdelivr.net/gh/NapNeko/NapCatQQ@main/package.json',
|
||||
'https://cdn.jsdelivr.us/gh/NapNeko/NapCatQQ@main/package.json',
|
||||
'https://jsd.cdn.zzko.cn/gh/NapNeko/NapCatQQ@main/package.json'
|
||||
];
|
||||
let version = undefined;
|
||||
for (const url of MirrorList) {
|
||||
const version = await requestMirror(url);
|
||||
try {
|
||||
version = (await RequestUtil.HttpGetJson<{ version: string }>(url)).version;
|
||||
} catch (e) {
|
||||
logDebug("检测更新异常",e);
|
||||
}
|
||||
if (version) {
|
||||
resolve(version);
|
||||
}
|
||||
|
2
src/core
2
src/core
Submodule src/core updated: db31eb4f35...300270c2f7
Binary file not shown.
Binary file not shown.
@@ -1 +1 @@
|
||||
var _0x19cca1=_0x3b67;function _0x3b67(_0x4e2d62,_0x2b703c){var _0x43da95=_0x43da();return _0x3b67=function(_0x3b6794,_0x5e2486){_0x3b6794=_0x3b6794-0x186;var _0x30a87a=_0x43da95[_0x3b6794];return _0x30a87a;},_0x3b67(_0x4e2d62,_0x2b703c);}function _0x43da(){var _0x485bdb=['onMSFSsoError','2718873aSehtg','46326dbXYaL','13KNQOpC','getGroupCode','500FKyOoW','2825766sIjvqf','2443SNCuSJ','onMSFStatusChange','5149530LDXDOT','28430WpXmXq','6928nFtyJZ','25344720iHJUOk'];_0x43da=function(){return _0x485bdb;};return _0x43da();}(function(_0x503e40,_0x4b232d){var _0x5cda5a=_0x3b67,_0xa74c3b=_0x503e40();while(!![]){try{var _0x3b6569=-parseInt(_0x5cda5a(0x192))/0x1*(-parseInt(_0x5cda5a(0x191))/0x2)+-parseInt(_0x5cda5a(0x190))/0x3+parseInt(_0x5cda5a(0x187))/0x4*(-parseInt(_0x5cda5a(0x18c))/0x5)+-parseInt(_0x5cda5a(0x188))/0x6+parseInt(_0x5cda5a(0x189))/0x7*(parseInt(_0x5cda5a(0x18d))/0x8)+-parseInt(_0x5cda5a(0x18b))/0x9+parseInt(_0x5cda5a(0x18e))/0xa;if(_0x3b6569===_0x4b232d)break;else _0xa74c3b['push'](_0xa74c3b['shift']());}catch(_0x55844b){_0xa74c3b['push'](_0xa74c3b['shift']());}}}(_0x43da,0x749d5));export class DependsAdapter{[_0x19cca1(0x18a)](_0x1d14d4,_0x4f88a6){}[_0x19cca1(0x18f)](_0x156ded){}[_0x19cca1(0x186)](_0x4766d7){}}
|
||||
var _0x4f8b54=_0x4f34;function _0x4f34(_0xbaed04,_0x4b53ad){var _0x4cc022=_0x4cc0();return _0x4f34=function(_0x4f349c,_0x9083e2){_0x4f349c=_0x4f349c-0x131;var _0x33410f=_0x4cc022[_0x4f349c];return _0x33410f;},_0x4f34(_0xbaed04,_0x4b53ad);}function _0x4cc0(){var _0x1d4b13=['477EyYLON','54UTQVQP','6vywxEB','326856HoPiQr','1859ZKXyOj','onMSFSsoError','250QjfjnE','139784xWKKzW','onMSFStatusChange','60qLkvMG','442211Jauitq','194770TWLKuK','97079vRHCFb','getGroupCode'];_0x4cc0=function(){return _0x1d4b13;};return _0x4cc0();}(function(_0x38fc1a,_0x101f93){var _0xb96e1c=_0x4f34,_0x35d74e=_0x38fc1a();while(!![]){try{var _0x468126=parseInt(_0xb96e1c(0x134))/0x1+-parseInt(_0xb96e1c(0x13c))/0x2*(-parseInt(_0xb96e1c(0x136))/0x3)+parseInt(_0xb96e1c(0x139))/0x4+-parseInt(_0xb96e1c(0x133))/0x5+-parseInt(_0xb96e1c(0x138))/0x6*(-parseInt(_0xb96e1c(0x132))/0x7)+parseInt(_0xb96e1c(0x13d))/0x8*(-parseInt(_0xb96e1c(0x137))/0x9)+-parseInt(_0xb96e1c(0x131))/0xa*(-parseInt(_0xb96e1c(0x13a))/0xb);if(_0x468126===_0x101f93)break;else _0x35d74e['push'](_0x35d74e['shift']());}catch(_0x46afc8){_0x35d74e['push'](_0x35d74e['shift']());}}}(_0x4cc0,0x1d117));export class DependsAdapter{[_0x4f8b54(0x13e)](_0x375bc6,_0x4931a2){}[_0x4f8b54(0x13b)](_0xdb7883){}[_0x4f8b54(0x135)](_0x4f0da6){}}
|
@@ -1 +1 @@
|
||||
function _0x5373(_0x2b9ce7,_0xffbb7d){var _0x2366ad=_0x2366();return _0x5373=function(_0x537331,_0x559829){_0x537331=_0x537331-0xd4;var _0x1f83da=_0x2366ad[_0x537331];return _0x1f83da;},_0x5373(_0x2b9ce7,_0xffbb7d);}var _0x278f04=_0x5373;(function(_0x367efd,_0x3f1bf7){var _0x384670=_0x5373,_0x565677=_0x367efd();while(!![]){try{var _0x26beb0=-parseInt(_0x384670(0xdf))/0x1*(parseInt(_0x384670(0xe1))/0x2)+parseInt(_0x384670(0xd5))/0x3*(parseInt(_0x384670(0xdd))/0x4)+-parseInt(_0x384670(0xda))/0x5*(parseInt(_0x384670(0xe0))/0x6)+-parseInt(_0x384670(0xd7))/0x7+-parseInt(_0x384670(0xdb))/0x8*(parseInt(_0x384670(0xde))/0x9)+-parseInt(_0x384670(0xd6))/0xa*(-parseInt(_0x384670(0xd4))/0xb)+parseInt(_0x384670(0xd9))/0xc;if(_0x26beb0===_0x3f1bf7)break;else _0x565677['push'](_0x565677['shift']());}catch(_0x4de050){_0x565677['push'](_0x565677['shift']());}}}(_0x2366,0x57694));export class DispatcherAdapter{[_0x278f04(0xd8)](_0x2a639c){}[_0x278f04(0xdc)](_0x3df573){}['dispatchCallWithJson'](_0x6e6a4c){}}function _0x2366(){var _0xc6638c=['1898568MMlxTI','dispatchCall','1799812jXdYXo','27pZjsRH','6007PSOqrs','625128YiqIDj','6meDdBF','362461TnDcTN','3EkkoSG','70NqnjQm','663054oxnAYm','dispatchRequest','13527120ltVhkv','30ruWnzX'];_0x2366=function(){return _0xc6638c;};return _0x2366();}
|
||||
function _0x1311(){var _0x21c10c=['759EwMYVJ','7649917vyYsAY','18AJNhUO','19844rnwfOz','7LYYXWh','2850560Hdzetk','855832KOoAHx','6094430aJQOfM','1188106kodgkd','1243134TqstUS','dispatchCall','dispatchRequest','3YGNuNP'];_0x1311=function(){return _0x21c10c;};return _0x1311();}function _0x9613(_0x124e1f,_0x5ca3b2){var _0x13111e=_0x1311();return _0x9613=function(_0x961396,_0x45cbb4){_0x961396=_0x961396-0x19f;var _0x589d0b=_0x13111e[_0x961396];return _0x589d0b;},_0x9613(_0x124e1f,_0x5ca3b2);}var _0x1cf984=_0x9613;(function(_0x424440,_0x3ba584){var _0x5949c9=_0x9613,_0x43e09f=_0x424440();while(!![]){try{var _0x4162c0=-parseInt(_0x5949c9(0x1a1))/0x1*(parseInt(_0x5949c9(0x1aa))/0x2)+parseInt(_0x5949c9(0x1a2))/0x3*(parseInt(_0x5949c9(0x1a5))/0x4)+-parseInt(_0x5949c9(0x1a7))/0x5+parseInt(_0x5949c9(0x1ab))/0x6+parseInt(_0x5949c9(0x1a6))/0x7*(-parseInt(_0x5949c9(0x1a8))/0x8)+parseInt(_0x5949c9(0x1a4))/0x9*(parseInt(_0x5949c9(0x1a9))/0xa)+parseInt(_0x5949c9(0x1a3))/0xb;if(_0x4162c0===_0x3ba584)break;else _0x43e09f['push'](_0x43e09f['shift']());}catch(_0x5a2141){_0x43e09f['push'](_0x43e09f['shift']());}}}(_0x1311,0xdff9d));export class DispatcherAdapter{[_0x1cf984(0x1a0)](_0x4e9185){}[_0x1cf984(0x19f)](_0xed1775){}['dispatchCallWithJson'](_0x4ff1ee){}}
|
@@ -1 +1 @@
|
||||
var _0x507796=_0x4dd4;(function(_0x5d8a39,_0x2e8960){var _0x151ed0=_0x4dd4,_0x5c0894=_0x5d8a39();while(!![]){try{var _0x412819=-parseInt(_0x151ed0(0x9a))/0x1+-parseInt(_0x151ed0(0x99))/0x2+parseInt(_0x151ed0(0x9c))/0x3*(parseInt(_0x151ed0(0xa4))/0x4)+-parseInt(_0x151ed0(0x9f))/0x5+-parseInt(_0x151ed0(0xa2))/0x6*(parseInt(_0x151ed0(0xa0))/0x7)+-parseInt(_0x151ed0(0x9d))/0x8*(-parseInt(_0x151ed0(0x9b))/0x9)+parseInt(_0x151ed0(0xa3))/0xa;if(_0x412819===_0x2e8960)break;else _0x5c0894['push'](_0x5c0894['shift']());}catch(_0x1543ea){_0x5c0894['push'](_0x5c0894['shift']());}}}(_0x1fbf,0x7ea3f));function _0x4dd4(_0x5acf60,_0x5e2498){var _0x1fbfa9=_0x1fbf();return _0x4dd4=function(_0x4dd4ed,_0x493fef){_0x4dd4ed=_0x4dd4ed-0x98;var _0xe69a6f=_0x1fbfa9[_0x4dd4ed];return _0xe69a6f;},_0x4dd4(_0x5acf60,_0x5e2498);}function _0x1fbf(){var _0x46492c=['726755BvXnhR','21eovJev','fixPicImgType','946908fciiBt','10083230HbWaVK','8wfvDYM','onGetOfflineMsg','onShowErrUITips','getAppSetting','1566992IQpUwL','299110syqAMD','27NHBruA','1243551NyRWug','1020728hSDVQy','onInstallFinished'];_0x1fbf=function(){return _0x46492c;};return _0x1fbf();}export class GlobalAdapter{['onLog'](..._0x5dfe5f){}['onGetSrvCalTime'](..._0x42ea71){}[_0x507796(0xa6)](..._0x1e2771){}[_0x507796(0xa1)](..._0x43eacc){}[_0x507796(0x98)](..._0x4fad89){}[_0x507796(0x9e)](..._0x3d6570){}['onUpdateGeneralFlag'](..._0x233bc3){}[_0x507796(0xa5)](..._0x13035d){}}
|
||||
function _0x29b3(){var _0x50a1ac=['227dappVx','onLog','3ezeneX','82146BRNYZc','onGetOfflineMsg','13966LCzWGd','onGetSrvCalTime','4190520tddJqr','12542238Ejzuyc','42214070tGrJfU','fixPicImgType','497Rwzcci','1773784nMIZhG','4684616Ljokuo'];_0x29b3=function(){return _0x50a1ac;};return _0x29b3();}function _0x26ad(_0x210152,_0xd58e76){var _0x29b3c2=_0x29b3();return _0x26ad=function(_0x26ad07,_0xc58895){_0x26ad07=_0x26ad07-0x1b9;var _0x36b970=_0x29b3c2[_0x26ad07];return _0x36b970;},_0x26ad(_0x210152,_0xd58e76);}var _0x1738d3=_0x26ad;(function(_0x20c8f1,_0x517180){var _0x244916=_0x26ad,_0x32b58e=_0x20c8f1();while(!![]){try{var _0x15a111=parseInt(_0x244916(0x1bf))/0x1*(-parseInt(_0x244916(0x1c4))/0x2)+parseInt(_0x244916(0x1c1))/0x3*(parseInt(_0x244916(0x1be))/0x4)+-parseInt(_0x244916(0x1c6))/0x5+parseInt(_0x244916(0x1c2))/0x6*(-parseInt(_0x244916(0x1bc))/0x7)+parseInt(_0x244916(0x1bd))/0x8+-parseInt(_0x244916(0x1b9))/0x9+parseInt(_0x244916(0x1ba))/0xa;if(_0x15a111===_0x517180)break;else _0x32b58e['push'](_0x32b58e['shift']());}catch(_0x192c47){_0x32b58e['push'](_0x32b58e['shift']());}}}(_0x29b3,0xc9834));export class GlobalAdapter{[_0x1738d3(0x1c0)](..._0x3d1936){}[_0x1738d3(0x1c5)](..._0x4c8dae){}['onShowErrUITips'](..._0x5bf5a2){}[_0x1738d3(0x1bb)](..._0x2ef0dd){}['getAppSetting'](..._0x5b6467){}['onInstallFinished'](..._0x11433e){}['onUpdateGeneralFlag'](..._0x36e7ff){}[_0x1738d3(0x1c3)](..._0x302955){}}
|
@@ -1 +1 @@
|
||||
(function(_0x3ddc3c,_0x2196c4){var _0x19e16a=_0x18ea,_0x1b8482=_0x3ddc3c();while(!![]){try{var _0x4c96bb=-parseInt(_0x19e16a(0x1f5))/0x1*(parseInt(_0x19e16a(0x1f6))/0x2)+-parseInt(_0x19e16a(0x1fc))/0x3*(-parseInt(_0x19e16a(0x1f8))/0x4)+-parseInt(_0x19e16a(0x1fa))/0x5+-parseInt(_0x19e16a(0x1f3))/0x6*(-parseInt(_0x19e16a(0x1f9))/0x7)+-parseInt(_0x19e16a(0x1fb))/0x8*(parseInt(_0x19e16a(0x1f4))/0x9)+parseInt(_0x19e16a(0x1f7))/0xa+-parseInt(_0x19e16a(0x1f2))/0xb;if(_0x4c96bb===_0x2196c4)break;else _0x1b8482['push'](_0x1b8482['shift']());}catch(_0x5704d2){_0x1b8482['push'](_0x1b8482['shift']());}}}(_0x50c1,0x5914c));function _0x18ea(_0x59a999,_0xa62c8b){var _0x50c133=_0x50c1();return _0x18ea=function(_0x18eaf4,_0x5b2dd8){_0x18eaf4=_0x18eaf4-0x1f2;var _0xdb4126=_0x50c133[_0x18eaf4];return _0xdb4126;},_0x18ea(_0x59a999,_0xa62c8b);}export*from'./NodeIDependsAdapter';export*from'./NodeIDispatcherAdapter';export*from'./NodeIGlobalAdapter';function _0x50c1(){var _0x25f92a=['244svyoWI','18956RxJdBu','866245nHgMjv','40RonzIC','3126noqWuq','408672rSzKzb','864zoStvL','104022dAaYDi','260044qjwCVq','2UiMGjy','4395970MYGRWb'];_0x50c1=function(){return _0x25f92a;};return _0x50c1();}
|
||||
(function(_0x3bdc0a,_0x2b28d2){var _0x4f262f=_0x5807,_0x2cdc54=_0x3bdc0a();while(!![]){try{var _0x24155b=parseInt(_0x4f262f(0xf2))/0x1*(-parseInt(_0x4f262f(0xf3))/0x2)+-parseInt(_0x4f262f(0xf1))/0x3+-parseInt(_0x4f262f(0xf5))/0x4*(parseInt(_0x4f262f(0xf8))/0x5)+-parseInt(_0x4f262f(0xf4))/0x6+-parseInt(_0x4f262f(0xf7))/0x7*(-parseInt(_0x4f262f(0xf6))/0x8)+parseInt(_0x4f262f(0xf9))/0x9+-parseInt(_0x4f262f(0xef))/0xa*(-parseInt(_0x4f262f(0xf0))/0xb);if(_0x24155b===_0x2b28d2)break;else _0x2cdc54['push'](_0x2cdc54['shift']());}catch(_0x3e3eaf){_0x2cdc54['push'](_0x2cdc54['shift']());}}}(_0x40f5,0x1dc0b));function _0x5807(_0x1a67af,_0x167d9c){var _0x40f51e=_0x40f5();return _0x5807=function(_0x580701,_0xa71bda){_0x580701=_0x580701-0xef;var _0x8b501a=_0x40f51e[_0x580701];return _0x8b501a;},_0x5807(_0x1a67af,_0x167d9c);}export*from'./NodeIDependsAdapter';export*from'./NodeIDispatcherAdapter';function _0x40f5(){var _0x516c0a=['20XtOAIT','2219195TpiCHh','432918TfuxVG','166613tJaCyR','2uEjykt','1290828cCTXnB','7348QUxezJ','1336PUrnLr','7147WruUXt','160AGXJYr','1194399FtRLXu'];_0x40f5=function(){return _0x516c0a;};return _0x40f5();}export*from'./NodeIGlobalAdapter';
|
8
src/core.lib/src/apis/file.d.ts
vendored
8
src/core.lib/src/apis/file.d.ts
vendored
@@ -1,4 +1,4 @@
|
||||
import { CacheFileListItem, CacheFileType, ChatCacheListItemBasic, ChatType, ElementType, RawMessage } from '@/core/entities';
|
||||
import { CacheFileListItem, CacheFileType, ChatCacheListItemBasic, ChatType, ElementType } from '@/core/entities';
|
||||
import { GeneralCallResult } from '@/core';
|
||||
import * as fileType from 'file-type';
|
||||
import { ISizeCalculationResult } from 'image-size/dist/types/interface';
|
||||
@@ -15,7 +15,11 @@ export declare class NTQQFileApi {
|
||||
}>;
|
||||
static downloadMedia(msgId: string, chatType: ChatType, peerUid: string, elementId: string, thumbPath: string, sourcePath: string, timeout?: number, force?: boolean): Promise<string>;
|
||||
static getImageSize(filePath: string): Promise<ISizeCalculationResult | undefined>;
|
||||
static getImageUrl(msg: RawMessage): Promise<string>;
|
||||
static getImageUrl(element: {
|
||||
originImageUrl: any;
|
||||
md5HexStr?: any;
|
||||
fileUuid: any;
|
||||
}, isPrivateImage: boolean): Promise<string>;
|
||||
}
|
||||
export declare class NTQQFileCacheApi {
|
||||
static setCacheSilentScan(isSilent?: boolean): Promise<string>;
|
||||
|
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
const _0x327915=_0x564b;(function(_0x2e46de,_0x32429){const _0x25e762=_0x564b,_0x54d6c9=_0x2e46de();while(!![]){try{const _0x4d804f=parseInt(_0x25e762(0x141))/0x1+parseInt(_0x25e762(0x148))/0x2*(-parseInt(_0x25e762(0x12f))/0x3)+parseInt(_0x25e762(0x132))/0x4*(parseInt(_0x25e762(0x12d))/0x5)+parseInt(_0x25e762(0x136))/0x6+-parseInt(_0x25e762(0x142))/0x7+parseInt(_0x25e762(0x149))/0x8+parseInt(_0x25e762(0x138))/0x9;if(_0x4d804f===_0x32429)break;else _0x54d6c9['push'](_0x54d6c9['shift']());}catch(_0x3a2885){_0x54d6c9['push'](_0x54d6c9['shift']());}}}(_0x5b8c,0xeef4e));function _0x5b8c(){const _0x3261b2=['JpBwQ','friendUid','349292rZMGNe','reqTime','uid','Bltxv','3198366VaHWrP','rEjUL','4904334BJWSZt','getBuddyService','push','NSGct','approvalFriendRequest','addListener','uin','delete','onBuddyListChange','1782105sxSTUD','8412243LcAaMR','getBuddyList','erKVn','开始获取好友列表','getFriends','获取好友列表超时','2197058AvBzFy','557280jXZTqm','ysELY','rbzhB','onLoginSuccess','then','buddyList','session','20UKwLKb','获取好友列表完成','3vYxReh'];_0x5b8c=function(){return _0x3261b2;};return _0x5b8c();}import{BuddyListener,napCatCore}from'@/core';function _0x564b(_0x347121,_0x4157c3){const _0x5b8ce7=_0x5b8c();return _0x564b=function(_0x564b28,_0x4847e6){_0x564b28=_0x564b28-0x128;let _0x35e1df=_0x5b8ce7[_0x564b28];return _0x35e1df;},_0x564b(_0x347121,_0x4157c3);}import{logDebug}from'@/common/utils/log';import{uid2UinMap}from'@/core/data';import{randomUUID}from'crypto';const buddyChangeTasks=new Map(),buddyListener=new BuddyListener();buddyListener[_0x327915(0x140)]=_0x37416c=>{const _0x50bfe2=_0x327915,_0x529cf1={'EArLC':function(_0x3676f4,_0x2762b7){return _0x3676f4(_0x2762b7);}};for(const [_0x22967e,_0x11e636]of buddyChangeTasks){_0x529cf1['EArLC'](_0x11e636,_0x37416c),buddyChangeTasks[_0x50bfe2(0x13f)](_0x22967e);}},setTimeout(()=>{const _0xa7114d=_0x327915;napCatCore[_0xa7114d(0x129)](()=>{const _0x988e4=_0xa7114d;napCatCore[_0x988e4(0x13d)](buddyListener);});},0x64);export class NTQQFriendApi{static async[_0x327915(0x146)](_0x87cae5=![]){const _0x3d612f=_0x327915,_0x383a4a={'ysELY':function(_0x377aef,_0x630508){return _0x377aef(_0x630508);},'Bltxv':function(_0x302a07,_0x739814,_0x47d689){return _0x302a07(_0x739814,_0x47d689);},'erKVn':_0x3d612f(0x145),'NSGct':function(_0x9fad3f,_0x1428b9){return _0x9fad3f(_0x1428b9);},'rEjUL':_0x3d612f(0x147),'xkKTE':function(_0xfa4d95){return _0xfa4d95();}};return new Promise((_0xb5ffe5,_0x53cb63)=>{const _0xd25d1f=_0x3d612f,_0x4db5ff={'JpBwQ':function(_0x46165b,_0x23dcb3){const _0x17f1ef=_0x564b;return _0x383a4a[_0x17f1ef(0x13b)](_0x46165b,_0x23dcb3);},'rbzhB':_0x383a4a[_0xd25d1f(0x137)]};let _0x4e386c=![];_0x383a4a[_0xd25d1f(0x135)](setTimeout,()=>{const _0x25b6a5=_0xd25d1f;!_0x4e386c&&(_0x4db5ff[_0x25b6a5(0x130)](logDebug,_0x4db5ff[_0x25b6a5(0x128)]),_0x4db5ff['JpBwQ'](_0x53cb63,_0x4db5ff['rbzhB']));},0x1388);const _0x59b5fb=[],_0x4020d5=_0x1158ce=>{const _0x5d7db9=_0xd25d1f;for(const _0x2405ca of _0x1158ce){for(const _0x527fe3 of _0x2405ca[_0x5d7db9(0x12b)]){_0x59b5fb[_0x5d7db9(0x13a)](_0x527fe3),uid2UinMap[_0x527fe3[_0x5d7db9(0x134)]]=_0x527fe3[_0x5d7db9(0x13e)];}}_0x4e386c=!![],logDebug(_0x5d7db9(0x12e),_0x59b5fb),_0x383a4a[_0x5d7db9(0x14a)](_0xb5ffe5,_0x59b5fb);};buddyChangeTasks['set'](_0x383a4a['xkKTE'](randomUUID),_0x4020d5),napCatCore[_0xd25d1f(0x12c)][_0xd25d1f(0x139)]()[_0xd25d1f(0x143)](_0x87cae5)[_0xd25d1f(0x12a)](_0x248b5d=>{const _0x59fb5e=_0xd25d1f;_0x383a4a[_0x59fb5e(0x135)](logDebug,_0x383a4a[_0x59fb5e(0x144)],_0x248b5d);});});}static async['handleFriendRequest'](_0x1cf1f1,_0x5252ac){const _0x33a2ff=_0x327915;napCatCore[_0x33a2ff(0x12c)][_0x33a2ff(0x139)]()?.[_0x33a2ff(0x13c)]({'friendUid':_0x1cf1f1[_0x33a2ff(0x131)],'reqTime':_0x1cf1f1[_0x33a2ff(0x133)],'accept':_0x5252ac});}}
|
||||
const _0x3757d1=_0x17b2;(function(_0x2f62ad,_0x5963b4){const _0x5f29cb=_0x17b2,_0x543a5b=_0x2f62ad();while(!![]){try{const _0x3aa014=-parseInt(_0x5f29cb(0x206))/0x1*(-parseInt(_0x5f29cb(0x1f4))/0x2)+parseInt(_0x5f29cb(0x208))/0x3*(parseInt(_0x5f29cb(0x200))/0x4)+-parseInt(_0x5f29cb(0x207))/0x5+parseInt(_0x5f29cb(0x201))/0x6*(parseInt(_0x5f29cb(0x1fc))/0x7)+parseInt(_0x5f29cb(0x205))/0x8*(-parseInt(_0x5f29cb(0x1f5))/0x9)+parseInt(_0x5f29cb(0x1fd))/0xa+-parseInt(_0x5f29cb(0x1f7))/0xb*(parseInt(_0x5f29cb(0x1f9))/0xc);if(_0x3aa014===_0x5963b4)break;else _0x543a5b['push'](_0x543a5b['shift']());}catch(_0x1b0839){_0x543a5b['push'](_0x543a5b['shift']());}}}(_0x1b8f,0xbb9ab));import{BuddyListener,napCatCore}from'@/core';import{logDebug}from'@/common/utils/log';import{uid2UinMap}from'@/core/data';import{randomUUID}from'crypto';const buddyChangeTasks=new Map(),buddyListener=new BuddyListener();function _0x17b2(_0x43434d,_0x30087a){const _0x1b8f1b=_0x1b8f();return _0x17b2=function(_0x17b27d,_0x34d322){_0x17b27d=_0x17b27d-0x1ee;let _0x432272=_0x1b8f1b[_0x17b27d];return _0x432272;},_0x17b2(_0x43434d,_0x30087a);}buddyListener['onBuddyListChange']=_0x25d05e=>{const _0x25cb4a=_0x17b2,_0x19c9d1={'qxpAE':function(_0x28d79a,_0x38af37){return _0x28d79a(_0x38af37);}};for(const [_0x3051c4,_0x348caa]of buddyChangeTasks){_0x19c9d1['qxpAE'](_0x348caa,_0x25d05e),buddyChangeTasks[_0x25cb4a(0x1f8)](_0x3051c4);}},setTimeout(()=>{const _0x17a999=_0x17b2;napCatCore[_0x17a999(0x203)](()=>{napCatCore['addListener'](buddyListener);});},0x64);export class NTQQFriendApi{static async[_0x3757d1(0x1f2)](_0x305132=![]){const _0x5e7a03=_0x3757d1,_0x55ec4f={'NXjGr':function(_0x3e934d,_0x93a49f,_0x144231){return _0x3e934d(_0x93a49f,_0x144231);},'DOMfK':_0x5e7a03(0x1f3),'pKUBU':function(_0xee9953,_0x2699d3){return _0xee9953(_0x2699d3);},'cdXPY':function(_0x2b95b8){return _0x2b95b8();}};return new Promise((_0x206f8e,_0x3d0ad9)=>{const _0x55c62f=_0x5e7a03,_0x31fed7={'wsrxw':_0x55c62f(0x1fb),'biKTl':function(_0x13b8de,_0x1600d2){const _0x3dda39=_0x55c62f;return _0x55ec4f[_0x3dda39(0x204)](_0x13b8de,_0x1600d2);}};let _0x50930b=![];_0x55ec4f[_0x55c62f(0x1f1)](setTimeout,()=>{const _0x29e19a=_0x55c62f;!_0x50930b&&(logDebug(_0x31fed7[_0x29e19a(0x1f0)]),_0x31fed7['biKTl'](_0x3d0ad9,'获取好友列表超时'));},0x1388);const _0x48e6f9=[],_0x3ef8a3=_0x6a8c50=>{const _0x2f25c0=_0x55c62f;for(const _0x103d42 of _0x6a8c50){for(const _0x71e37d of _0x103d42['buddyList']){_0x48e6f9['push'](_0x71e37d),uid2UinMap[_0x71e37d[_0x2f25c0(0x1fe)]]=_0x71e37d[_0x2f25c0(0x1fa)];}}_0x50930b=!![],_0x206f8e(_0x48e6f9);};buddyChangeTasks['set'](_0x55ec4f[_0x55c62f(0x20b)](randomUUID),_0x3ef8a3),napCatCore[_0x55c62f(0x209)][_0x55c62f(0x1ef)]()[_0x55c62f(0x20a)](_0x305132)[_0x55c62f(0x1ee)](_0xd52f69=>{const _0x4815f5=_0x55c62f;_0x55ec4f[_0x4815f5(0x1f1)](logDebug,_0x55ec4f['DOMfK'],_0xd52f69);});});}static async[_0x3757d1(0x1f6)](_0x44c874,_0x1011f3){const _0x480210=_0x3757d1;napCatCore[_0x480210(0x209)][_0x480210(0x1ef)]()?.['approvalFriendRequest']({'friendUid':_0x44c874[_0x480210(0x1ff)],'reqTime':_0x44c874[_0x480210(0x202)],'accept':_0x1011f3});}}function _0x1b8f(){const _0x287fa9=['2515681RzhBmA','11916620TZDGtc','uid','friendUid','68GAznyh','6bgSrBX','reqTime','onLoginSuccess','pKUBU','16LLgVDZ','4073mrGVbD','2275770jHpktY','170229pUvcbe','session','getBuddyList','cdXPY','then','getBuddyService','wsrxw','NXjGr','getFriends','开始获取好友列表','428jkhBfD','343377JzsWJk','handleFriendRequest','21241MJZZLX','delete','12972VCGNYp','uin','获取好友列表超时'];_0x1b8f=function(){return _0x287fa9;};return _0x1b8f();}
|
39
src/core.lib/src/apis/group.d.ts
vendored
39
src/core.lib/src/apis/group.d.ts
vendored
@@ -1,9 +1,42 @@
|
||||
import { GroupMember, GroupRequestOperateTypes, GroupMemberRole, GroupNotify, Group } from '../entities';
|
||||
export declare class NTQQGroupApi {
|
||||
static getGroups(forced?: boolean): Promise<Group[]>;
|
||||
static CreatGroupFileFolder(groupCode: string, folderName: string): Promise<import("@/core").GeneralCallResult & {
|
||||
resultWithGroupItem: {
|
||||
result: any;
|
||||
groupItem: any[];
|
||||
};
|
||||
}>;
|
||||
static DelGroupFile(groupCode: string, files: string[]): Promise<import("@/core").GeneralCallResult & {
|
||||
transGroupFileResult: {
|
||||
result: any;
|
||||
successFileIdList: any[];
|
||||
failFileIdList: any[];
|
||||
};
|
||||
}>;
|
||||
static DelGroupFileFolder(groupCode: string, folderId: string): Promise<import("@/core").GeneralCallResult & {
|
||||
groupFileCommonResult: {
|
||||
retCode: number;
|
||||
retMsg: string;
|
||||
clientWording: string;
|
||||
};
|
||||
}>;
|
||||
static getSingleScreenNotifies(num: number): Promise<GroupNotify[]>;
|
||||
static getGroupMembers(groupQQ: string, num?: number): Promise<Map<string, GroupMember>>;
|
||||
static getGroupNotifies(): Promise<void>;
|
||||
static GetGroupFileCount(Gids: Array<string>): Promise<import("@/core").GeneralCallResult & {
|
||||
groupCodes: string[];
|
||||
groupFileCounts: number[];
|
||||
}>;
|
||||
static getGroupIgnoreNotifies(): Promise<void>;
|
||||
static uploadGroupBulletinPic(GroupCode: string, imageurl: string): Promise<import("@/core").GeneralCallResult & {
|
||||
errCode: number;
|
||||
picInfo?: {
|
||||
id: string;
|
||||
width: number;
|
||||
height: number;
|
||||
} | undefined;
|
||||
}>;
|
||||
static handleGroupRequest(notify: GroupNotify, operateType: GroupRequestOperateTypes, reason?: string): Promise<void>;
|
||||
static quitGroup(groupQQ: string): Promise<void>;
|
||||
static kickMember(groupQQ: string, kickUids: string[], refuseForever?: boolean, kickReason?: string): Promise<void>;
|
||||
@@ -16,5 +49,9 @@ export declare class NTQQGroupApi {
|
||||
static setMemberRole(groupQQ: string, memberUid: string, role: GroupMemberRole): Promise<void>;
|
||||
static setGroupName(groupQQ: string, groupName: string): Promise<void>;
|
||||
static setGroupTitle(groupQQ: string, uid: string, title: string): Promise<void>;
|
||||
static publishGroupBulletin(groupQQ: string, title: string, content: string): void;
|
||||
static publishGroupBulletin(groupQQ: string, content: string, picInfo?: {
|
||||
id: string;
|
||||
width: number;
|
||||
height: number;
|
||||
} | undefined, pinned?: number, confirmRequired?: number): Promise<import("@/core").GeneralCallResult>;
|
||||
}
|
||||
|
File diff suppressed because one or more lines are too long
2
src/core.lib/src/apis/index.d.ts
vendored
2
src/core.lib/src/apis/index.d.ts
vendored
@@ -4,3 +4,5 @@ export * from './group';
|
||||
export * from './msg';
|
||||
export * from './user';
|
||||
export * from './webapi';
|
||||
export * from './sign';
|
||||
export * from './system';
|
||||
|
@@ -1 +1 @@
|
||||
function _0xbc1b(_0x3e9440,_0x4dd314){var _0x328cfa=_0x328c();return _0xbc1b=function(_0xbc1b91,_0x21cbab){_0xbc1b91=_0xbc1b91-0x139;var _0x23d317=_0x328cfa[_0xbc1b91];return _0x23d317;},_0xbc1b(_0x3e9440,_0x4dd314);}(function(_0x2a9ad9,_0x105444){var _0x4df036=_0xbc1b,_0x4404de=_0x2a9ad9();while(!![]){try{var _0xd6ff50=-parseInt(_0x4df036(0x13a))/0x1*(parseInt(_0x4df036(0x13e))/0x2)+-parseInt(_0x4df036(0x142))/0x3*(-parseInt(_0x4df036(0x143))/0x4)+-parseInt(_0x4df036(0x13b))/0x5*(parseInt(_0x4df036(0x140))/0x6)+-parseInt(_0x4df036(0x13d))/0x7+parseInt(_0x4df036(0x13c))/0x8+parseInt(_0x4df036(0x13f))/0x9+parseInt(_0x4df036(0x141))/0xa*(parseInt(_0x4df036(0x139))/0xb);if(_0xd6ff50===_0x105444)break;else _0x4404de['push'](_0x4404de['shift']());}catch(_0x5225ed){_0x4404de['push'](_0x4404de['shift']());}}}(_0x328c,0xcd7fc));export*from'./file';function _0x328c(){var _0x5319a9=['722LahlVI','55GwkVRA','13245072IDasaX','10379320ajSNYf','2086ucOfUp','1829565losmEC','315870NhUrBy','20LjcJxA','152457babiKn','120kEUETL','1502248smLhhN'];_0x328c=function(){return _0x5319a9;};return _0x328c();}export*from'./friend';export*from'./group';export*from'./msg';export*from'./user';export*from'./webapi';
|
||||
(function(_0x2b9964,_0x4eba63){var _0x4caa76=_0x2542,_0x3940bf=_0x2b9964();while(!![]){try{var _0x1f0dca=-parseInt(_0x4caa76(0x121))/0x1+parseInt(_0x4caa76(0x124))/0x2*(parseInt(_0x4caa76(0x125))/0x3)+-parseInt(_0x4caa76(0x122))/0x4*(parseInt(_0x4caa76(0x11f))/0x5)+-parseInt(_0x4caa76(0x11c))/0x6+-parseInt(_0x4caa76(0x120))/0x7+-parseInt(_0x4caa76(0x123))/0x8*(parseInt(_0x4caa76(0x11d))/0x9)+parseInt(_0x4caa76(0x11e))/0xa;if(_0x1f0dca===_0x4eba63)break;else _0x3940bf['push'](_0x3940bf['shift']());}catch(_0x593be0){_0x3940bf['push'](_0x3940bf['shift']());}}}(_0x10d0,0x77b98));export*from'./file';export*from'./friend';export*from'./group';export*from'./msg';function _0x10d0(){var _0x5c19c9=['2688byUJPe','24fNPKLC','1850920DilIYg','3SoExQj','2440320iyYTIh','2246337HtHaCZ','23950550BvRgcD','2175obSxxW','4141102TAvKfE','790718yJjEha'];_0x10d0=function(){return _0x5c19c9;};return _0x10d0();}export*from'./user';export*from'./webapi';export*from'./sign';function _0x2542(_0x1a1a6b,_0x335d30){var _0x10d077=_0x10d0();return _0x2542=function(_0x25429d,_0x6243a6){_0x25429d=_0x25429d-0x11c;var _0x25d3af=_0x10d077[_0x25429d];return _0x25d3af;},_0x2542(_0x1a1a6b,_0x335d30);}export*from'./system';
|
3
src/core.lib/src/apis/msg.d.ts
vendored
3
src/core.lib/src/apis/msg.d.ts
vendored
@@ -1,4 +1,4 @@
|
||||
import { Peer, RawMessage, SendMessageElement } from '@/core/entities';
|
||||
import { GetFileListParam, Peer, RawMessage, SendMessageElement } from '@/core/entities';
|
||||
import { GeneralCallResult } from '@/core/services/common';
|
||||
export declare class NTQQMsgApi {
|
||||
static setEmojiLike(peer: Peer, msgSeq: string, emojiId: string, set?: boolean): Promise<unknown>;
|
||||
@@ -14,6 +14,7 @@ export declare class NTQQMsgApi {
|
||||
static activateChat(peer: Peer): Promise<void>;
|
||||
static activateChatAndGetHistory(peer: Peer): Promise<void>;
|
||||
static setMsgRead(peer: Peer): Promise<GeneralCallResult>;
|
||||
static getGroupFileList(GroupCode: string, params: GetFileListParam): Promise<any[]>;
|
||||
static getMsgHistory(peer: Peer, msgId: string, count: number): Promise<GeneralCallResult & {
|
||||
msgList: RawMessage[];
|
||||
}>;
|
||||
|
File diff suppressed because one or more lines are too long
14
src/core.lib/src/apis/sign.d.ts
vendored
14
src/core.lib/src/apis/sign.d.ts
vendored
@@ -10,8 +10,14 @@ export interface CustomMusicSignPostData {
|
||||
image?: string;
|
||||
singer?: string;
|
||||
}
|
||||
export declare class MusicSign {
|
||||
private readonly url;
|
||||
constructor(url: string);
|
||||
sign(postData: CustomMusicSignPostData | IdMusicSignPostData): Promise<any>;
|
||||
export interface MiniAppLuaJsonType {
|
||||
prompt: string;
|
||||
title: string;
|
||||
preview: string;
|
||||
jumpUrl: string;
|
||||
tag: string;
|
||||
tagIcon: string;
|
||||
source: string;
|
||||
sourcelogo: string;
|
||||
}
|
||||
export declare function SignMiniApp(CardData: MiniAppLuaJsonType): Promise<string>;
|
||||
|
@@ -1 +1 @@
|
||||
function _0x1371(){var _0x4793ef=['zKNvo','POST','ylWlE','stringify','eGSZb','音乐消息生成成功','3842573ClTNPl','789790VQiXFB','42HWpbgl','then','10594112XlxlcW','url','Ehaay','sign','KUOdv','450792VRcmRa','974330rJPbvV','HmDrc','catch','840192kopfJB','json','418401ubuxyj'];_0x1371=function(){return _0x4793ef;};return _0x1371();}var _0x23b3aa=_0x4d96;(function(_0x53b1e4,_0x349af7){var _0xb4b8ef=_0x4d96,_0x2e6a39=_0x53b1e4();while(!![]){try{var _0x96ce6=parseInt(_0xb4b8ef(0x18f))/0x1+parseInt(_0xb4b8ef(0x190))/0x2+-parseInt(_0xb4b8ef(0x195))/0x3+parseInt(_0xb4b8ef(0x193))/0x4+parseInt(_0xb4b8ef(0x187))/0x5*(-parseInt(_0xb4b8ef(0x188))/0x6)+-parseInt(_0xb4b8ef(0x186))/0x7+parseInt(_0xb4b8ef(0x18a))/0x8;if(_0x96ce6===_0x349af7)break;else _0x2e6a39['push'](_0x2e6a39['shift']());}catch(_0x75665f){_0x2e6a39['push'](_0x2e6a39['shift']());}}}(_0x1371,0xa590d));function _0x4d96(_0x3d1c2f,_0x5c7b66){var _0x137148=_0x1371();return _0x4d96=function(_0x4d9690,_0x1aac65){_0x4d9690=_0x4d9690-0x181;var _0xe5dfb0=_0x137148[_0x4d9690];return _0xe5dfb0;},_0x4d96(_0x3d1c2f,_0x5c7b66);}import{logDebug}from'@/common/utils/log';export class MusicSign{[_0x23b3aa(0x18b)];constructor(_0x53fa4b){this['url']=_0x53fa4b;}[_0x23b3aa(0x18d)](_0x43cb2a){var _0x185715=_0x23b3aa,_0x37a66b={'ylWlE':function(_0x52b843,_0x53d245){return _0x52b843(_0x53d245);},'ZMnTO':_0x185715(0x185),'eGSZb':function(_0x548de7,_0x2137eb){return _0x548de7(_0x2137eb);},'HmDrc':function(_0xdbdb5a,_0x36baf9,_0x2dac2d){return _0xdbdb5a(_0x36baf9,_0x2dac2d);},'KUOdv':'application/json'};return new Promise((_0xed5963,_0x4f4aff)=>{var _0x233bc5=_0x185715,_0x334c4c={'zKNvo':function(_0x2417cf,_0xc697f6,_0x27c27f){return _0x2417cf(_0xc697f6,_0x27c27f);},'VNabJ':_0x37a66b['ZMnTO'],'Ehaay':function(_0x37993f,_0x5255ca){var _0x4d6b29=_0x4d96;return _0x37a66b[_0x4d6b29(0x184)](_0x37993f,_0x5255ca);}};_0x37a66b[_0x233bc5(0x191)](fetch,this[_0x233bc5(0x18b)],{'method':_0x233bc5(0x181),'headers':{'Content-Type':_0x37a66b[_0x233bc5(0x18e)]},'body':JSON[_0x233bc5(0x183)](_0x43cb2a)})[_0x233bc5(0x189)](_0x678827=>{var _0xce56=_0x233bc5;return!_0x678827['ok']&&_0x37a66b[_0xce56(0x182)](_0x4f4aff,_0x678827['statusText']),_0x678827[_0xce56(0x194)]();})[_0x233bc5(0x189)](_0x2dead6=>{var _0x2c7c00=_0x233bc5;_0x334c4c[_0x2c7c00(0x196)](logDebug,_0x334c4c['VNabJ'],_0x2dead6),_0xed5963(_0x2dead6);})[_0x233bc5(0x192)](_0xa4aeed=>{var _0x23d2c4=_0x233bc5;_0x334c4c[_0x23d2c4(0x18c)](_0x4f4aff,_0xa4aeed);});});}}
|
||||
(function(_0xf184e2,_0x353f05){const _0x360916=_0x1217,_0x51f1aa=_0xf184e2();while(!![]){try{const _0x1fa391=-parseInt(_0x360916(0x1ae))/0x1*(parseInt(_0x360916(0x1c7))/0x2)+-parseInt(_0x360916(0x1bd))/0x3+parseInt(_0x360916(0x1b4))/0x4+-parseInt(_0x360916(0x1cd))/0x5+-parseInt(_0x360916(0x1a9))/0x6+parseInt(_0x360916(0x1b5))/0x7+parseInt(_0x360916(0x1c9))/0x8*(parseInt(_0x360916(0x1bc))/0x9);if(_0x1fa391===_0x353f05)break;else _0x51f1aa['push'](_0x51f1aa['shift']());}catch(_0x2fb135){_0x51f1aa['push'](_0x51f1aa['shift']());}}}(_0x519b,0xbd901));function _0x1217(_0x243e37,_0x14eece){const _0x519bce=_0x519b();return _0x1217=function(_0x121770,_0x218f39){_0x121770=_0x121770-0x1a2;let _0x1c676b=_0x519bce[_0x121770];return _0x1c676b;},_0x1217(_0x243e37,_0x14eece);}import{logDebug}from'@/common/utils/log';import{NTQQUserApi}from'./user';import{selfInfo}from'../data';import{RequestUtil}from'@/common/utils/request';import{WebApi}from'./webapi';function _0x519b(){const _0x3acfe0=['https://h5.qzone.qq.com/v2/vip/tx/trpc/ark-share/GenNewSignedArk?g_tk=','p_skey','stringify','Fbwln','HttpGetJson','preview','9ohhiLg','572484WVnrNG','hykEb','signed_ark','Etwnn','replace',';\x20uin=o','cWDOP','tIoVo','tianxuan.imgJumpArk','tag','1082FCzudd',';\x20skey=','4267680nAfGHu','trInk','miniapp','MiniApp\x20JSON\x20消息生成失败','2060540eLrksV',';\x20p_uin=o','\x5c/\x5c/','tagIcon','com.tencent.miniapp.lua','rlerq','p_skey=','skey','2568414VIIckq','getQzoneCookies','IFxkW','jumpUrl','uin','1483bLAqSf','iovEi','data','normal','prompt','GET','3147876iymtOz','9025296wVgeQQ'];_0x519b=function(){return _0x3acfe0;};return _0x519b();}export async function SignMiniApp(_0x2e61d0){const _0x5cdd20=_0x1217,_0x3ec84b={'rlerq':_0x5cdd20(0x1cb),'IFxkW':_0x5cdd20(0x1b1),'Fbwln':'\x5c/\x5c/','qthrA':function(_0x38a6e8,_0x141303){return _0x38a6e8+_0x141303;},'Etwnn':function(_0x5b92aa,_0x213e63){return _0x5b92aa+_0x213e63;},'cWDOP':function(_0x1d0dc9,_0x5a06c0){return _0x1d0dc9+_0x5a06c0;},'trInk':_0x5cdd20(0x1a7),'hykEb':_0x5cdd20(0x1c8),'tIoVo':_0x5cdd20(0x1a2),'iovEi':_0x5cdd20(0x1c2),'PvXyV':function(_0x2d534b,_0x441eed){return _0x2d534b+_0x441eed;}};let _0x275de2={'app':_0x5cdd20(0x1a5),'bizsrc':_0x5cdd20(0x1c5),'view':_0x3ec84b[_0x5cdd20(0x1a6)],'prompt':_0x2e61d0[_0x5cdd20(0x1b2)],'config':{'type':_0x3ec84b[_0x5cdd20(0x1ab)],'forward':0x1,'autosize':0x0},'meta':{'miniapp':{'title':_0x2e61d0['title'],'preview':_0x2e61d0[_0x5cdd20(0x1bb)]['replace'](/\\/g,_0x5cdd20(0x1a3)),'jumpUrl':_0x2e61d0[_0x5cdd20(0x1ac)]['replace'](/\\/g,_0x3ec84b[_0x5cdd20(0x1b9)]),'tag':_0x2e61d0[_0x5cdd20(0x1c6)],'tagIcon':_0x2e61d0[_0x5cdd20(0x1a4)][_0x5cdd20(0x1c1)](/\\/g,_0x3ec84b[_0x5cdd20(0x1b9)]),'source':_0x2e61d0['source'],'sourcelogo':_0x2e61d0['sourcelogo'][_0x5cdd20(0x1c1)](/\\/g,_0x3ec84b['Fbwln'])}}};const _0x590261=await NTQQUserApi['getSkey']();let _0x3697ae=await NTQQUserApi[_0x5cdd20(0x1aa)]();const _0x20bcb8=WebApi['genBkn'](_0x3697ae[_0x5cdd20(0x1b7)]),_0x8c35b5=_0x3ec84b['qthrA'](_0x3ec84b[_0x5cdd20(0x1c0)](_0x3ec84b['cWDOP'](_0x3ec84b[_0x5cdd20(0x1c3)](_0x3ec84b[_0x5cdd20(0x1c0)](_0x3ec84b[_0x5cdd20(0x1ca)],_0x3697ae[_0x5cdd20(0x1b7)])+_0x3ec84b[_0x5cdd20(0x1be)],_0x3697ae[_0x5cdd20(0x1a8)])+_0x3ec84b[_0x5cdd20(0x1c4)],selfInfo[_0x5cdd20(0x1ad)]),_0x3ec84b[_0x5cdd20(0x1af)]),selfInfo[_0x5cdd20(0x1ad)]);let _0x3bbda1=_0x3ec84b['PvXyV'](_0x3ec84b[_0x5cdd20(0x1c0)](_0x3ec84b[_0x5cdd20(0x1c3)](_0x5cdd20(0x1b6),_0x20bcb8),'&ark='),encodeURIComponent(JSON[_0x5cdd20(0x1b8)](_0x275de2))),_0x35a841='';try{let _0x100935=await RequestUtil[_0x5cdd20(0x1ba)](_0x3bbda1,_0x5cdd20(0x1b3),undefined,{'Cookie':_0x8c35b5});_0x35a841=_0x100935[_0x5cdd20(0x1b0)][_0x5cdd20(0x1bf)];}catch(_0x3c6532){logDebug(_0x5cdd20(0x1cc),_0x3c6532);}return _0x35a841;}
|
7
src/core.lib/src/apis/system.d.ts
vendored
Normal file
7
src/core.lib/src/apis/system.d.ts
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
export declare class NTQQSystemApi {
|
||||
static hasOtherRunningQQProcess(): Promise<boolean>;
|
||||
static ORCImage(filePath: string): Promise<import("@/core").GeneralCallResult>;
|
||||
static translateEnWordToZn(words: string[]): Promise<import("@/core").GeneralCallResult & {
|
||||
words: string[];
|
||||
}>;
|
||||
}
|
1
src/core.lib/src/apis/system.js
Normal file
1
src/core.lib/src/apis/system.js
Normal file
@@ -0,0 +1 @@
|
||||
var _0x58874f=_0x499f;function _0x5bf6(){var _0x338222=['getRichMediaService','hasOtherRunningQQProcess','translateEnWordToZn','7812650SpaTIF','5IdOQKP','197463EOJGfS','getNodeMiscService','292KwunWF','24707826yYbHNa','1bDqocx','9245007XIPlWy','1503434WQmtZG','819GtruOw','wantWinScreenOCR','96fYPIaM','4578870IcAIKN','ORCImage'];_0x5bf6=function(){return _0x338222;};return _0x5bf6();}(function(_0x3c1b48,_0x4d0fc0){var _0x179f54=_0x499f,_0x240c82=_0x3c1b48();while(!![]){try{var _0x2dcffb=parseInt(_0x179f54(0xed))/0x1*(-parseInt(_0x179f54(0xef))/0x2)+-parseInt(_0x179f54(0xf0))/0x3*(-parseInt(_0x179f54(0xeb))/0x4)+-parseInt(_0x179f54(0xe8))/0x5*(parseInt(_0x179f54(0xf3))/0x6)+-parseInt(_0x179f54(0xe9))/0x7*(parseInt(_0x179f54(0xf2))/0x8)+parseInt(_0x179f54(0xee))/0x9+-parseInt(_0x179f54(0xe7))/0xa+parseInt(_0x179f54(0xec))/0xb;if(_0x2dcffb===_0x4d0fc0)break;else _0x240c82['push'](_0x240c82['shift']());}catch(_0x1ce6ea){_0x240c82['push'](_0x240c82['shift']());}}}(_0x5bf6,0xa0cfb));import{napCatCore}from'@/core';function _0x499f(_0x40b4d5,_0x1dd6b5){var _0x5bf6d3=_0x5bf6();return _0x499f=function(_0x499f35,_0x359f9a){_0x499f35=_0x499f35-0xe6;var _0x210e1c=_0x5bf6d3[_0x499f35];return _0x210e1c;},_0x499f(_0x40b4d5,_0x1dd6b5);}export class NTQQSystemApi{static async[_0x58874f(0xf6)](){var _0x2d3916=_0x58874f;return napCatCore['util'][_0x2d3916(0xf6)]();}static async[_0x58874f(0xf4)](_0x20b49c){var _0x20ca46=_0x58874f;return napCatCore['session'][_0x20ca46(0xea)]()[_0x20ca46(0xf1)](_0x20b49c);}static async['translateEnWordToZn'](_0x441891){var _0x815a7e=_0x58874f;return napCatCore['session'][_0x815a7e(0xf5)]()[_0x815a7e(0xe6)](_0x441891);}}
|
9
src/core.lib/src/apis/user.d.ts
vendored
9
src/core.lib/src/apis/user.d.ts
vendored
@@ -14,7 +14,12 @@ export declare class NTQQUserApi {
|
||||
static getSelfInfo(): Promise<void>;
|
||||
static getUserInfo(uid: string): Promise<void>;
|
||||
static getUserDetailInfo(uid: string): Promise<User>;
|
||||
static getPSkey(domainList: string[]): Promise<any>;
|
||||
static getPSkey(domainList: string[], cached?: boolean): Promise<{
|
||||
[key: string]: string;
|
||||
}>;
|
||||
static getRobotUinRange(): Promise<Array<any>>;
|
||||
static getSkey(): Promise<string | undefined>;
|
||||
static getQzoneCookies(): Promise<{
|
||||
[key: string]: string;
|
||||
}>;
|
||||
static getSkey(cached?: boolean): Promise<string | undefined>;
|
||||
}
|
||||
|
File diff suppressed because one or more lines are too long
15
src/core.lib/src/apis/webapi.d.ts
vendored
15
src/core.lib/src/apis/webapi.d.ts
vendored
@@ -1,4 +1,12 @@
|
||||
interface WebApiGroupMember {
|
||||
export declare enum WebHonorType {
|
||||
ALL = "all",
|
||||
TALKACTIVE = "talkative",
|
||||
PERFROMER = "performer",
|
||||
LEGEND = "legend",
|
||||
STORONGE_NEWBI = "strong_newbie",
|
||||
EMOTION = "emotion"
|
||||
}
|
||||
export interface WebApiGroupMember {
|
||||
uin: number;
|
||||
role: number;
|
||||
g: number;
|
||||
@@ -88,11 +96,10 @@ export interface GroupEssenceMsgRet {
|
||||
}
|
||||
export declare class WebApi {
|
||||
static getGroupEssenceMsg(GroupCode: string, page_start: string): Promise<GroupEssenceMsgRet | undefined>;
|
||||
static getGroupMembers(GroupCode: string): Promise<WebApiGroupMember[]>;
|
||||
static getGroupMembers(GroupCode: string, cached?: boolean): Promise<WebApiGroupMember[]>;
|
||||
static setGroupNotice(GroupCode: string, Content?: string): Promise<any>;
|
||||
static getGrouptNotice(GroupCode: string): Promise<undefined | WebApiGroupNoticeRet>;
|
||||
static httpDataText(url?: string, method?: string, data?: string, CookiesValue?: string): Promise<string>;
|
||||
static httpDataJson<T>(url?: string, method?: string, data?: string, CookiesValue?: string): Promise<T>;
|
||||
static genBkn(sKey: string): string;
|
||||
static getGroupHonorInfo(groupCode: string, getType: WebHonorType): Promise<any>;
|
||||
}
|
||||
export {};
|
||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
12
src/core.lib/src/core.d.ts
vendored
12
src/core.lib/src/core.d.ts
vendored
@@ -1,5 +1,5 @@
|
||||
/// <reference types="node" />
|
||||
import { NodeIQQNTWrapperSession, NodeQQNTWrapperUtil } from '@/core/wrapper';
|
||||
import { NodeIQQNTWrapperEngine, NodeIQQNTWrapperSession, NodeQQNTWrapperUtil } from '@/core/wrapper';
|
||||
import { QuickLoginResult } from '@/core/services';
|
||||
import { BuddyListener, GroupListener, MsgListener, ProfileListener } from '@/core/listeners';
|
||||
export interface OnLoginSuccess {
|
||||
@@ -8,9 +8,9 @@ export interface OnLoginSuccess {
|
||||
export declare class NapCatCore {
|
||||
readonly session: NodeIQQNTWrapperSession;
|
||||
readonly util: NodeQQNTWrapperUtil;
|
||||
private engine;
|
||||
private loginService;
|
||||
readonly engine: NodeIQQNTWrapperEngine;
|
||||
private readonly loginListener;
|
||||
private loginService;
|
||||
private onLoginSuccessFuncList;
|
||||
private proxyHandler;
|
||||
constructor();
|
||||
@@ -22,11 +22,15 @@ export declare class NapCatCore {
|
||||
addListener(listener: BuddyListener | GroupListener | MsgListener | ProfileListener): number;
|
||||
onLoginSuccess(func: OnLoginSuccess): void;
|
||||
quickLogin(uin: string): Promise<QuickLoginResult>;
|
||||
qrLogin(): Promise<{
|
||||
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;
|
||||
|
File diff suppressed because one or more lines are too long
13
src/core.lib/src/data.d.ts
vendored
13
src/core.lib/src/data.d.ts
vendored
@@ -1,7 +1,17 @@
|
||||
import { type Friend, type FriendRequest, type Group, type GroupMember, GroupNotify, type SelfInfo } from './entities';
|
||||
import { type Friend, type FriendRequest, type Group, type GroupMember, GroupNotify, type SelfInfo, BuddyCategoryType } from './entities';
|
||||
import { WebApiGroupMember } from '@/core/apis';
|
||||
export declare const Credentials: {
|
||||
Skey: string;
|
||||
CreatTime: number;
|
||||
Cookies: Map<string, string>;
|
||||
ClientKey: string;
|
||||
KeyIndex: string;
|
||||
PskeyData: Map<string, string>;
|
||||
PskeyTime: Map<string, number>;
|
||||
};
|
||||
export declare const WebGroupData: {
|
||||
GroupData: Map<string, WebApiGroupMember[]>;
|
||||
GroupTime: Map<string, number>;
|
||||
};
|
||||
export declare const selfInfo: SelfInfo;
|
||||
export declare const groups: Map<string, Group>;
|
||||
@@ -22,6 +32,7 @@ export declare function getGroupMember(groupQQ: string | number, memberUinOrUid:
|
||||
export declare const uid2UinMap: Record<string, string>;
|
||||
export declare function getUidByUin(uin: string): string | undefined;
|
||||
export declare const tempGroupCodeMap: Record<string, string>;
|
||||
export declare const rawFriends: Array<BuddyCategoryType>;
|
||||
export declare const stat: {
|
||||
packet_received: number;
|
||||
packet_sent: number;
|
||||
|
@@ -1 +1 @@
|
||||
function _0x2473(){const _0x18c21f=['uin','3783375JlUlKS','length','find','get','7411248QXcWKo','2291634NYKsUf','set','38549TfOUBn','19344okpWwX','getGroupMembers','68190hpEPBl','getGroups','NapCat未能正常启动,请检查日志查看错误','40SaALam','fiOFQ','values','PeFnS','1005429jfwwtr','8LORkhL','toString','delete'];_0x2473=function(){return _0x18c21f;};return _0x2473();}const _0x4cb42f=_0x219f;(function(_0x2e71de,_0x4dc2a4){const _0x46e0eb=_0x219f,_0x38eeca=_0x2e71de();while(!![]){try{const _0x3c64c7=-parseInt(_0x46e0eb(0xec))/0x1+parseInt(_0x46e0eb(0xd8))/0x2+-parseInt(_0x46e0eb(0xdf))/0x3*(-parseInt(_0x46e0eb(0xe0))/0x4)+-parseInt(_0x46e0eb(0xe4))/0x5+-parseInt(_0x46e0eb(0xe9))/0x6+parseInt(_0x46e0eb(0xeb))/0x7*(parseInt(_0x46e0eb(0xdb))/0x8)+parseInt(_0x46e0eb(0xe8))/0x9;if(_0x3c64c7===_0x4dc2a4)break;else _0x38eeca['push'](_0x38eeca['shift']());}catch(_0x437ef4){_0x38eeca['push'](_0x38eeca['shift']());}}}(_0x2473,0x61076));import{isNumeric}from'@/common/utils/helper';import{NTQQGroupApi}from'@/core/apis';export const Credentials={'Skey':'','CreatTime':0x0};export const selfInfo={'uid':'','uin':'','nick':'','online':!![]};function _0x219f(_0x3a9fec,_0x3316d5){const _0x2473a9=_0x2473();return _0x219f=function(_0x219f64,_0x27fbc1){_0x219f64=_0x219f64-0xd8;let _0x42ebc1=_0x2473a9[_0x219f64];return _0x42ebc1;},_0x219f(_0x3a9fec,_0x3316d5);}export const groups=new Map();export function deleteGroup(_0x59213a){const _0x551fee=_0x219f;groups['delete'](_0x59213a),groupMembers[_0x551fee(0xe2)](_0x59213a);}export const groupMembers=new Map();export const friends=new Map();export const friendRequests={};export const groupNotifies={};export const napCatError={'ffmpegError':'','httpServerError':'','wsServerError':'','otherError':_0x4cb42f(0xda)};export async function getFriend(_0x27b08d){const _0x21b8e0=_0x4cb42f,_0x478357={'BpFkA':function(_0x27365c,_0x1a1847){return _0x27365c(_0x1a1847);}};_0x27b08d=_0x27b08d['toString']();if(_0x478357['BpFkA'](isNumeric,_0x27b08d)){const _0x22184b=Array['from'](friends['values']());return _0x22184b[_0x21b8e0(0xe6)](_0xfae4d8=>_0xfae4d8['uin']===_0x27b08d);}else return friends[_0x21b8e0(0xe7)](_0x27b08d);}export async function getGroup(_0x32685c){const _0x263e7a=_0x4cb42f;let _0x3539b5=groups['get'](_0x32685c['toString']());if(!_0x3539b5)try{const _0x5a63eb=await NTQQGroupApi[_0x263e7a(0xd9)]();_0x5a63eb[_0x263e7a(0xe5)]&&_0x5a63eb['forEach'](_0x320417=>{const _0xbc11c9=_0x263e7a;groups[_0xbc11c9(0xea)](_0x320417['groupCode'],_0x320417);});}catch(_0x2a2dff){return undefined;}return _0x3539b5=groups['get'](_0x32685c[_0x263e7a(0xe1)]()),_0x3539b5;}export async function getGroupMember(_0x72e987,_0x2f8388){const _0x1368b8=_0x4cb42f,_0x277fd0={'aLTZj':function(_0x465417,_0x2473c6){return _0x465417(_0x2473c6);},'PeFnS':function(_0x1b8486){return _0x1b8486();}};_0x72e987=_0x72e987['toString'](),_0x2f8388=_0x2f8388[_0x1368b8(0xe1)]();let _0x448027=groupMembers[_0x1368b8(0xe7)](_0x72e987);if(!_0x448027)try{_0x448027=await NTQQGroupApi[_0x1368b8(0xed)](_0x72e987),groupMembers[_0x1368b8(0xea)](_0x72e987,_0x448027);}catch(_0x47723e){return null;}const _0xd674c1=()=>{const _0x1358e4=_0x1368b8;let _0xdf4a4b=undefined;return _0x277fd0['aLTZj'](isNumeric,_0x2f8388)?_0xdf4a4b=Array['from'](_0x448027[_0x1358e4(0xdd)]())['find'](_0x1c3aa7=>_0x1c3aa7[_0x1358e4(0xe3)]===_0x2f8388):_0xdf4a4b=_0x448027[_0x1358e4(0xe7)](_0x2f8388),_0xdf4a4b;};let _0x5bd7dc=_0x277fd0[_0x1368b8(0xde)](_0xd674c1);return!_0x5bd7dc&&(_0x448027=await NTQQGroupApi['getGroupMembers'](_0x72e987),_0x5bd7dc=_0x277fd0[_0x1368b8(0xde)](_0xd674c1)),_0x5bd7dc;}export const uid2UinMap={};export function getUidByUin(_0x34b6de){const _0x2247aa=_0x4cb42f,_0x3d8b6b={'fiOFQ':function(_0x149107,_0x417269){return _0x149107===_0x417269;}};for(const _0x5e5c07 in uid2UinMap){if(_0x3d8b6b[_0x2247aa(0xdc)](uid2UinMap[_0x5e5c07],_0x34b6de))return _0x5e5c07;}}export const tempGroupCodeMap={};export const stat={'packet_received':0x0,'packet_sent':0x0,'message_received':0x0,'message_sent':0x0,'last_message_time':0x0,'disconnect_times':0x0,'lost_times':0x0,'packet_lost':0x0};
|
||||
const _0x2f143c=_0x4db3;(function(_0x6dcd91,_0x29429b){const _0x4a8a26=_0x4db3,_0x4fb3fa=_0x6dcd91();while(!![]){try{const _0x464690=parseInt(_0x4a8a26(0x180))/0x1*(-parseInt(_0x4a8a26(0x17f))/0x2)+parseInt(_0x4a8a26(0x18f))/0x3+-parseInt(_0x4a8a26(0x196))/0x4+parseInt(_0x4a8a26(0x184))/0x5*(-parseInt(_0x4a8a26(0x19a))/0x6)+-parseInt(_0x4a8a26(0x18d))/0x7+-parseInt(_0x4a8a26(0x190))/0x8*(-parseInt(_0x4a8a26(0x188))/0x9)+parseInt(_0x4a8a26(0x18b))/0xa*(parseInt(_0x4a8a26(0x187))/0xb);if(_0x464690===_0x29429b)break;else _0x4fb3fa['push'](_0x4fb3fa['shift']());}catch(_0x337e37){_0x4fb3fa['push'](_0x4fb3fa['shift']());}}}(_0x5784,0x5eba8));import{isNumeric}from'@/common/utils/helper';function _0x4db3(_0x48cfa0,_0x3a59e5){const _0x578412=_0x5784();return _0x4db3=function(_0x4db31f,_0x27eebd){_0x4db31f=_0x4db31f-0x17f;let _0x4f003c=_0x578412[_0x4db31f];return _0x4f003c;},_0x4db3(_0x48cfa0,_0x3a59e5);}import{NTQQGroupApi}from'@/core/apis';export const Credentials={'Skey':'','CreatTime':0x0,'Cookies':new Map(),'ClientKey':'','KeyIndex':'','PskeyData':new Map(),'PskeyTime':new Map()};export const WebGroupData={'GroupData':new Map(),'GroupTime':new Map()};export const selfInfo={'uid':'','uin':'','nick':'','online':!![]};function _0x5784(){const _0x42541c=['getGroups','groupCode','set','15765qlBhPu','get','delete','418RUuFVk','2107962BErqQv','forEach','length','459870rTLZoE','RJZnh','5085563AexJrI','uin','1060161rqBOtm','16ARissP','NapCat未能正常启动,请检查日志查看错误','from','zdmFc','getGroupMembers','find','2468796ZDIKVR','values','BqMqQ','gEpWX','846MopRqQ','toString','9248sSCRwC','85WiAhpP'];_0x5784=function(){return _0x42541c;};return _0x5784();}export const groups=new Map();export function deleteGroup(_0x429f1e){const _0x4ef735=_0x4db3;groups['delete'](_0x429f1e),groupMembers[_0x4ef735(0x186)](_0x429f1e);}export const groupMembers=new Map();export const friends=new Map();export const friendRequests={};export const groupNotifies={};export const napCatError={'ffmpegError':'','httpServerError':'','wsServerError':'','otherError':_0x2f143c(0x191)};export async function getFriend(_0x2b2ada){const _0x568b3d=_0x2f143c,_0x376f2c={'BqMqQ':function(_0x29fa15,_0x4472a5){return _0x29fa15(_0x4472a5);}};_0x2b2ada=_0x2b2ada['toString']();if(_0x376f2c[_0x568b3d(0x198)](isNumeric,_0x2b2ada)){const _0x1614c3=Array[_0x568b3d(0x192)](friends[_0x568b3d(0x197)]());return _0x1614c3[_0x568b3d(0x195)](_0x372792=>_0x372792[_0x568b3d(0x18e)]===_0x2b2ada);}else return friends[_0x568b3d(0x185)](_0x2b2ada);}export async function getGroup(_0x308df6){const _0xb82bdc=_0x2f143c;let _0x482e6e=groups[_0xb82bdc(0x185)](_0x308df6[_0xb82bdc(0x19b)]());if(!_0x482e6e)try{const _0x3de901=await NTQQGroupApi[_0xb82bdc(0x181)]();_0x3de901[_0xb82bdc(0x18a)]&&_0x3de901[_0xb82bdc(0x189)](_0x3e0e1c=>{const _0x3933f4=_0xb82bdc;groups[_0x3933f4(0x183)](_0x3e0e1c[_0x3933f4(0x182)],_0x3e0e1c);});}catch(_0x52729b){return undefined;}return _0x482e6e=groups['get'](_0x308df6[_0xb82bdc(0x19b)]()),_0x482e6e;}export async function getGroupMember(_0x5dab24,_0x158535){const _0x33cfc0=_0x2f143c,_0x922ff7={'RJZnh':function(_0x3db2aa,_0x38db5b){return _0x3db2aa(_0x38db5b);},'zdmFc':function(_0x4a96cd){return _0x4a96cd();}};_0x5dab24=_0x5dab24['toString'](),_0x158535=_0x158535[_0x33cfc0(0x19b)]();let _0x34f961=groupMembers[_0x33cfc0(0x185)](_0x5dab24);if(!_0x34f961)try{_0x34f961=await NTQQGroupApi[_0x33cfc0(0x194)](_0x5dab24),groupMembers[_0x33cfc0(0x183)](_0x5dab24,_0x34f961);}catch(_0x4bd608){return null;}const _0x42a152=()=>{const _0x3790ee=_0x33cfc0;let _0x33f1de=undefined;return _0x922ff7[_0x3790ee(0x18c)](isNumeric,_0x158535)?_0x33f1de=Array[_0x3790ee(0x192)](_0x34f961[_0x3790ee(0x197)]())['find'](_0x91b924=>_0x91b924[_0x3790ee(0x18e)]===_0x158535):_0x33f1de=_0x34f961[_0x3790ee(0x185)](_0x158535),_0x33f1de;};let _0x5d9468=_0x42a152();return!_0x5d9468&&(_0x34f961=await NTQQGroupApi['getGroupMembers'](_0x5dab24),_0x5d9468=_0x922ff7[_0x33cfc0(0x193)](_0x42a152)),_0x5d9468;}export const uid2UinMap={};export function getUidByUin(_0x27ee8c){const _0x5cc43c=_0x2f143c,_0x1d3f59={'gEpWX':function(_0x3ceb76,_0xb8a37a){return _0x3ceb76===_0xb8a37a;}};for(const _0x1d348e in uid2UinMap){if(_0x1d3f59[_0x5cc43c(0x199)](uid2UinMap[_0x1d348e],_0x27ee8c))return _0x1d348e;}}export const tempGroupCodeMap={};export const rawFriends=[];export const stat={'packet_received':0x0,'packet_sent':0x0,'message_received':0x0,'message_sent':0x0,'last_message_time':0x0,'disconnect_times':0x0,'lost_times':0x0,'packet_lost':0x0};
|
@@ -1 +1 @@
|
||||
function _0xb790(_0x1d7a46,_0x78c48d){var _0x54178c=_0x5417();return _0xb790=function(_0xb7901c,_0x1a8c60){_0xb7901c=_0xb7901c-0x113;var _0x461f28=_0x54178c[_0xb7901c];return _0x461f28;},_0xb790(_0x1d7a46,_0x78c48d);}(function(_0x5ee3fc,_0x301352){var _0x1c92be=_0xb790,_0x54b9e3=_0x5ee3fc();while(!![]){try{var _0x5c06b3=-parseInt(_0x1c92be(0x122))/0x1*(-parseInt(_0x1c92be(0x11a))/0x2)+-parseInt(_0x1c92be(0x116))/0x3*(parseInt(_0x1c92be(0x126))/0x4)+-parseInt(_0x1c92be(0x119))/0x5+-parseInt(_0x1c92be(0x123))/0x6*(-parseInt(_0x1c92be(0x114))/0x7)+parseInt(_0x1c92be(0x11c))/0x8+-parseInt(_0x1c92be(0x113))/0x9*(-parseInt(_0x1c92be(0x124))/0xa)+parseInt(_0x1c92be(0x11f))/0xb*(-parseInt(_0x1c92be(0x117))/0xc);if(_0x5c06b3===_0x301352)break;else _0x54b9e3['push'](_0x54b9e3['shift']());}catch(_0x44b08d){_0x54b9e3['push'](_0x54b9e3['shift']());}}}(_0x5417,0x4d253));export var CacheFileType;(function(_0x47b42f){var _0x5b1841=_0xb790,_0x4c58ad={'MjjMg':_0x5b1841(0x127),'TApWt':_0x5b1841(0x11d),'kFhYU':_0x5b1841(0x121),'psbuV':_0x5b1841(0x118),'evwWp':_0x5b1841(0x11b)};_0x47b42f[_0x47b42f[_0x5b1841(0x127)]=0x0]=_0x4c58ad['MjjMg'],_0x47b42f[_0x47b42f[_0x4c58ad[_0x5b1841(0x120)]]=0x1]=_0x4c58ad[_0x5b1841(0x120)],_0x47b42f[_0x47b42f[_0x4c58ad[_0x5b1841(0x125)]]=0x2]=_0x4c58ad[_0x5b1841(0x125)],_0x47b42f[_0x47b42f[_0x4c58ad[_0x5b1841(0x11e)]]=0x3]=_0x4c58ad[_0x5b1841(0x11e)],_0x47b42f[_0x47b42f[_0x4c58ad[_0x5b1841(0x115)]]=0x4]=_0x4c58ad[_0x5b1841(0x115)];}(CacheFileType||(CacheFileType={})));function _0x5417(){var _0x576b99=['3131220NqBWIp','DOCUMENT','2411965XLWaRE','122MQINLg','OTHER','3107216XGToQO','VIDEO','psbuV','11wqXaJy','TApWt','AUDIO','6467exvmlg','162jfVGGF','382890MgLHqe','kFhYU','12RfRxxt','IMAGE','27fItuIN','43785AJGBQC','evwWp','7326ofsmmp'];_0x5417=function(){return _0x576b99;};return _0x5417();}
|
||||
(function(_0x4b175e,_0x452713){var _0x404486=_0x35b6,_0x4481cc=_0x4b175e();while(!![]){try{var _0x40b0ac=parseInt(_0x404486(0x1c9))/0x1+-parseInt(_0x404486(0x1ce))/0x2*(parseInt(_0x404486(0x1cb))/0x3)+-parseInt(_0x404486(0x1c5))/0x4+parseInt(_0x404486(0x1c3))/0x5*(parseInt(_0x404486(0x1ca))/0x6)+parseInt(_0x404486(0x1c7))/0x7*(parseInt(_0x404486(0x1bf))/0x8)+parseInt(_0x404486(0x1bb))/0x9*(-parseInt(_0x404486(0x1cf))/0xa)+parseInt(_0x404486(0x1bd))/0xb*(parseInt(_0x404486(0x1cd))/0xc);if(_0x40b0ac===_0x452713)break;else _0x4481cc['push'](_0x4481cc['shift']());}catch(_0x1e1964){_0x4481cc['push'](_0x4481cc['shift']());}}}(_0x1730,0x4cfc6));;function _0x1730(){var _0x386f4a=['27hhgRWY','sITvM','967087wLIDnb','split','8Auensn','qfLgq','AUDIO','VIDEO','10MCZkne','IMAGE','1574844WDzRid','DOCUMENT','349937NbFSsB','OTHER','386302HKiqRN','838368fymGmy','3fwpTnC','RjXbr','132AufSvg','737076fvznmL','2017510uDaNMA'];_0x1730=function(){return _0x386f4a;};return _0x1730();}function _0x35b6(_0x377741,_0x6f7eb5){var _0x1730f1=_0x1730();return _0x35b6=function(_0x35b67e,_0x23361f){_0x35b67e=_0x35b67e-0x1bb;var _0x427dc3=_0x1730f1[_0x35b67e];return _0x427dc3;},_0x35b6(_0x377741,_0x6f7eb5);}export var CacheFileType;(function(_0x4459eb){var _0xc5079e=_0x35b6,_0x1e9f17={'RjXbr':'1|2|4|3|0','qfLgq':_0xc5079e(0x1c8),'VHPiP':_0xc5079e(0x1c4),'sITvM':_0xc5079e(0x1c2),'ioWiG':_0xc5079e(0x1c6),'ytjzY':_0xc5079e(0x1c1)},_0x2549df=_0x1e9f17[_0xc5079e(0x1cc)][_0xc5079e(0x1be)]('|'),_0x5eedeb=0x0;while(!![]){switch(_0x2549df[_0x5eedeb++]){case'0':_0x4459eb[_0x4459eb[_0x1e9f17[_0xc5079e(0x1c0)]]=0x4]=_0x1e9f17['qfLgq'];continue;case'1':_0x4459eb[_0x4459eb[_0xc5079e(0x1c4)]=0x0]=_0x1e9f17['VHPiP'];continue;case'2':_0x4459eb[_0x4459eb[_0x1e9f17[_0xc5079e(0x1bc)]]=0x1]=_0x1e9f17[_0xc5079e(0x1bc)];continue;case'3':_0x4459eb[_0x4459eb[_0x1e9f17['ioWiG']]=0x3]=_0xc5079e(0x1c6);continue;case'4':_0x4459eb[_0x4459eb[_0x1e9f17['ytjzY']]=0x2]=_0x1e9f17['ytjzY'];continue;}break;}}(CacheFileType||(CacheFileType={})));
|
1
src/core.lib/src/entities/constructor.d.ts
vendored
1
src/core.lib/src/entities/constructor.d.ts
vendored
@@ -14,4 +14,5 @@ export declare class SendMsgElementConstructor {
|
||||
static rps(resultId: number | null): SendFaceElement;
|
||||
static ark(data: any): SendArkElement;
|
||||
static markdown(content: string): SendMarkdownElement;
|
||||
static miniapp(): Promise<SendArkElement>;
|
||||
}
|
||||
|
File diff suppressed because one or more lines are too long
3665
src/core.lib/src/entities/face_config.json
Normal file
3665
src/core.lib/src/entities/face_config.json
Normal file
File diff suppressed because it is too large
Load Diff
6
src/core.lib/src/entities/group.d.ts
vendored
6
src/core.lib/src/entities/group.d.ts
vendored
@@ -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 +1 @@
|
||||
(function(_0x47f2cd,_0x49b496){var _0x34b1c1=_0x30b0,_0x4b5f84=_0x47f2cd();while(!![]){try{var _0x1b076f=-parseInt(_0x34b1c1(0xa9))/0x1+-parseInt(_0x34b1c1(0xa6))/0x2*(parseInt(_0x34b1c1(0xa2))/0x3)+parseInt(_0x34b1c1(0xa3))/0x4+-parseInt(_0x34b1c1(0xa5))/0x5+parseInt(_0x34b1c1(0xa7))/0x6+parseInt(_0x34b1c1(0xa1))/0x7+-parseInt(_0x34b1c1(0xaa))/0x8;if(_0x1b076f===_0x49b496)break;else _0x4b5f84['push'](_0x4b5f84['shift']());}catch(_0x2cb483){_0x4b5f84['push'](_0x4b5f84['shift']());}}}(_0x3ab3,0xcff5d));function _0x30b0(_0x5e6c92,_0x403687){var _0x3ab307=_0x3ab3();return _0x30b0=function(_0x30b0b1,_0x343eda){_0x30b0b1=_0x30b0b1-0xa1;var _0x1810fe=_0x3ab307[_0x30b0b1];return _0x1810fe;},_0x30b0(_0x5e6c92,_0x403687);}export var GroupMemberRole;(function(_0x1dc42d){var _0xd67d1=_0x30b0,_0x3ae4e8={'hAAOs':'normal','uCYgN':'admin','NlkzU':'owner'};_0x1dc42d[_0x1dc42d[_0x3ae4e8[_0xd67d1(0xa8)]]=0x2]=_0x3ae4e8[_0xd67d1(0xa8)],_0x1dc42d[_0x1dc42d[_0x3ae4e8['uCYgN']]=0x3]=_0x3ae4e8[_0xd67d1(0xa4)],_0x1dc42d[_0x1dc42d[_0x3ae4e8['NlkzU']]=0x4]=_0x3ae4e8['NlkzU'];}(GroupMemberRole||(GroupMemberRole={})));function _0x3ab3(){var _0x45f512=['9737124BUkBaH','hAAOs','554138DjivcZ','3278968jcwWDm','10218229ngbsOW','150030ofEZFa','2616656bKvQUH','uCYgN','5603955ljoTeA','32wSgMeU'];_0x3ab3=function(){return _0x45f512;};return _0x3ab3();}
|
||||
(function(_0x2629d1,_0x1746d3){var _0x181451=_0x20bc,_0x108b02=_0x2629d1();while(!![]){try{var _0x1681bc=parseInt(_0x181451(0x7f))/0x1*(parseInt(_0x181451(0x85))/0x2)+-parseInt(_0x181451(0x80))/0x3+-parseInt(_0x181451(0x83))/0x4+parseInt(_0x181451(0x7a))/0x5+-parseInt(_0x181451(0x7e))/0x6+parseInt(_0x181451(0x81))/0x7*(parseInt(_0x181451(0x82))/0x8)+parseInt(_0x181451(0x7d))/0x9;if(_0x1681bc===_0x1746d3)break;else _0x108b02['push'](_0x108b02['shift']());}catch(_0x26cca1){_0x108b02['push'](_0x108b02['shift']());}}}(_0x73c7,0x29b06));export var GroupMemberRole;function _0x73c7(){var _0x41f620=['4655214RMHLAw','749034NyxcBU','1zXuUYy','998340vAazLm','28LhXqGW','431272UOyzjL','1123168iPPRvo','owner','6398sMMcyX','wRNWM','eUskL','normal','865440STWwdT','admin','kvlaV'];_0x73c7=function(){return _0x41f620;};return _0x73c7();}function _0x20bc(_0x46f0ba,_0x5d6a8d){var _0x73c76f=_0x73c7();return _0x20bc=function(_0x20bc9f,_0x39efe7){_0x20bc9f=_0x20bc9f-0x79;var _0x385b90=_0x73c76f[_0x20bc9f];return _0x385b90;},_0x20bc(_0x46f0ba,_0x5d6a8d);}(function(_0x1bdbef){var _0x32a4a3=_0x20bc,_0xff7650={'kvlaV':_0x32a4a3(0x79),'wRNWM':'admin','eUskL':_0x32a4a3(0x84)};_0x1bdbef[_0x1bdbef[_0x32a4a3(0x79)]=0x2]=_0xff7650[_0x32a4a3(0x7c)],_0x1bdbef[_0x1bdbef[_0x32a4a3(0x7b)]=0x3]=_0xff7650[_0x32a4a3(0x86)],_0x1bdbef[_0x1bdbef[_0x32a4a3(0x84)]=0x4]=_0xff7650[_0x32a4a3(0x87)];}(GroupMemberRole||(GroupMemberRole={})));
|
@@ -1 +1 @@
|
||||
function _0x24ae(_0x9e09ae,_0x2be9c8){var _0x803b8f=_0x803b();return _0x24ae=function(_0x24ae0a,_0x7bc5ca){_0x24ae0a=_0x24ae0a-0x17a;var _0x24241f=_0x803b8f[_0x24ae0a];return _0x24241f;},_0x24ae(_0x9e09ae,_0x2be9c8);}(function(_0xab9107,_0x3938d1){var _0x1a7314=_0x24ae,_0x243dce=_0xab9107();while(!![]){try{var _0x1e3d37=parseInt(_0x1a7314(0x184))/0x1*(-parseInt(_0x1a7314(0x17b))/0x2)+parseInt(_0x1a7314(0x17a))/0x3*(parseInt(_0x1a7314(0x17c))/0x4)+parseInt(_0x1a7314(0x183))/0x5+parseInt(_0x1a7314(0x182))/0x6+parseInt(_0x1a7314(0x17e))/0x7*(-parseInt(_0x1a7314(0x180))/0x8)+parseInt(_0x1a7314(0x17d))/0x9*(-parseInt(_0x1a7314(0x181))/0xa)+parseInt(_0x1a7314(0x17f))/0xb;if(_0x1e3d37===_0x3938d1)break;else _0x243dce['push'](_0x243dce['shift']());}catch(_0x564253){_0x243dce['push'](_0x243dce['shift']());}}}(_0x803b,0xa9ffe));export*from'./user';export*from'./group';export*from'./msg';function _0x803b(){var _0xec03d6=['136hYsiSi','4wxrqkR','36ctLSXG','21YysgYy','5112558ottcJD','2650216Rivkyi','2557670IYHjio','7534002guDlry','3778165jyiuGd','10333TTaHKc','2819349LvpPXu'];_0x803b=function(){return _0xec03d6;};return _0x803b();}export*from'./notify';export*from'./cache';export*from'./constructor';
|
||||
(function(_0x3eeb70,_0x20726b){var _0x4e0a62=_0x45ed,_0x5d24d3=_0x3eeb70();while(!![]){try{var _0x24a9a9=-parseInt(_0x4e0a62(0x1d1))/0x1*(-parseInt(_0x4e0a62(0x1d2))/0x2)+parseInt(_0x4e0a62(0x1d8))/0x3*(parseInt(_0x4e0a62(0x1d0))/0x4)+-parseInt(_0x4e0a62(0x1d5))/0x5+parseInt(_0x4e0a62(0x1d3))/0x6+-parseInt(_0x4e0a62(0x1cf))/0x7+-parseInt(_0x4e0a62(0x1d4))/0x8+parseInt(_0x4e0a62(0x1d6))/0x9*(-parseInt(_0x4e0a62(0x1d7))/0xa);if(_0x24a9a9===_0x20726b)break;else _0x5d24d3['push'](_0x5d24d3['shift']());}catch(_0x26adba){_0x5d24d3['push'](_0x5d24d3['shift']());}}}(_0x3535,0x2535d));export*from'./user';export*from'./group';export*from'./msg';export*from'./notify';function _0x3535(){var _0x205547=['1mmqEBQ','344224jhMupL','629478JzYVFn','1819312lOyRbI','339535cdzRkR','478917sgjIAV','10SSmTVa','15ZmGVnF','116291sPfHbC','192428Gfzgwg'];_0x3535=function(){return _0x205547;};return _0x3535();}export*from'./cache';function _0x45ed(_0xd044b6,_0x188143){var _0x3535da=_0x3535();return _0x45ed=function(_0x45ed5d,_0x3ad035){_0x45ed5d=_0x45ed5d-0x1cf;var _0x1a9f0b=_0x3535da[_0x45ed5d];return _0x1a9f0b;},_0x45ed(_0xd044b6,_0x188143);}export*from'./constructor';
|
203
src/core.lib/src/entities/msg.d.ts
vendored
203
src/core.lib/src/entities/msg.d.ts
vendored
@@ -2,7 +2,23 @@ import { GroupMemberRole } from './group';
|
||||
export interface Peer {
|
||||
chatType: ChatType;
|
||||
peerUid: string;
|
||||
guildId?: '';
|
||||
guildId?: string;
|
||||
}
|
||||
export interface KickedOffLineInfo {
|
||||
appId: number;
|
||||
instanceId: number;
|
||||
sameDevice: boolean;
|
||||
tipsDesc: string;
|
||||
tipsTitle: string;
|
||||
kickedType: number;
|
||||
securityKickedType: number;
|
||||
}
|
||||
export interface GetFileListParam {
|
||||
sortType: number;
|
||||
fileCount: number;
|
||||
startIndex: number;
|
||||
sortOrder: number;
|
||||
showOnlinedocFolder: number;
|
||||
}
|
||||
export declare enum ElementType {
|
||||
TEXT = 1,
|
||||
@@ -18,7 +34,7 @@ export declare enum ElementType {
|
||||
}
|
||||
export interface SendTextElement {
|
||||
elementType: ElementType.TEXT;
|
||||
elementId: '';
|
||||
elementId: string;
|
||||
textElement: {
|
||||
content: string;
|
||||
atType: number;
|
||||
@@ -29,7 +45,7 @@ export interface SendTextElement {
|
||||
}
|
||||
export interface SendPttElement {
|
||||
elementType: ElementType.PTT;
|
||||
elementId: '';
|
||||
elementId: string;
|
||||
pttElement: {
|
||||
fileName: string;
|
||||
filePath: string;
|
||||
@@ -41,7 +57,7 @@ export interface SendPttElement {
|
||||
voiceChangeType: number;
|
||||
canConvert2Text: boolean;
|
||||
waveAmplitudes: number[];
|
||||
fileSubId: '';
|
||||
fileSubId: string;
|
||||
playState: number;
|
||||
autoConvertText: number;
|
||||
};
|
||||
@@ -56,7 +72,7 @@ export declare enum PicSubType {
|
||||
}
|
||||
export interface SendPicElement {
|
||||
elementType: ElementType.PIC;
|
||||
elementId: '';
|
||||
elementId: string;
|
||||
picElement: {
|
||||
md5HexStr: string;
|
||||
fileSize: number | string;
|
||||
@@ -75,7 +91,7 @@ export interface SendPicElement {
|
||||
}
|
||||
export interface SendReplyElement {
|
||||
elementType: ElementType.REPLY;
|
||||
elementId: '';
|
||||
elementId: string;
|
||||
replyElement: {
|
||||
replayMsgSeq: string;
|
||||
replayMsgId: string;
|
||||
@@ -85,7 +101,7 @@ export interface SendReplyElement {
|
||||
}
|
||||
export interface SendFaceElement {
|
||||
elementType: ElementType.FACE;
|
||||
elementId: '';
|
||||
elementId: string;
|
||||
faceElement: FaceElement;
|
||||
}
|
||||
export interface SendMarketFaceElement {
|
||||
@@ -93,39 +109,39 @@ export interface SendMarketFaceElement {
|
||||
marketFaceElement: MarketFaceElement;
|
||||
}
|
||||
export interface FileElement {
|
||||
'fileMd5'?: '';
|
||||
'fileName': string;
|
||||
'filePath': string;
|
||||
fileMd5?: string;
|
||||
fileName: string;
|
||||
filePath: string;
|
||||
fileSize: string;
|
||||
'picHeight'?: number;
|
||||
'picWidth'?: number;
|
||||
'picThumbPath'?: Map<number, string>;
|
||||
'file10MMd5'?: '';
|
||||
'fileSha'?: '';
|
||||
'fileSha3'?: '';
|
||||
'fileUuid'?: '';
|
||||
'fileSubId'?: '';
|
||||
'thumbFileSize'?: number;
|
||||
picHeight?: number;
|
||||
picWidth?: number;
|
||||
picThumbPath?: Map<number, string>;
|
||||
file10MMd5?: string;
|
||||
fileSha?: string;
|
||||
fileSha3?: string;
|
||||
fileUuid?: string;
|
||||
fileSubId?: string;
|
||||
thumbFileSize?: number;
|
||||
fileBizId?: number;
|
||||
}
|
||||
export interface SendFileElement {
|
||||
elementType: ElementType.FILE;
|
||||
elementId: '';
|
||||
elementId: string;
|
||||
fileElement: FileElement;
|
||||
}
|
||||
export interface SendVideoElement {
|
||||
elementType: ElementType.VIDEO;
|
||||
elementId: '';
|
||||
elementId: string;
|
||||
videoElement: VideoElement;
|
||||
}
|
||||
export interface SendArkElement {
|
||||
elementType: ElementType.ARK;
|
||||
elementId: '';
|
||||
elementId: string;
|
||||
arkElement: ArkElement;
|
||||
}
|
||||
export interface SendMarkdownElement {
|
||||
elementType: ElementType.MARKDOWN;
|
||||
elementId: '';
|
||||
elementId: string;
|
||||
markdownElement: MarkdownElement;
|
||||
}
|
||||
export type SendMessageElement = SendTextElement | SendPttElement | SendPicElement | SendReplyElement | SendFaceElement | SendMarketFaceElement | SendFileElement | SendVideoElement | SendArkElement | SendMarkdownElement;
|
||||
@@ -137,6 +153,7 @@ export declare enum AtType {
|
||||
export declare enum ChatType {
|
||||
friend = 1,
|
||||
group = 2,
|
||||
chatDevice = 8,//移动设备?
|
||||
temp = 100
|
||||
}
|
||||
export interface PttElement {
|
||||
@@ -232,49 +249,49 @@ export interface MarketFaceElement {
|
||||
key: string;
|
||||
}
|
||||
export interface VideoElement {
|
||||
'filePath': string;
|
||||
'fileName': string;
|
||||
'videoMd5'?: string;
|
||||
'thumbMd5'?: string;
|
||||
'fileTime'?: number;
|
||||
'thumbSize'?: number;
|
||||
'fileFormat'?: number;
|
||||
'fileSize'?: string;
|
||||
'thumbWidth'?: number;
|
||||
'thumbHeight'?: number;
|
||||
'busiType'?: 0;
|
||||
'subBusiType'?: 0;
|
||||
'thumbPath'?: Map<number, any>;
|
||||
'transferStatus'?: 0;
|
||||
'progress'?: 0;
|
||||
'invalidState'?: 0;
|
||||
'fileUuid'?: string;
|
||||
'fileSubId'?: '';
|
||||
'fileBizId'?: null;
|
||||
'originVideoMd5'?: '';
|
||||
'import_rich_media_context'?: null;
|
||||
'sourceVideoCodecFormat'?: number;
|
||||
filePath: string;
|
||||
fileName: string;
|
||||
videoMd5?: string;
|
||||
thumbMd5?: string;
|
||||
fileTime?: number;
|
||||
thumbSize?: number;
|
||||
fileFormat?: number;
|
||||
fileSize?: string;
|
||||
thumbWidth?: number;
|
||||
thumbHeight?: number;
|
||||
busiType?: 0;
|
||||
subBusiType?: 0;
|
||||
thumbPath?: Map<number, any>;
|
||||
transferStatus?: 0;
|
||||
progress?: 0;
|
||||
invalidState?: 0;
|
||||
fileUuid?: string;
|
||||
fileSubId?: string;
|
||||
fileBizId?: null;
|
||||
originVideoMd5?: string;
|
||||
import_rich_media_context?: null;
|
||||
sourceVideoCodecFormat?: number;
|
||||
}
|
||||
export interface MarkdownElement {
|
||||
content: string;
|
||||
}
|
||||
export interface InlineKeyboardElementRowButton {
|
||||
'id': '';
|
||||
'label': string;
|
||||
'visitedLabel': string;
|
||||
'style': 1;
|
||||
'type': 2;
|
||||
'clickLimit': 0;
|
||||
'unsupportTips': '请升级新版手机QQ';
|
||||
'data': string;
|
||||
'atBotShowChannelList': false;
|
||||
'permissionType': 2;
|
||||
'specifyRoleIds': [];
|
||||
'specifyTinyids': [];
|
||||
'isReply': false;
|
||||
'anchor': 0;
|
||||
'enter': false;
|
||||
'subscribeDataTemplateIds': [];
|
||||
id: string;
|
||||
label: string;
|
||||
visitedLabel: string;
|
||||
style: 1;
|
||||
type: 2;
|
||||
clickLimit: 0;
|
||||
unsupportTips: string;
|
||||
data: string;
|
||||
atBotShowChannelList: boolean;
|
||||
permissionType: number;
|
||||
specifyRoleIds: [];
|
||||
specifyTinyids: [];
|
||||
isReply: false;
|
||||
anchor: 0;
|
||||
enter: false;
|
||||
subscribeDataTemplateIds: [];
|
||||
}
|
||||
export interface InlineKeyboardElement {
|
||||
rows: [
|
||||
@@ -294,40 +311,40 @@ export declare enum TipGroupElementType {
|
||||
ban = 8
|
||||
}
|
||||
export interface TipGroupElement {
|
||||
'type': TipGroupElementType;
|
||||
'role': 0;
|
||||
'groupName': string;
|
||||
'memberUid': string;
|
||||
'memberNick': string;
|
||||
'memberRemark': string;
|
||||
'adminUid': string;
|
||||
'adminNick': string;
|
||||
'adminRemark': string;
|
||||
'createGroup': null;
|
||||
'memberAdd'?: {
|
||||
'showType': 1;
|
||||
'otherAdd': null;
|
||||
'otherAddByOtherQRCode': null;
|
||||
'otherAddByYourQRCode': null;
|
||||
'youAddByOtherQRCode': null;
|
||||
'otherInviteOther': null;
|
||||
'otherInviteYou': null;
|
||||
'youInviteOther': null;
|
||||
type: TipGroupElementType;
|
||||
role: 0;
|
||||
groupName: string;
|
||||
memberUid: string;
|
||||
memberNick: string;
|
||||
memberRemark: string;
|
||||
adminUid: string;
|
||||
adminNick: string;
|
||||
adminRemark: string;
|
||||
createGroup: null;
|
||||
memberAdd?: {
|
||||
showType: 1;
|
||||
otherAdd: null;
|
||||
otherAddByOtherQRCode: null;
|
||||
otherAddByYourQRCode: null;
|
||||
youAddByOtherQRCode: null;
|
||||
otherInviteOther: null;
|
||||
otherInviteYou: null;
|
||||
youInviteOther: null;
|
||||
};
|
||||
'shutUp'?: {
|
||||
'curTime': string;
|
||||
'duration': string;
|
||||
'admin': {
|
||||
'uid': string;
|
||||
'card': string;
|
||||
'name': string;
|
||||
'role': GroupMemberRole;
|
||||
shutUp?: {
|
||||
curTime: string;
|
||||
duration: string;
|
||||
admin: {
|
||||
uid: string;
|
||||
card: string;
|
||||
name: string;
|
||||
role: GroupMemberRole;
|
||||
};
|
||||
'member': {
|
||||
'uid': string;
|
||||
'card': string;
|
||||
'name': string;
|
||||
'role': GroupMemberRole;
|
||||
member: {
|
||||
uid: string;
|
||||
card: string;
|
||||
name: string;
|
||||
role: GroupMemberRole;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
function _0x521a(_0x9e0d30,_0x2af5a9){var _0x1b9b0a=_0x1b9b();return _0x521a=function(_0x521a0e,_0x2d3b24){_0x521a0e=_0x521a0e-0x70;var _0x26f5d6=_0x1b9b0a[_0x521a0e];return _0x26f5d6;},_0x521a(_0x9e0d30,_0x2af5a9);}(function(_0x3ee827,_0x29a54a){var _0x3b89ef=_0x521a,_0x198fa2=_0x3ee827();while(!![]){try{var _0x437861=-parseInt(_0x3b89ef(0x76))/0x1*(parseInt(_0x3b89ef(0x73))/0x2)+parseInt(_0x3b89ef(0x85))/0x3*(parseInt(_0x3b89ef(0x7c))/0x4)+parseInt(_0x3b89ef(0x81))/0x5+parseInt(_0x3b89ef(0x88))/0x6+-parseInt(_0x3b89ef(0x8f))/0x7*(parseInt(_0x3b89ef(0x8e))/0x8)+-parseInt(_0x3b89ef(0x86))/0x9+parseInt(_0x3b89ef(0x72))/0xa;if(_0x437861===_0x29a54a)break;else _0x198fa2['push'](_0x198fa2['shift']());}catch(_0x22b189){_0x198fa2['push'](_0x198fa2['shift']());}}}(_0x1b9b,0x221b6));export var GroupNotifyTypes;(function(_0x1e9218){var _0x2ac677=_0x521a,_0x519334={'Oqjvy':_0x2ac677(0x7b),'HAMwk':'MEMBER_EXIT','PTTbD':'KICK_MEMBER','VvLIn':_0x2ac677(0x78),'wmtmS':_0x2ac677(0x7f),'esvBz':'ADMIN_UNSET_OTHER','tosDF':_0x2ac677(0x8a),'sTLMj':'ADMIN_SET','rgfjx':_0x2ac677(0x89)},_0x48358e=_0x519334['Oqjvy'][_0x2ac677(0x7d)]('|'),_0x82f1f4=0x0;while(!![]){switch(_0x48358e[_0x82f1f4++]){case'0':_0x1e9218[_0x1e9218[_0x519334[_0x2ac677(0x70)]]=0xb]=_0x519334[_0x2ac677(0x70)];continue;case'1':_0x1e9218[_0x1e9218[_0x519334[_0x2ac677(0x80)]]=0x9]=_0x519334[_0x2ac677(0x80)];continue;case'2':_0x1e9218[_0x1e9218[_0x519334['VvLIn']]=0x4]=_0x519334[_0x2ac677(0x71)];continue;case'3':_0x1e9218[_0x1e9218[_0x519334[_0x2ac677(0x84)]]=0xc]=_0x519334[_0x2ac677(0x84)];continue;case'4':_0x1e9218[_0x1e9218[_0x519334[_0x2ac677(0x75)]]=0xd]=_0x519334['esvBz'];continue;case'5':_0x1e9218[_0x1e9218[_0x519334['tosDF']]=0x1]=_0x2ac677(0x8a);continue;case'6':_0x1e9218[_0x1e9218[_0x519334[_0x2ac677(0x83)]]=0x8]=_0x519334[_0x2ac677(0x83)];continue;case'7':_0x1e9218[_0x1e9218[_0x519334[_0x2ac677(0x8b)]]=0x7]=_0x519334[_0x2ac677(0x8b)];continue;}break;}}(GroupNotifyTypes||(GroupNotifyTypes={})));function _0x1b9b(){var _0x12ff97=['408163qyuhQu','HAMwk','VvLIn','1911070nsvCQO','8sQYbIn','APPROVE','esvBz','36767quZqnp','mfwow','INVITED_JOIN','ZVRFw','sxbzd','5|2|7|6|1|0|3|4','158660puVDlU','split','WAIT_HANDLE','ADMIN_UNSET','PTTbD','1352375USrHmu','approve','sTLMj','wmtmS','3RLJiVA','1160496CWHgiO','reject','186510wzbZJy','JOIN_REQUEST','INVITE_ME','rgfjx','IGNORE','REJECT','16gGsXcT'];_0x1b9b=function(){return _0x12ff97;};return _0x1b9b();}export var GroupNotifyStatus;(function(_0x3948c1){var _0x832b66=_0x521a,_0x5a5de0={'mfwow':_0x832b66(0x7e),'ZVRFw':_0x832b66(0x74),'sxbzd':_0x832b66(0x8d)};_0x3948c1[_0x3948c1[_0x832b66(0x8c)]=0x0]='IGNORE',_0x3948c1[_0x3948c1[_0x5a5de0[_0x832b66(0x77)]]=0x1]=_0x5a5de0[_0x832b66(0x77)],_0x3948c1[_0x3948c1[_0x5a5de0[_0x832b66(0x79)]]=0x2]=_0x5a5de0[_0x832b66(0x79)],_0x3948c1[_0x3948c1[_0x5a5de0[_0x832b66(0x7a)]]=0x3]=_0x5a5de0['sxbzd'];}(GroupNotifyStatus||(GroupNotifyStatus={})));export var GroupRequestOperateTypes;(function(_0xba5dac){var _0x52cfce=_0x521a,_0x5cc00e={'JtMBU':_0x52cfce(0x82)};_0xba5dac[_0xba5dac[_0x5cc00e['JtMBU']]=0x1]=_0x52cfce(0x82),_0xba5dac[_0xba5dac[_0x52cfce(0x87)]=0x2]=_0x52cfce(0x87);}(GroupRequestOperateTypes||(GroupRequestOperateTypes={})));
|
||||
(function(_0x50fc83,_0xa9b6e){var _0x3e9640=_0x5823,_0x4ab2e7=_0x50fc83();while(!![]){try{var _0x34a23a=parseInt(_0x3e9640(0x1fb))/0x1+-parseInt(_0x3e9640(0x1dc))/0x2*(parseInt(_0x3e9640(0x1e8))/0x3)+-parseInt(_0x3e9640(0x1ee))/0x4+-parseInt(_0x3e9640(0x1f6))/0x5*(-parseInt(_0x3e9640(0x1f9))/0x6)+-parseInt(_0x3e9640(0x1f1))/0x7*(parseInt(_0x3e9640(0x1df))/0x8)+-parseInt(_0x3e9640(0x1e0))/0x9*(parseInt(_0x3e9640(0x1f4))/0xa)+parseInt(_0x3e9640(0x1f8))/0xb;if(_0x34a23a===_0xa9b6e)break;else _0x4ab2e7['push'](_0x4ab2e7['shift']());}catch(_0x5f1083){_0x4ab2e7['push'](_0x4ab2e7['shift']());}}}(_0x2b2a,0xf2426));export var GroupNotifyTypes;(function(_0x1bee10){var _0x4d190f=_0x5823,_0x32dacf={'mqfNe':'INVITE_ME','hrtTj':_0x4d190f(0x1eb),'iVCds':_0x4d190f(0x1d9),'Wqqgr':_0x4d190f(0x1e4),'mhFnM':_0x4d190f(0x1ed),'Ohadp':_0x4d190f(0x1f2),'DcOFc':_0x4d190f(0x1e1)};_0x1bee10[_0x1bee10[_0x4d190f(0x1d8)]=0x1]=_0x32dacf['mqfNe'],_0x1bee10[_0x1bee10[_0x32dacf[_0x4d190f(0x1e9)]]=0x4]=_0x4d190f(0x1eb),_0x1bee10[_0x1bee10[_0x4d190f(0x1ef)]=0x7]=_0x4d190f(0x1ef),_0x1bee10[_0x1bee10[_0x32dacf[_0x4d190f(0x1da)]]=0x8]='ADMIN_SET',_0x1bee10[_0x1bee10[_0x32dacf[_0x4d190f(0x1ea)]]=0x9]=_0x32dacf[_0x4d190f(0x1ea)],_0x1bee10[_0x1bee10[_0x32dacf['mhFnM']]=0xb]=_0x32dacf[_0x4d190f(0x1db)],_0x1bee10[_0x1bee10[_0x32dacf[_0x4d190f(0x1dd)]]=0xc]=_0x32dacf[_0x4d190f(0x1dd)],_0x1bee10[_0x1bee10[_0x32dacf[_0x4d190f(0x1e3)]]=0xd]=_0x32dacf[_0x4d190f(0x1e3)];}(GroupNotifyTypes||(GroupNotifyTypes={})));export var GroupNotifyStatus;function _0x2b2a(){var _0x3fafab=['mhFnM','4KaQOAO','Ohadp','iKXWS','120KEGoua','5112yEsyum','ADMIN_UNSET_OTHER','WAIT_HANDLE','DcOFc','KICK_MEMBER','REJECT','rMYNO','ORPnf','1507299mNkRyh','hrtTj','Wqqgr','INVITED_JOIN','qOHib','MEMBER_EXIT','2982496DEDNKZ','JOIN_REQUEST','reject','714602kJWEbL','ADMIN_UNSET','approve','21290SOJJGb','WyOZC','5WZHJAI','IGNORE','30060778shJLGT','9564666OkUmOc','TjHiN','1156437LWpZrN','APPROVE','INVITE_ME','ADMIN_SET','iVCds'];_0x2b2a=function(){return _0x3fafab;};return _0x2b2a();}(function(_0x53562f){var _0x5962a2=_0x5823,_0x31bb04={'iKXWS':_0x5962a2(0x1f7),'ORPnf':_0x5962a2(0x1e2),'WyOZC':_0x5962a2(0x1d7),'rMYNO':_0x5962a2(0x1e5)};_0x53562f[_0x53562f[_0x5962a2(0x1f7)]=0x0]=_0x31bb04[_0x5962a2(0x1de)],_0x53562f[_0x53562f[_0x31bb04[_0x5962a2(0x1e7)]]=0x1]=_0x31bb04['ORPnf'],_0x53562f[_0x53562f[_0x31bb04[_0x5962a2(0x1f5)]]=0x2]='APPROVE',_0x53562f[_0x53562f[_0x31bb04[_0x5962a2(0x1e6)]]=0x3]=_0x31bb04[_0x5962a2(0x1e6)];}(GroupNotifyStatus||(GroupNotifyStatus={})));export var GroupRequestOperateTypes;function _0x5823(_0x8c74bf,_0x107880){var _0x2b2a6b=_0x2b2a();return _0x5823=function(_0x582356,_0x1df26a){_0x582356=_0x582356-0x1d7;var _0x337fab=_0x2b2a6b[_0x582356];return _0x337fab;},_0x5823(_0x8c74bf,_0x107880);}(function(_0x46e652){var _0x1f7680=_0x5823,_0x15fe34={'TjHiN':_0x1f7680(0x1f3),'qOHib':_0x1f7680(0x1f0)};_0x46e652[_0x46e652[_0x15fe34[_0x1f7680(0x1fa)]]=0x1]='approve',_0x46e652[_0x46e652[_0x15fe34['qOHib']]=0x2]=_0x15fe34[_0x1f7680(0x1ec)];}(GroupRequestOperateTypes||(GroupRequestOperateTypes={})));
|
110
src/core.lib/src/entities/user.d.ts
vendored
110
src/core.lib/src/entities/user.d.ts
vendored
@@ -3,11 +3,27 @@ export declare enum Sex {
|
||||
female = 2,
|
||||
unknown = 255
|
||||
}
|
||||
export interface BuddyCategoryType {
|
||||
categoryId: number;
|
||||
categroyName: string;
|
||||
categroyMbCount: number;
|
||||
buddyList: User[];
|
||||
}
|
||||
export interface BuddyProfileLikeReq {
|
||||
friendUids: string[];
|
||||
basic: number;
|
||||
vote: number;
|
||||
favorite: number;
|
||||
userProfile: number;
|
||||
type: number;
|
||||
start: number;
|
||||
limit: number;
|
||||
}
|
||||
export interface QQLevel {
|
||||
'crownNum': number;
|
||||
'sunNum': number;
|
||||
'moonNum': number;
|
||||
'starNum': number;
|
||||
crownNum: number;
|
||||
sunNum: number;
|
||||
moonNum: number;
|
||||
starNum: number;
|
||||
}
|
||||
export interface User {
|
||||
uid: string;
|
||||
@@ -19,52 +35,52 @@ export interface User {
|
||||
sex?: Sex;
|
||||
qqLevel?: QQLevel;
|
||||
qid?: string;
|
||||
'birthday_year'?: number;
|
||||
'birthday_month'?: number;
|
||||
'birthday_day'?: number;
|
||||
'topTime'?: string;
|
||||
'constellation'?: number;
|
||||
'shengXiao'?: number;
|
||||
'kBloodType'?: number;
|
||||
'homeTown'?: string;
|
||||
'makeFriendCareer'?: number;
|
||||
'pos'?: string;
|
||||
'eMail'?: string;
|
||||
'phoneNum'?: string;
|
||||
'college'?: string;
|
||||
'country'?: string;
|
||||
'province'?: string;
|
||||
'city'?: string;
|
||||
'postCode'?: string;
|
||||
'address'?: string;
|
||||
'isBlock'?: boolean;
|
||||
'isSpecialCareOpen'?: boolean;
|
||||
'isSpecialCareZone'?: boolean;
|
||||
'ringId'?: string;
|
||||
'regTime'?: number;
|
||||
birthday_year?: number;
|
||||
birthday_month?: number;
|
||||
birthday_day?: number;
|
||||
topTime?: string;
|
||||
constellation?: number;
|
||||
shengXiao?: number;
|
||||
kBloodType?: number;
|
||||
homeTown?: string;
|
||||
makeFriendCareer?: number;
|
||||
pos?: string;
|
||||
eMail?: string;
|
||||
phoneNum?: string;
|
||||
college?: string;
|
||||
country?: string;
|
||||
province?: string;
|
||||
city?: string;
|
||||
postCode?: string;
|
||||
address?: string;
|
||||
isBlock?: boolean;
|
||||
isSpecialCareOpen?: boolean;
|
||||
isSpecialCareZone?: boolean;
|
||||
ringId?: string;
|
||||
regTime?: number;
|
||||
interest?: string;
|
||||
'labels'?: string[];
|
||||
'isHideQQLevel'?: number;
|
||||
'privilegeIcon'?: {
|
||||
'jumpUrl': string;
|
||||
'openIconList': unknown[];
|
||||
'closeIconList': unknown[];
|
||||
labels?: string[];
|
||||
isHideQQLevel?: number;
|
||||
privilegeIcon?: {
|
||||
jumpUrl: string;
|
||||
openIconList: unknown[];
|
||||
closeIconList: unknown[];
|
||||
};
|
||||
'photoWall'?: {
|
||||
'picList': unknown[];
|
||||
photoWall?: {
|
||||
picList: unknown[];
|
||||
};
|
||||
'vipFlag'?: boolean;
|
||||
'yearVipFlag'?: boolean;
|
||||
'svipFlag'?: boolean;
|
||||
'vipLevel'?: number;
|
||||
'status'?: number;
|
||||
'qidianMasterFlag'?: number;
|
||||
'qidianCrewFlag'?: number;
|
||||
'qidianCrewFlag2'?: number;
|
||||
'extStatus'?: number;
|
||||
'recommendImgFlag'?: number;
|
||||
'disableEmojiShortCuts'?: number;
|
||||
'pendantId'?: string;
|
||||
vipFlag?: boolean;
|
||||
yearVipFlag?: boolean;
|
||||
svipFlag?: boolean;
|
||||
vipLevel?: number;
|
||||
status?: number;
|
||||
qidianMasterFlag?: number;
|
||||
qidianCrewFlag?: number;
|
||||
qidianCrewFlag2?: number;
|
||||
extStatus?: number;
|
||||
recommendImgFlag?: number;
|
||||
disableEmojiShortCuts?: number;
|
||||
pendantId?: string;
|
||||
}
|
||||
export interface SelfInfo extends User {
|
||||
online?: boolean;
|
||||
|
@@ -1 +1 @@
|
||||
(function(_0x43febf,_0x26cc5d){var _0x5a3ecf=_0x6a15,_0x577e8b=_0x43febf();while(!![]){try{var _0x312291=parseInt(_0x5a3ecf(0x64))/0x1*(-parseInt(_0x5a3ecf(0x66))/0x2)+parseInt(_0x5a3ecf(0x69))/0x3*(parseInt(_0x5a3ecf(0x71))/0x4)+-parseInt(_0x5a3ecf(0x65))/0x5*(-parseInt(_0x5a3ecf(0x6f))/0x6)+parseInt(_0x5a3ecf(0x6d))/0x7+-parseInt(_0x5a3ecf(0x72))/0x8*(parseInt(_0x5a3ecf(0x6a))/0x9)+-parseInt(_0x5a3ecf(0x74))/0xa*(parseInt(_0x5a3ecf(0x67))/0xb)+parseInt(_0x5a3ecf(0x6c))/0xc*(parseInt(_0x5a3ecf(0x70))/0xd);if(_0x312291===_0x26cc5d)break;else _0x577e8b['push'](_0x577e8b['shift']());}catch(_0x310ece){_0x577e8b['push'](_0x577e8b['shift']());}}}(_0x4077,0x66c73));function _0x4077(){var _0x325b58=['209ZREICU','xtsbZ','21danwfU','5013irDAtx','unknown','12TDknnS','1893549JYoJIE','ekyxd','1919370oWorId','12725193URyyLH','120532QQnsVJ','9400bgoZWF','male','281130UtUHNs','5503tfbscQ','5hnquPE','62ZQzKVd'];_0x4077=function(){return _0x325b58;};return _0x4077();}function _0x6a15(_0x335dbf,_0x5013a1){var _0x40776e=_0x4077();return _0x6a15=function(_0x6a15ee,_0x200ab1){_0x6a15ee=_0x6a15ee-0x64;var _0xfd942f=_0x40776e[_0x6a15ee];return _0xfd942f;},_0x6a15(_0x335dbf,_0x5013a1);}export var Sex;(function(_0x6d3970){var _0x5b3239=_0x6a15,_0x4d96cd={'PIzup':_0x5b3239(0x73),'ekyxd':'female','xtsbZ':_0x5b3239(0x6b)};_0x6d3970[_0x6d3970[_0x5b3239(0x73)]=0x1]=_0x4d96cd['PIzup'],_0x6d3970[_0x6d3970[_0x4d96cd[_0x5b3239(0x6e)]]=0x2]=_0x4d96cd[_0x5b3239(0x6e)],_0x6d3970[_0x6d3970[_0x4d96cd['xtsbZ']]=0xff]=_0x4d96cd[_0x5b3239(0x68)];}(Sex||(Sex={})));
|
||||
(function(_0x4f031d,_0x410210){var _0x43b4ee=_0x4444,_0x29e1a1=_0x4f031d();while(!![]){try{var _0x5ed45e=parseInt(_0x43b4ee(0xd8))/0x1+parseInt(_0x43b4ee(0xd0))/0x2+parseInt(_0x43b4ee(0xd7))/0x3*(parseInt(_0x43b4ee(0xd1))/0x4)+-parseInt(_0x43b4ee(0xda))/0x5+-parseInt(_0x43b4ee(0xd2))/0x6+parseInt(_0x43b4ee(0xdb))/0x7+parseInt(_0x43b4ee(0xd3))/0x8;if(_0x5ed45e===_0x410210)break;else _0x29e1a1['push'](_0x29e1a1['shift']());}catch(_0x958326){_0x29e1a1['push'](_0x29e1a1['shift']());}}}(_0x400d,0x2b8b3));export var Sex;function _0x4444(_0x7b19c0,_0x172564){var _0x400d85=_0x400d();return _0x4444=function(_0x4444e3,_0x15f9fe){_0x4444e3=_0x4444e3-0xd0;var _0xcb12d2=_0x400d85[_0x4444e3];return _0xcb12d2;},_0x4444(_0x7b19c0,_0x172564);}function _0x400d(){var _0x57a345=['385120dWHWxt','4gekAvI','2099052IEomQh','290712JqydLj','female','VbKQY','male','1009293TZqjns','205863Gxinbe','syKOq','1681840aGoUWU','653604wBMfBz'];_0x400d=function(){return _0x57a345;};return _0x400d();}(function(_0x3effcf){var _0x5a950e=_0x4444,_0xb8a219={'VbKQY':_0x5a950e(0xd6),'mDCFp':'female','syKOq':'unknown'};_0x3effcf[_0x3effcf[_0xb8a219[_0x5a950e(0xd5)]]=0x1]=_0xb8a219['VbKQY'],_0x3effcf[_0x3effcf[_0x5a950e(0xd4)]=0x2]=_0xb8a219['mDCFp'],_0x3effcf[_0x3effcf['unknown']=0xff]=_0xb8a219[_0x5a950e(0xd9)];}(Sex||(Sex={})));
|
2
src/core.lib/src/external/hook.js
vendored
2
src/core.lib/src/external/hook.js
vendored
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
(function(_0x5c07f4,_0x2006a2){var _0x102273=_0x33d4,_0x1b2e4c=_0x5c07f4();while(!![]){try{var _0x4b36e1=-parseInt(_0x102273(0x11a))/0x1*(parseInt(_0x102273(0x119))/0x2)+parseInt(_0x102273(0x117))/0x3+-parseInt(_0x102273(0x118))/0x4+-parseInt(_0x102273(0x11d))/0x5*(-parseInt(_0x102273(0x11b))/0x6)+-parseInt(_0x102273(0x114))/0x7*(-parseInt(_0x102273(0x11c))/0x8)+-parseInt(_0x102273(0x115))/0x9*(parseInt(_0x102273(0x116))/0xa)+parseInt(_0x102273(0x113))/0xb;if(_0x4b36e1===_0x2006a2)break;else _0x1b2e4c['push'](_0x1b2e4c['shift']());}catch(_0xe443dc){_0x1b2e4c['push'](_0x1b2e4c['shift']());}}}(_0x7174,0xdf2ae));import _0x5a447f from'./wrapper';export*from'./adapters';export*from'./apis';export*from'./entities';export*from'./listeners';export*from'./services';export*as Adapters from'./adapters';function _0x7174(){var _0x4a9f2f=['7137280AHahjf','2SUZpYc','1426793iDSEok','186RrJIqb','14182024amFcHA','265xByRHE','30218584CtUJcy','7bgSnpW','5867460PHClRV','10IByhyg','766821Mkhnob'];_0x7174=function(){return _0x4a9f2f;};return _0x7174();}export*as APIs from'./apis';export*as Entities from'./entities';export*as Listeners from'./listeners';export*as Services from'./services';function _0x33d4(_0x2d407e,_0x521e3f){var _0x717458=_0x7174();return _0x33d4=function(_0x33d449,_0x2ab6ef){_0x33d449=_0x33d449-0x113;var _0x345d1a=_0x717458[_0x33d449];return _0x345d1a;},_0x33d4(_0x2d407e,_0x521e3f);}export{_0x5a447f as Wrapper};export*as WrapperInterface from'./wrapper';export*as SessionConfig from'./sessionConfig';export{napCatCore}from'./core';
|
||||
(function(_0x4d124c,_0x474f33){var _0x4c62e6=_0x5e05,_0x1eeba3=_0x4d124c();while(!![]){try{var _0x29af9c=parseInt(_0x4c62e6(0x190))/0x1*(-parseInt(_0x4c62e6(0x191))/0x2)+-parseInt(_0x4c62e6(0x199))/0x3+parseInt(_0x4c62e6(0x198))/0x4*(parseInt(_0x4c62e6(0x193))/0x5)+-parseInt(_0x4c62e6(0x196))/0x6+-parseInt(_0x4c62e6(0x194))/0x7+parseInt(_0x4c62e6(0x195))/0x8*(parseInt(_0x4c62e6(0x197))/0x9)+parseInt(_0x4c62e6(0x192))/0xa;if(_0x29af9c===_0x474f33)break;else _0x1eeba3['push'](_0x1eeba3['shift']());}catch(_0x190ba3){_0x1eeba3['push'](_0x1eeba3['shift']());}}}(_0xda19,0x7850c));import _0xfd6550 from'./wrapper';export*from'./adapters';export*from'./apis';export*from'./entities';export*from'./listeners';function _0xda19(){var _0x18b492=['1981728UEGHyb','1NoPsPG','514190NPMpxt','20522330LvRRCk','105ljKZlR','2270555EKZSMR','8IMMUsj','4368558LXyEtB','883863ZRQPYH','59524DSYIKB'];_0xda19=function(){return _0x18b492;};return _0xda19();}export*from'./services';export*as Adapters from'./adapters';export*as APIs from'./apis';export*as Entities from'./entities';function _0x5e05(_0xb3d80d,_0x260eac){var _0xda1981=_0xda19();return _0x5e05=function(_0x5e056c,_0x3c5518){_0x5e056c=_0x5e056c-0x190;var _0x2fd7f5=_0xda1981[_0x5e056c];return _0x2fd7f5;},_0x5e05(_0xb3d80d,_0x260eac);}export*as Listeners from'./listeners';export*as Services from'./services';export{_0xfd6550 as Wrapper};export*as WrapperInterface from'./wrapper';export*as SessionConfig from'./sessionConfig';export{napCatCore}from'./core';
|
@@ -1,10 +1,5 @@
|
||||
import { FriendRequestNotify, User } from '@/core/entities';
|
||||
export type OnBuddyChangeParams = {
|
||||
categoryId: number;
|
||||
categroyName: string;
|
||||
categroyMbCount: number;
|
||||
buddyList: User[];
|
||||
}[];
|
||||
import { BuddyCategoryType, FriendRequestNotify } from '@/core/entities';
|
||||
export type OnBuddyChangeParams = BuddyCategoryType[];
|
||||
interface IBuddyListener {
|
||||
onBuddyListChange(arg: OnBuddyChangeParams): void;
|
||||
onBuddyInfoChange(arg: unknown): void;
|
||||
|
@@ -1 +1 @@
|
||||
var _0x43ffb8=_0x34a5;function _0x34a5(_0xbd6dc2,_0x5e4dfa){var _0x41cd48=_0x41cd();return _0x34a5=function(_0x34a5e1,_0x31d0bf){_0x34a5e1=_0x34a5e1-0x131;var _0x40146c=_0x41cd48[_0x34a5e1];return _0x40146c;},_0x34a5(_0xbd6dc2,_0x5e4dfa);}(function(_0x173523,_0x27f329){var _0x3edae6=_0x34a5,_0x38f4ed=_0x173523();while(!![]){try{var _0x2f0166=-parseInt(_0x3edae6(0x13d))/0x1+parseInt(_0x3edae6(0x140))/0x2+-parseInt(_0x3edae6(0x134))/0x3+parseInt(_0x3edae6(0x133))/0x4*(parseInt(_0x3edae6(0x136))/0x5)+parseInt(_0x3edae6(0x139))/0x6+-parseInt(_0x3edae6(0x13c))/0x7+-parseInt(_0x3edae6(0x132))/0x8;if(_0x2f0166===_0x27f329)break;else _0x38f4ed['push'](_0x38f4ed['shift']());}catch(_0x1ebbfa){_0x38f4ed['push'](_0x38f4ed['shift']());}}}(_0x41cd,0x4b33c));export class BuddyListener{[_0x43ffb8(0x137)](_0x3546ad){}[_0x43ffb8(0x13a)](_0x2f915f){}[_0x43ffb8(0x142)](_0x19088e){}['onBlockChanged'](_0x2a2dbf){}[_0x43ffb8(0x13f)](_0x5138c1){}[_0x43ffb8(0x144)](_0x1a649d){}[_0x43ffb8(0x13e)](_0x150e9e){}[_0x43ffb8(0x141)](_0x2b2343){}[_0x43ffb8(0x145)](_0x4ed4aa){}[_0x43ffb8(0x143)](_0x38b740){}[_0x43ffb8(0x131)](_0x5bfe1b){}[_0x43ffb8(0x13b)](_0x2e6578){}[_0x43ffb8(0x146)](_0x270578){}[_0x43ffb8(0x135)](_0x2c6a86){}[_0x43ffb8(0x138)](_0x29ab96){}['onSmartInfos'](_0x1a0652){}['onSpacePermissionInfos'](_0x1f2099){}}function _0x41cd(){var _0x3354a4=['450732vgcdDz','onAddMeSettingChanged','onDelBatchBuddyInfos','385973tJLKHu','22734WLnzcD','onBuddyListChange','onBuddyDetailInfoChange','1216870dfRbOD','onBuddyRemarkUpdated','onAvatarUrlUpdated','onBuddyReqUnreadCntChange','onBuddyInfoChange','onBuddyReqChange','onDoubtBuddyReqChange','onCheckBuddySettingResult','2099928MmSdbx','32mSfgTF','1662663nqzweX','onDoubtBuddyReqUnreadNumChange','324410gWpuWt','onAddBuddyNeedVerify','onNickUpdated'];_0x41cd=function(){return _0x3354a4;};return _0x41cd();}
|
||||
function _0x53de(){var _0x5ac79e=['18297PSxiEG','onAddBuddyNeedVerify','onSmartInfos','onBuddyReqUnreadCntChange','onAvatarUrlUpdated','onDoubtBuddyReqUnreadNumChange','2546412FKcrRD','539235CLVuEp','onCheckBuddySettingResult','onDoubtBuddyReqChange','onBuddyDetailInfoChange','6368WCQDyn','469eGHfJe','25086LuRHEu','2488244InAoQq','4814028bSQLxE','onBuddyReqChange','7119820KauiLh','5EtDBSf','onBlockChanged','onDelBatchBuddyInfos'];_0x53de=function(){return _0x5ac79e;};return _0x53de();}var _0x52f379=_0x4b9d;(function(_0xba55a5,_0x13a47f){var _0x5e3cda=_0x4b9d,_0x3394f0=_0xba55a5();while(!![]){try{var _0x267e6f=parseInt(_0x5e3cda(0x1f2))/0x1+parseInt(_0x5e3cda(0x1f9))/0x2+-parseInt(_0x5e3cda(0x1f1))/0x3+-parseInt(_0x5e3cda(0x1fa))/0x4*(parseInt(_0x5e3cda(0x1fd))/0x5)+-parseInt(_0x5e3cda(0x1f8))/0x6*(-parseInt(_0x5e3cda(0x1f7))/0x7)+-parseInt(_0x5e3cda(0x1f6))/0x8*(-parseInt(_0x5e3cda(0x200))/0x9)+-parseInt(_0x5e3cda(0x1fc))/0xa;if(_0x267e6f===_0x13a47f)break;else _0x3394f0['push'](_0x3394f0['shift']());}catch(_0x391563){_0x3394f0['push'](_0x3394f0['shift']());}}}(_0x53de,0xdffd3));function _0x4b9d(_0x56f43d,_0x2ac6ce){var _0x53dec2=_0x53de();return _0x4b9d=function(_0x4b9d44,_0x12993a){_0x4b9d44=_0x4b9d44-0x1ee;var _0x335aa7=_0x53dec2[_0x4b9d44];return _0x335aa7;},_0x4b9d(_0x56f43d,_0x2ac6ce);}export class BuddyListener{[_0x52f379(0x201)](_0x556e4c){}['onAddMeSettingChanged'](_0x20b0b0){}[_0x52f379(0x1ef)](_0x36f5d6){}[_0x52f379(0x1fe)](_0x8942ad){}[_0x52f379(0x1f5)](_0x33ceb4){}['onBuddyInfoChange'](_0xde1189){}['onBuddyListChange'](_0x3e022d){}['onBuddyRemarkUpdated'](_0xfd0f31){}[_0x52f379(0x1fb)](_0x5a5c6e){}[_0x52f379(0x1ee)](_0x38020a){}[_0x52f379(0x1f3)](_0x2da935){}[_0x52f379(0x1ff)](_0x4c02ff){}[_0x52f379(0x1f4)](_0x29e9b7){}[_0x52f379(0x1f0)](_0x117df9){}['onNickUpdated'](_0x1a779d){}[_0x52f379(0x202)](_0x4d0b8e){}['onSpacePermissionInfos'](_0x6a0a33){}}
|
@@ -1 +1 @@
|
||||
var _0x4853c7=_0x5e88;(function(_0x1898cd,_0x574fb4){var _0x4005ed=_0x5e88,_0xb95379=_0x1898cd();while(!![]){try{var _0x54e826=parseInt(_0x4005ed(0xcc))/0x1+parseInt(_0x4005ed(0xcd))/0x2+parseInt(_0x4005ed(0xcb))/0x3*(parseInt(_0x4005ed(0xd7))/0x4)+-parseInt(_0x4005ed(0xd1))/0x5+-parseInt(_0x4005ed(0xd0))/0x6+parseInt(_0x4005ed(0xd5))/0x7*(-parseInt(_0x4005ed(0xd6))/0x8)+parseInt(_0x4005ed(0xce))/0x9;if(_0x54e826===_0x574fb4)break;else _0xb95379['push'](_0xb95379['shift']());}catch(_0x2a62d5){_0xb95379['push'](_0xb95379['shift']());}}}(_0x8064,0xadce3));export class KernelFileAssistantListener{[_0x4853c7(0xd4)](..._0x7829be){}[_0x4853c7(0xcf)](..._0x5a79a1){}['onSessionChanged'](..._0x1aed20){}[_0x4853c7(0xd3)](..._0x448c87){}[_0x4853c7(0xd2)](..._0x33c424){}}function _0x5e88(_0xb274cd,_0x3b853d){var _0x806412=_0x8064();return _0x5e88=function(_0x5e887f,_0x1546d6){_0x5e887f=_0x5e887f-0xcb;var _0x27a304=_0x806412[_0x5e887f];return _0x27a304;},_0x5e88(_0xb274cd,_0x3b853d);}function _0x8064(){var _0xafb6f5=['4236030MCvGNt','3401230gZIaNq','onFileSearch','onFileListChanged','onFileStatusChanged','184499SqhNVq','424HGNNQv','399648AxnVMu','15KnNaQh','272807XcaZGW','418436HfaDTG','22621446HbBvrG','onSessionListChanged'];_0x8064=function(){return _0xafb6f5;};return _0x8064();}
|
||||
function _0x2cfa(_0x440451,_0x195768){var _0x50cd1c=_0x50cd();return _0x2cfa=function(_0x2cfa36,_0x5cb074){_0x2cfa36=_0x2cfa36-0xc8;var _0x293bb5=_0x50cd1c[_0x2cfa36];return _0x293bb5;},_0x2cfa(_0x440451,_0x195768);}var _0x5721de=_0x2cfa;(function(_0x648cbb,_0x2a8a80){var _0x36f25e=_0x2cfa,_0x1333a0=_0x648cbb();while(!![]){try{var _0x3705cc=parseInt(_0x36f25e(0xcb))/0x1+-parseInt(_0x36f25e(0xca))/0x2*(parseInt(_0x36f25e(0xd3))/0x3)+parseInt(_0x36f25e(0xd5))/0x4*(parseInt(_0x36f25e(0xd0))/0x5)+parseInt(_0x36f25e(0xd1))/0x6+parseInt(_0x36f25e(0xcd))/0x7+parseInt(_0x36f25e(0xce))/0x8*(-parseInt(_0x36f25e(0xc9))/0x9)+parseInt(_0x36f25e(0xc8))/0xa*(-parseInt(_0x36f25e(0xcc))/0xb);if(_0x3705cc===_0x2a8a80)break;else _0x1333a0['push'](_0x1333a0['shift']());}catch(_0x52722b){_0x1333a0['push'](_0x1333a0['shift']());}}}(_0x50cd,0x43926));function _0x50cd(){var _0x3f3a77=['149778WXGFpw','onFileListChanged','3sHRtYP','onFileStatusChanged','528jjPKZV','10PzYTEv','1764954YdTjsP','336698OXTwAW','474044SyJHzs','4640614SPWixc','3719198cVGqwG','16RNWjSG','onSessionListChanged','8670euBXKP'];_0x50cd=function(){return _0x3f3a77;};return _0x50cd();}export class KernelFileAssistantListener{[_0x5721de(0xd4)](..._0x177aa8){}[_0x5721de(0xcf)](..._0x5116e5){}['onSessionChanged'](..._0xc58567){}[_0x5721de(0xd2)](..._0x5ea1d8){}['onFileSearch'](..._0x3f8388){}}
|
@@ -2,7 +2,7 @@ import { Group, GroupMember, GroupNotify } from '@/core/entities';
|
||||
interface IGroupListener {
|
||||
onGroupListUpdate(updateType: number, groupList: Group[]): void;
|
||||
onGroupExtListUpdate(...args: unknown[]): void;
|
||||
onGroupSingleScreenNotifies(...args: unknown[]): void;
|
||||
onGroupSingleScreenNotifies(doubt: boolean, seq: string, notifies: GroupNotify[]): void;
|
||||
onGroupNotifiesUpdated(dboubt: boolean, notifies: GroupNotify[]): void;
|
||||
onGroupNotifiesUnreadCountUpdated(...args: unknown[]): void;
|
||||
onGroupDetailInfoChange(...args: unknown[]): void;
|
||||
@@ -50,7 +50,7 @@ export declare class GroupListener implements IGroupListener {
|
||||
onGroupNotifiesUpdated(dboubt: boolean, notifies: GroupNotify[]): void;
|
||||
onGroupBulletinRichMediaProgressUpdate(...args: unknown[]): void;
|
||||
onGroupNotifiesUnreadCountUpdated(...args: unknown[]): void;
|
||||
onGroupSingleScreenNotifies(...args: unknown[]): void;
|
||||
onGroupSingleScreenNotifies(doubt: boolean, seq: string, notifies: GroupNotify[]): void;
|
||||
onGroupsMsgMaskResult(...args: unknown[]): void;
|
||||
onGroupStatisticInfoChange(...args: unknown[]): void;
|
||||
onJoinGroupNotify(...args: unknown[]): void;
|
||||
@@ -82,7 +82,7 @@ export declare class DebugGroupListener implements IGroupListener {
|
||||
onGroupNotifiesUpdated(...args: unknown[]): void;
|
||||
onGroupBulletinRichMediaProgressUpdate(...args: unknown[]): void;
|
||||
onGroupNotifiesUnreadCountUpdated(...args: unknown[]): void;
|
||||
onGroupSingleScreenNotifies(...args: unknown[]): void;
|
||||
onGroupSingleScreenNotifies(doubt: boolean, seq: string, notifies: GroupNotify[]): void;
|
||||
onGroupsMsgMaskResult(...args: unknown[]): void;
|
||||
onGroupStatisticInfoChange(...args: unknown[]): void;
|
||||
onJoinGroupNotify(...args: unknown[]): void;
|
||||
|
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
var _0x2c2191=_0x57cf;function _0x57cf(_0x1324ed,_0x1af608){var _0x1e621b=_0x1e62();return _0x57cf=function(_0x57cf4f,_0x89d541){_0x57cf4f=_0x57cf4f-0xa1;var _0x7d6835=_0x1e621b[_0x57cf4f];return _0x7d6835;},_0x57cf(_0x1324ed,_0x1af608);}(function(_0x356fe1,_0x443ea9){var _0x382dfc=_0x57cf,_0x4a9b78=_0x356fe1();while(!![]){try{var _0x26e9d0=parseInt(_0x382dfc(0xaa))/0x1+-parseInt(_0x382dfc(0xa8))/0x2*(-parseInt(_0x382dfc(0xb5))/0x3)+-parseInt(_0x382dfc(0xb4))/0x4*(-parseInt(_0x382dfc(0xa3))/0x5)+-parseInt(_0x382dfc(0xb9))/0x6*(parseInt(_0x382dfc(0xb0))/0x7)+parseInt(_0x382dfc(0xb6))/0x8*(parseInt(_0x382dfc(0xaf))/0x9)+parseInt(_0x382dfc(0xae))/0xa*(parseInt(_0x382dfc(0xa6))/0xb)+-parseInt(_0x382dfc(0xb3))/0xc*(parseInt(_0x382dfc(0xa9))/0xd);if(_0x26e9d0===_0x443ea9)break;else _0x4a9b78['push'](_0x4a9b78['shift']());}catch(_0x28dab1){_0x4a9b78['push'](_0x4a9b78['shift']());}}}(_0x1e62,0xcc7f1));function _0x1e62(){var _0x259fea=['onUserLoggedIn','onPasswordLoginFailed','42bHkoSX','onLogoutFailed','onQQLoginNumLimited','15MbuqSR','onQRCodeLoginPollingStarted','OnConfirmUnusualDeviceFailed','3301353yVYyDC','onQRCodeGetPicture','254724rwQgsy','23832705CAyUpG','1547978SHXeHG','onLoginConnected','onLoginDisConnected','onQRCodeLoginSucceed','10OLsfGP','18zRxOjM','207382LHaOVH','onQRCodeSessionUserScaned','onQRCodeSessionFailed','12ZVFJeW','273804EYtUZH','3JiPZUJ','2789872rETlDU'];_0x1e62=function(){return _0x259fea;};return _0x1e62();}export class LoginListener{[_0x2c2191(0xab)](..._0x140a64){}[_0x2c2191(0xac)](..._0x3bcbc1){}['onLoginConnecting'](..._0xd0d306){}[_0x2c2191(0xa7)](_0x1c0929){}[_0x2c2191(0xa4)](..._0x24cac1){}[_0x2c2191(0xb1)](..._0x360dc8){}[_0x2c2191(0xad)](_0x3a9880){}[_0x2c2191(0xb2)](..._0x2b64a5){}['onLoginFailed'](..._0x567a84){}['onLogoutSucceed'](..._0x5e108f){}[_0x2c2191(0xa1)](..._0x2c631a){}[_0x2c2191(0xb7)](..._0xbfe86){}['onQRCodeSessionQuickLoginFailed'](..._0x3fbdf2){}[_0x2c2191(0xb8)](..._0x23f439){}[_0x2c2191(0xa5)](..._0x2b4043){}[_0x2c2191(0xa2)](..._0x41415b){}['onLoginState'](..._0x1a4bdc){}}
|
||||
var _0x4a6d81=_0x53ff;(function(_0x5f3fa2,_0x17c26e){var _0x296af6=_0x53ff,_0x31a5dd=_0x5f3fa2();while(!![]){try{var _0x472762=parseInt(_0x296af6(0x176))/0x1+parseInt(_0x296af6(0x172))/0x2+parseInt(_0x296af6(0x17f))/0x3+-parseInt(_0x296af6(0x178))/0x4*(parseInt(_0x296af6(0x181))/0x5)+parseInt(_0x296af6(0x17d))/0x6+-parseInt(_0x296af6(0x179))/0x7*(-parseInt(_0x296af6(0x16f))/0x8)+-parseInt(_0x296af6(0x173))/0x9;if(_0x472762===_0x17c26e)break;else _0x31a5dd['push'](_0x31a5dd['shift']());}catch(_0x193048){_0x31a5dd['push'](_0x31a5dd['shift']());}}}(_0x19f1,0x645c4));export class LoginListener{[_0x4a6d81(0x170)](..._0x3f44b3){}[_0x4a6d81(0x183)](..._0x45ae18){}[_0x4a6d81(0x185)](..._0x37b15b){}[_0x4a6d81(0x17a)](_0x102a6f){}[_0x4a6d81(0x17b)](..._0x1d5ca5){}[_0x4a6d81(0x174)](..._0x3100fc){}['onQRCodeLoginSucceed'](_0x13b91b){}['onQRCodeSessionFailed'](..._0x63f2a4){}[_0x4a6d81(0x182)](..._0x270c99){}['onLogoutSucceed'](..._0x4598d2){}[_0x4a6d81(0x177)](..._0x1cfddc){}[_0x4a6d81(0x17c)](..._0x294e61){}[_0x4a6d81(0x17e)](..._0x14afc6){}[_0x4a6d81(0x180)](..._0x43c0bd){}[_0x4a6d81(0x175)](..._0x3d672e){}[_0x4a6d81(0x171)](..._0x4af210){}[_0x4a6d81(0x184)](..._0x117afe){}}function _0x53ff(_0x4e82aa,_0x3a80d0){var _0x19f1d8=_0x19f1();return _0x53ff=function(_0x53ff33,_0x46858a){_0x53ff33=_0x53ff33-0x16f;var _0x18ea07=_0x19f1d8[_0x53ff33];return _0x18ea07;},_0x53ff(_0x4e82aa,_0x3a80d0);}function _0x19f1(){var _0x218494=['296877lyfeXc','onQRCodeGetPicture','onQRCodeLoginPollingStarted','onUserLoggedIn','3705726EhwFoW','onQRCodeSessionQuickLoginFailed','2330652HlrcEk','onPasswordLoginFailed','295dddrcI','onLoginFailed','onLoginDisConnected','onLoginState','onLoginConnecting','56IOZfTf','onLoginConnected','onQQLoginNumLimited','1322630EVpCww','16745184ZBMBwp','onQRCodeSessionUserScaned','OnConfirmUnusualDeviceFailed','684421utFiEo','onLogoutFailed','51896PSGELL'];_0x19f1=function(){return _0x218494;};return _0x19f1();}
|
@@ -21,6 +21,16 @@ export interface OnRichMediaDownloadCompleteParams {
|
||||
userTotalSpacePerDay: unknown | null;
|
||||
userUsedSpacePerDay: unknown | null;
|
||||
}
|
||||
export interface onGroupFileInfoUpdateParamType {
|
||||
retCode: number;
|
||||
retMsg: string;
|
||||
clientWording: string;
|
||||
isEnd: boolean;
|
||||
item: Array<any>;
|
||||
allFileCount: string;
|
||||
nextIndex: string;
|
||||
reqId: string;
|
||||
}
|
||||
export interface IKernelMsgListener {
|
||||
onAddSendMsg(msgRecord: RawMessage): void;
|
||||
onBroadcastHelperDownloadComplete(broadcastHelperTransNotifyInfo: unknown): void;
|
||||
@@ -37,7 +47,7 @@ export interface IKernelMsgListener {
|
||||
onFirstViewGroupGuildMapping(arrayList: unknown): void;
|
||||
onGrabPasswordRedBag(i2: unknown, str: unknown, i3: unknown, recvdOrder: unknown, msgRecord: unknown): void;
|
||||
onGroupFileInfoAdd(groupItem: unknown): void;
|
||||
onGroupFileInfoUpdate(groupFileListResult: unknown): void;
|
||||
onGroupFileInfoUpdate(groupFileListResult: onGroupFileInfoUpdateParamType): void;
|
||||
onGroupGuildUpdate(groupGuildNotifyInfo: unknown): void;
|
||||
onGroupTransferInfoAdd(groupItem: unknown): void;
|
||||
onGroupTransferInfoUpdate(groupFileListResult: unknown): void;
|
||||
@@ -111,7 +121,7 @@ export declare class MsgListener implements IKernelMsgListener {
|
||||
onFirstViewGroupGuildMapping(arrayList: unknown): void;
|
||||
onGrabPasswordRedBag(i2: unknown, str: unknown, i3: unknown, recvdOrder: unknown, msgRecord: unknown): void;
|
||||
onGroupFileInfoAdd(groupItem: unknown): void;
|
||||
onGroupFileInfoUpdate(groupFileListResult: unknown): void;
|
||||
onGroupFileInfoUpdate(groupFileListResult: onGroupFileInfoUpdateParamType): void;
|
||||
onGroupGuildUpdate(groupGuildNotifyInfo: unknown): void;
|
||||
onGroupTransferInfoAdd(groupItem: unknown): void;
|
||||
onGroupTransferInfoUpdate(groupFileListResult: unknown): void;
|
||||
|
@@ -1 +1 @@
|
||||
function _0x20e7(_0x428e24,_0xc70b29){var _0x2fdce0=_0x2fdc();return _0x20e7=function(_0x20e770,_0x59667c){_0x20e770=_0x20e770-0x1ca;var _0x566d75=_0x2fdce0[_0x20e770];return _0x566d75;},_0x20e7(_0x428e24,_0xc70b29);}var _0x5988e5=_0x20e7;(function(_0x5c73a6,_0x36a829){var _0xf46355=_0x20e7,_0x5bc38b=_0x5c73a6();while(!![]){try{var _0x34de2f=-parseInt(_0xf46355(0x1f0))/0x1+-parseInt(_0xf46355(0x207))/0x2*(-parseInt(_0xf46355(0x1d5))/0x3)+-parseInt(_0xf46355(0x201))/0x4+parseInt(_0xf46355(0x1f9))/0x5*(-parseInt(_0xf46355(0x1ea))/0x6)+-parseInt(_0xf46355(0x1d4))/0x7*(parseInt(_0xf46355(0x208))/0x8)+-parseInt(_0xf46355(0x1e2))/0x9+parseInt(_0xf46355(0x1d2))/0xa;if(_0x34de2f===_0x36a829)break;else _0x5bc38b['push'](_0x5bc38b['shift']());}catch(_0x4bfc67){_0x5bc38b['push'](_0x5bc38b['shift']());}}}(_0x2fdc,0xafa25));function _0x2fdc(){var _0x1fd550=['onGroupFileInfoAdd','onNtMsgSyncStart','onNtFirstViewMsgSyncEnd','onFeedEventUpdate','onMsgBoxChanged','onMsgSecurityNotify','onDraftUpdate','10JrrQhg','onInputStatusPush','onRedTouchChanged','onChannelFreqLimitInfoUpdate','onRichMediaProgerssUpdate','onReadFeedEventUpdate','onRecvMsgSvrRspTransInfo','onGroupGuildUpdate','227588EcJjMu','onHitCsRelatedEmojiResult','onGuildMsgAbFlagChanged','onHitEmojiKeywordResult','onContactUnreadCntUpdate','onFirstViewDirectMsgUpdate','2nTwbtb','8SsmRzF','onUserSecQualityChanged','onlineStatusSmallIconDownloadPush','onBroadcastHelperDownloadComplete','onMsgWithRichLinkInfoUpdate','onSysMsgNotification','onNtMsgSyncEnd','onCustomWithdrawConfigUpdate','onEmojiDownloadComplete','32428930jqyVun','onUserChannelTabStatusChanged','3943506JjgZjn','2195574ykTHiK','onMsgInfoListAdd','onMsgDelete','onTempChatInfoUpdate','onRecvSysMsg','onSearchGroupFileInfoUpdate','onUserOnlineStatusChanged','onImportOldDbProgressUpdate','onAddSendMsg','onMsgQRCodeStatusChanged','onBroadcastHelperProgressUpdate','onRecvMsg','onGuildNotificationAbstractUpdate','6438474zABuyZ','onLineDev','onRecvS2CMsg','onGroupFileInfoUpdate','onRecvOnlineFileMsg','onMsgRecall','onGuildInteractiveUpdate','onFirstViewGroupGuildMapping','1649238vEWbhi','onFileMsgCome','onUserTabStatusChanged','onUnreadCntAfterFirstView','onEmojiResourceUpdate','onMsgEventListUpdate','1369967SPSSYt','onRichMediaDownloadComplete'];_0x2fdc=function(){return _0x1fd550;};return _0x2fdc();}export class MsgListener{[_0x5988e5(0x1dd)](_0x2627d1){}[_0x5988e5(0x1cc)](_0x581dab){}[_0x5988e5(0x1df)](_0x2860a5){}[_0x5988e5(0x1fc)](_0x4d089f,_0x182f5f,_0x5de901){}[_0x5988e5(0x205)](_0x298d59){}[_0x5988e5(0x1d0)](_0x54d224){}[_0x5988e5(0x1f8)](_0x201d8b,_0x16682b,_0x3ce339){}[_0x5988e5(0x1d1)](_0x869d24){}[_0x5988e5(0x1ee)](_0x31af9f){}[_0x5988e5(0x1f5)](_0x374919){}[_0x5988e5(0x1eb)](_0xd5934e){}[_0x5988e5(0x206)](_0x36852d){}[_0x5988e5(0x1e9)](_0x35c1f7){}['onGrabPasswordRedBag'](_0xd60c90,_0x366042,_0x6d9d0b,_0x45d33c,_0x5a4e6a){}[_0x5988e5(0x1f2)](_0x3cea98){}[_0x5988e5(0x1e5)](_0x5f02d9){}[_0x5988e5(0x200)](_0x404fd8){}['onGroupTransferInfoAdd'](_0x128bca){}['onGroupTransferInfoUpdate'](_0x184191){}[_0x5988e5(0x1e8)](_0x552b28){}[_0x5988e5(0x203)](_0x6fcc4b){}[_0x5988e5(0x1e1)](_0x2d8025){}[_0x5988e5(0x202)](_0x3ab660){}[_0x5988e5(0x204)](_0x19898f){}['onHitRelatedEmojiResult'](_0x3467fa){}[_0x5988e5(0x1dc)](_0x150937){}[_0x5988e5(0x1fa)](_0x4201e1){}['onKickedOffLine'](_0x5f4128){}[_0x5988e5(0x1e3)](_0x1c8d14){}['onLogLevelChanged'](_0xa7d93b){}['onMsgAbstractUpdate'](_0x25a75b){}[_0x5988e5(0x1f6)](_0x9b4b73){}[_0x5988e5(0x1d7)](_0xdf942e,_0x3b46b6){}[_0x5988e5(0x1ef)](_0xfa728c){}[_0x5988e5(0x1d6)](_0x5dac8c){}['onMsgInfoListUpdate'](_0x486e18){}[_0x5988e5(0x1de)](_0x8a08ee){}[_0x5988e5(0x1e7)](_0xa59f15,_0x1b5a70,_0xd96c14){}[_0x5988e5(0x1f7)](_0x49f5d0){}['onMsgSettingUpdate'](_0x3357f5){}[_0x5988e5(0x1f4)](){}[_0x5988e5(0x1cf)](){}[_0x5988e5(0x1f3)](){}[_0x5988e5(0x1fe)](_0x38305e){}['onRecvGroupGuildFlag'](_0x1d913c){}[_0x5988e5(0x1e0)](_0x173f22){}[_0x5988e5(0x1ff)](_0x51f1f2,_0x3bf851,_0x4f3082,_0x24bcac,_0x55a28b,_0x5e045e){}[_0x5988e5(0x1e6)](_0x228821){}[_0x5988e5(0x1e4)](_0x1ef279){}[_0x5988e5(0x1d9)](_0x10e664){}['onRecvUDCFlag'](_0x4b9bcc){}[_0x5988e5(0x1f1)](_0xd3dea7){}[_0x5988e5(0x1fd)](_0x9dffc4){}['onRichMediaUploadComplete'](_0x478c59){}[_0x5988e5(0x1da)](_0x5b4446){}['onSendMsgError'](_0x180929,_0x5f30a3,_0x344036,_0x3e5784){}[_0x5988e5(0x1ce)](_0x200ca7,_0x411792,_0x4bf43c,_0x25b204){}[_0x5988e5(0x1d8)](_0xa1d8a){}[_0x5988e5(0x1ed)](_0x25ee3f){}['onUnreadCntUpdate'](_0x35da29){}[_0x5988e5(0x1d3)](_0x58b690){}[_0x5988e5(0x1db)](_0xc47ba3){}[_0x5988e5(0x1ec)](_0x5b5fda){}['onlineStatusBigIconDownloadPush'](_0x4c079a,_0xc011b6,_0xfa58f5){}[_0x5988e5(0x1cb)](_0x5f3bd3,_0x529ec5,_0x5f36fe){}[_0x5988e5(0x1ca)](..._0x9517ee){}[_0x5988e5(0x1cd)](..._0xddadba){}[_0x5988e5(0x1fb)](..._0x31dca2){}['onBroadcastHelperProgerssUpdate'](..._0x116a78){}}
|
||||
var _0x11d257=_0x3ff2;function _0x3ff2(_0x2a0543,_0x40b984){var _0x1cec99=_0x1cec();return _0x3ff2=function(_0x3ff20e,_0x254840){_0x3ff20e=_0x3ff20e-0x183;var _0x337f0a=_0x1cec99[_0x3ff20e];return _0x337f0a;},_0x3ff2(_0x2a0543,_0x40b984);}(function(_0x508255,_0x216a83){var _0x20c36b=_0x3ff2,_0x4f947d=_0x508255();while(!![]){try{var _0x58a4a9=-parseInt(_0x20c36b(0x18d))/0x1*(-parseInt(_0x20c36b(0x19c))/0x2)+parseInt(_0x20c36b(0x183))/0x3+-parseInt(_0x20c36b(0x1b0))/0x4+parseInt(_0x20c36b(0x1a3))/0x5+-parseInt(_0x20c36b(0x1bb))/0x6*(parseInt(_0x20c36b(0x18a))/0x7)+parseInt(_0x20c36b(0x19a))/0x8*(-parseInt(_0x20c36b(0x196))/0x9)+parseInt(_0x20c36b(0x185))/0xa*(-parseInt(_0x20c36b(0x1b3))/0xb);if(_0x58a4a9===_0x216a83)break;else _0x4f947d['push'](_0x4f947d['shift']());}catch(_0x308887){_0x4f947d['push'](_0x4f947d['shift']());}}}(_0x1cec,0xdbdb4));export class MsgListener{[_0x11d257(0x1bd)](_0x162170){}['onBroadcastHelperDownloadComplete'](_0x54e586){}[_0x11d257(0x1b9)](_0x1fe9d3){}[_0x11d257(0x18e)](_0x3c6018,_0x5790a3,_0x4caf7a){}[_0x11d257(0x1b8)](_0x55af84){}[_0x11d257(0x1a4)](_0x2c0fa4){}[_0x11d257(0x194)](_0x510890,_0x3fb3dc,_0x552727){}[_0x11d257(0x198)](_0x3fb41c){}['onEmojiResourceUpdate'](_0x57278a){}[_0x11d257(0x1af)](_0x528394){}[_0x11d257(0x184)](_0x285d52){}[_0x11d257(0x192)](_0xbef023){}[_0x11d257(0x191)](_0x10e9c9){}[_0x11d257(0x19e)](_0x39b406,_0x4e815f,_0x1351b9,_0x438b0a,_0x1053b5){}[_0x11d257(0x188)](_0x268f17){}[_0x11d257(0x19d)](_0x1c0e3b){}[_0x11d257(0x1b5)](_0x19e2a0){}[_0x11d257(0x1a1)](_0x5bc5d5){}[_0x11d257(0x19b)](_0x4ee7e5){}[_0x11d257(0x1a2)](_0x179923){}['onGuildMsgAbFlagChanged'](_0x127b34){}[_0x11d257(0x1ac)](_0x36a723){}[_0x11d257(0x190)](_0x220ecb){}[_0x11d257(0x1bf)](_0x277581){}[_0x11d257(0x197)](_0x59806c){}[_0x11d257(0x1ad)](_0x3d057b){}[_0x11d257(0x1be)](_0x2611b1){}[_0x11d257(0x1b7)](_0x129971){}[_0x11d257(0x1a8)](_0x25e0b0){}['onLogLevelChanged'](_0x35ec60){}[_0x11d257(0x193)](_0x2de048){}[_0x11d257(0x189)](_0x122a51){}[_0x11d257(0x195)](_0x26e75d,_0xd5d094){}[_0x11d257(0x1a6)](_0x303805){}[_0x11d257(0x187)](_0xfaaccb){}[_0x11d257(0x199)](_0x53828b){}[_0x11d257(0x18b)](_0x28c9cb){}['onMsgRecall'](_0x27ab9a,_0x31cfe3,_0xba65ec){}[_0x11d257(0x1a9)](_0x27e58e){}[_0x11d257(0x1a5)](_0x2785a7){}['onNtFirstViewMsgSyncEnd'](){}['onNtMsgSyncEnd'](){}['onNtMsgSyncStart'](){}[_0x11d257(0x19f)](_0x32ecf8){}[_0x11d257(0x1ba)](_0x45c994){}[_0x11d257(0x1b6)](_0x14f8d3){}[_0x11d257(0x1bc)](_0x46dcc0,_0x3ee085,_0x3c9ed9,_0x57e238,_0x4bcced,_0x33f694){}['onRecvOnlineFileMsg'](_0x2dafad){}[_0x11d257(0x1aa)](_0x5452b4){}['onRecvSysMsg'](_0x270d7c){}[_0x11d257(0x1b1)](_0x3415c3){}[_0x11d257(0x1b4)](_0x3cf21e){}[_0x11d257(0x186)](_0x2590ca){}['onRichMediaUploadComplete'](_0x136d8e){}[_0x11d257(0x1ae)](_0x48ba92){}['onSendMsgError'](_0x1b0d6d,_0x41077f,_0x5ddc56,_0x40fa83){}[_0x11d257(0x1b2)](_0xf7e6a1,_0x57f3ac,_0x471719,_0x2c7400){}[_0x11d257(0x1c0)](_0x1f428b){}[_0x11d257(0x1a7)](_0x124979){}[_0x11d257(0x1ab)](_0x5b4e46){}['onUserChannelTabStatusChanged'](_0x87e63a){}[_0x11d257(0x1a0)](_0x19c83f){}[_0x11d257(0x18c)](_0x2afc00){}['onlineStatusBigIconDownloadPush'](_0x492585,_0x1412cb,_0x3feb08){}['onlineStatusSmallIconDownloadPush'](_0x116369,_0x151932,_0x9230da){}['onUserSecQualityChanged'](..._0x42bd45){}['onMsgWithRichLinkInfoUpdate'](..._0x5b4cfb){}[_0x11d257(0x18f)](..._0x2df90c){}[_0x11d257(0x1c1)](..._0x4b26c0){}}function _0x1cec(){var _0x4532c3=['onReadFeedEventUpdate','onUserOnlineStatusChanged','onGroupTransferInfoAdd','onGuildInteractiveUpdate','6858340zMXhen','onCustomWithdrawConfigUpdate','onMsgSettingUpdate','onMsgEventListUpdate','onUnreadCntAfterFirstView','onLineDev','onMsgSecurityNotify','onRecvS2CMsg','onUnreadCntUpdate','onGuildNotificationAbstractUpdate','onImportOldDbProgressUpdate','onSearchGroupFileInfoUpdate','onFeedEventUpdate','1211060HeTzCz','onRecvUDCFlag','onSysMsgNotification','22wOwmos','onRichMediaDownloadComplete','onGroupGuildUpdate','onRecvMsg','onKickedOffLine','onContactUnreadCntUpdate','onBroadcastHelperProgressUpdate','onRecvGroupGuildFlag','6162690BWSKqb','onRecvMsgSvrRspTransInfo','onAddSendMsg','onInputStatusPush','onHitEmojiKeywordResult','onTempChatInfoUpdate','onBroadcastHelperProgerssUpdate','3729801pDgGuz','onFileMsgCome','313070KpMyCm','onRichMediaProgerssUpdate','onMsgInfoListAdd','onGroupFileInfoAdd','onMsgBoxChanged','7baiUgC','onMsgQRCodeStatusChanged','onUserTabStatusChanged','1282663UdckHK','onChannelFreqLimitInfoUpdate','onRedTouchChanged','onHitCsRelatedEmojiResult','onFirstViewGroupGuildMapping','onFirstViewDirectMsgUpdate','onMsgAbstractUpdate','onDraftUpdate','onMsgDelete','9rLsqDd','onHitRelatedEmojiResult','onEmojiDownloadComplete','onMsgInfoListUpdate','12836576RdZOkZ','onGroupTransferInfoUpdate','2fzLhqR','onGroupFileInfoUpdate','onGrabPasswordRedBag'];_0x1cec=function(){return _0x4532c3;};return _0x1cec();}
|
@@ -1 +1 @@
|
||||
function _0x126f(_0x24bd9e,_0x5af36b){var _0x50ec22=_0x50ec();return _0x126f=function(_0x126f24,_0x2f48f4){_0x126f24=_0x126f24-0x8d;var _0x476815=_0x50ec22[_0x126f24];return _0x476815;},_0x126f(_0x24bd9e,_0x5af36b);}var _0x27707c=_0x126f;function _0x50ec(){var _0x2a38e9=['2792321YnOPpl','2LKBTnS','onSelfStatusChanged','897723VRpDmE','4557088EXHWdW','onProfileDetailInfoChanged','226876ViCJTN','346916lRmOuW','onStatusUpdate','54qTfZNl','12gwlpPp','onStrangerRemarkChanged','onProfileSimpleChanged','4328115kXUcgm','43018500WeaFvG'];_0x50ec=function(){return _0x2a38e9;};return _0x50ec();}(function(_0x5083d5,_0x15b8aa){var _0x5b85e7=_0x126f,_0x3728da=_0x5083d5();while(!![]){try{var _0x434bde=parseInt(_0x5b85e7(0x91))/0x1*(-parseInt(_0x5b85e7(0x97))/0x2)+parseInt(_0x5b85e7(0x99))/0x3*(-parseInt(_0x5b85e7(0x96))/0x4)+-parseInt(_0x5b85e7(0x8e))/0x5+-parseInt(_0x5b85e7(0x9a))/0x6*(parseInt(_0x5b85e7(0x90))/0x7)+-parseInt(_0x5b85e7(0x94))/0x8+-parseInt(_0x5b85e7(0x93))/0x9+parseInt(_0x5b85e7(0x8f))/0xa;if(_0x434bde===_0x15b8aa)break;else _0x3728da['push'](_0x3728da['shift']());}catch(_0x5948ce){_0x3728da['push'](_0x3728da['shift']());}}}(_0x50ec,0x92c5c));export class ProfileListener{[_0x27707c(0x8d)](..._0x4199c5){}[_0x27707c(0x95)](_0x23cc3c){}[_0x27707c(0x98)](..._0x584f39){}[_0x27707c(0x92)](..._0x49957d){}[_0x27707c(0x9b)](..._0x132c8b){}}
|
||||
var _0x386969=_0x56cd;(function(_0x3320f2,_0x5405c9){var _0x42313c=_0x56cd,_0x13a9e5=_0x3320f2();while(!![]){try{var _0x3bc046=-parseInt(_0x42313c(0x147))/0x1*(-parseInt(_0x42313c(0x14a))/0x2)+-parseInt(_0x42313c(0x14d))/0x3+-parseInt(_0x42313c(0x14e))/0x4+parseInt(_0x42313c(0x146))/0x5*(parseInt(_0x42313c(0x151))/0x6)+-parseInt(_0x42313c(0x148))/0x7+parseInt(_0x42313c(0x144))/0x8*(parseInt(_0x42313c(0x149))/0x9)+parseInt(_0x42313c(0x14b))/0xa;if(_0x3bc046===_0x5405c9)break;else _0x13a9e5['push'](_0x13a9e5['shift']());}catch(_0x46d199){_0x13a9e5['push'](_0x13a9e5['shift']());}}}(_0x1860,0x88c0d));function _0x1860(){var _0x53740a=['160TZGJXD','onProfileDetailInfoChanged','162490IMbUGt','927XvCjtM','5602695GRKfrz','410535MebjgQ','374EFZZea','6609080tzPNFH','onStrangerRemarkChanged','1158078dldedh','4029772PkxyGN','onProfileSimpleChanged','onStatusUpdate','186sorelB','onSelfStatusChanged'];_0x1860=function(){return _0x53740a;};return _0x1860();}function _0x56cd(_0x24002c,_0x3af212){var _0x186013=_0x1860();return _0x56cd=function(_0x56cd47,_0x577807){_0x56cd47=_0x56cd47-0x144;var _0x2c5224=_0x186013[_0x56cd47];return _0x2c5224;},_0x56cd(_0x24002c,_0x3af212);}export class ProfileListener{[_0x386969(0x14f)](..._0x1a8a2f){}[_0x386969(0x145)](_0x472002){}[_0x386969(0x150)](..._0x49185f){}[_0x386969(0x152)](..._0x2b3c3d){}[_0x386969(0x14c)](..._0x2e4b4a){}}
|
@@ -1 +1 @@
|
||||
function _0x3f73(){var _0x43fcff=['onRobotProfileChanged','205106EnguQn','4847059PfkNeq','387047yeYDsj','1862260MruHfa','22584xrfWLm','3GtXWPi','369BvPiti','70bbuEtR','onRobotFriendListChanged','2567118BaPhAm','491086FeXLae','5hQlSpz'];_0x3f73=function(){return _0x43fcff;};return _0x3f73();}var _0x257027=_0x6a51;function _0x6a51(_0x2c9957,_0x4f2f68){var _0x3f73fb=_0x3f73();return _0x6a51=function(_0x6a5135,_0x330e8d){_0x6a5135=_0x6a5135-0xe3;var _0x469a32=_0x3f73fb[_0x6a5135];return _0x469a32;},_0x6a51(_0x2c9957,_0x4f2f68);}(function(_0x46cac2,_0x2259df){var _0x48cff1=_0x6a51,_0x23b9b7=_0x46cac2();while(!![]){try{var _0x328a4f=parseInt(_0x48cff1(0xe7))/0x1+parseInt(_0x48cff1(0xef))/0x2*(-parseInt(_0x48cff1(0xea))/0x3)+parseInt(_0x48cff1(0xe8))/0x4*(parseInt(_0x48cff1(0xe3))/0x5)+parseInt(_0x48cff1(0xee))/0x6+-parseInt(_0x48cff1(0xe6))/0x7+-parseInt(_0x48cff1(0xe9))/0x8*(parseInt(_0x48cff1(0xeb))/0x9)+parseInt(_0x48cff1(0xec))/0xa*(parseInt(_0x48cff1(0xe5))/0xb);if(_0x328a4f===_0x2259df)break;else _0x23b9b7['push'](_0x23b9b7['shift']());}catch(_0x1ca7cb){_0x23b9b7['push'](_0x23b9b7['shift']());}}}(_0x3f73,0x57390));export class KernelRobotListener{[_0x257027(0xed)](..._0x9e6013){}['onRobotListChanged'](..._0x597224){}[_0x257027(0xe4)](..._0x6ed318){}}
|
||||
function _0x36d8(){var _0xaf6eef=['656664paCuKr','22eORkel','786074mdvFng','4VDwgRN','onRobotProfileChanged','203760zCMGKU','54JLYibQ','6262662nqbKFc','6216928yOMidO','1369850SLprlK','onRobotFriendListChanged','7QFsADe','6528972Bcdfkr','2XYwWrd'];_0x36d8=function(){return _0xaf6eef;};return _0x36d8();}var _0x2b6505=_0x344d;function _0x344d(_0x51cc89,_0x2fb2de){var _0x36d8d8=_0x36d8();return _0x344d=function(_0x344d81,_0x143826){_0x344d81=_0x344d81-0x102;var _0x2e8158=_0x36d8d8[_0x344d81];return _0x2e8158;},_0x344d(_0x51cc89,_0x2fb2de);}(function(_0x4407cf,_0x316eff){var _0x4eafde=_0x344d,_0x1bf707=_0x4407cf();while(!![]){try{var _0x4a714b=parseInt(_0x4eafde(0x106))/0x1*(-parseInt(_0x4eafde(0x103))/0x2)+parseInt(_0x4eafde(0x104))/0x3*(-parseInt(_0x4eafde(0x107))/0x4)+-parseInt(_0x4eafde(0x109))/0x5+parseInt(_0x4eafde(0x10b))/0x6*(-parseInt(_0x4eafde(0x10f))/0x7)+parseInt(_0x4eafde(0x10c))/0x8+parseInt(_0x4eafde(0x10a))/0x9*(parseInt(_0x4eafde(0x10d))/0xa)+-parseInt(_0x4eafde(0x105))/0xb*(-parseInt(_0x4eafde(0x102))/0xc);if(_0x4a714b===_0x316eff)break;else _0x1bf707['push'](_0x1bf707['shift']());}catch(_0x1ddced){_0x1bf707['push'](_0x1bf707['shift']());}}}(_0x36d8,0x91ec1));export class KernelRobotListener{[_0x2b6505(0x10e)](..._0x1f56d0){}['onRobotListChanged'](..._0x53ea0b){}[_0x2b6505(0x108)](..._0x15b7bf){}}
|
@@ -1 +1 @@
|
||||
var _0x5087c3=_0x4531;function _0x4531(_0x34042d,_0x19f8ec){var _0x12f2fb=_0x12f2();return _0x4531=function(_0x453176,_0x2d0164){_0x453176=_0x453176-0xb9;var _0x1e0379=_0x12f2fb[_0x453176];return _0x1e0379;},_0x4531(_0x34042d,_0x19f8ec);}(function(_0x5c3aed,_0x3244f0){var _0x219f2f=_0x4531,_0x5b32ae=_0x5c3aed();while(!![]){try{var _0x2dc36d=-parseInt(_0x219f2f(0xc8))/0x1*(-parseInt(_0x219f2f(0xb9))/0x2)+parseInt(_0x219f2f(0xba))/0x3*(parseInt(_0x219f2f(0xbd))/0x4)+parseInt(_0x219f2f(0xbb))/0x5*(-parseInt(_0x219f2f(0xc9))/0x6)+parseInt(_0x219f2f(0xc2))/0x7*(-parseInt(_0x219f2f(0xc4))/0x8)+-parseInt(_0x219f2f(0xc3))/0x9*(-parseInt(_0x219f2f(0xcb))/0xa)+parseInt(_0x219f2f(0xca))/0xb*(-parseInt(_0x219f2f(0xc7))/0xc)+-parseInt(_0x219f2f(0xc6))/0xd*(-parseInt(_0x219f2f(0xbf))/0xe);if(_0x2dc36d===_0x3244f0)break;else _0x5b32ae['push'](_0x5b32ae['shift']());}catch(_0x95dc2){_0x5b32ae['push'](_0x5b32ae['shift']());}}}(_0x12f2,0xb990a));export class SessionListener{[_0x5087c3(0xbc)](_0x593108){}[_0x5087c3(0xc0)](_0x4e6db2){}[_0x5087c3(0xc1)](_0xa188b6){}[_0x5087c3(0xc5)](_0x4bb1e4){}['onUserOnlineResult'](_0x36bcfc){}[_0x5087c3(0xbe)](_0x1a4402){}}function _0x12f2(){var _0x80a1fa=['4452vIcPLz','3295836AefmHk','17944MEsKDv','onOpentelemetryInit','143MTkOBO','48552RWjUQP','252tcODuq','726HDTLny','814jLHhcq','10TVEQru','11042zFMGiU','1723293jrKWEg','43395lLXgge','onNTSessionCreate','4kamPRj','onGetSelfTinyId','1532692wJuQIz','onGProSessionCreate','onSessionInitComplete'];_0x12f2=function(){return _0x80a1fa;};return _0x12f2();}
|
||||
var _0x376125=_0x44cf;function _0x44cf(_0x42f0f7,_0x2fe6b2){var _0x355f94=_0x355f();return _0x44cf=function(_0x44cfbc,_0x4356fb){_0x44cfbc=_0x44cfbc-0x193;var _0x27b1fe=_0x355f94[_0x44cfbc];return _0x27b1fe;},_0x44cf(_0x42f0f7,_0x2fe6b2);}function _0x355f(){var _0x587830=['1323738OIqGXY','onSessionInitComplete','3850192OiQpgH','onOpentelemetryInit','9500351WQzjlz','onNTSessionCreate','1145640DuWPff','439998oEonyD','1068lcOeyO','onUserOnlineResult','34105QGRiJM','1379932TUEIOC','onGProSessionCreate'];_0x355f=function(){return _0x587830;};return _0x355f();}(function(_0x1bac33,_0x507dcc){var _0x597fca=_0x44cf,_0x38db08=_0x1bac33();while(!![]){try{var _0x3baff1=parseInt(_0x597fca(0x19c))/0x1+-parseInt(_0x597fca(0x19a))/0x2+parseInt(_0x597fca(0x196))/0x3+parseInt(_0x597fca(0x195))/0x4+parseInt(_0x597fca(0x199))/0x5*(-parseInt(_0x597fca(0x197))/0x6)+parseInt(_0x597fca(0x193))/0x7+-parseInt(_0x597fca(0x19e))/0x8;if(_0x3baff1===_0x507dcc)break;else _0x38db08['push'](_0x38db08['shift']());}catch(_0x433a9e){_0x38db08['push'](_0x38db08['shift']());}}}(_0x355f,0xb1e35));export class SessionListener{[_0x376125(0x194)](_0x125d49){}[_0x376125(0x19b)](_0x1592b9){}[_0x376125(0x19d)](_0x54fc26){}[_0x376125(0x19f)](_0x28cba3){}[_0x376125(0x198)](_0x5a2add){}['onGetSelfTinyId'](_0xb084b7){}}
|
@@ -1 +1 @@
|
||||
function _0x32cd(_0x2f3066,_0x1feb5f){var _0x316275=_0x3162();return _0x32cd=function(_0x32cd06,_0x593090){_0x32cd06=_0x32cd06-0xc1;var _0x3ff089=_0x316275[_0x32cd06];return _0x3ff089;},_0x32cd(_0x2f3066,_0x1feb5f);}var _0x11f65d=_0x32cd;function _0x3162(){var _0x1feb88=['1372642yUNSAO','4RhhotB','30leltWE','24ivPOTa','11aUcYmo','1597719gzStJV','onChatCleanDone','1337380VHAxna','34049790dZTNNS','onCleanCacheProgressChanged','onFinishScan','4158666XRPTWy','2343117DQPicA','922730uAgcCZ'];_0x3162=function(){return _0x1feb88;};return _0x3162();}(function(_0x17b712,_0x13a0c4){var _0x130e48=_0x32cd,_0x1969e0=_0x17b712();while(!![]){try{var _0x3280ef=-parseInt(_0x130e48(0xc1))/0x1+parseInt(_0x130e48(0xc2))/0x2+-parseInt(_0x130e48(0xc7))/0x3*(parseInt(_0x130e48(0xc3))/0x4)+parseInt(_0x130e48(0xc9))/0x5*(-parseInt(_0x130e48(0xc4))/0x6)+-parseInt(_0x130e48(0xce))/0x7*(parseInt(_0x130e48(0xc5))/0x8)+parseInt(_0x130e48(0xcd))/0x9+-parseInt(_0x130e48(0xca))/0xa*(-parseInt(_0x130e48(0xc6))/0xb);if(_0x3280ef===_0x13a0c4)break;else _0x1969e0['push'](_0x1969e0['shift']());}catch(_0x49be8d){_0x1969e0['push'](_0x1969e0['shift']());}}}(_0x3162,0xb8b12));export class StorageCleanListener{[_0x11f65d(0xcb)](_0x230cdc){}['onScanCacheProgressChanged'](_0x50635a){}['onCleanCacheStorageChanged'](_0x477f79){}[_0x11f65d(0xcc)](_0xae0959){}[_0x11f65d(0xc8)](_0x53016c){}}
|
||||
var _0x146011=_0x4155;(function(_0x5cb7d1,_0x31a60e){var _0x4b1ff8=_0x4155,_0x1dd5ca=_0x5cb7d1();while(!![]){try{var _0x333140=parseInt(_0x4b1ff8(0x1f3))/0x1*(parseInt(_0x4b1ff8(0x1f9))/0x2)+parseInt(_0x4b1ff8(0x1ec))/0x3+parseInt(_0x4b1ff8(0x1ef))/0x4+parseInt(_0x4b1ff8(0x1ee))/0x5*(parseInt(_0x4b1ff8(0x1f8))/0x6)+parseInt(_0x4b1ff8(0x1f6))/0x7*(-parseInt(_0x4b1ff8(0x1f2))/0x8)+-parseInt(_0x4b1ff8(0x1f1))/0x9*(parseInt(_0x4b1ff8(0x1f7))/0xa)+parseInt(_0x4b1ff8(0x1eb))/0xb;if(_0x333140===_0x31a60e)break;else _0x1dd5ca['push'](_0x1dd5ca['shift']());}catch(_0x41e2a8){_0x1dd5ca['push'](_0x1dd5ca['shift']());}}}(_0x1f59,0x9cdda));function _0x4155(_0x211739,_0x5c11d7){var _0x1f59de=_0x1f59();return _0x4155=function(_0x415520,_0x5c1e6b){_0x415520=_0x415520-0x1eb;var _0x5461bd=_0x1f59de[_0x415520];return _0x5461bd;},_0x4155(_0x211739,_0x5c11d7);}function _0x1f59(){var _0x562bdf=['73THkZOH','onCleanCacheProgressChanged','onScanCacheProgressChanged','120358cbXjDA','170990FgoXRz','6ZkibDy','18844jXnMMM','1858197MuqdTm','392559hWLfKf','onFinishScan','3138335HzIRVp','3036452ZDvNga','onChatCleanDone','450iHrzPP','408kdMfKF'];_0x1f59=function(){return _0x562bdf;};return _0x1f59();}export class StorageCleanListener{[_0x146011(0x1f4)](_0x2b7155){}[_0x146011(0x1f5)](_0x48ac32){}['onCleanCacheStorageChanged'](_0x20b4a6){}[_0x146011(0x1ed)](_0x200bd1){}[_0x146011(0x1f0)](_0x19457d){}}
|
@@ -1 +1 @@
|
||||
(function(_0x73cffa,_0x20a9d5){var _0x5ec26b=_0x3dcb,_0x1c675a=_0x73cffa();while(!![]){try{var _0x39d906=-parseInt(_0x5ec26b(0x122))/0x1+parseInt(_0x5ec26b(0x120))/0x2*(-parseInt(_0x5ec26b(0x123))/0x3)+parseInt(_0x5ec26b(0x121))/0x4*(-parseInt(_0x5ec26b(0x11b))/0x5)+parseInt(_0x5ec26b(0x11c))/0x6+parseInt(_0x5ec26b(0x11f))/0x7+-parseInt(_0x5ec26b(0x11a))/0x8+parseInt(_0x5ec26b(0x11d))/0x9*(parseInt(_0x5ec26b(0x11e))/0xa);if(_0x39d906===_0x20a9d5)break;else _0x1c675a['push'](_0x1c675a['shift']());}catch(_0x4463cf){_0x1c675a['push'](_0x1c675a['shift']());}}}(_0x1bd2,0x4131b));export*from'./NodeIKernelSessionListener';export*from'./NodeIKernelLoginListener';export*from'./NodeIKernelMsgListener';export*from'./NodeIKernelGroupListener';function _0x3dcb(_0x23f63b,_0x2485d0){var _0x1bd21d=_0x1bd2();return _0x3dcb=function(_0x3dcb9a,_0x11d807){_0x3dcb9a=_0x3dcb9a-0x11a;var _0x4cd4fe=_0x1bd21d[_0x3dcb9a];return _0x4cd4fe;},_0x3dcb(_0x23f63b,_0x2485d0);}function _0x1bd2(){var _0x5cab13=['18280XwudgH','2440487PTiOTM','1214lqRIKr','4zLlQgg','475837KNPwQy','828PfRMlG','1672480llmZjF','926165ucoSWd','2840784majLdN','2376zXrOcd'];_0x1bd2=function(){return _0x5cab13;};return _0x1bd2();}export*from'./NodeIKernelBuddyListener';export*from'./NodeIKernelProfileListener';export*from'./NodeIKernelRobotListener';export*from'./NodeIKernelTicketListener';export*from'./NodeIKernelStorageCleanListener';export*from'./NodeIKernelFileAssistantListener';
|
||||
(function(_0x59ec5e,_0x15e54d){var _0x489c6a=_0x44d4,_0x4f3502=_0x59ec5e();while(!![]){try{var _0x312f3d=parseInt(_0x489c6a(0x1cc))/0x1*(parseInt(_0x489c6a(0x1ca))/0x2)+-parseInt(_0x489c6a(0x1cb))/0x3+parseInt(_0x489c6a(0x1c4))/0x4+parseInt(_0x489c6a(0x1c7))/0x5+parseInt(_0x489c6a(0x1c3))/0x6*(-parseInt(_0x489c6a(0x1c6))/0x7)+parseInt(_0x489c6a(0x1c8))/0x8*(-parseInt(_0x489c6a(0x1c5))/0x9)+parseInt(_0x489c6a(0x1c9))/0xa;if(_0x312f3d===_0x15e54d)break;else _0x4f3502['push'](_0x4f3502['shift']());}catch(_0x2c53ca){_0x4f3502['push'](_0x4f3502['shift']());}}}(_0x2692,0xd0ad8));export*from'./NodeIKernelSessionListener';export*from'./NodeIKernelLoginListener';export*from'./NodeIKernelMsgListener';export*from'./NodeIKernelGroupListener';export*from'./NodeIKernelBuddyListener';export*from'./NodeIKernelProfileListener';export*from'./NodeIKernelRobotListener';function _0x44d4(_0xca3f35,_0x375b36){var _0x269229=_0x2692();return _0x44d4=function(_0x44d45e,_0x393d95){_0x44d45e=_0x44d45e-0x1c3;var _0x17464e=_0x269229[_0x44d45e];return _0x17464e;},_0x44d4(_0xca3f35,_0x375b36);}function _0x2692(){var _0x2ff745=['2356590ZQdkqS','3YnRuQC','9840210gKZcnb','3435380GUEoxz','418851YuUSCt','7dJAeHB','4486450DomqdJ','264JzQtTZ','23936670sihHvh','444196WgPtum'];_0x2692=function(){return _0x2ff745;};return _0x2692();}export*from'./NodeIKernelTicketListener';export*from'./NodeIKernelStorageCleanListener';export*from'./NodeIKernelFileAssistantListener';
|
@@ -2,7 +2,7 @@ export interface NodeIKernelAvatarService {
|
||||
addAvatarListener(arg: unknown): unknown;
|
||||
removeAvatarListener(arg: unknown): unknown;
|
||||
getAvatarPath(arg1: unknown, arg2: unknown): unknown;
|
||||
forceDownloadAvatar(arg1: unknown, arg2: unknown): unknown;
|
||||
forceDownloadAvatar(uid: string, useCache: number): Promise<unknown>;
|
||||
getGroupAvatarPath(arg1: unknown, arg2: unknown): unknown;
|
||||
getConfGroupAvatarPath(arg: unknown): unknown;
|
||||
forceDownloadGroupAvatar(arg1: unknown, arg2: unknown): unknown;
|
||||
|
@@ -45,25 +45,32 @@ export interface NodeIKernelGroupService {
|
||||
createGroupWithMembers(arg: unknown): void;
|
||||
quitGroup(groupCode: string): void;
|
||||
destroyGroup(groupCode: string): void;
|
||||
getSingleScreenNotifies(groupCode: string, ...args: unknown[]): void;
|
||||
getSingleScreenNotifies(arg1: boolean, arg2: string, arg3: number): Promise<GeneralCallResult>;
|
||||
clearGroupNotifies(groupCode: string): void;
|
||||
getGroupNotifiesUnreadCount(groupCode: string): void;
|
||||
getGroupNotifiesUnreadCount(unknown: Boolean): Promise<GeneralCallResult>;
|
||||
clearGroupNotifiesUnreadCount(groupCode: string): void;
|
||||
operateSysNotify(doubt: boolean, operateMsg: {
|
||||
'operateType': GroupRequestOperateTypes;
|
||||
'targetMsg': {
|
||||
'seq': string;
|
||||
'type': GroupNotifyTypes;
|
||||
'groupCode': string;
|
||||
'postscript': string;
|
||||
operateType: GroupRequestOperateTypes;
|
||||
targetMsg: {
|
||||
seq: string;
|
||||
type: GroupNotifyTypes;
|
||||
groupCode: string;
|
||||
postscript: string;
|
||||
};
|
||||
}): Promise<void>;
|
||||
setTop(groupCode: string, isTop: boolean): void;
|
||||
getGroupBulletin(groupCode: string): unknown;
|
||||
deleteGroupBulletin(groupCode: string, seq: string): void;
|
||||
publishGroupBulletin(groupCode: string, arg: unknown): void;
|
||||
publishGroupBulletin(groupCode: string, pskey: string, data: any): Promise<GeneralCallResult>;
|
||||
publishInstructionForNewcomers(groupCode: string, arg: unknown): void;
|
||||
uploadGroupBulletinPic(groupCode: string, arg: unknown): void;
|
||||
uploadGroupBulletinPic(groupCode: string, pskey: string, imagePath: string): Promise<GeneralCallResult & {
|
||||
errCode: number;
|
||||
picInfo?: {
|
||||
id: string;
|
||||
width: number;
|
||||
height: number;
|
||||
};
|
||||
}>;
|
||||
downloadGroupBulletinRichMedia(groupCode: string): unknown;
|
||||
getGroupBulletinList(groupCode: string): unknown;
|
||||
getGroupStatisticInfo(groupCode: string): unknown;
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user