mirror of
https://github.com/NapNeko/NapCatQQ.git
synced 2025-07-19 12:03:37 +00:00
Compare commits
307 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
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 |
@@ -5,7 +5,7 @@ root = true
|
||||
|
||||
# Unix-style newlines with a newline ending every file
|
||||
[*]
|
||||
end_of_line = lf
|
||||
end_of_line = lf|crlf
|
||||
insert_final_newline = true
|
||||
|
||||
# Matches multiple files with brace expansion notation
|
||||
@@ -18,4 +18,4 @@ indent_style = space
|
||||
indent_size = 2
|
||||
|
||||
# Unfortunately, EditorConfig doesn't support space configuration inside import braces directly.
|
||||
# You'll need to rely on your linter/formatter like ESLint or Prettier for that.
|
||||
# You'll need to rely on your linter/formatter like ESLint or Prettier for that.
|
@@ -1 +1 @@
|
||||
VITE_BUILD_TYPE = Production
|
||||
VITE_BUILD_TYPE = Production
|
||||
|
@@ -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
|
||||
|
5
.gitignore
vendored
5
.gitignore
vendored
@@ -1,10 +1,11 @@
|
||||
# Develop
|
||||
node_modules/
|
||||
package-lock.json
|
||||
pnpm-lock.yaml
|
||||
out/
|
||||
dist/
|
||||
src/core.lib/common/
|
||||
test
|
||||
/src/core.lib/common/
|
||||
/localdebug/
|
||||
|
||||
# Editor
|
||||
.vscode/*
|
||||
|
15
CHANGELOG.md
15
CHANGELOG.md
@@ -1,15 +0,0 @@
|
||||
# v1.3.0
|
||||
|
||||
QQ Version: Windows 9.9.9-23424 / Linux 3.2.7-23361
|
||||
|
||||
## 修复与优化
|
||||
* 修复了一个导致每个图片都自动下载的 bug
|
||||
* 再一次修复图片URL,支持 Win/Linux X64 获取Rkey,暂时不支持arm64
|
||||
* 修复了设置消息群聊与私聊已读接口
|
||||
* 修复无法获取进群申请人员信息
|
||||
## 新增与调整
|
||||
* 再一次对获取Cookies与获取群成员优化,分别添加30/60/120分钟缓存
|
||||
* 新增 WebUi 支持远程配置设置 详细参考官方教程
|
||||
* 新增二维码过期自动刷新功能
|
||||
|
||||
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)
|
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)
|
131
package.json
131
package.json
@@ -1,65 +1,66 @@
|
||||
{
|
||||
"name": "napcat",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"version": "1.3.0",
|
||||
"scripts": {
|
||||
"watch:dev": "vite --mode development",
|
||||
"watch:prod": "vite --mode production",
|
||||
"build:dev": "vite build --mode development",
|
||||
"build:prod": "vite build --mode production",
|
||||
"build": "npm run build:dev",
|
||||
"build:core": "cd ./src/core && npm run build && cd ../.. && node ./script/copy-core.cjs",
|
||||
"build:webui": "cd ./src/webui && vite build",
|
||||
"watch": "npm run watch:dev",
|
||||
"debug-win": "powershell dist/napcat.ps1",
|
||||
"lint": "eslint --fix src/**/*.{js,ts}",
|
||||
"release": "npm run build:prod",
|
||||
"depend": "cd dist && npm install --omit=dev"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@log4js-node/log4js-api": "^1.0.2",
|
||||
"@rollup/plugin-commonjs": "^25.0.7",
|
||||
"@rollup/plugin-node-resolve": "^15.2.3",
|
||||
"@rollup/plugin-typescript": "^11.1.6",
|
||||
"@types/cors": "^2.8.17",
|
||||
"@types/express": "^4.17.21",
|
||||
"@types/figlet": "^1.5.8",
|
||||
"@types/fluent-ffmpeg": "^2.1.24",
|
||||
"@types/node": "^20.11.30",
|
||||
"@types/qrcode-terminal": "^0.12.2",
|
||||
"@types/uuid": "^9.0.8",
|
||||
"@types/ws": "^8.5.10",
|
||||
"@typescript-eslint/eslint-plugin": "^7.4.0",
|
||||
"@typescript-eslint/parser": "^7.4.0",
|
||||
"eslint": "^8.57.0",
|
||||
"eslint-import-resolver-typescript": "^3.6.1",
|
||||
"eslint-plugin-import": "^2.29.1",
|
||||
"i": "^0.3.7",
|
||||
"javascript-obfuscator": "^4.1.0",
|
||||
"protobufjs-cli": "^1.1.2",
|
||||
"rollup": "^4.13.2",
|
||||
"rollup-plugin-dts": "^6.1.0",
|
||||
"rollup-plugin-obfuscator": "^1.1.0",
|
||||
"typescript": "^5.3.3",
|
||||
"vite": "^5.2.6",
|
||||
"vite-plugin-cp": "^4.0.8",
|
||||
"vite-plugin-dts": "^3.8.2",
|
||||
"vite-tsconfig-paths": "^4.3.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"commander": "^12.0.0",
|
||||
"cors": "^2.8.5",
|
||||
"express": "^5.0.0-beta.2",
|
||||
"fast-xml-parser": "^4.3.6",
|
||||
"file-type": "^19.0.0",
|
||||
"fluent-ffmpeg": "^2.1.2",
|
||||
"image-size": "^1.1.1",
|
||||
"log4js": "^6.9.1",
|
||||
"qrcode-terminal": "^0.12.0",
|
||||
"silk-wasm": "^3.3.4",
|
||||
"sqlite3": "^5.1.7",
|
||||
"uuid": "^9.0.1",
|
||||
"ws": "^8.16.0"
|
||||
}
|
||||
}
|
||||
{
|
||||
"name": "napcat",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"version": "1.4.3",
|
||||
"scripts": {
|
||||
"watch:dev": "vite --mode development",
|
||||
"watch:prod": "vite --mode production",
|
||||
"build:dev": "vite build --mode development",
|
||||
"build:prod": "vite build --mode production",
|
||||
"build": "npm run build:dev",
|
||||
"build:core": "cd ./src/core && npm run build && cd ../.. && node ./script/copy-core.cjs",
|
||||
"build:webui": "cd ./src/webui && vite build",
|
||||
"watch": "npm run watch:dev",
|
||||
"debug-win": "powershell dist/napcat.ps1",
|
||||
"lint": "eslint --fix src/**/*.{js,ts}",
|
||||
"release": "npm run build:prod",
|
||||
"depend": "cd dist && npm install --omit=dev"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@log4js-node/log4js-api": "^1.0.2",
|
||||
"@rollup/plugin-node-resolve": "^15.2.3",
|
||||
"@rollup/plugin-typescript": "^11.1.6",
|
||||
"@types/cors": "^2.8.17",
|
||||
"@types/express": "^4.17.21",
|
||||
"@types/figlet": "^1.5.8",
|
||||
"@types/fluent-ffmpeg": "^2.1.24",
|
||||
"@types/node": "^20.11.30",
|
||||
"@types/qrcode-terminal": "^0.12.2",
|
||||
"@types/uuid": "^9.0.8",
|
||||
"@types/ws": "^8.5.10",
|
||||
"@typescript-eslint/eslint-plugin": "^7.4.0",
|
||||
"@typescript-eslint/parser": "^7.4.0",
|
||||
"eslint": "^8.57.0",
|
||||
"eslint-import-resolver-typescript": "^3.6.1",
|
||||
"eslint-plugin-import": "^2.29.1",
|
||||
"i": "^0.3.7",
|
||||
"javascript-obfuscator": "^4.1.0",
|
||||
"rollup": "^4.13.2",
|
||||
"rollup-plugin-dts": "^6.1.0",
|
||||
"rollup-plugin-obfuscator": "^1.1.0",
|
||||
"typescript": "^5.3.3",
|
||||
"vite": "^5.2.6",
|
||||
"vite-plugin-cp": "^4.0.8",
|
||||
"vite-plugin-dts": "^3.8.2",
|
||||
"vite-tsconfig-paths": "^4.3.2",
|
||||
"@protobuf-ts/plugin": "^2.9.4"
|
||||
},
|
||||
"dependencies": {
|
||||
"ajv": "^8.13.0",
|
||||
"commander": "^12.0.0",
|
||||
"cors": "^2.8.5",
|
||||
"express": "^5.0.0-beta.2",
|
||||
"fast-xml-parser": "^4.3.6",
|
||||
"file-type": "^19.0.0",
|
||||
"fluent-ffmpeg": "^2.1.2",
|
||||
"image-size": "^1.1.1",
|
||||
"json-schema-to-ts": "^3.1.0",
|
||||
"log4js": "^6.9.1",
|
||||
"qrcode-terminal": "^0.12.0",
|
||||
"silk-wasm": "^3.3.4",
|
||||
"sqlite3": "^5.1.7",
|
||||
"uuid": "^9.0.1",
|
||||
"ws": "^8.16.0"
|
||||
}
|
||||
}
|
||||
|
@@ -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,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 });
|
||||
|
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();
|
||||
|
@@ -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.3.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: b506d4cbdd...b1a9207a59
Binary file not shown.
Binary file not shown.
@@ -1 +1 @@
|
||||
var _0x20f3a3=_0xab98;function _0x199d(){var _0x242524=['867835orpyol','4820904NfmEhM','1317316mJNiBq','getGroupCode','450140cGAuXI','20613waHIrp','8oFAhmM','onMSFSsoError','204bbaYtT','4929841hhAgzJ','40438130xxOPUR','onMSFStatusChange','30YvLOjS'];_0x199d=function(){return _0x242524;};return _0x199d();}(function(_0x5cd7da,_0x2c9531){var _0x5a5abb=_0xab98,_0x5e2994=_0x5cd7da();while(!![]){try{var _0x25997b=-parseInt(_0x5a5abb(0x7f))/0x1+parseInt(_0x5a5abb(0x7a))/0x2*(-parseInt(_0x5a5abb(0x77))/0x3)+-parseInt(_0x5a5abb(0x81))/0x4+parseInt(_0x5a5abb(0x83))/0x5*(-parseInt(_0x5a5abb(0x7e))/0x6)+-parseInt(_0x5a5abb(0x7b))/0x7+parseInt(_0x5a5abb(0x78))/0x8*(-parseInt(_0x5a5abb(0x80))/0x9)+parseInt(_0x5a5abb(0x7c))/0xa;if(_0x25997b===_0x2c9531)break;else _0x5e2994['push'](_0x5e2994['shift']());}catch(_0x3ba8b5){_0x5e2994['push'](_0x5e2994['shift']());}}}(_0x199d,0x6f444));function _0xab98(_0x1f2e57,_0x4954bf){var _0x199dc8=_0x199d();return _0xab98=function(_0xab9882,_0x1ff8bb){_0xab9882=_0xab9882-0x77;var _0x3c4334=_0x199dc8[_0xab9882];return _0x3c4334;},_0xab98(_0x1f2e57,_0x4954bf);}export class DependsAdapter{[_0x20f3a3(0x7d)](_0x488b05,_0x25a4d5){}[_0x20f3a3(0x79)](_0x22e500){}[_0x20f3a3(0x82)](_0x35a823){}}
|
||||
function _0x25a6(){var _0xdd7643=['171480fTSZGd','13mTAWhM','212UxsLaG','218104NjVwMP','176PerDSv','6gTIyto','999355ASHHIg','4114uTcLFG','getGroupCode','188488EaPnYY','11621736UKRGew','35SooqVm','onMSFSsoError','157848LdBgRG','45VADGBR'];_0x25a6=function(){return _0xdd7643;};return _0x25a6();}var _0x4edd10=_0x5825;function _0x5825(_0x3ca2ee,_0x2ea4bb){var _0x25a61d=_0x25a6();return _0x5825=function(_0x58250a,_0x450460){_0x58250a=_0x58250a-0x18b;var _0x304a6d=_0x25a61d[_0x58250a];return _0x304a6d;},_0x5825(_0x3ca2ee,_0x2ea4bb);}(function(_0x34a7e7,_0x28e4cb){var _0x5cd101=_0x5825,_0xfe3b98=_0x34a7e7();while(!![]){try{var _0x48368d=-parseInt(_0x5cd101(0x18f))/0x1*(parseInt(_0x5cd101(0x199))/0x2)+parseInt(_0x5cd101(0x18d))/0x3*(-parseInt(_0x5cd101(0x191))/0x4)+-parseInt(_0x5cd101(0x18e))/0x5+-parseInt(_0x5cd101(0x195))/0x6*(parseInt(_0x5cd101(0x193))/0x7)+-parseInt(_0x5cd101(0x18b))/0x8*(parseInt(_0x5cd101(0x196))/0x9)+parseInt(_0x5cd101(0x197))/0xa*(parseInt(_0x5cd101(0x18c))/0xb)+-parseInt(_0x5cd101(0x192))/0xc*(-parseInt(_0x5cd101(0x198))/0xd);if(_0x48368d===_0x28e4cb)break;else _0xfe3b98['push'](_0xfe3b98['shift']());}catch(_0x2b3d8b){_0xfe3b98['push'](_0xfe3b98['shift']());}}}(_0x25a6,0x3bc38));export class DependsAdapter{['onMSFStatusChange'](_0x3c4517,_0x2bacbb){}[_0x4edd10(0x194)](_0x185a15){}[_0x4edd10(0x190)](_0x16e148){}}
|
@@ -1 +1 @@
|
||||
var _0x3a826a=_0x50c0;(function(_0x58209d,_0x457985){var _0x4e7f7f=_0x50c0,_0x6c4dd4=_0x58209d();while(!![]){try{var _0x4cd98f=parseInt(_0x4e7f7f(0xb4))/0x1+parseInt(_0x4e7f7f(0xbe))/0x2*(parseInt(_0x4e7f7f(0xb6))/0x3)+parseInt(_0x4e7f7f(0xb8))/0x4+-parseInt(_0x4e7f7f(0xb7))/0x5*(-parseInt(_0x4e7f7f(0xbf))/0x6)+parseInt(_0x4e7f7f(0xb5))/0x7*(parseInt(_0x4e7f7f(0xbd))/0x8)+-parseInt(_0x4e7f7f(0xc0))/0x9+parseInt(_0x4e7f7f(0xbc))/0xa*(-parseInt(_0x4e7f7f(0xbb))/0xb);if(_0x4cd98f===_0x457985)break;else _0x6c4dd4['push'](_0x6c4dd4['shift']());}catch(_0x554e0f){_0x6c4dd4['push'](_0x6c4dd4['shift']());}}}(_0x5bbf,0x2ebf4));export class DispatcherAdapter{[_0x3a826a(0xb9)](_0x3985c1){}['dispatchCall'](_0x54a892){}[_0x3a826a(0xba)](_0x14b0dc){}}function _0x50c0(_0x165ac0,_0x11c111){var _0x5bbf85=_0x5bbf();return _0x50c0=function(_0x50c011,_0x2b2384){_0x50c011=_0x50c011-0xb4;var _0x466d72=_0x5bbf85[_0x50c011];return _0x466d72;},_0x50c0(_0x165ac0,_0x11c111);}function _0x5bbf(){var _0x52ff37=['1491652WULToR','dispatchRequest','dispatchCallWithJson','2235827oVrwUv','30KzTwbU','136WfIqPO','18IwgFaa','16722NvbGSt','3430728zqiFyT','75305fnfONu','131222lMZVkq','124578SapZzq','75GkdEQt'];_0x5bbf=function(){return _0x52ff37;};return _0x5bbf();}
|
||||
function _0x5ae8(_0x5671e6,_0x1b7701){var _0x5d8967=_0x5d89();return _0x5ae8=function(_0x5ae8cf,_0x13afaf){_0x5ae8cf=_0x5ae8cf-0xf6;var _0x3b9185=_0x5d8967[_0x5ae8cf];return _0x3b9185;},_0x5ae8(_0x5671e6,_0x1b7701);}var _0x5676ef=_0x5ae8;function _0x5d89(){var _0x4251a7=['2390jmWPaL','75892IwWhIs','9IyWOXX','2212231YLtLBE','1434865bwkTfO','5592464yunGFX','16935220QmZfLP','dispatchCallWithJson','6cmAJYT','dispatchCall','75507iVSdbn','41BKOKcG'];_0x5d89=function(){return _0x4251a7;};return _0x5d89();}(function(_0x14c371,_0x3171b4){var _0x45f357=_0x5ae8,_0x1dbbc3=_0x14c371();while(!![]){try{var _0x24695c=parseInt(_0x45f357(0xf7))/0x1*(-parseInt(_0x45f357(0xf8))/0x2)+parseInt(_0x45f357(0xf6))/0x3+parseInt(_0x45f357(0xf9))/0x4+-parseInt(_0x45f357(0xfc))/0x5+parseInt(_0x45f357(0x100))/0x6*(-parseInt(_0x45f357(0xfb))/0x7)+-parseInt(_0x45f357(0xfd))/0x8+parseInt(_0x45f357(0xfa))/0x9*(parseInt(_0x45f357(0xfe))/0xa);if(_0x24695c===_0x3171b4)break;else _0x1dbbc3['push'](_0x1dbbc3['shift']());}catch(_0x36c716){_0x1dbbc3['push'](_0x1dbbc3['shift']());}}}(_0x5d89,0x5e62d));export class DispatcherAdapter{['dispatchRequest'](_0x5ed5e9){}[_0x5676ef(0x101)](_0xf81cc4){}[_0x5676ef(0xff)](_0x5e48a7){}}
|
@@ -1 +1 @@
|
||||
function _0x1594(_0x58c29b,_0x44acfd){var _0x4d164b=_0x4d16();return _0x1594=function(_0x1594d5,_0x1525fc){_0x1594d5=_0x1594d5-0x198;var _0x1c1815=_0x4d164b[_0x1594d5];return _0x1c1815;},_0x1594(_0x58c29b,_0x44acfd);}var _0x175dc0=_0x1594;(function(_0x1b3e3d,_0x5116e4){var _0x17fe4f=_0x1594,_0x36c543=_0x1b3e3d();while(!![]){try{var _0x6b9ab7=parseInt(_0x17fe4f(0x19f))/0x1*(-parseInt(_0x17fe4f(0x19d))/0x2)+parseInt(_0x17fe4f(0x1a4))/0x3+-parseInt(_0x17fe4f(0x19b))/0x4+parseInt(_0x17fe4f(0x1a6))/0x5*(-parseInt(_0x17fe4f(0x19a))/0x6)+parseInt(_0x17fe4f(0x1a8))/0x7+-parseInt(_0x17fe4f(0x1a2))/0x8*(-parseInt(_0x17fe4f(0x1a3))/0x9)+parseInt(_0x17fe4f(0x1a0))/0xa*(parseInt(_0x17fe4f(0x19c))/0xb);if(_0x6b9ab7===_0x5116e4)break;else _0x36c543['push'](_0x36c543['shift']());}catch(_0x42cd0b){_0x36c543['push'](_0x36c543['shift']());}}}(_0x4d16,0x2199c));function _0x4d16(){var _0x2d8922=['1419546mxJbdk','446484HoiEEq','44yRWgfw','2XpkqmL','onUpdateGeneralFlag','185044fHAWUd','749790oMOrHe','onShowErrUITips','149672nKQepV','18zczhAP','504006SYbXob','onInstallFinished','5OkkvYy','onGetSrvCalTime','1158836BJpeXd','onGetOfflineMsg','onLog'];_0x4d16=function(){return _0x2d8922;};return _0x4d16();}export class GlobalAdapter{[_0x175dc0(0x199)](..._0x3e4b79){}[_0x175dc0(0x1a7)](..._0x987740){}[_0x175dc0(0x1a1)](..._0x292841){}['fixPicImgType'](..._0x415237){}['getAppSetting'](..._0x3934ab){}[_0x175dc0(0x1a5)](..._0x486c90){}[_0x175dc0(0x19e)](..._0x1b54fe){}[_0x175dc0(0x198)](..._0x466ac8){}}
|
||||
var _0x5969b5=_0x648f;(function(_0x2e5b6b,_0x537384){var _0x392e47=_0x648f,_0x222f7f=_0x2e5b6b();while(!![]){try{var _0x3393d4=-parseInt(_0x392e47(0x1f6))/0x1*(-parseInt(_0x392e47(0x1fc))/0x2)+-parseInt(_0x392e47(0x1fa))/0x3+parseInt(_0x392e47(0x1f0))/0x4*(parseInt(_0x392e47(0x1f9))/0x5)+-parseInt(_0x392e47(0x1f5))/0x6+parseInt(_0x392e47(0x1f7))/0x7*(-parseInt(_0x392e47(0x1ef))/0x8)+-parseInt(_0x392e47(0x1fb))/0x9+-parseInt(_0x392e47(0x1fd))/0xa*(-parseInt(_0x392e47(0x1f4))/0xb);if(_0x3393d4===_0x537384)break;else _0x222f7f['push'](_0x222f7f['shift']());}catch(_0x188d3d){_0x222f7f['push'](_0x222f7f['shift']());}}}(_0x200b,0x5183c));function _0x648f(_0x459708,_0x5021fc){var _0x200be7=_0x200b();return _0x648f=function(_0x648fc5,_0x5ad5e9){_0x648fc5=_0x648fc5-0x1ef;var _0x5f58ef=_0x200be7[_0x648fc5];return _0x5f58ef;},_0x648f(_0x459708,_0x5021fc);}function _0x200b(){var _0x27af87=['2110yJeksz','1962246oZlEUS','4789350GBUiol','36fzDwZn','243730JXrBXC','onGetSrvCalTime','48936GVHAAb','5540KcCnpw','fixPicImgType','onUpdateGeneralFlag','onLog','407fYllKo','1345488GZlWjQ','21475xNAgeJ','147viHBLw','onInstallFinished'];_0x200b=function(){return _0x27af87;};return _0x200b();}export class GlobalAdapter{[_0x5969b5(0x1f3)](..._0x4cd67a){}[_0x5969b5(0x1fe)](..._0x53d3e9){}['onShowErrUITips'](..._0x10e098){}[_0x5969b5(0x1f1)](..._0x83880a){}['getAppSetting'](..._0x19369d){}[_0x5969b5(0x1f8)](..._0x5918ba){}[_0x5969b5(0x1f2)](..._0x334fda){}['onGetOfflineMsg'](..._0xf51674){}}
|
@@ -1 +1 @@
|
||||
(function(_0x58f3c0,_0x4da555){var _0x533787=_0x47f5,_0x20e107=_0x58f3c0();while(!![]){try{var _0x1ecc8a=parseInt(_0x533787(0xa8))/0x1+parseInt(_0x533787(0xa5))/0x2+parseInt(_0x533787(0xaa))/0x3+-parseInt(_0x533787(0xab))/0x4+-parseInt(_0x533787(0xa7))/0x5+parseInt(_0x533787(0xa6))/0x6+-parseInt(_0x533787(0xa9))/0x7;if(_0x1ecc8a===_0x4da555)break;else _0x20e107['push'](_0x20e107['shift']());}catch(_0x45e3c2){_0x20e107['push'](_0x20e107['shift']());}}}(_0x4522,0xd51f1));export*from'./NodeIDependsAdapter';function _0x4522(){var _0x35130d=['1885660uvyoQv','2176134RkNlVH','10342008dNTcpR','1718020vzZflV','591401KlIhxJ','12755001GAlbSX','320913ocIGre'];_0x4522=function(){return _0x35130d;};return _0x4522();}export*from'./NodeIDispatcherAdapter';function _0x47f5(_0x5209cd,_0x119af6){var _0x4522f9=_0x4522();return _0x47f5=function(_0x47f51e,_0x4a3f72){_0x47f51e=_0x47f51e-0xa5;var _0x5460ce=_0x4522f9[_0x47f51e];return _0x5460ce;},_0x47f5(_0x5209cd,_0x119af6);}export*from'./NodeIGlobalAdapter';
|
||||
function _0x4c96(){var _0x564383=['480hqnzId','27790IeIBqZ','30AZvOeB','60354qNVEll','413611LzSUdm','1508454vPtBkh','3iXDfng','4059hpIePC','26148sfNiWG','1096uRvExm','1329638RwNvBG','26444aSdHqz'];_0x4c96=function(){return _0x564383;};return _0x4c96();}(function(_0x3ea820,_0x55d7cd){var _0x37b964=_0x296f,_0x2c7e67=_0x3ea820();while(!![]){try{var _0x1913b0=-parseInt(_0x37b964(0x182))/0x1+parseInt(_0x37b964(0x17c))/0x2*(parseInt(_0x37b964(0x184))/0x3)+parseInt(_0x37b964(0x17d))/0x4*(-parseInt(_0x37b964(0x17e))/0x5)+-parseInt(_0x37b964(0x181))/0x6+parseInt(_0x37b964(0x17f))/0x7*(-parseInt(_0x37b964(0x17b))/0x8)+-parseInt(_0x37b964(0x183))/0x9*(-parseInt(_0x37b964(0x180))/0xa)+-parseInt(_0x37b964(0x185))/0xb*(-parseInt(_0x37b964(0x17a))/0xc);if(_0x1913b0===_0x55d7cd)break;else _0x2c7e67['push'](_0x2c7e67['shift']());}catch(_0x37256a){_0x2c7e67['push'](_0x2c7e67['shift']());}}}(_0x4c96,0x5a340));export*from'./NodeIDependsAdapter';export*from'./NodeIDispatcherAdapter';function _0x296f(_0x210b60,_0x58f4fc){var _0x4c967e=_0x4c96();return _0x296f=function(_0x296f8e,_0x5e96bb){_0x296f8e=_0x296f8e-0x17a;var _0x466ae3=_0x4c967e[_0x296f8e];return _0x466ae3;},_0x296f(_0x210b60,_0x58f4fc);}export*from'./NodeIGlobalAdapter';
|
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 _0x5d90db=_0x6e1f;(function(_0x24d76c,_0x417026){const _0x3934dc=_0x6e1f,_0x409f34=_0x24d76c();while(!![]){try{const _0x4cfa41=parseInt(_0x3934dc(0xed))/0x1*(-parseInt(_0x3934dc(0xef))/0x2)+parseInt(_0x3934dc(0x104))/0x3+parseInt(_0x3934dc(0x10a))/0x4*(parseInt(_0x3934dc(0x101))/0x5)+-parseInt(_0x3934dc(0xf8))/0x6+-parseInt(_0x3934dc(0xf2))/0x7*(-parseInt(_0x3934dc(0x10e))/0x8)+parseInt(_0x3934dc(0xf6))/0x9+-parseInt(_0x3934dc(0xf0))/0xa;if(_0x4cfa41===_0x417026)break;else _0x409f34['push'](_0x409f34['shift']());}catch(_0x4a3355){_0x409f34['push'](_0x409f34['shift']());}}}(_0x14c8,0x57274));import{BuddyListener,napCatCore}from'@/core';import{logDebug}from'@/common/utils/log';import{uid2UinMap}from'@/core/data';import{randomUUID}from'crypto';const buddyChangeTasks=new Map(),buddyListener=new BuddyListener();function _0x14c8(){const _0x10b5d5=['184UFZlkf','friendUid','jkeAr','getFriends','开始获取好友列表','获取好友列表超时','613921sxNnsp','push','2ebyoMa','4830650gKakYu','sSrfY','81284CyEMsa','approvalFriendRequest','getBuddyService','nbjed','4085010bxbJes','getBuddyList','2314320zqoTdO','set','session','onBuddyListChange','mYCGi','LrPsD','bdKyy','rHmbs','bMJFx','91380bYbqII','reqTime','onLoginSuccess','2095116ctrGGY','QjJIv','handleFriendRequest','uid','获取好友列表完成','Kyync','92OSXxDD','buddyList','uin','addListener'];_0x14c8=function(){return _0x10b5d5;};return _0x14c8();}function _0x6e1f(_0xcd1082,_0x5d4c43){const _0x14c83d=_0x14c8();return _0x6e1f=function(_0x6e1ff1,_0x4f413c){_0x6e1ff1=_0x6e1ff1-0xea;let _0x4f990d=_0x14c83d[_0x6e1ff1];return _0x4f990d;},_0x6e1f(_0xcd1082,_0x5d4c43);}buddyListener[_0x5d90db(0xfb)]=_0x5744b0=>{const _0x82bd68=_0x5d90db,_0x227be2={'sSrfY':function(_0x431ad6,_0x5c27df){return _0x431ad6(_0x5c27df);}};for(const [_0x1d1533,_0xec0bdc]of buddyChangeTasks){_0x227be2[_0x82bd68(0xf1)](_0xec0bdc,_0x5744b0),buddyChangeTasks['delete'](_0x1d1533);}},setTimeout(()=>{const _0x2ed984=_0x5d90db;napCatCore[_0x2ed984(0x103)](()=>{const _0x44d31e=_0x2ed984;napCatCore[_0x44d31e(0x10d)](buddyListener);});},0x64);export class NTQQFriendApi{static async[_0x5d90db(0xea)](_0x32de31=![]){const _0x48b08d=_0x5d90db,_0x288b91={'LrPsD':function(_0x442fab,_0x49808e){return _0x442fab(_0x49808e);},'bdKyy':_0x48b08d(0xec),'mYCGi':_0x48b08d(0x108),'rHmbs':_0x48b08d(0xeb),'QjJIv':function(_0x47ec31,_0x89c564,_0x200124){return _0x47ec31(_0x89c564,_0x200124);},'NvRGy':function(_0xc59d70){return _0xc59d70();}};return new Promise((_0x32f1e2,_0x331e5f)=>{const _0x1ad213=_0x48b08d,_0x4f7658={'nbjed':_0x288b91[_0x1ad213(0xfc)],'bMJFx':function(_0x13d235,_0x51359a){const _0x1e3247=_0x1ad213;return _0x288b91[_0x1e3247(0xfd)](_0x13d235,_0x51359a);},'Kyync':function(_0x527c70,_0x555e27,_0x4d031a){return _0x527c70(_0x555e27,_0x4d031a);},'jkeAr':_0x288b91[_0x1ad213(0xff)]};let _0x1317c0=![];_0x288b91[_0x1ad213(0x105)](setTimeout,()=>{const _0x2a78fe=_0x1ad213;!_0x1317c0&&(_0x288b91[_0x2a78fe(0xfd)](logDebug,_0x288b91[_0x2a78fe(0xfe)]),_0x331e5f('获取好友列表超时'));},0x1388);const _0x254032=[],_0x321bb8=_0x304f26=>{const _0x7f8575=_0x1ad213;for(const _0x440f1c of _0x304f26){for(const _0x40aae7 of _0x440f1c[_0x7f8575(0x10b)]){_0x254032[_0x7f8575(0xee)](_0x40aae7),uid2UinMap[_0x40aae7[_0x7f8575(0x107)]]=_0x40aae7[_0x7f8575(0x10c)];}}_0x1317c0=!![],logDebug(_0x4f7658[_0x7f8575(0xf5)],_0x254032),_0x4f7658[_0x7f8575(0x100)](_0x32f1e2,_0x254032);};buddyChangeTasks[_0x1ad213(0xf9)](_0x288b91['NvRGy'](randomUUID),_0x321bb8),napCatCore[_0x1ad213(0xfa)][_0x1ad213(0xf4)]()[_0x1ad213(0xf7)](_0x32de31)['then'](_0x1e963c=>{const _0x1bea4b=_0x1ad213;_0x4f7658[_0x1bea4b(0x109)](logDebug,_0x4f7658[_0x1bea4b(0x110)],_0x1e963c);});});}static async[_0x5d90db(0x106)](_0x15a498,_0x30ed3c){const _0x4a1120=_0x5d90db;napCatCore[_0x4a1120(0xfa)][_0x4a1120(0xf4)]()?.[_0x4a1120(0xf3)]({'friendUid':_0x15a498[_0x4a1120(0x10f)],'reqTime':_0x15a498[_0x4a1120(0x102)],'accept':_0x30ed3c});}}
|
||||
const _0x50b69a=_0xb7af;(function(_0x49561b,_0x466f91){const _0x2024d3=_0xb7af,_0x1b6a68=_0x49561b();while(!![]){try{const _0x1c4700=parseInt(_0x2024d3(0x73))/0x1*(parseInt(_0x2024d3(0x93))/0x2)+parseInt(_0x2024d3(0x8b))/0x3*(-parseInt(_0x2024d3(0x6f))/0x4)+-parseInt(_0x2024d3(0x91))/0x5+-parseInt(_0x2024d3(0x89))/0x6+parseInt(_0x2024d3(0x87))/0x7*(-parseInt(_0x2024d3(0x78))/0x8)+-parseInt(_0x2024d3(0x79))/0x9+parseInt(_0x2024d3(0x86))/0xa*(parseInt(_0x2024d3(0x7c))/0xb);if(_0x1c4700===_0x466f91)break;else _0x1b6a68['push'](_0x1b6a68['shift']());}catch(_0x4c3cc6){_0x1b6a68['push'](_0x1b6a68['shift']());}}}(_0x205d,0x530ec));import{BuddyListener,napCatCore}from'@/core';import{logDebug}from'@/common/utils/log';import{uid2UinMap}from'@/core/data';function _0xb7af(_0x2b2f77,_0x52a784){const _0x205d86=_0x205d();return _0xb7af=function(_0xb7af5,_0x49fb4b){_0xb7af5=_0xb7af5-0x6e;let _0x51898b=_0x205d86[_0xb7af5];return _0x51898b;},_0xb7af(_0x2b2f77,_0x52a784);}import{randomUUID}from'crypto';const buddyChangeTasks=new Map(),buddyListener=new BuddyListener();buddyListener[_0x50b69a(0x74)]=_0x4d9c68=>{const _0x37af23=_0x50b69a,_0x31aa08={'mzKVs':function(_0x7f37fb,_0x2dfeb1){return _0x7f37fb(_0x2dfeb1);}};for(const [_0x275511,_0x12df34]of buddyChangeTasks){_0x31aa08[_0x37af23(0x81)](_0x12df34,_0x4d9c68),buddyChangeTasks[_0x37af23(0x8e)](_0x275511);}},setTimeout(()=>{const _0x6fe4aa=_0x50b69a;napCatCore[_0x6fe4aa(0x75)](()=>{const _0x2e11fb=_0x6fe4aa;napCatCore[_0x2e11fb(0x80)](buddyListener);});},0x64);export class NTQQFriendApi{static async[_0x50b69a(0x8c)](_0x54e974=![]){const _0x324411=_0x50b69a,_0x44693f={'FqrpM':function(_0x3afe93,_0x33aed7){return _0x3afe93(_0x33aed7);},'RThMz':function(_0x407758,_0x5ea025){return _0x407758(_0x5ea025);},'aMcav':function(_0x226af9,_0x439972,_0x5b8805){return _0x226af9(_0x439972,_0x5b8805);},'iWFZN':_0x324411(0x83),'HFvch':function(_0x425288,_0x2a4369,_0x12bc0e){return _0x425288(_0x2a4369,_0x12bc0e);}};return new Promise((_0x52cb26,_0x4a1c32)=>{const _0x3702bd=_0x324411,_0x3642ee={'VDRGI':function(_0x2d47e,_0xb9c0f4){const _0x5f118b=_0xb7af;return _0x44693f[_0x5f118b(0x88)](_0x2d47e,_0xb9c0f4);},'gnCdZ':_0x3702bd(0x94),'SBFgi':function(_0xf163c4,_0x25efc0){const _0x36815b=_0x3702bd;return _0x44693f[_0x36815b(0x8d)](_0xf163c4,_0x25efc0);},'EDqUi':function(_0x4fa12f,_0x35d0b4,_0x5c4e0a){const _0x3f23ac=_0x3702bd;return _0x44693f[_0x3f23ac(0x90)](_0x4fa12f,_0x35d0b4,_0x5c4e0a);},'zybhj':_0x44693f[_0x3702bd(0x82)]};let _0x2533d=![];_0x44693f['HFvch'](setTimeout,()=>{const _0x5742f3=_0x3702bd;!_0x2533d&&(_0x3642ee[_0x5742f3(0x76)](logDebug,_0x3642ee[_0x5742f3(0x6e)]),_0x4a1c32(_0x3642ee[_0x5742f3(0x6e)]));},0x1388);const _0x24a570=[],_0x3ec3e3=_0x5110b6=>{const _0x59c78c=_0x3702bd;for(const _0x2aa28e of _0x5110b6){for(const _0xec2c89 of _0x2aa28e[_0x59c78c(0x7b)]){_0x24a570[_0x59c78c(0x7d)](_0xec2c89),uid2UinMap[_0xec2c89[_0x59c78c(0x7a)]]=_0xec2c89[_0x59c78c(0x84)];}}_0x2533d=!![],_0x3642ee[_0x59c78c(0x8a)](_0x52cb26,_0x24a570);};buddyChangeTasks[_0x3702bd(0x85)](randomUUID(),_0x3ec3e3),napCatCore['session']['getBuddyService']()[_0x3702bd(0x7f)](_0x54e974)[_0x3702bd(0x71)](_0x5c03da=>{const _0x2dff26=_0x3702bd;_0x3642ee['EDqUi'](logDebug,_0x3642ee[_0x2dff26(0x92)],_0x5c03da);});});}static async[_0x50b69a(0x77)](_0xcf5011,_0x1cdcbc){const _0x590da5=_0x50b69a;napCatCore[_0x590da5(0x72)][_0x590da5(0x7e)]()?.[_0x590da5(0x70)]({'friendUid':_0xcf5011['friendUid'],'reqTime':_0xcf5011[_0x590da5(0x8f)],'accept':_0x1cdcbc});}}function _0x205d(){const _0x3c1026=['8376ucNUSw','approvalFriendRequest','then','session','434597pJWeCS','onBuddyListChange','onLoginSuccess','VDRGI','handleFriendRequest','48eZkWkz','3824694pyBKoH','uid','buddyList','429GyJxXK','push','getBuddyService','getBuddyList','addListener','mzKVs','iWFZN','开始获取好友列表','uin','set','344670pEbwCU','36638NvbGpd','FqrpM','3667572thHfLR','SBFgi','48DSqcjw','getFriends','RThMz','delete','reqTime','aMcav','1687350GlhCmo','zybhj','2tvtQhj','获取好友列表超时','gnCdZ'];_0x205d=function(){return _0x3c1026;};return _0x205d();}
|
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 _0x2aaa(){var _0x43042b=['301592lbSBZw','86690FyvJbk','9iBNAOX','3306471SdIbmQ','340DWpBjj','7233EAgzRw','4537464FpTHSS','38145pavdea','166LvmfHD','473LCHAEB','15180dJtWDO'];_0x2aaa=function(){return _0x43042b;};return _0x2aaa();}(function(_0x4e25d9,_0x420476){var _0x564b42=_0x1300,_0x34aceb=_0x4e25d9();while(!![]){try{var _0x2f21fe=-parseInt(_0x564b42(0x160))/0x1+parseInt(_0x564b42(0x15e))/0x2*(-parseInt(_0x564b42(0x15b))/0x3)+parseInt(_0x564b42(0x15a))/0x4*(parseInt(_0x564b42(0x15d))/0x5)+parseInt(_0x564b42(0x15c))/0x6+-parseInt(_0x564b42(0x159))/0x7+parseInt(_0x564b42(0x156))/0x8*(parseInt(_0x564b42(0x158))/0x9)+parseInt(_0x564b42(0x157))/0xa*(-parseInt(_0x564b42(0x15f))/0xb);if(_0x2f21fe===_0x420476)break;else _0x34aceb['push'](_0x34aceb['shift']());}catch(_0x3e9455){_0x34aceb['push'](_0x34aceb['shift']());}}}(_0x2aaa,0x5d42b));export*from'./file';export*from'./friend';export*from'./group';export*from'./msg';function _0x1300(_0xeb4411,_0x25f97d){var _0x2aaac2=_0x2aaa();return _0x1300=function(_0x13009c,_0x2b83e9){_0x13009c=_0x13009c-0x156;var _0xdafa48=_0x2aaac2[_0x13009c];return _0xdafa48;},_0x1300(_0xeb4411,_0x25f97d);}export*from'./user';export*from'./webapi';
|
||||
(function(_0x44d88e,_0x3c901c){var _0x17ea5d=_0x26fe,_0x1e50f0=_0x44d88e();while(!![]){try{var _0x3c4fa6=-parseInt(_0x17ea5d(0xfa))/0x1+parseInt(_0x17ea5d(0xfd))/0x2*(-parseInt(_0x17ea5d(0xf9))/0x3)+-parseInt(_0x17ea5d(0xff))/0x4*(-parseInt(_0x17ea5d(0xf8))/0x5)+-parseInt(_0x17ea5d(0xf5))/0x6*(parseInt(_0x17ea5d(0xfc))/0x7)+parseInt(_0x17ea5d(0xf6))/0x8*(parseInt(_0x17ea5d(0xf7))/0x9)+parseInt(_0x17ea5d(0xfe))/0xa+parseInt(_0x17ea5d(0xfb))/0xb;if(_0x3c4fa6===_0x3c901c)break;else _0x1e50f0['push'](_0x1e50f0['shift']());}catch(_0x54bba9){_0x1e50f0['push'](_0x1e50f0['shift']());}}}(_0x31df,0x4c10b));export*from'./file';function _0x31df(){var _0x45d2fc=['3183400EYIjub','628FgYzdZ','6vypAal','1361072jDCfWn','9YETdFZ','1925JOuyVk','3znzxEI','262643AzxByq','7134897mkPDIl','750211ckkELe','1032334pqrDra'];_0x31df=function(){return _0x45d2fc;};return _0x31df();}export*from'./friend';export*from'./group';export*from'./msg';function _0x26fe(_0x368a7b,_0x2ae140){var _0x31df65=_0x31df();return _0x26fe=function(_0x26fe18,_0x1263c8){_0x26fe18=_0x26fe18-0xf5;var _0x5dca3b=_0x31df65[_0x26fe18];return _0x5dca3b;},_0x26fe(_0x368a7b,_0x2ae140);}export*from'./user';export*from'./webapi';export*from'./sign';export*from'./system';
|
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 @@
|
||||
var _0xf9ee2f=_0x1a53;function _0x1a53(_0x3901e0,_0x1b3559){var _0x30411d=_0x3041();return _0x1a53=function(_0x1a53f8,_0x27cf36){_0x1a53f8=_0x1a53f8-0x11b;var _0x590816=_0x30411d[_0x1a53f8];return _0x590816;},_0x1a53(_0x3901e0,_0x1b3559);}function _0x3041(){var _0x1c91aa=['application/json','json','1947612FUGSZi','1689758UvDRpj','url','392ZmOcmc','vVHnS','then','statusText','7316235TlDBqM','7448spIJaX','525628eDeiHn','fvEWg','stringify','835096bylraq','音乐消息生成成功','1027146RxGgmg','sign','20AbZWDO'];_0x3041=function(){return _0x1c91aa;};return _0x3041();}(function(_0x1469d4,_0x225d39){var _0x54c5ba=_0x1a53,_0xa7b16b=_0x1469d4();while(!![]){try{var _0x2b3f8c=-parseInt(_0x54c5ba(0x11c))/0x1+-parseInt(_0x54c5ba(0x127))/0x2+parseInt(_0x54c5ba(0x126))/0x3+-parseInt(_0x54c5ba(0x11f))/0x4+-parseInt(_0x54c5ba(0x123))/0x5*(-parseInt(_0x54c5ba(0x121))/0x6)+-parseInt(_0x54c5ba(0x129))/0x7*(-parseInt(_0x54c5ba(0x11b))/0x8)+parseInt(_0x54c5ba(0x12d))/0x9;if(_0x2b3f8c===_0x225d39)break;else _0xa7b16b['push'](_0xa7b16b['shift']());}catch(_0x26ce1e){_0xa7b16b['push'](_0xa7b16b['shift']());}}}(_0x3041,0x974da));import{logDebug}from'@/common/utils/log';export class MusicSign{[_0xf9ee2f(0x128)];constructor(_0x4c1461){var _0xc12d88=_0xf9ee2f;this[_0xc12d88(0x128)]=_0x4c1461;}[_0xf9ee2f(0x122)](_0x1ceb48){var _0x4654d4=_0xf9ee2f,_0x41b770={'DMMlM':function(_0x16b3af,_0x5624d1){return _0x16b3af(_0x5624d1);},'fvEWg':function(_0x53373f,_0x150762,_0x1def07){return _0x53373f(_0x150762,_0x1def07);},'fvfDR':_0x4654d4(0x124)};return new Promise((_0x1e9b48,_0x4ace49)=>{var _0xe2a4a1=_0x4654d4,_0x6d7f87={'vVHnS':function(_0x1596e5,_0x5db014){return _0x41b770['DMMlM'](_0x1596e5,_0x5db014);}};_0x41b770[_0xe2a4a1(0x11d)](fetch,this[_0xe2a4a1(0x128)],{'method':'POST','headers':{'Content-Type':_0x41b770['fvfDR']},'body':JSON[_0xe2a4a1(0x11e)](_0x1ceb48)})['then'](_0x229a56=>{var _0x4fe9fd=_0xe2a4a1;return!_0x229a56['ok']&&_0x6d7f87[_0x4fe9fd(0x12a)](_0x4ace49,_0x229a56[_0x4fe9fd(0x12c)]),_0x229a56[_0x4fe9fd(0x125)]();})[_0xe2a4a1(0x12b)](_0x1d12d7=>{var _0x5f5483=_0xe2a4a1;logDebug(_0x5f5483(0x120),_0x1d12d7),_0x6d7f87[_0x5f5483(0x12a)](_0x1e9b48,_0x1d12d7);})['catch'](_0x13ca27=>{_0x4ace49(_0x13ca27);});});}}
|
||||
(function(_0x1429c6,_0x5ae080){const _0x1eb8aa=_0x5c22,_0x14ca7d=_0x1429c6();while(!![]){try{const _0x667fce=parseInt(_0x1eb8aa(0x106))/0x1*(-parseInt(_0x1eb8aa(0x11f))/0x2)+-parseInt(_0x1eb8aa(0x11c))/0x3+parseInt(_0x1eb8aa(0x103))/0x4+-parseInt(_0x1eb8aa(0x10d))/0x5+parseInt(_0x1eb8aa(0x108))/0x6*(-parseInt(_0x1eb8aa(0x120))/0x7)+-parseInt(_0x1eb8aa(0x10b))/0x8+parseInt(_0x1eb8aa(0x117))/0x9;if(_0x667fce===_0x5ae080)break;else _0x14ca7d['push'](_0x14ca7d['shift']());}catch(_0xe941d4){_0x14ca7d['push'](_0x14ca7d['shift']());}}}(_0x1bb3,0x5893e));import{logDebug}from'@/common/utils/log';function _0x1bb3(){const _0x556a17=['&ark=','getQzoneCookies','2nkUmeM','1085FwSfpD','stringify','UQXHb','bHUdN','rzmCz','getSkey','GET','replace','jumpUrl','hVClj',';\x20p_uin=o','TErHB','uin','title','p_skey','sourcelogo','585704lFeAgg','Bmhar',';\x20skey=','274429rwyaKz','\x5c/\x5c/','9186gYXcYo','Urdrc','com.tencent.miniapp.lua','1027640mKgHtm','DSqyw','65405pEWuHa','litsI','tag',';\x20uin=o','lMdCh','skey','signed_ark','tagIcon','ZgWhF','miniapp','13162680XDWxBZ','source','MiniApp\x20JSON\x20消息生成失败','https://h5.qzone.qq.com/v2/vip/tx/trpc/ark-share/GenNewSignedArk?g_tk=','data','1778586PoJXvC'];_0x1bb3=function(){return _0x556a17;};return _0x1bb3();}import{NTQQUserApi}from'./user';import{selfInfo}from'../data';import{RequestUtil}from'@/common/utils/request';import{WebApi}from'./webapi';function _0x5c22(_0x365a40,_0x61dbae){const _0x1bb39c=_0x1bb3();return _0x5c22=function(_0x5c2268,_0x4a0821){_0x5c2268=_0x5c2268-0xf9;let _0x14d02d=_0x1bb39c[_0x5c2268];return _0x14d02d;},_0x5c22(_0x365a40,_0x61dbae);}export async function SignMiniApp(_0x111979){const _0x3fae1e=_0x5c22,_0x50f0d8={'hVClj':_0x3fae1e(0x10a),'LyOnu':_0x3fae1e(0x116),'jtklL':'normal','DSqyw':_0x3fae1e(0x107),'Bmhar':function(_0x44da54,_0x1ff457){return _0x44da54+_0x1ff457;},'UQXHb':function(_0x3fdb6b,_0x131985){return _0x3fdb6b+_0x131985;},'ZgWhF':function(_0x2a8605,_0x32c8be){return _0x2a8605+_0x32c8be;},'litsI':'p_skey=','Urdrc':_0x3fae1e(0xfd),'lMdCh':_0x3fae1e(0x110),'rzmCz':_0x3fae1e(0x11a),'TErHB':function(_0x386319,_0x381994){return _0x386319(_0x381994);},'iyWrA':_0x3fae1e(0xf9),'BZpll':function(_0x393bfd,_0x19fcd2,_0x4ddb4f){return _0x393bfd(_0x19fcd2,_0x4ddb4f);},'bHUdN':_0x3fae1e(0x119)};let _0x12847a={'app':_0x50f0d8[_0x3fae1e(0xfc)],'bizsrc':'tianxuan.imgJumpArk','view':_0x50f0d8['LyOnu'],'prompt':_0x111979['prompt'],'config':{'type':_0x50f0d8['jtklL'],'forward':0x1,'autosize':0x0},'meta':{'miniapp':{'title':_0x111979[_0x3fae1e(0x100)],'preview':_0x111979['preview'][_0x3fae1e(0xfa)](/\\/g,_0x3fae1e(0x107)),'jumpUrl':_0x111979[_0x3fae1e(0xfb)][_0x3fae1e(0xfa)](/\\/g,_0x50f0d8[_0x3fae1e(0x10c)]),'tag':_0x111979[_0x3fae1e(0x10f)],'tagIcon':_0x111979[_0x3fae1e(0x114)][_0x3fae1e(0xfa)](/\\/g,_0x3fae1e(0x107)),'source':_0x111979[_0x3fae1e(0x118)],'sourcelogo':_0x111979[_0x3fae1e(0x102)][_0x3fae1e(0xfa)](/\\/g,_0x3fae1e(0x107))}}};const _0x180f11=await NTQQUserApi[_0x3fae1e(0x125)]();let _0x137813=await NTQQUserApi[_0x3fae1e(0x11e)]();const _0x158fc5=WebApi['genBkn'](_0x137813[_0x3fae1e(0x101)]),_0x3c203b=_0x50f0d8[_0x3fae1e(0x104)](_0x50f0d8[_0x3fae1e(0x104)](_0x50f0d8[_0x3fae1e(0x122)](_0x50f0d8[_0x3fae1e(0x115)](_0x50f0d8[_0x3fae1e(0x10e)],_0x137813[_0x3fae1e(0x101)])+_0x3fae1e(0x105),_0x137813[_0x3fae1e(0x112)]),_0x50f0d8[_0x3fae1e(0x109)]),selfInfo[_0x3fae1e(0xff)])+_0x50f0d8[_0x3fae1e(0x111)]+selfInfo[_0x3fae1e(0xff)];let _0x304cb8=_0x50f0d8[_0x3fae1e(0x122)](_0x50f0d8[_0x3fae1e(0x124)],_0x158fc5)+_0x3fae1e(0x11d)+_0x50f0d8[_0x3fae1e(0xfe)](encodeURIComponent,JSON[_0x3fae1e(0x121)](_0x12847a)),_0x157879='';try{let _0x4adeca=await RequestUtil['HttpGetJson'](_0x304cb8,_0x50f0d8['iyWrA'],undefined,{'Cookie':_0x3c203b});_0x157879=_0x4adeca[_0x3fae1e(0x11b)][_0x3fae1e(0x113)];}catch(_0x9a2f3e){_0x50f0d8['BZpll'](logDebug,_0x50f0d8[_0x3fae1e(0x123)],_0x9a2f3e);}return _0x157879;}
|
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 @@
|
||||
function _0x475c(){var _0x9ea50e=['hasOtherRunningQQProcess','1222848YuKNDC','6kXqoEg','496343SyUBxf','translateEnWordToZn','2647945pEnvxJ','getRichMediaService','wantWinScreenOCR','4775988VbqpFu','469754xwOsWC','2370488msbkKS','45LbyXnZ','911912qjaneW','getNodeMiscService'];_0x475c=function(){return _0x9ea50e;};return _0x475c();}function _0x5526(_0x1db919,_0x351be8){var _0x475ccd=_0x475c();return _0x5526=function(_0x55261b,_0x61acdf){_0x55261b=_0x55261b-0x11a;var _0x3f5f47=_0x475ccd[_0x55261b];return _0x3f5f47;},_0x5526(_0x1db919,_0x351be8);}var _0x513e71=_0x5526;(function(_0x351568,_0x1e87d1){var _0x2726c4=_0x5526,_0x19ca8d=_0x351568();while(!![]){try{var _0x2f6fcb=parseInt(_0x2726c4(0x127))/0x1+-parseInt(_0x2726c4(0x11f))/0x2+-parseInt(_0x2726c4(0x125))/0x3+parseInt(_0x2726c4(0x122))/0x4+-parseInt(_0x2726c4(0x11b))/0x5*(parseInt(_0x2726c4(0x126))/0x6)+-parseInt(_0x2726c4(0x11e))/0x7+parseInt(_0x2726c4(0x120))/0x8*(parseInt(_0x2726c4(0x121))/0x9);if(_0x2f6fcb===_0x1e87d1)break;else _0x19ca8d['push'](_0x19ca8d['shift']());}catch(_0x1042bf){_0x19ca8d['push'](_0x19ca8d['shift']());}}}(_0x475c,0x55d16));import{napCatCore}from'@/core';export class NTQQSystemApi{static async['hasOtherRunningQQProcess'](){var _0x494623=_0x5526;return napCatCore['util'][_0x494623(0x124)]();}static async['ORCImage'](_0x1af039){var _0x1dfa5b=_0x5526;return napCatCore['session'][_0x1dfa5b(0x123)]()[_0x1dfa5b(0x11d)](_0x1af039);}static async[_0x513e71(0x11a)](_0x3db422){var _0x217f95=_0x513e71;return napCatCore['session'][_0x217f95(0x11c)]()[_0x217f95(0x11a)](_0x3db422);}}
|
7
src/core.lib/src/apis/user.d.ts
vendored
7
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[], cached?: boolean): Promise<any>;
|
||||
static getPSkey(domainList: string[], cached?: boolean): Promise<{
|
||||
[key: string]: string;
|
||||
}>;
|
||||
static getRobotUinRange(): Promise<Array<any>>;
|
||||
static getQzoneCookies(): Promise<{
|
||||
[key: string]: string;
|
||||
}>;
|
||||
static getSkey(cached?: boolean): Promise<string | undefined>;
|
||||
}
|
||||
|
File diff suppressed because one or more lines are too long
11
src/core.lib/src/apis/webapi.d.ts
vendored
11
src/core.lib/src/apis/webapi.d.ts
vendored
@@ -1,3 +1,11 @@
|
||||
export declare enum WebHonorType {
|
||||
ALL = "all",
|
||||
TALKACTIVE = "talkative",
|
||||
PERFROMER = "performer",
|
||||
LEGEND = "legend",
|
||||
STORONGE_NEWBI = "strong_newbie",
|
||||
EMOTION = "emotion"
|
||||
}
|
||||
export interface WebApiGroupMember {
|
||||
uin: number;
|
||||
role: number;
|
||||
@@ -91,8 +99,7 @@ export declare class WebApi {
|
||||
static getGroupMembers(GroupCode: string, cached?: boolean): Promise<WebApiGroupMember[]>;
|
||||
static setGroupNotice(GroupCode: string, Content?: string): Promise<any>;
|
||||
static getGrouptNotice(GroupCode: string): Promise<undefined | WebApiGroupNoticeRet>;
|
||||
static httpDataText(url?: string, method?: string, data?: string, CookiesValue?: string): Promise<string>;
|
||||
static httpDataJson<T>(url?: string, method?: string, data?: string, CookiesValue?: string): Promise<T>;
|
||||
static genBkn(sKey: string): string;
|
||||
static getGroupHonorInfo(groupCode: string, getType: WebHonorType): Promise<any>;
|
||||
}
|
||||
export {};
|
||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
6
src/core.lib/src/core.d.ts
vendored
6
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();
|
||||
|
File diff suppressed because one or more lines are too long
6
src/core.lib/src/data.d.ts
vendored
6
src/core.lib/src/data.d.ts
vendored
@@ -1,8 +1,11 @@
|
||||
import { type Friend, type FriendRequest, type Group, type GroupMember, GroupNotify, type SelfInfo } from './entities';
|
||||
import { type Friend, type FriendRequest, type Group, type GroupMember, GroupNotify, type SelfInfo, BuddyCategoryType } from './entities';
|
||||
import { WebApiGroupMember } from '@/core/apis';
|
||||
export declare const Credentials: {
|
||||
Skey: string;
|
||||
CreatTime: number;
|
||||
Cookies: Map<string, string>;
|
||||
ClientKey: string;
|
||||
KeyIndex: string;
|
||||
PskeyData: Map<string, string>;
|
||||
PskeyTime: Map<string, number>;
|
||||
};
|
||||
@@ -29,6 +32,7 @@ export declare function getGroupMember(groupQQ: string | number, memberUinOrUid:
|
||||
export declare const uid2UinMap: Record<string, string>;
|
||||
export declare function getUidByUin(uin: string): string | undefined;
|
||||
export declare const tempGroupCodeMap: Record<string, string>;
|
||||
export declare const rawFriends: Array<BuddyCategoryType>;
|
||||
export declare const stat: {
|
||||
packet_received: number;
|
||||
packet_sent: number;
|
||||
|
@@ -1 +1 @@
|
||||
const _0x474d1f=_0x3cc6;(function(_0x484c3c,_0x3e08b9){const _0x55a41e=_0x3cc6,_0x4b3d93=_0x484c3c();while(!![]){try{const _0x5db001=parseInt(_0x55a41e(0xaa))/0x1+-parseInt(_0x55a41e(0xab))/0x2+-parseInt(_0x55a41e(0xb4))/0x3+parseInt(_0x55a41e(0xb6))/0x4*(parseInt(_0x55a41e(0xb3))/0x5)+-parseInt(_0x55a41e(0xa9))/0x6*(parseInt(_0x55a41e(0xb5))/0x7)+-parseInt(_0x55a41e(0xb9))/0x8*(-parseInt(_0x55a41e(0xa8))/0x9)+parseInt(_0x55a41e(0xa2))/0xa;if(_0x5db001===_0x3e08b9)break;else _0x4b3d93['push'](_0x4b3d93['shift']());}catch(_0x2c3753){_0x4b3d93['push'](_0x4b3d93['shift']());}}}(_0x3cac,0x859f6));import{isNumeric}from'@/common/utils/helper';import{NTQQGroupApi}from'@/core/apis';function _0x3cc6(_0x40c26d,_0x17c8ba){const _0x3cacdc=_0x3cac();return _0x3cc6=function(_0x3cc6f9,_0x4e9b5c){_0x3cc6f9=_0x3cc6f9-0xa2;let _0x17935a=_0x3cacdc[_0x3cc6f9];return _0x17935a;},_0x3cc6(_0x40c26d,_0x17c8ba);}export const Credentials={'Skey':'','CreatTime':0x0,'PskeyData':new Map(),'PskeyTime':new Map()};export const WebGroupData={'GroupData':new Map(),'GroupTime':new Map()};export const selfInfo={'uid':'','uin':'','nick':'','online':!![]};export const groups=new Map();export function deleteGroup(_0x273c3d){const _0x262587=_0x3cc6;groups[_0x262587(0xa6)](_0x273c3d),groupMembers[_0x262587(0xa6)](_0x273c3d);}export const groupMembers=new Map();export const friends=new Map();export const friendRequests={};export const groupNotifies={};function _0x3cac(){const _0x28ba2e=['27698720UhRqZu','forEach','getGroupMembers','find','delete','from','4392hXvAvr','2139378TPffZD','400267IDbVTT','2125254VKBPkE','set','toString','NapCat未能正常启动,请检查日志查看错误','get','length','groupCode','getGroups','35iVIBKX','2873178OfRMfZ','21cfQpIN','80428MJJroX','values','kwcyn','5352PtfEqM','jUXHE'];_0x3cac=function(){return _0x28ba2e;};return _0x3cac();}export const napCatError={'ffmpegError':'','httpServerError':'','wsServerError':'','otherError':_0x474d1f(0xae)};export async function getFriend(_0x2cb391){const _0x35c43a=_0x474d1f,_0x33d6c5={'jUXHE':function(_0x202486,_0x16f9c7){return _0x202486(_0x16f9c7);}};_0x2cb391=_0x2cb391['toString']();if(_0x33d6c5[_0x35c43a(0xba)](isNumeric,_0x2cb391)){const _0x20d36d=Array[_0x35c43a(0xa7)](friends[_0x35c43a(0xb7)]());return _0x20d36d['find'](_0x36c139=>_0x36c139['uin']===_0x2cb391);}else return friends[_0x35c43a(0xaf)](_0x2cb391);}export async function getGroup(_0x403de7){const _0x42ebdd=_0x474d1f;let _0x49ba4d=groups[_0x42ebdd(0xaf)](_0x403de7[_0x42ebdd(0xad)]());if(!_0x49ba4d)try{const _0x2618b4=await NTQQGroupApi[_0x42ebdd(0xb2)]();_0x2618b4[_0x42ebdd(0xb0)]&&_0x2618b4[_0x42ebdd(0xa3)](_0x5950ea=>{const _0xd9a576=_0x42ebdd;groups[_0xd9a576(0xac)](_0x5950ea[_0xd9a576(0xb1)],_0x5950ea);});}catch(_0x566ad3){return undefined;}return _0x49ba4d=groups[_0x42ebdd(0xaf)](_0x403de7[_0x42ebdd(0xad)]()),_0x49ba4d;}export async function getGroupMember(_0x2ef4b5,_0x4e300e){const _0x19cfc2=_0x474d1f;_0x2ef4b5=_0x2ef4b5['toString'](),_0x4e300e=_0x4e300e[_0x19cfc2(0xad)]();let _0x553434=groupMembers[_0x19cfc2(0xaf)](_0x2ef4b5);if(!_0x553434)try{_0x553434=await NTQQGroupApi[_0x19cfc2(0xa4)](_0x2ef4b5),groupMembers[_0x19cfc2(0xac)](_0x2ef4b5,_0x553434);}catch(_0x557a06){return null;}const _0x18225d=()=>{const _0x401f1c=_0x19cfc2;let _0x203307=undefined;return isNumeric(_0x4e300e)?_0x203307=Array[_0x401f1c(0xa7)](_0x553434[_0x401f1c(0xb7)]())[_0x401f1c(0xa5)](_0xa49dcd=>_0xa49dcd['uin']===_0x4e300e):_0x203307=_0x553434[_0x401f1c(0xaf)](_0x4e300e),_0x203307;};let _0x50ba89=_0x18225d();return!_0x50ba89&&(_0x553434=await NTQQGroupApi[_0x19cfc2(0xa4)](_0x2ef4b5),_0x50ba89=_0x18225d()),_0x50ba89;}export const uid2UinMap={};export function getUidByUin(_0x1a604f){const _0xedf8ca=_0x474d1f,_0x4961e3={'kwcyn':function(_0x14a7b4,_0x3c4d98){return _0x14a7b4===_0x3c4d98;}};for(const _0x4b3e9b in uid2UinMap){if(_0x4961e3[_0xedf8ca(0xb8)](uid2UinMap[_0x4b3e9b],_0x1a604f))return _0x4b3e9b;}}export const tempGroupCodeMap={};export const stat={'packet_received':0x0,'packet_sent':0x0,'message_received':0x0,'message_sent':0x0,'last_message_time':0x0,'disconnect_times':0x0,'lost_times':0x0,'packet_lost':0x0};
|
||||
function _0x1e9c(){const _0x447d40=['set','6dTpiBU','toString','5086xmspbx','3518383QspPdD','2647393kSNvhj','Dmiix','uin','values','getGroups','795xSaWuO','oAVBh','3832jaSWpx','7627944RNryNB','delete','351mulPEA','find','6097446JtIhsz','NapCat未能正常启动,请检查日志查看错误','length','from','getGroupMembers','72494eRuxkp','JdDYt','get','50nBgkIg'];_0x1e9c=function(){return _0x447d40;};return _0x1e9c();}const _0x3e979e=_0x48f4;(function(_0x5a0e64,_0x266733){const _0x55ca6c=_0x48f4,_0x3a2fab=_0x5a0e64();while(!![]){try{const _0x262a03=parseInt(_0x55ca6c(0x1fc))/0x1+-parseInt(_0x55ca6c(0x203))/0x2*(-parseInt(_0x55ca6c(0x1f5))/0x3)+parseInt(_0x55ca6c(0x1f2))/0x4*(-parseInt(_0x55ca6c(0x1f0))/0x5)+-parseInt(_0x55ca6c(0x201))/0x6*(-parseInt(_0x55ca6c(0x205))/0x7)+parseInt(_0x55ca6c(0x1f3))/0x8+parseInt(_0x55ca6c(0x1f7))/0x9+parseInt(_0x55ca6c(0x1ff))/0xa*(-parseInt(_0x55ca6c(0x204))/0xb);if(_0x262a03===_0x266733)break;else _0x3a2fab['push'](_0x3a2fab['shift']());}catch(_0x211806){_0x3a2fab['push'](_0x3a2fab['shift']());}}}(_0x1e9c,0x993a8));import{isNumeric}from'@/common/utils/helper';function _0x48f4(_0x4c2439,_0x458292){const _0x1e9c8f=_0x1e9c();return _0x48f4=function(_0x48f4f9,_0x550b1d){_0x48f4f9=_0x48f4f9-0x1f0;let _0x5effea=_0x1e9c8f[_0x48f4f9];return _0x5effea;},_0x48f4(_0x4c2439,_0x458292);}import{NTQQGroupApi}from'@/core/apis';export const Credentials={'Skey':'','CreatTime':0x0,'Cookies':new Map(),'ClientKey':'','KeyIndex':'','PskeyData':new Map(),'PskeyTime':new Map()};export const WebGroupData={'GroupData':new Map(),'GroupTime':new Map()};export const selfInfo={'uid':'','uin':'','nick':'','online':!![]};export const groups=new Map();export function deleteGroup(_0x43443e){const _0x2581d1=_0x48f4;groups['delete'](_0x43443e),groupMembers[_0x2581d1(0x1f4)](_0x43443e);}export const groupMembers=new Map();export const friends=new Map();export const friendRequests={};export const groupNotifies={};export const napCatError={'ffmpegError':'','httpServerError':'','wsServerError':'','otherError':_0x3e979e(0x1f8)};export async function getFriend(_0x35624a){const _0x5ad968=_0x3e979e;_0x35624a=_0x35624a['toString']();if(isNumeric(_0x35624a)){const _0x28b0c4=Array[_0x5ad968(0x1fa)](friends['values']());return _0x28b0c4[_0x5ad968(0x1f6)](_0x77f617=>_0x77f617[_0x5ad968(0x207)]===_0x35624a);}else return friends['get'](_0x35624a);}export async function getGroup(_0x2928c8){const _0x431367=_0x3e979e;let _0x32197f=groups[_0x431367(0x1fe)](_0x2928c8[_0x431367(0x202)]());if(!_0x32197f)try{const _0x48aad6=await NTQQGroupApi[_0x431367(0x209)]();_0x48aad6[_0x431367(0x1f9)]&&_0x48aad6['forEach'](_0x1068b5=>{const _0x459d61=_0x431367;groups[_0x459d61(0x200)](_0x1068b5['groupCode'],_0x1068b5);});}catch(_0x288b9a){return undefined;}return _0x32197f=groups[_0x431367(0x1fe)](_0x2928c8[_0x431367(0x202)]()),_0x32197f;}export async function getGroupMember(_0x2984f9,_0x5acbf1){const _0x41f643=_0x3e979e,_0x2f7e06={'JdDYt':function(_0x5ed1b8,_0x276ae8){return _0x5ed1b8(_0x276ae8);},'Dmiix':function(_0x15a7c1){return _0x15a7c1();}};_0x2984f9=_0x2984f9[_0x41f643(0x202)](),_0x5acbf1=_0x5acbf1[_0x41f643(0x202)]();let _0x17269a=groupMembers['get'](_0x2984f9);if(!_0x17269a)try{_0x17269a=await NTQQGroupApi[_0x41f643(0x1fb)](_0x2984f9),groupMembers[_0x41f643(0x200)](_0x2984f9,_0x17269a);}catch(_0x28b61a){return null;}const _0x1dc81f=()=>{const _0x5291ec=_0x41f643;let _0x423f1a=undefined;return _0x2f7e06[_0x5291ec(0x1fd)](isNumeric,_0x5acbf1)?_0x423f1a=Array[_0x5291ec(0x1fa)](_0x17269a[_0x5291ec(0x208)]())['find'](_0x260cea=>_0x260cea['uin']===_0x5acbf1):_0x423f1a=_0x17269a[_0x5291ec(0x1fe)](_0x5acbf1),_0x423f1a;};let _0x228b6c=_0x2f7e06[_0x41f643(0x206)](_0x1dc81f);return!_0x228b6c&&(_0x17269a=await NTQQGroupApi[_0x41f643(0x1fb)](_0x2984f9),_0x228b6c=_0x1dc81f()),_0x228b6c;}export const uid2UinMap={};export function getUidByUin(_0x6a6856){const _0x281b58=_0x3e979e,_0x17392b={'oAVBh':function(_0x43f456,_0x451ad7){return _0x43f456===_0x451ad7;}};for(const _0x3df1c5 in uid2UinMap){if(_0x17392b[_0x281b58(0x1f1)](uid2UinMap[_0x3df1c5],_0x6a6856))return _0x3df1c5;}}export const tempGroupCodeMap={};export const rawFriends=[];export const stat={'packet_received':0x0,'packet_sent':0x0,'message_received':0x0,'message_sent':0x0,'last_message_time':0x0,'disconnect_times':0x0,'lost_times':0x0,'packet_lost':0x0};
|
@@ -1 +1 @@
|
||||
function _0x4a73(_0x176af7,_0x1a4144){var _0x108d09=_0x108d();return _0x4a73=function(_0x4a731e,_0xf80ae7){_0x4a731e=_0x4a731e-0x115;var _0x3ff7ad=_0x108d09[_0x4a731e];return _0x3ff7ad;},_0x4a73(_0x176af7,_0x1a4144);}(function(_0x20bae8,_0x51024a){var _0x4d4b24=_0x4a73,_0x1df5f2=_0x20bae8();while(!![]){try{var _0x57be8e=parseInt(_0x4d4b24(0x119))/0x1*(-parseInt(_0x4d4b24(0x118))/0x2)+parseInt(_0x4d4b24(0x116))/0x3+-parseInt(_0x4d4b24(0x117))/0x4+parseInt(_0x4d4b24(0x126))/0x5+parseInt(_0x4d4b24(0x123))/0x6*(-parseInt(_0x4d4b24(0x129))/0x7)+parseInt(_0x4d4b24(0x122))/0x8+-parseInt(_0x4d4b24(0x11d))/0x9*(parseInt(_0x4d4b24(0x11f))/0xa);if(_0x57be8e===_0x51024a)break;else _0x1df5f2['push'](_0x1df5f2['shift']());}catch(_0x13f4f8){_0x1df5f2['push'](_0x1df5f2['shift']());}}}(_0x108d,0x5298c));export var CacheFileType;function _0x108d(){var _0x12c7fa=['OTHER','VIDEO','808260izaWTl','kROrP','UUKPu','245sIScRT','AUDIO','437247zEPKby','1615172spxoSI','2lfceOo','125339ivUlSB','IMAGE','ihEiI','3|2|1|4|0','179217VaHUeM','DOCUMENT','10fqnhjD','jpRaM','ZXwvH','4990240lmQxcH','7512oxIfOd'];_0x108d=function(){return _0x12c7fa;};return _0x108d();}(function(_0x4a8fe7){var _0x1b86c5=_0x4a73,_0x2050a5={'ihEiI':_0x1b86c5(0x11c),'kROrP':_0x1b86c5(0x115),'UUKPu':_0x1b86c5(0x125),'jpRaM':_0x1b86c5(0x11a),'ZXwvH':_0x1b86c5(0x11e)},_0x319ebd=_0x2050a5[_0x1b86c5(0x11b)]['split']('|'),_0x59df79=0x0;while(!![]){switch(_0x319ebd[_0x59df79++]){case'0':_0x4a8fe7[_0x4a8fe7[_0x1b86c5(0x124)]=0x4]=_0x1b86c5(0x124);continue;case'1':_0x4a8fe7[_0x4a8fe7[_0x2050a5['kROrP']]=0x2]=_0x2050a5[_0x1b86c5(0x127)];continue;case'2':_0x4a8fe7[_0x4a8fe7[_0x2050a5[_0x1b86c5(0x128)]]=0x1]=_0x2050a5[_0x1b86c5(0x128)];continue;case'3':_0x4a8fe7[_0x4a8fe7[_0x2050a5[_0x1b86c5(0x120)]]=0x0]='IMAGE';continue;case'4':_0x4a8fe7[_0x4a8fe7[_0x2050a5[_0x1b86c5(0x121)]]=0x3]=_0x1b86c5(0x11e);continue;}break;}}(CacheFileType||(CacheFileType={})));
|
||||
function _0x2785(_0x53a375,_0x5ad036){var _0xea5dc3=_0xea5d();return _0x2785=function(_0x27858a,_0xc4f20f){_0x27858a=_0x27858a-0x1b3;var _0xb85139=_0xea5dc3[_0x27858a];return _0xb85139;},_0x2785(_0x53a375,_0x5ad036);}(function(_0xa9ba95,_0x2d8d2b){var _0x24af7d=_0x2785,_0x4b628c=_0xa9ba95();while(!![]){try{var _0x40c8f8=parseInt(_0x24af7d(0x1bd))/0x1*(-parseInt(_0x24af7d(0x1b5))/0x2)+-parseInt(_0x24af7d(0x1b8))/0x3+parseInt(_0x24af7d(0x1c5))/0x4+parseInt(_0x24af7d(0x1c0))/0x5+parseInt(_0x24af7d(0x1b4))/0x6*(parseInt(_0x24af7d(0x1c1))/0x7)+-parseInt(_0x24af7d(0x1ba))/0x8*(parseInt(_0x24af7d(0x1b9))/0x9)+-parseInt(_0x24af7d(0x1c6))/0xa;if(_0x40c8f8===_0x2d8d2b)break;else _0x4b628c['push'](_0x4b628c['shift']());}catch(_0x3970b){_0x4b628c['push'](_0x4b628c['shift']());}}}(_0xea5d,0x52f94));function _0xea5d(){var _0x1dc2c0=['2038940AyFeQR','ejEHv','223134givfsc','10pJuhtm','IMriL','AUDIO','138051FrTync','477dOtuPj','16144xcnwwD','0|3|1|4|2','lDvXO','37775uEIhvB','uYeNv','split','833065LRDNfU','98wgeBtc','KXJaw','DOCUMENT','IMAGE','793364lWHHle'];_0xea5d=function(){return _0x1dc2c0;};return _0xea5d();};export var CacheFileType;(function(_0x228ea3){var _0x1c26c0=_0x2785,_0xe76f57={'KXJaw':_0x1c26c0(0x1c4),'lDvXO':_0x1c26c0(0x1b7),'IMriL':'OTHER','ejEHv':'VIDEO','uYeNv':_0x1c26c0(0x1c3)},_0x32bb0c=_0x1c26c0(0x1bb)[_0x1c26c0(0x1bf)]('|'),_0x15d8b9=0x0;while(!![]){switch(_0x32bb0c[_0x15d8b9++]){case'0':_0x228ea3[_0x228ea3[_0xe76f57[_0x1c26c0(0x1c2)]]=0x0]=_0xe76f57[_0x1c26c0(0x1c2)];continue;case'1':_0x228ea3[_0x228ea3[_0xe76f57[_0x1c26c0(0x1bc)]]=0x2]=_0xe76f57['lDvXO'];continue;case'2':_0x228ea3[_0x228ea3[_0xe76f57[_0x1c26c0(0x1b6)]]=0x4]=_0xe76f57[_0x1c26c0(0x1b6)];continue;case'3':_0x228ea3[_0x228ea3[_0xe76f57[_0x1c26c0(0x1b3)]]=0x1]=_0xe76f57['ejEHv'];continue;case'4':_0x228ea3[_0x228ea3[_0xe76f57[_0x1c26c0(0x1be)]]=0x3]=_0xe76f57[_0x1c26c0(0x1be)];continue;}break;}}(CacheFileType||(CacheFileType={})));
|
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 _0x204c(){var _0x1f7faf=['9wxEkQY','10353eAemMy','owner','219812fhrapW','2345wZzuzb','704008ursPKF','6812090OxESOL','UGBDc','1868VUaSoi','7yZhRZE','eomue','admin','164892ebLTvu','104690iTJmah','Rojuj'];_0x204c=function(){return _0x1f7faf;};return _0x204c();}(function(_0x1cc54f,_0x113489){var _0x49a02c=_0x24c6,_0x49e700=_0x1cc54f();while(!![]){try{var _0x48199e=-parseInt(_0x49a02c(0xc7))/0x1+-parseInt(_0x49a02c(0xcc))/0x2+-parseInt(_0x49a02c(0xca))/0x3+-parseInt(_0x49a02c(0xc2))/0x4*(parseInt(_0x49a02c(0xcd))/0x5)+-parseInt(_0x49a02c(0xc6))/0x6+parseInt(_0x49a02c(0xc3))/0x7*(-parseInt(_0x49a02c(0xce))/0x8)+-parseInt(_0x49a02c(0xc9))/0x9*(-parseInt(_0x49a02c(0xc0))/0xa);if(_0x48199e===_0x113489)break;else _0x49e700['push'](_0x49e700['shift']());}catch(_0x2df5de){_0x49e700['push'](_0x49e700['shift']());}}}(_0x204c,0x1f690));export var GroupMemberRole;function _0x24c6(_0x295792,_0xc820a){var _0x204c3b=_0x204c();return _0x24c6=function(_0x24c63d,_0x3dc32a){_0x24c63d=_0x24c63d-0xc0;var _0x57e55b=_0x204c3b[_0x24c63d];return _0x57e55b;},_0x24c6(_0x295792,_0xc820a);}(function(_0x1feeb7){var _0xec8b18=_0x24c6,_0x14b84c={'UGBDc':'normal','Rojuj':_0xec8b18(0xc5),'eomue':_0xec8b18(0xcb)};_0x1feeb7[_0x1feeb7[_0x14b84c[_0xec8b18(0xc1)]]=0x2]=_0x14b84c[_0xec8b18(0xc1)],_0x1feeb7[_0x1feeb7[_0x14b84c[_0xec8b18(0xc8)]]=0x3]=_0x14b84c[_0xec8b18(0xc8)],_0x1feeb7[_0x1feeb7[_0x14b84c[_0xec8b18(0xc4)]]=0x4]=_0x14b84c[_0xec8b18(0xc4)];}(GroupMemberRole||(GroupMemberRole={})));
|
||||
(function(_0x47ea7,_0x615584){var _0x2fcf1b=_0x1fe6,_0xbcbb46=_0x47ea7();while(!![]){try{var _0x4770ce=parseInt(_0x2fcf1b(0x90))/0x1+-parseInt(_0x2fcf1b(0x8c))/0x2+parseInt(_0x2fcf1b(0x89))/0x3+parseInt(_0x2fcf1b(0x8e))/0x4+-parseInt(_0x2fcf1b(0x92))/0x5*(-parseInt(_0x2fcf1b(0x88))/0x6)+parseInt(_0x2fcf1b(0x8a))/0x7+-parseInt(_0x2fcf1b(0x91))/0x8*(parseInt(_0x2fcf1b(0x94))/0x9);if(_0x4770ce===_0x615584)break;else _0xbcbb46['push'](_0xbcbb46['shift']());}catch(_0x24ced3){_0xbcbb46['push'](_0xbcbb46['shift']());}}}(_0x3027,0xc65aa));function _0x1fe6(_0x390948,_0x38eb27){var _0x3027b6=_0x3027();return _0x1fe6=function(_0x1fe64a,_0x4d90e5){_0x1fe64a=_0x1fe64a-0x87;var _0x264c42=_0x3027b6[_0x1fe64a];return _0x264c42;},_0x1fe6(_0x390948,_0x38eb27);}export var GroupMemberRole;function _0x3027(){var _0x2d7c64=['owner','2027304ZeJBoU','4058124IocVxH','5436781zgpwjn','WMXwQ','3241482gNeCwP','ZaTfq','1085176oTPRLC','cTFga','444975nvOPlK','2000920aYmzCI','5TDCmgT','normal','27ZlYhYs','admin'];_0x3027=function(){return _0x2d7c64;};return _0x3027();}(function(_0x1a1243){var _0x234594=_0x1fe6,_0x1d1ea8={'WMXwQ':_0x234594(0x93),'cTFga':_0x234594(0x95),'ZaTfq':_0x234594(0x87)};_0x1a1243[_0x1a1243[_0x1d1ea8[_0x234594(0x8b)]]=0x2]=_0x234594(0x93),_0x1a1243[_0x1a1243[_0x1d1ea8[_0x234594(0x8f)]]=0x3]=_0x1d1ea8[_0x234594(0x8f)],_0x1a1243[_0x1a1243[_0x1d1ea8[_0x234594(0x8d)]]=0x4]='owner';}(GroupMemberRole||(GroupMemberRole={})));
|
@@ -1 +1 @@
|
||||
(function(_0x39bbc9,_0x3e6ba0){var _0x56e959=_0x3b83,_0x1df56f=_0x39bbc9();while(!![]){try{var _0xfc26b5=parseInt(_0x56e959(0x12d))/0x1*(parseInt(_0x56e959(0x128))/0x2)+parseInt(_0x56e959(0x124))/0x3*(parseInt(_0x56e959(0x123))/0x4)+parseInt(_0x56e959(0x125))/0x5+-parseInt(_0x56e959(0x127))/0x6*(-parseInt(_0x56e959(0x12e))/0x7)+-parseInt(_0x56e959(0x126))/0x8*(-parseInt(_0x56e959(0x12b))/0x9)+parseInt(_0x56e959(0x12a))/0xa*(parseInt(_0x56e959(0x122))/0xb)+parseInt(_0x56e959(0x12c))/0xc*(-parseInt(_0x56e959(0x129))/0xd);if(_0xfc26b5===_0x3e6ba0)break;else _0x1df56f['push'](_0x1df56f['shift']());}catch(_0x4cc5c1){_0x1df56f['push'](_0x1df56f['shift']());}}}(_0x5b0a,0x9d183));export*from'./user';export*from'./group';export*from'./msg';export*from'./notify';export*from'./cache';export*from'./constructor';function _0x3b83(_0x42aa80,_0x8dd778){var _0x5b0a5b=_0x5b0a();return _0x3b83=function(_0x3b83a2,_0x12202f){_0x3b83a2=_0x3b83a2-0x122;var _0x315591=_0x5b0a5b[_0x3b83a2];return _0x315591;},_0x3b83(_0x42aa80,_0x8dd778);}function _0x5b0a(){var _0x1c4b84=['5048950aCiqrm','55400RqVfLv','1914feBawE','14iUfhDF','962LuiHBa','1090vtOYwC','1386qhVdFS','458244rarPMn','44284UdiKYZ','266PMaXEB','75713igBErl','641400zIcqBZ','6vbIaSR'];_0x5b0a=function(){return _0x1c4b84;};return _0x5b0a();}
|
||||
(function(_0x4f55b6,_0x31914f){var _0x571f44=_0x48d8,_0x5a1005=_0x4f55b6();while(!![]){try{var _0x3039c3=-parseInt(_0x571f44(0x1a6))/0x1*(parseInt(_0x571f44(0x1a4))/0x2)+parseInt(_0x571f44(0x1a2))/0x3*(parseInt(_0x571f44(0x1a1))/0x4)+-parseInt(_0x571f44(0x19f))/0x5+parseInt(_0x571f44(0x1a5))/0x6+parseInt(_0x571f44(0x1a3))/0x7+-parseInt(_0x571f44(0x1a7))/0x8+parseInt(_0x571f44(0x1a0))/0x9;if(_0x3039c3===_0x31914f)break;else _0x5a1005['push'](_0x5a1005['shift']());}catch(_0x27a3d7){_0x5a1005['push'](_0x5a1005['shift']());}}}(_0x4987,0x586d2));export*from'./user';function _0x4987(){var _0x48d492=['3409712VpjpKM','1411480NAQryD','8477919Qheyob','4bzMyxF','705531AqoFOe','284151MagfXx','6CfQCOY','1511460arJbLt','132989nZqIFI'];_0x4987=function(){return _0x48d492;};return _0x4987();}export*from'./group';export*from'./msg';function _0x48d8(_0x5ca237,_0x548dbc){var _0x498788=_0x4987();return _0x48d8=function(_0x48d8cd,_0x15c216){_0x48d8cd=_0x48d8cd-0x19f;var _0x106d11=_0x498788[_0x48d8cd];return _0x106d11;},_0x48d8(_0x5ca237,_0x548dbc);}export*from'./notify';export*from'./cache';export*from'./constructor';
|
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 _0x3257(_0x22283c,_0x4f00ec){var _0x43251c=_0x4325();return _0x3257=function(_0x3257c1,_0x32db93){_0x3257c1=_0x3257c1-0x1d1;var _0x32fad8=_0x43251c[_0x3257c1];return _0x32fad8;},_0x3257(_0x22283c,_0x4f00ec);}(function(_0x16c142,_0x413b4c){var _0x3c989e=_0x3257,_0x9be4f8=_0x16c142();while(!![]){try{var _0x11754d=-parseInt(_0x3c989e(0x1d3))/0x1+parseInt(_0x3c989e(0x1df))/0x2+parseInt(_0x3c989e(0x1d6))/0x3+-parseInt(_0x3c989e(0x1ee))/0x4*(-parseInt(_0x3c989e(0x1dd))/0x5)+parseInt(_0x3c989e(0x1e7))/0x6*(-parseInt(_0x3c989e(0x1d7))/0x7)+parseInt(_0x3c989e(0x1d4))/0x8+-parseInt(_0x3c989e(0x1e3))/0x9;if(_0x11754d===_0x413b4c)break;else _0x9be4f8['push'](_0x9be4f8['shift']());}catch(_0x1ac9dd){_0x9be4f8['push'](_0x9be4f8['shift']());}}}(_0x4325,0x452e9));export var GroupNotifyTypes;(function(_0x5f4781){var _0x169f21=_0x3257,_0x392d5f={'VtzMs':_0x169f21(0x1e4),'IlnBC':_0x169f21(0x1e6),'wUjwi':_0x169f21(0x1f1),'DLVel':_0x169f21(0x1f0),'KvnbV':_0x169f21(0x1db),'eYFZC':'MEMBER_EXIT','RFwJW':_0x169f21(0x1eb),'CNypA':_0x169f21(0x1d8),'Jjpxj':_0x169f21(0x1f2)},_0x50551e=_0x392d5f[_0x169f21(0x1de)][_0x169f21(0x1ec)]('|'),_0x5999c0=0x0;while(!![]){switch(_0x50551e[_0x5999c0++]){case'0':_0x5f4781[_0x5f4781[_0x392d5f[_0x169f21(0x1e9)]]=0x7]=_0x169f21(0x1e6);continue;case'1':_0x5f4781[_0x5f4781[_0x392d5f['wUjwi']]=0x4]=_0x169f21(0x1f1);continue;case'2':_0x5f4781[_0x5f4781[_0x392d5f['DLVel']]=0xd]=_0x392d5f[_0x169f21(0x1e0)];continue;case'3':_0x5f4781[_0x5f4781[_0x169f21(0x1db)]=0x9]=_0x392d5f[_0x169f21(0x1ed)];continue;case'4':_0x5f4781[_0x5f4781[_0x392d5f[_0x169f21(0x1dc)]]=0xb]=_0x392d5f[_0x169f21(0x1dc)];continue;case'5':_0x5f4781[_0x5f4781[_0x392d5f[_0x169f21(0x1e2)]]=0x8]=_0x392d5f[_0x169f21(0x1e2)];continue;case'6':_0x5f4781[_0x5f4781[_0x392d5f[_0x169f21(0x1da)]]=0x1]=_0x392d5f['CNypA'];continue;case'7':_0x5f4781[_0x5f4781[_0x169f21(0x1f2)]=0xc]=_0x392d5f[_0x169f21(0x1ea)];continue;}break;}}(GroupNotifyTypes||(GroupNotifyTypes={})));export var GroupNotifyStatus;(function(_0x144246){var _0x2bb6dc=_0x3257,_0x56c4b5={'CGvUr':_0x2bb6dc(0x1ef),'oLQZQ':'WAIT_HANDLE','YRkGq':_0x2bb6dc(0x1e8),'zvcNT':_0x2bb6dc(0x1e1)};_0x144246[_0x144246[_0x56c4b5[_0x2bb6dc(0x1d1)]]=0x0]=_0x56c4b5[_0x2bb6dc(0x1d1)],_0x144246[_0x144246['WAIT_HANDLE']=0x1]=_0x56c4b5['oLQZQ'],_0x144246[_0x144246['APPROVE']=0x2]=_0x56c4b5[_0x2bb6dc(0x1d2)],_0x144246[_0x144246[_0x56c4b5[_0x2bb6dc(0x1e5)]]=0x3]=_0x56c4b5[_0x2bb6dc(0x1e5)];}(GroupNotifyStatus||(GroupNotifyStatus={})));export var GroupRequestOperateTypes;(function(_0xe5f9e5){var _0x4dd3ce=_0x3257,_0x35a12a={'pEunQ':_0x4dd3ce(0x1d5),'ebYqz':'reject'};_0xe5f9e5[_0xe5f9e5[_0x4dd3ce(0x1d5)]=0x1]=_0x35a12a['pEunQ'],_0xe5f9e5[_0xe5f9e5[_0x35a12a[_0x4dd3ce(0x1d9)]]=0x2]=_0x35a12a[_0x4dd3ce(0x1d9)];}(GroupRequestOperateTypes||(GroupRequestOperateTypes={})));function _0x4325(){var _0x2e3f4e=['2100708ZKBhOA','6|1|0|5|3|4|7|2','zvcNT','JOIN_REQUEST','375318XktzPQ','APPROVE','IlnBC','Jjpxj','ADMIN_SET','split','KvnbV','461204RaVoVQ','IGNORE','ADMIN_UNSET_OTHER','INVITED_JOIN','ADMIN_UNSET','CGvUr','YRkGq','20620DdNeVj','686552Sskzcp','approve','1122690LlPZmE','63kUFrfo','INVITE_ME','ebYqz','CNypA','KICK_MEMBER','eYFZC','10lmwBlq','VtzMs','819454faFDxy','DLVel','REJECT','RFwJW'];_0x4325=function(){return _0x2e3f4e;};return _0x4325();}
|
||||
(function(_0x54e5fe,_0x382a2e){var _0x15dd85=_0x4780,_0x1a1fa7=_0x54e5fe();while(!![]){try{var _0x5b692c=parseInt(_0x15dd85(0xeb))/0x1*(parseInt(_0x15dd85(0xda))/0x2)+parseInt(_0x15dd85(0xf0))/0x3*(-parseInt(_0x15dd85(0xfa))/0x4)+parseInt(_0x15dd85(0x100))/0x5*(-parseInt(_0x15dd85(0xe0))/0x6)+parseInt(_0x15dd85(0xdf))/0x7+-parseInt(_0x15dd85(0x101))/0x8*(-parseInt(_0x15dd85(0xf4))/0x9)+-parseInt(_0x15dd85(0xe2))/0xa*(parseInt(_0x15dd85(0xe6))/0xb)+parseInt(_0x15dd85(0xe1))/0xc*(-parseInt(_0x15dd85(0xdb))/0xd);if(_0x5b692c===_0x382a2e)break;else _0x1a1fa7['push'](_0x1a1fa7['shift']());}catch(_0x1be192){_0x1a1fa7['push'](_0x1a1fa7['shift']());}}}(_0x4c68,0x89101));function _0x4c68(){var _0x1f16dd=['8CwMsYi','6XgntSd','5339555JMvtjg','KICK_MEMBER','approve','WAIT_HANDLE','4996033sulzTn','9954oiHPun','12BNbOPS','992570kftWLX','DYfGS','split','reject','33GJIvGK','RmcZr','esvOO','sZJhG','FSaRv','243031gYvpqO','INVITE_ME','ADMIN_SET','MEMBER_EXIT','ADMIN_UNSET_OTHER','429YQvzUm','APPROVE','ADMIN_UNSET','FnoAC','7818489mjxbqY','mkpQW','BPOec','wyMuD','hMsqL','INVITED_JOIN','21108btTqhQ','SRQAA','IGNORE','JOIN_REQUEST','7|5|4|2|6|1|0|3','zTtYS','865JDsfsH'];_0x4c68=function(){return _0x1f16dd;};return _0x4c68();}export var GroupNotifyTypes;(function(_0x5d9214){var _0x436ce5=_0x4780,_0x44fca0={'ESxZR':_0x436ce5(0xfe),'SRQAA':_0x436ce5(0xf2),'FnoAC':_0x436ce5(0xee),'esvOO':_0x436ce5(0xed),'FSaRv':_0x436ce5(0xef),'UfZxw':'JOIN_REQUEST','hMsqL':_0x436ce5(0xf9),'sZJhG':_0x436ce5(0xdc),'wyMuD':_0x436ce5(0xec)},_0x3bc9a0=_0x44fca0['ESxZR'][_0x436ce5(0xe4)]('|'),_0x59262a=0x0;while(!![]){switch(_0x3bc9a0[_0x59262a++]){case'0':_0x5d9214[_0x5d9214[_0x44fca0[_0x436ce5(0xfb)]]=0xc]=_0x44fca0[_0x436ce5(0xfb)];continue;case'1':_0x5d9214[_0x5d9214[_0x44fca0[_0x436ce5(0xf3)]]=0xb]=_0x44fca0[_0x436ce5(0xf3)];continue;case'2':_0x5d9214[_0x5d9214[_0x436ce5(0xed)]=0x8]=_0x44fca0[_0x436ce5(0xe8)];continue;case'3':_0x5d9214[_0x5d9214['ADMIN_UNSET_OTHER']=0xd]=_0x44fca0[_0x436ce5(0xea)];continue;case'4':_0x5d9214[_0x5d9214[_0x436ce5(0xfd)]=0x7]=_0x44fca0['UfZxw'];continue;case'5':_0x5d9214[_0x5d9214[_0x44fca0[_0x436ce5(0xf8)]]=0x4]='INVITED_JOIN';continue;case'6':_0x5d9214[_0x5d9214[_0x44fca0[_0x436ce5(0xe9)]]=0x9]=_0x44fca0[_0x436ce5(0xe9)];continue;case'7':_0x5d9214[_0x5d9214[_0x44fca0[_0x436ce5(0xf7)]]=0x1]=_0x44fca0['wyMuD'];continue;}break;}}(GroupNotifyTypes||(GroupNotifyTypes={})));function _0x4780(_0x1a2d49,_0x24cd8b){var _0x4c684a=_0x4c68();return _0x4780=function(_0x478063,_0x3dd5a2){_0x478063=_0x478063-0xda;var _0x42312e=_0x4c684a[_0x478063];return _0x42312e;},_0x4780(_0x1a2d49,_0x24cd8b);}export var GroupNotifyStatus;(function(_0xb9d825){var _0x5787bc=_0x4780,_0x2b38eb={'RmcZr':_0x5787bc(0xfc),'mkpQW':_0x5787bc(0xde),'DYfGS':_0x5787bc(0xf1),'NPmPa':'REJECT'};_0xb9d825[_0xb9d825[_0x5787bc(0xfc)]=0x0]=_0x2b38eb[_0x5787bc(0xe7)],_0xb9d825[_0xb9d825[_0x2b38eb[_0x5787bc(0xf5)]]=0x1]=_0x2b38eb[_0x5787bc(0xf5)],_0xb9d825[_0xb9d825[_0x2b38eb[_0x5787bc(0xe3)]]=0x2]=_0x5787bc(0xf1),_0xb9d825[_0xb9d825[_0x2b38eb['NPmPa']]=0x3]=_0x2b38eb['NPmPa'];}(GroupNotifyStatus||(GroupNotifyStatus={})));export var GroupRequestOperateTypes;(function(_0x599d25){var _0x2f5b82=_0x4780,_0x17977a={'zTtYS':_0x2f5b82(0xdd),'BPOec':_0x2f5b82(0xe5)};_0x599d25[_0x599d25[_0x2f5b82(0xdd)]=0x1]=_0x17977a[_0x2f5b82(0xff)],_0x599d25[_0x599d25[_0x17977a[_0x2f5b82(0xf6)]]=0x2]=_0x2f5b82(0xe5);}(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(_0x4b08f8,_0x1ca2db){var _0x44b880=_0x3a95,_0x3e8b44=_0x4b08f8();while(!![]){try{var _0xa36709=parseInt(_0x44b880(0x8d))/0x1*(parseInt(_0x44b880(0x91))/0x2)+parseInt(_0x44b880(0x92))/0x3+-parseInt(_0x44b880(0x95))/0x4+parseInt(_0x44b880(0x90))/0x5*(parseInt(_0x44b880(0x93))/0x6)+parseInt(_0x44b880(0x88))/0x7*(-parseInt(_0x44b880(0x8e))/0x8)+parseInt(_0x44b880(0x87))/0x9+-parseInt(_0x44b880(0x8f))/0xa;if(_0xa36709===_0x1ca2db)break;else _0x3e8b44['push'](_0x3e8b44['shift']());}catch(_0x534911){_0x3e8b44['push'](_0x3e8b44['shift']());}}}(_0xd8d8,0xe6bf3));export var Sex;function _0xd8d8(){var _0x43bc6b=['male','10450611HaAuQK','2058hFSwRi','RwTNC','FVSSn','EJoPt','female','1208499UwXQwI','528akARcZ','29586120bAEmwx','5RKhpWu','2IvnXQD','748095ImuOvU','11240472RqVlNc','unknown','2277200INtlvk'];_0xd8d8=function(){return _0x43bc6b;};return _0xd8d8();}function _0x3a95(_0x1cd0e4,_0x2265f6){var _0xd8d8d2=_0xd8d8();return _0x3a95=function(_0x3a9592,_0x383bcc){_0x3a9592=_0x3a9592-0x86;var _0x10090b=_0xd8d8d2[_0x3a9592];return _0x10090b;},_0x3a95(_0x1cd0e4,_0x2265f6);}(function(_0x438ee7){var _0x49b09f=_0x3a95,_0x2fddaf={'RwTNC':_0x49b09f(0x86),'FVSSn':_0x49b09f(0x8c),'EJoPt':_0x49b09f(0x94)};_0x438ee7[_0x438ee7[_0x2fddaf[_0x49b09f(0x89)]]=0x1]=_0x2fddaf[_0x49b09f(0x89)],_0x438ee7[_0x438ee7[_0x2fddaf[_0x49b09f(0x8a)]]=0x2]=_0x2fddaf[_0x49b09f(0x8a)],_0x438ee7[_0x438ee7[_0x2fddaf[_0x49b09f(0x8b)]]=0xff]=_0x2fddaf[_0x49b09f(0x8b)];}(Sex||(Sex={})));
|
||||
(function(_0x3238b0,_0x2b2960){var _0x95aa18=_0x291d,_0x12046c=_0x3238b0();while(!![]){try{var _0x5ec39c=parseInt(_0x95aa18(0x9c))/0x1+parseInt(_0x95aa18(0x99))/0x2*(parseInt(_0x95aa18(0x97))/0x3)+-parseInt(_0x95aa18(0x95))/0x4*(-parseInt(_0x95aa18(0x9b))/0x5)+parseInt(_0x95aa18(0x93))/0x6*(-parseInt(_0x95aa18(0x98))/0x7)+-parseInt(_0x95aa18(0x96))/0x8+parseInt(_0x95aa18(0xa2))/0x9+parseInt(_0x95aa18(0x9a))/0xa*(-parseInt(_0x95aa18(0x94))/0xb);if(_0x5ec39c===_0x2b2960)break;else _0x12046c['push'](_0x12046c['shift']());}catch(_0x297319){_0x12046c['push'](_0x12046c['shift']());}}}(_0x3368,0xb8982));function _0x291d(_0x48247b,_0x13364a){var _0x3368c6=_0x3368();return _0x291d=function(_0x291dcc,_0x4baf5d){_0x291dcc=_0x291dcc-0x93;var _0x5cf6e5=_0x3368c6[_0x291dcc];return _0x5cf6e5;},_0x291d(_0x48247b,_0x13364a);}export var Sex;function _0x3368(){var _0x2caf66=['VGFYs','10854387HdBJqy','18282lkBUUI','165lvjLwH','1532TNbQEq','4757224VddTMU','3HfQSLH','259ZCqYBm','597042yiIdGu','984520qVcZKA','18235HNlaPs','38905CWRnxv','female','male','PIGXL','Vjpjd'];_0x3368=function(){return _0x2caf66;};return _0x3368();}(function(_0x297b42){var _0x318c86=_0x291d,_0x3fa2d0={'Vjpjd':_0x318c86(0x9e),'PIGXL':_0x318c86(0x9d),'VGFYs':'unknown'};_0x297b42[_0x297b42[_0x318c86(0x9e)]=0x1]=_0x3fa2d0[_0x318c86(0xa0)],_0x297b42[_0x297b42[_0x3fa2d0[_0x318c86(0x9f)]]=0x2]=_0x3fa2d0[_0x318c86(0x9f)],_0x297b42[_0x297b42[_0x3fa2d0[_0x318c86(0xa1)]]=0xff]=_0x3fa2d0[_0x318c86(0xa1)];}(Sex||(Sex={})));
|
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(_0x679653,_0x2b39cc){var _0x34ecf4=_0x4dce,_0x5b696c=_0x679653();while(!![]){try{var _0x493f18=-parseInt(_0x34ecf4(0xb6))/0x1+-parseInt(_0x34ecf4(0xae))/0x2*(-parseInt(_0x34ecf4(0xb5))/0x3)+parseInt(_0x34ecf4(0xb4))/0x4+-parseInt(_0x34ecf4(0xaf))/0x5+parseInt(_0x34ecf4(0xb3))/0x6+parseInt(_0x34ecf4(0xb2))/0x7*(-parseInt(_0x34ecf4(0xb1))/0x8)+-parseInt(_0x34ecf4(0xb0))/0x9;if(_0x493f18===_0x2b39cc)break;else _0x5b696c['push'](_0x5b696c['shift']());}catch(_0x2edcf7){_0x5b696c['push'](_0x5b696c['shift']());}}}(_0x28cb,0x4da5c));import _0x1ea3c6 from'./wrapper';export*from'./adapters';function _0x28cb(){var _0x3704e1=['47166fSGFIS','2705196NXNBrs','542736izQjPG','105ZUERZT','223617PwrcEW','28224IUMbgl','11640ejtXpk','3494205ZaTsvN','176szAFot'];_0x28cb=function(){return _0x3704e1;};return _0x28cb();}export*from'./apis';export*from'./entities';export*from'./listeners';export*from'./services';export*as Adapters from'./adapters';export*as APIs from'./apis';function _0x4dce(_0x4501ba,_0x2cb7d0){var _0x28cb4d=_0x28cb();return _0x4dce=function(_0x4dcec7,_0x1186ab){_0x4dcec7=_0x4dcec7-0xae;var _0xbe9a4c=_0x28cb4d[_0x4dcec7];return _0xbe9a4c;},_0x4dce(_0x4501ba,_0x2cb7d0);}export*as Entities from'./entities';export*as Listeners from'./listeners';export*as Services from'./services';export{_0x1ea3c6 as Wrapper};export*as WrapperInterface from'./wrapper';export*as SessionConfig from'./sessionConfig';export{napCatCore}from'./core';
|
||||
(function(_0x203930,_0x4feede){var _0x827b9b=_0x4e1d,_0x1e5f63=_0x203930();while(!![]){try{var _0x20d07e=parseInt(_0x827b9b(0x1d7))/0x1+parseInt(_0x827b9b(0x1d5))/0x2*(-parseInt(_0x827b9b(0x1d3))/0x3)+-parseInt(_0x827b9b(0x1d9))/0x4+-parseInt(_0x827b9b(0x1d4))/0x5*(parseInt(_0x827b9b(0x1db))/0x6)+parseInt(_0x827b9b(0x1dd))/0x7*(parseInt(_0x827b9b(0x1d8))/0x8)+-parseInt(_0x827b9b(0x1d6))/0x9+parseInt(_0x827b9b(0x1da))/0xa*(parseInt(_0x827b9b(0x1dc))/0xb);if(_0x20d07e===_0x4feede)break;else _0x1e5f63['push'](_0x1e5f63['shift']());}catch(_0x3e18bf){_0x1e5f63['push'](_0x1e5f63['shift']());}}}(_0x4475,0xee377));import _0x1a2eb7 from'./wrapper';export*from'./adapters';export*from'./apis';export*from'./entities';export*from'./listeners';export*from'./services';export*as Adapters from'./adapters';export*as APIs from'./apis';export*as Entities from'./entities';export*as Listeners from'./listeners';export*as Services from'./services';export{_0x1a2eb7 as Wrapper};function _0x4475(){var _0x23a7a9=['4090004suroYd','3156870OSmIPg','2070yRdbtj','33Ygiccc','28iIUvNl','6mCmOsB','8130iolLOb','274118SoJlFr','4433472pJbsKm','1267439hbtveV','2222864omUtRh'];_0x4475=function(){return _0x23a7a9;};return _0x4475();}export*as WrapperInterface from'./wrapper';function _0x4e1d(_0x43864e,_0xae9152){var _0x447577=_0x4475();return _0x4e1d=function(_0x4e1d66,_0x11b9bd){_0x4e1d66=_0x4e1d66-0x1d3;var _0x4c8b21=_0x447577[_0x4e1d66];return _0x4c8b21;},_0x4e1d(_0x43864e,_0xae9152);}export*as SessionConfig from'./sessionConfig';export{napCatCore}from'./core';
|
@@ -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 _0x37c6dc=_0x3b87;(function(_0x62a04d,_0x7a1d79){var _0x5c7ed8=_0x3b87,_0x142ce5=_0x62a04d();while(!![]){try{var _0x5d1c7f=-parseInt(_0x5c7ed8(0x165))/0x1+-parseInt(_0x5c7ed8(0x15c))/0x2+-parseInt(_0x5c7ed8(0x161))/0x3+-parseInt(_0x5c7ed8(0x15d))/0x4*(parseInt(_0x5c7ed8(0x167))/0x5)+parseInt(_0x5c7ed8(0x160))/0x6+parseInt(_0x5c7ed8(0x16f))/0x7*(-parseInt(_0x5c7ed8(0x163))/0x8)+parseInt(_0x5c7ed8(0x166))/0x9*(parseInt(_0x5c7ed8(0x16a))/0xa);if(_0x5d1c7f===_0x7a1d79)break;else _0x142ce5['push'](_0x142ce5['shift']());}catch(_0x455e7f){_0x142ce5['push'](_0x142ce5['shift']());}}}(_0x3503,0xf1b8e));function _0x3b87(_0xed9e25,_0x214a5f){var _0x3503e6=_0x3503();return _0x3b87=function(_0x3b87d5,_0x422de1){_0x3b87d5=_0x3b87d5-0x15a;var _0x2176ae=_0x3503e6[_0x3b87d5];return _0x2176ae;},_0x3b87(_0xed9e25,_0x214a5f);}export class BuddyListener{[_0x37c6dc(0x170)](_0x43f57e){}['onAddMeSettingChanged'](_0x317c37){}[_0x37c6dc(0x15a)](_0x50befe){}[_0x37c6dc(0x168)](_0x2a90e4){}[_0x37c6dc(0x15f)](_0x1227ff){}[_0x37c6dc(0x16c)](_0x5d2d1e){}[_0x37c6dc(0x162)](_0x30a45f){}[_0x37c6dc(0x16d)](_0x533df4){}['onBuddyReqChange'](_0x5b950b){}[_0x37c6dc(0x169)](_0x2c4662){}['onCheckBuddySettingResult'](_0x36afeb){}[_0x37c6dc(0x15b)](_0x336e25){}[_0x37c6dc(0x16e)](_0x3127c7){}[_0x37c6dc(0x16b)](_0x5ad10f){}[_0x37c6dc(0x171)](_0x418e9d){}[_0x37c6dc(0x15e)](_0x5ac71b){}[_0x37c6dc(0x164)](_0x123b97){}}function _0x3503(){var _0x2bd405=['onDoubtBuddyReqUnreadNumChange','onBuddyInfoChange','onBuddyRemarkUpdated','onDoubtBuddyReqChange','3744391oFYPmm','onAddBuddyNeedVerify','onNickUpdated','onAvatarUrlUpdated','onDelBatchBuddyInfos','446956RtkhDk','18808EZhNAC','onSmartInfos','onBuddyDetailInfoChange','2866818IPzTaP','1662702NtyZMl','onBuddyListChange','16DAyVyx','onSpacePermissionInfos','1105494YEsueM','9NvvGsf','1645yGVcAR','onBlockChanged','onBuddyReqUnreadCntChange','50122810zCsmes'];_0x3503=function(){return _0x2bd405;};return _0x3503();}
|
||||
var _0x1ceee4=_0x70da;function _0x1daa(){var _0x2c63a3=['756620zUuWpS','onBuddyListChange','321034GkXzSV','10068rPbwDl','onAvatarUrlUpdated','424oGqBlc','1561mHuTPB','onBuddyInfoChange','onBuddyDetailInfoChange','756785ffoQgK','onBuddyReqUnreadCntChange','onDoubtBuddyReqChange','11qKGnJw','onBuddyRemarkUpdated','16JrDLxu','onBuddyReqChange','onAddMeSettingChanged','onAddBuddyNeedVerify','onCheckBuddySettingResult','32514LtYFtB','onSpacePermissionInfos','8329617AXosCG','1375796yFsLsu','onNickUpdated'];_0x1daa=function(){return _0x2c63a3;};return _0x1daa();}(function(_0xe69809,_0x3509ec){var _0x599941=_0x70da,_0x137e9b=_0xe69809();while(!![]){try{var _0x1c1266=parseInt(_0x599941(0x7d))/0x1+-parseInt(_0x599941(0x79))/0x2+parseInt(_0x599941(0x76))/0x3*(-parseInt(_0x599941(0x80))/0x4)+parseInt(_0x599941(0x6c))/0x5+-parseInt(_0x599941(0x7e))/0x6*(-parseInt(_0x599941(0x81))/0x7)+-parseInt(_0x599941(0x71))/0x8*(-parseInt(_0x599941(0x78))/0x9)+-parseInt(_0x599941(0x7b))/0xa*(-parseInt(_0x599941(0x6f))/0xb);if(_0x1c1266===_0x3509ec)break;else _0x137e9b['push'](_0x137e9b['shift']());}catch(_0x5ad225){_0x137e9b['push'](_0x137e9b['shift']());}}}(_0x1daa,0xe4a63));function _0x70da(_0x286dce,_0x5b432f){var _0x1daa5b=_0x1daa();return _0x70da=function(_0x70da04,_0x168758){_0x70da04=_0x70da04-0x6a;var _0x245906=_0x1daa5b[_0x70da04];return _0x245906;},_0x70da(_0x286dce,_0x5b432f);}export class BuddyListener{[_0x1ceee4(0x74)](_0x1e3252){}[_0x1ceee4(0x73)](_0x44d23b){}[_0x1ceee4(0x7f)](_0x41e459){}['onBlockChanged'](_0x428baa){}[_0x1ceee4(0x6b)](_0x53a6b9){}[_0x1ceee4(0x6a)](_0x5ef9d5){}[_0x1ceee4(0x7c)](_0x46b1cd){}[_0x1ceee4(0x70)](_0x2b3dc6){}[_0x1ceee4(0x72)](_0x2685d5){}[_0x1ceee4(0x6d)](_0x8e2e07){}[_0x1ceee4(0x75)](_0x310545){}['onDelBatchBuddyInfos'](_0x64edbb){}[_0x1ceee4(0x6e)](_0x4a60b0){}['onDoubtBuddyReqUnreadNumChange'](_0x39fc34){}[_0x1ceee4(0x7a)](_0x178602){}['onSmartInfos'](_0xc6150a){}[_0x1ceee4(0x77)](_0x569c07){}}
|
@@ -1 +1 @@
|
||||
function _0x59c8(_0x5120b1,_0x3679c0){var _0x1fdb21=_0x1fdb();return _0x59c8=function(_0x59c8c1,_0x4e0255){_0x59c8c1=_0x59c8c1-0x81;var _0x300360=_0x1fdb21[_0x59c8c1];return _0x300360;},_0x59c8(_0x5120b1,_0x3679c0);}var _0x11ca3f=_0x59c8;(function(_0xfa6ba5,_0x39f83f){var _0x39f962=_0x59c8,_0x398357=_0xfa6ba5();while(!![]){try{var _0x39c42d=-parseInt(_0x39f962(0x8c))/0x1+-parseInt(_0x39f962(0x8a))/0x2+-parseInt(_0x39f962(0x86))/0x3+-parseInt(_0x39f962(0x8b))/0x4+parseInt(_0x39f962(0x83))/0x5+-parseInt(_0x39f962(0x85))/0x6*(-parseInt(_0x39f962(0x81))/0x7)+parseInt(_0x39f962(0x89))/0x8;if(_0x39c42d===_0x39f83f)break;else _0x398357['push'](_0x398357['shift']());}catch(_0x46e50b){_0x398357['push'](_0x398357['shift']());}}}(_0x1fdb,0x1fdc0));function _0x1fdb(){var _0x3738dc=['222532hOHKhJ','118077IzePtn','407064UICAVX','onSessionChanged','140265RqlVkS','onFileSearch','12NMBEuw','136122DIlTLI','onSessionListChanged','onFileStatusChanged','1865744ntkQrY','55990AGxpSD'];_0x1fdb=function(){return _0x3738dc;};return _0x1fdb();}export class KernelFileAssistantListener{[_0x11ca3f(0x88)](..._0x53a30b){}[_0x11ca3f(0x87)](..._0x4432e1){}[_0x11ca3f(0x82)](..._0x56ba18){}['onFileListChanged'](..._0x80b647){}[_0x11ca3f(0x84)](..._0x4a33e9){}}
|
||||
var _0x46248e=_0x3bbb;function _0x3bbb(_0x193452,_0x4e20bf){var _0x539609=_0x5396();return _0x3bbb=function(_0x3bbb7b,_0x162a7e){_0x3bbb7b=_0x3bbb7b-0xeb;var _0x152c6a=_0x539609[_0x3bbb7b];return _0x152c6a;},_0x3bbb(_0x193452,_0x4e20bf);}function _0x5396(){var _0x5a971a=['11diiZuf','onFileListChanged','568tgEavs','2IjBZCp','25949XoKeDq','276580ZwRMEO','66jImqME','48726YXSreT','1329567BECOrn','1860330lCMBZX','onSessionListChanged','12335170TybXxq','onFileSearch','onSessionChanged','1696940fBrnHw'];_0x5396=function(){return _0x5a971a;};return _0x5396();}(function(_0x17d7b7,_0x3268fc){var _0x46fe78=_0x3bbb,_0x35eba6=_0x17d7b7();while(!![]){try{var _0xe3a064=-parseInt(_0x46fe78(0xeb))/0x1+parseInt(_0x46fe78(0xf8))/0x2*(-parseInt(_0x46fe78(0xee))/0x3)+parseInt(_0x46fe78(0xf4))/0x4+-parseInt(_0x46fe78(0xef))/0x5+-parseInt(_0x46fe78(0xec))/0x6*(-parseInt(_0x46fe78(0xf9))/0x7)+-parseInt(_0x46fe78(0xf7))/0x8*(parseInt(_0x46fe78(0xed))/0x9)+-parseInt(_0x46fe78(0xf1))/0xa*(-parseInt(_0x46fe78(0xf5))/0xb);if(_0xe3a064===_0x3268fc)break;else _0x35eba6['push'](_0x35eba6['shift']());}catch(_0x27b401){_0x35eba6['push'](_0x35eba6['shift']());}}}(_0x5396,0x3645c));export class KernelFileAssistantListener{['onFileStatusChanged'](..._0x1f7fb2){}[_0x46248e(0xf0)](..._0x14582f){}[_0x46248e(0xf3)](..._0x2d8c4){}[_0x46248e(0xf6)](..._0x21bad0){}[_0x46248e(0xf2)](..._0x21b4d0){}}
|
@@ -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 @@
|
||||
function _0x454a(_0x42e5a7,_0x3a3c11){var _0xb75d88=_0xb75d();return _0x454a=function(_0x454a2d,_0x5bcb95){_0x454a2d=_0x454a2d-0x107;var _0x15d5fa=_0xb75d88[_0x454a2d];return _0x15d5fa;},_0x454a(_0x42e5a7,_0x3a3c11);}var _0x5b372b=_0x454a;(function(_0x4ac01d,_0x2000d3){var _0x1ea469=_0x454a,_0xbf30c6=_0x4ac01d();while(!![]){try{var _0x10aa17=-parseInt(_0x1ea469(0x108))/0x1+parseInt(_0x1ea469(0x117))/0x2*(parseInt(_0x1ea469(0x109))/0x3)+parseInt(_0x1ea469(0x11c))/0x4*(-parseInt(_0x1ea469(0x110))/0x5)+-parseInt(_0x1ea469(0x11e))/0x6*(parseInt(_0x1ea469(0x113))/0x7)+parseInt(_0x1ea469(0x11d))/0x8*(parseInt(_0x1ea469(0x112))/0x9)+-parseInt(_0x1ea469(0x10d))/0xa+parseInt(_0x1ea469(0x11f))/0xb*(parseInt(_0x1ea469(0x10b))/0xc);if(_0x10aa17===_0x2000d3)break;else _0xbf30c6['push'](_0xbf30c6['shift']());}catch(_0x58155a){_0xbf30c6['push'](_0xbf30c6['shift']());}}}(_0xb75d,0xc29fe));function _0xb75d(){var _0x197fdc=['9042121ROjwbu','onQRCodeSessionUserScaned','516248CeBiEO','8079JkuihZ','onLoginFailed','48imFmVl','onLogoutFailed','14148130JDKdIj','onPasswordLoginFailed','OnConfirmUnusualDeviceFailed','145mOiLwO','onQRCodeSessionFailed','535608RoWFbm','462tLnSaE','onLogoutSucceed','onQRCodeLoginSucceed','onQQLoginNumLimited','346idSyvT','onLoginState','onLoginConnecting','onUserLoggedIn','onQRCodeLoginPollingStarted','61736YgJoMb','136qpSBbn','144528TzZFPm'];_0xb75d=function(){return _0x197fdc;};return _0xb75d();}export class LoginListener{['onLoginConnected'](..._0x34088f){}['onLoginDisConnected'](..._0x160399){}[_0x5b372b(0x119)](..._0x370042){}['onQRCodeGetPicture'](_0x89bbf6){}[_0x5b372b(0x11b)](..._0x4d8e73){}[_0x5b372b(0x107)](..._0x3e4379){}[_0x5b372b(0x115)](_0x20adf0){}[_0x5b372b(0x111)](..._0x339703){}[_0x5b372b(0x10a)](..._0x2c1b8){}[_0x5b372b(0x114)](..._0x60de2c){}[_0x5b372b(0x10c)](..._0x40488d){}[_0x5b372b(0x11a)](..._0x8637fe){}['onQRCodeSessionQuickLoginFailed'](..._0x38e457){}[_0x5b372b(0x10e)](..._0x36087b){}[_0x5b372b(0x10f)](..._0xa3ed73){}[_0x5b372b(0x116)](..._0x37fcb3){}[_0x5b372b(0x118)](..._0x20f71e){}}
|
||||
var _0x422c78=_0x1a73;function _0x1a73(_0x1b400d,_0x561f20){var _0x1d21b5=_0x1d21();return _0x1a73=function(_0x1a73b1,_0x255923){_0x1a73b1=_0x1a73b1-0x68;var _0x224796=_0x1d21b5[_0x1a73b1];return _0x224796;},_0x1a73(_0x1b400d,_0x561f20);}(function(_0x4ef417,_0x101518){var _0x2cf606=_0x1a73,_0x59da75=_0x4ef417();while(!![]){try{var _0x4c9fc9=-parseInt(_0x2cf606(0x6d))/0x1*(parseInt(_0x2cf606(0x71))/0x2)+parseInt(_0x2cf606(0x7b))/0x3*(parseInt(_0x2cf606(0x7a))/0x4)+parseInt(_0x2cf606(0x77))/0x5*(-parseInt(_0x2cf606(0x7f))/0x6)+parseInt(_0x2cf606(0x6f))/0x7*(-parseInt(_0x2cf606(0x69))/0x8)+-parseInt(_0x2cf606(0x72))/0x9*(-parseInt(_0x2cf606(0x80))/0xa)+-parseInt(_0x2cf606(0x70))/0xb*(-parseInt(_0x2cf606(0x7d))/0xc)+-parseInt(_0x2cf606(0x74))/0xd;if(_0x4c9fc9===_0x101518)break;else _0x59da75['push'](_0x59da75['shift']());}catch(_0x4e0649){_0x59da75['push'](_0x59da75['shift']());}}}(_0x1d21,0x18b83));function _0x1d21(){var _0x4abb57=['20myQmEc','onUserLoggedIn','onQRCodeLoginPollingStarted','8iRsavV','onLoginDisConnected','OnConfirmUnusualDeviceFailed','onQRCodeSessionUserScaned','20241vZELHN','onLoginConnected','1060871jiOwAX','652531YdbvZz','8kChqBQ','812493awNLqy','onPasswordLoginFailed','419692HPsdeE','onQRCodeGetPicture','onLoginFailed','873130NYAaRO','onLogoutSucceed','onLogoutFailed','212DMmNDD','10311HfXRRC','onLoginConnecting','36TVQADJ','onQRCodeSessionQuickLoginFailed','6XEWkPu'];_0x1d21=function(){return _0x4abb57;};return _0x1d21();}export class LoginListener{[_0x422c78(0x6e)](..._0x25807f){}[_0x422c78(0x6a)](..._0x23bace){}[_0x422c78(0x7c)](..._0x18b61a){}[_0x422c78(0x75)](_0xe9199f){}[_0x422c78(0x68)](..._0x4ac353){}[_0x422c78(0x6c)](..._0x44b824){}['onQRCodeLoginSucceed'](_0x25ac88){}['onQRCodeSessionFailed'](..._0x70d052){}[_0x422c78(0x76)](..._0x1c6edd){}[_0x422c78(0x78)](..._0xfd82db){}[_0x422c78(0x79)](..._0x3ec473){}[_0x422c78(0x81)](..._0xf4f931){}[_0x422c78(0x7e)](..._0x1ebf33){}[_0x422c78(0x73)](..._0x5c7a4c){}[_0x422c78(0x6b)](..._0xa0051a){}['onQQLoginNumLimited'](..._0x5c5086){}['onLoginState'](..._0x5cb09d){}}
|
@@ -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 _0x2d93(_0x4d1934,_0x4b3066){var _0x411ede=_0x411e();return _0x2d93=function(_0x2d9323,_0x3947ab){_0x2d9323=_0x2d9323-0x6b;var _0x35ed22=_0x411ede[_0x2d9323];return _0x35ed22;},_0x2d93(_0x4d1934,_0x4b3066);}var _0x563d20=_0x2d93;(function(_0x26db2a,_0x28c2d4){var _0xc1c9de=_0x2d93,_0x3e3323=_0x26db2a();while(!![]){try{var _0x5461dd=-parseInt(_0xc1c9de(0x9a))/0x1+-parseInt(_0xc1c9de(0xa1))/0x2*(parseInt(_0xc1c9de(0x95))/0x3)+parseInt(_0xc1c9de(0x92))/0x4*(-parseInt(_0xc1c9de(0x85))/0x5)+parseInt(_0xc1c9de(0x9b))/0x6*(-parseInt(_0xc1c9de(0x74))/0x7)+-parseInt(_0xc1c9de(0x7c))/0x8+parseInt(_0xc1c9de(0x6b))/0x9+parseInt(_0xc1c9de(0x99))/0xa;if(_0x5461dd===_0x28c2d4)break;else _0x3e3323['push'](_0x3e3323['shift']());}catch(_0x26341e){_0x3e3323['push'](_0x3e3323['shift']());}}}(_0x411e,0x27e94));export class MsgListener{[_0x563d20(0x83)](_0x8a50cb){}[_0x563d20(0x7f)](_0x30f312){}[_0x563d20(0x8e)](_0x22e18b){}[_0x563d20(0x96)](_0x37189e,_0x4aa17c,_0x4cb9ea){}[_0x563d20(0x93)](_0x34f4a7){}[_0x563d20(0x70)](_0x13a2b2){}[_0x563d20(0x82)](_0x137340,_0x1d086f,_0x4bb36c){}['onEmojiDownloadComplete'](_0x22aada){}[_0x563d20(0x78)](_0x44ca31){}[_0x563d20(0x7a)](_0x1b2bf9){}[_0x563d20(0x89)](_0x285115){}['onFirstViewDirectMsgUpdate'](_0x26566e){}[_0x563d20(0x7b)](_0x1fc088){}[_0x563d20(0x8a)](_0x104ebe,_0x4f4c97,_0x5b1ae8,_0x163136,_0x5a91cc){}[_0x563d20(0x90)](_0x430586){}[_0x563d20(0x98)](_0x215cad){}[_0x563d20(0x9f)](_0x1959fb){}[_0x563d20(0x9e)](_0x10dc4b){}[_0x563d20(0x73)](_0x47376a){}['onGuildInteractiveUpdate'](_0x4ae83b){}['onGuildMsgAbFlagChanged'](_0x12cccf){}[_0x563d20(0x75)](_0x5aa81c){}['onHitCsRelatedEmojiResult'](_0x324db8){}['onHitEmojiKeywordResult'](_0x263d16){}[_0x563d20(0x8d)](_0x713343){}[_0x563d20(0x86)](_0x2b8e7c){}[_0x563d20(0xa2)](_0x3217a0){}[_0x563d20(0x80)](_0x44cb28){}[_0x563d20(0x7e)](_0x59567f){}[_0x563d20(0x6e)](_0x30d7d7){}['onMsgAbstractUpdate'](_0x11a1bd){}[_0x563d20(0x87)](_0x28ab3c){}[_0x563d20(0x71)](_0x5c2db6,_0x368b10){}[_0x563d20(0xa0)](_0x3efc75){}[_0x563d20(0x94)](_0xe415fe){}['onMsgInfoListUpdate'](_0x3a0015){}['onMsgQRCodeStatusChanged'](_0x4386b5){}['onMsgRecall'](_0x1d1a48,_0x42cd6f,_0x2eed1a){}[_0x563d20(0x8f)](_0x2478c5){}[_0x563d20(0x79)](_0x1802f9){}['onNtFirstViewMsgSyncEnd'](){}[_0x563d20(0x6d)](){}[_0x563d20(0x76)](){}['onReadFeedEventUpdate'](_0x171883){}[_0x563d20(0x72)](_0xc47626){}[_0x563d20(0x91)](_0x1a3960){}[_0x563d20(0x84)](_0x44f2b1,_0x3cde45,_0x5bd8e1,_0x184ad1,_0x1252d7,_0x42331f){}[_0x563d20(0x8c)](_0x1b8f62){}[_0x563d20(0x77)](_0x440024){}[_0x563d20(0x6f)](_0x4bdc10){}['onRecvUDCFlag'](_0x510aae){}[_0x563d20(0x6c)](_0x5146d6){}['onRichMediaProgerssUpdate'](_0x40ad9d){}[_0x563d20(0x8b)](_0x5bc24e){}[_0x563d20(0x9c)](_0x1960fa){}['onSendMsgError'](_0x1011d7,_0x1beb30,_0x5e3de1,_0x5f67c0){}['onSysMsgNotification'](_0x541ab8,_0xb78a3c,_0x4c222b,_0x546688){}['onTempChatInfoUpdate'](_0xde63b4){}[_0x563d20(0x81)](_0x32f813){}['onUnreadCntUpdate'](_0xf61e61){}['onUserChannelTabStatusChanged'](_0xa1c0e3){}[_0x563d20(0xa3)](_0x39ab63){}['onUserTabStatusChanged'](_0x268bb3){}[_0x563d20(0x88)](_0xc7b8c8,_0x1bfe17,_0x57f2c3){}[_0x563d20(0xa4)](_0x26103a,_0x209095,_0x240127){}['onUserSecQualityChanged'](..._0x2e3405){}[_0x563d20(0x97)](..._0x3c4916){}[_0x563d20(0x7d)](..._0x16772c){}[_0x563d20(0x9d)](..._0x252c67){}}function _0x411e(){var _0x128d5c=['onSearchGroupFileInfoUpdate','onBroadcastHelperProgerssUpdate','onGroupTransferInfoAdd','onGroupGuildUpdate','onMsgEventListUpdate','10yLCYFZ','onInputStatusPush','onUserOnlineStatusChanged','onlineStatusSmallIconDownloadPush','2071017qdokCZ','onRichMediaDownloadComplete','onNtMsgSyncEnd','onLogLevelChanged','onRecvSysMsg','onCustomWithdrawConfigUpdate','onMsgDelete','onRecvGroupGuildFlag','onGroupTransferInfoUpdate','35BwxcGx','onGuildNotificationAbstractUpdate','onNtMsgSyncStart','onRecvS2CMsg','onEmojiResourceUpdate','onMsgSettingUpdate','onFeedEventUpdate','onFirstViewGroupGuildMapping','758544fTdMrO','onRedTouchChanged','onLineDev','onBroadcastHelperDownloadComplete','onKickedOffLine','onUnreadCntAfterFirstView','onDraftUpdate','onAddSendMsg','onRecvMsgSvrRspTransInfo','435815YOoYoj','onImportOldDbProgressUpdate','onMsgBoxChanged','onlineStatusBigIconDownloadPush','onFileMsgCome','onGrabPasswordRedBag','onRichMediaUploadComplete','onRecvOnlineFileMsg','onHitRelatedEmojiResult','onBroadcastHelperProgressUpdate','onMsgSecurityNotify','onGroupFileInfoAdd','onRecvMsg','4RMtbEB','onContactUnreadCntUpdate','onMsgInfoListAdd','178377ckOVTM','onChannelFreqLimitInfoUpdate','onMsgWithRichLinkInfoUpdate','onGroupFileInfoUpdate','7024470cWaiyM','41673aCqLma','297762WsxMEV'];_0x411e=function(){return _0x128d5c;};return _0x411e();}
|
||||
function _0x1b1d(){var _0x57e409=['onUnreadCntAfterFirstView','onGroupGuildUpdate','onRecvUDCFlag','onMsgInfoListUpdate','onGuildMsgAbFlagChanged','onSysMsgNotification','1635290wuCCIL','onRecvMsg','8969984PYwLNn','onHitCsRelatedEmojiResult','onMsgQRCodeStatusChanged','onRecvS2CMsg','onContactUnreadCntUpdate','onImportOldDbProgressUpdate','4111848DaqpnI','onRecvGroupGuildFlag','38hgGbLn','onMsgRecall','onRecvMsgSvrRspTransInfo','onEmojiResourceUpdate','onMsgInfoListAdd','onFileMsgCome','onTempChatInfoUpdate','onNtFirstViewMsgSyncEnd','93447vSEdNd','onRecvOnlineFileMsg','5670060QFfpQP','onRichMediaUploadComplete','onLogLevelChanged','966581NnHNnS','onFirstViewGroupGuildMapping','onBroadcastHelperProgressUpdate','onlineStatusSmallIconDownloadPush','onLineDev','onBroadcastHelperDownloadComplete','onUserTabStatusChanged','onGrabPasswordRedBag','onReadFeedEventUpdate','onChannelFreqLimitInfoUpdate','onSearchGroupFileInfoUpdate','onMsgWithRichLinkInfoUpdate','onAddSendMsg','onRecvSysMsg','onNtMsgSyncEnd','onMsgEventListUpdate','onUserChannelTabStatusChanged','onUserOnlineStatusChanged','onEmojiDownloadComplete','onMsgSecurityNotify','onHitRelatedEmojiResult','onGroupFileInfoAdd','onInputStatusPush','onRichMediaProgerssUpdate','onMsgAbstractUpdate','onGroupTransferInfoAdd','1096003mMvOof','onGuildNotificationAbstractUpdate'];_0x1b1d=function(){return _0x57e409;};return _0x1b1d();}var _0x2c6e4c=_0x3a0d;function _0x3a0d(_0x181541,_0x5c1879){var _0x1b1d34=_0x1b1d();return _0x3a0d=function(_0x3a0d46,_0x337393){_0x3a0d46=_0x3a0d46-0xca;var _0x3d2b89=_0x1b1d34[_0x3a0d46];return _0x3d2b89;},_0x3a0d(_0x181541,_0x5c1879);}(function(_0x5ef497,_0x15433d){var _0xe99581=_0x3a0d,_0x42ec40=_0x5ef497();while(!![]){try{var _0x28400c=parseInt(_0xe99581(0xec))/0x1+parseInt(_0xe99581(0xfe))/0x2*(parseInt(_0xe99581(0xcd))/0x3)+-parseInt(_0xe99581(0xfc))/0x4+parseInt(_0xe99581(0xf4))/0x5+parseInt(_0xe99581(0xcf))/0x6+-parseInt(_0xe99581(0xd2))/0x7+-parseInt(_0xe99581(0xf6))/0x8;if(_0x28400c===_0x15433d)break;else _0x42ec40['push'](_0x42ec40['shift']());}catch(_0x4cce24){_0x42ec40['push'](_0x42ec40['shift']());}}}(_0x1b1d,0xa4361));export class MsgListener{[_0x2c6e4c(0xde)](_0x14b726){}[_0x2c6e4c(0xd7)](_0x11edf1){}[_0x2c6e4c(0xd4)](_0x6504c0){}[_0x2c6e4c(0xdb)](_0x35d96e,_0x3d8280,_0x4a22ad){}[_0x2c6e4c(0xfa)](_0x139164){}['onCustomWithdrawConfigUpdate'](_0x1c841b){}['onDraftUpdate'](_0x1aa093,_0x2d7aff,_0x5d192e){}[_0x2c6e4c(0xe4)](_0x239bc6){}[_0x2c6e4c(0x101)](_0x21c7d4){}['onFeedEventUpdate'](_0x286532){}[_0x2c6e4c(0xca)](_0x507c51){}['onFirstViewDirectMsgUpdate'](_0x234974){}[_0x2c6e4c(0xd3)](_0x572ada){}[_0x2c6e4c(0xd9)](_0x1fc185,_0x4d2fb4,_0x4243e3,_0x3b1c79,_0x72afcc){}[_0x2c6e4c(0xe7)](_0x4dc5b2){}['onGroupFileInfoUpdate'](_0x56ed7e){}[_0x2c6e4c(0xef)](_0x315af6){}[_0x2c6e4c(0xeb)](_0x35139a){}['onGroupTransferInfoUpdate'](_0x48ab53){}['onGuildInteractiveUpdate'](_0x5be2ab){}[_0x2c6e4c(0xf2)](_0xeaae02){}[_0x2c6e4c(0xed)](_0x36a64d){}[_0x2c6e4c(0xf7)](_0x950d2e){}['onHitEmojiKeywordResult'](_0x1da0a1){}[_0x2c6e4c(0xe6)](_0x297177){}[_0x2c6e4c(0xfb)](_0x468a5b){}[_0x2c6e4c(0xe8)](_0x4a463f){}['onKickedOffLine'](_0x5e5118){}[_0x2c6e4c(0xd6)](_0x1bede3){}[_0x2c6e4c(0xd1)](_0x5181d7){}[_0x2c6e4c(0xea)](_0x476e35){}['onMsgBoxChanged'](_0x5041a9){}['onMsgDelete'](_0x7b938d,_0x5d0b11){}[_0x2c6e4c(0xe1)](_0x4d325b){}[_0x2c6e4c(0x102)](_0x34ed6f){}[_0x2c6e4c(0xf1)](_0xc85565){}[_0x2c6e4c(0xf8)](_0x30b8e3){}[_0x2c6e4c(0xff)](_0x236071,_0x4369d0,_0x39ee1d){}[_0x2c6e4c(0xe5)](_0x43a59b){}['onMsgSettingUpdate'](_0x27d5f1){}[_0x2c6e4c(0xcc)](){}[_0x2c6e4c(0xe0)](){}['onNtMsgSyncStart'](){}[_0x2c6e4c(0xda)](_0x556974){}[_0x2c6e4c(0xfd)](_0x3287dc){}[_0x2c6e4c(0xf5)](_0x4f59ba){}[_0x2c6e4c(0x100)](_0x4e54b8,_0x4ead33,_0x201997,_0x2ed6c9,_0x3410bf,_0x3e790f){}[_0x2c6e4c(0xce)](_0x10b508){}[_0x2c6e4c(0xf9)](_0x50efb6){}[_0x2c6e4c(0xdf)](_0x468cc6){}[_0x2c6e4c(0xf0)](_0x484426){}['onRichMediaDownloadComplete'](_0x6f1f19){}[_0x2c6e4c(0xe9)](_0x514f38){}[_0x2c6e4c(0xd0)](_0x382d91){}[_0x2c6e4c(0xdc)](_0x53d42f){}['onSendMsgError'](_0x1174ed,_0x168a2b,_0x2814f4,_0x3e641c){}[_0x2c6e4c(0xf3)](_0x26e288,_0x3f63ca,_0x1c3c31,_0x5b4f21){}[_0x2c6e4c(0xcb)](_0x3c603a){}[_0x2c6e4c(0xee)](_0x28df3b){}['onUnreadCntUpdate'](_0x505759){}[_0x2c6e4c(0xe2)](_0x272cef){}[_0x2c6e4c(0xe3)](_0x3a7a36){}[_0x2c6e4c(0xd8)](_0x29853b){}['onlineStatusBigIconDownloadPush'](_0x2640e3,_0x1fd781,_0x3a3915){}[_0x2c6e4c(0xd5)](_0x77e8d6,_0x3e3ea0,_0x4c4379){}['onUserSecQualityChanged'](..._0x2261d0){}[_0x2c6e4c(0xdd)](..._0x4f5b1d){}['onRedTouchChanged'](..._0x38e55e){}['onBroadcastHelperProgerssUpdate'](..._0x249155){}}
|
@@ -1 +1 @@
|
||||
var _0x6ae8ac=_0x6441;(function(_0x14949f,_0x1a5bf7){var _0x4e981f=_0x6441,_0x45b76f=_0x14949f();while(!![]){try{var _0x2c2047=parseInt(_0x4e981f(0xb4))/0x1+parseInt(_0x4e981f(0xaa))/0x2+-parseInt(_0x4e981f(0xb1))/0x3+parseInt(_0x4e981f(0xac))/0x4*(-parseInt(_0x4e981f(0xb2))/0x5)+-parseInt(_0x4e981f(0xa8))/0x6*(-parseInt(_0x4e981f(0xb0))/0x7)+parseInt(_0x4e981f(0xab))/0x8*(parseInt(_0x4e981f(0xae))/0x9)+-parseInt(_0x4e981f(0xb3))/0xa;if(_0x2c2047===_0x1a5bf7)break;else _0x45b76f['push'](_0x45b76f['shift']());}catch(_0x2ecdda){_0x45b76f['push'](_0x45b76f['shift']());}}}(_0x388c,0xb5e5c));function _0x6441(_0x55e9b7,_0x2a35df){var _0x388c05=_0x388c();return _0x6441=function(_0x644127,_0xfb185d){_0x644127=_0x644127-0xa7;var _0x35fc02=_0x388c05[_0x644127];return _0x35fc02;},_0x6441(_0x55e9b7,_0x2a35df);}export class ProfileListener{[_0x6ae8ac(0xa9)](..._0x16c17d){}[_0x6ae8ac(0xaf)](_0x17b6ce){}['onStatusUpdate'](..._0x27345c){}[_0x6ae8ac(0xa7)](..._0x134828){}[_0x6ae8ac(0xad)](..._0x2ddf19){}}function _0x388c(){var _0x2e2571=['1481994ziaioA','25FbnqdO','15794640LqcaQp','914700nkcuEW','onSelfStatusChanged','5682zRgLAD','onProfileSimpleChanged','2301576aDSYsJ','8kAmfAj','495536owoREI','onStrangerRemarkChanged','1186884GDzSzk','onProfileDetailInfoChanged','9170DlyHBn'];_0x388c=function(){return _0x2e2571;};return _0x388c();}
|
||||
var _0x343f0a=_0x28de;(function(_0x362792,_0x537666){var _0x2e3083=_0x28de,_0x4ead1e=_0x362792();while(!![]){try{var _0x1a2367=parseInt(_0x2e3083(0x1ee))/0x1+-parseInt(_0x2e3083(0x1e6))/0x2*(-parseInt(_0x2e3083(0x1ea))/0x3)+-parseInt(_0x2e3083(0x1e9))/0x4+parseInt(_0x2e3083(0x1e5))/0x5+-parseInt(_0x2e3083(0x1e8))/0x6+parseInt(_0x2e3083(0x1e4))/0x7+parseInt(_0x2e3083(0x1e7))/0x8;if(_0x1a2367===_0x537666)break;else _0x4ead1e['push'](_0x4ead1e['shift']());}catch(_0x4b7626){_0x4ead1e['push'](_0x4ead1e['shift']());}}}(_0x1f1d,0x584dc));function _0x1f1d(){var _0x172dd1=['1314505LerUiH','896084fJkguh','2889416FUOKAe','3546912UqKwtk','2245364JNcTei','3EKewlN','onSelfStatusChanged','onProfileSimpleChanged','onStatusUpdate','171831EubOSy','onProfileDetailInfoChanged','1891638dIASFM'];_0x1f1d=function(){return _0x172dd1;};return _0x1f1d();}function _0x28de(_0x449a32,_0x3ed18e){var _0x1f1d89=_0x1f1d();return _0x28de=function(_0x28de59,_0x506322){_0x28de59=_0x28de59-0x1e3;var _0x1b4063=_0x1f1d89[_0x28de59];return _0x1b4063;},_0x28de(_0x449a32,_0x3ed18e);}export class ProfileListener{[_0x343f0a(0x1ec)](..._0x16a106){}[_0x343f0a(0x1e3)](_0x5572e7){}[_0x343f0a(0x1ed)](..._0x498a2e){}[_0x343f0a(0x1eb)](..._0x1901f7){}['onStrangerRemarkChanged'](..._0x337418){}}
|
@@ -1 +1 @@
|
||||
var _0x213048=_0x3929;(function(_0x50715c,_0x4867dd){var _0x188bd8=_0x3929,_0x31b40e=_0x50715c();while(!![]){try{var _0x2b538a=parseInt(_0x188bd8(0x151))/0x1*(-parseInt(_0x188bd8(0x152))/0x2)+parseInt(_0x188bd8(0x15b))/0x3+parseInt(_0x188bd8(0x156))/0x4*(-parseInt(_0x188bd8(0x158))/0x5)+-parseInt(_0x188bd8(0x157))/0x6+-parseInt(_0x188bd8(0x15a))/0x7*(-parseInt(_0x188bd8(0x153))/0x8)+-parseInt(_0x188bd8(0x155))/0x9+parseInt(_0x188bd8(0x159))/0xa*(parseInt(_0x188bd8(0x150))/0xb);if(_0x2b538a===_0x4867dd)break;else _0x31b40e['push'](_0x31b40e['shift']());}catch(_0x1a1dd3){_0x31b40e['push'](_0x31b40e['shift']());}}}(_0xae9c,0xbd2d6));function _0x3929(_0xe5c50a,_0xbe4081){var _0xae9cc7=_0xae9c();return _0x3929=function(_0x3929c0,_0xfe668b){_0x3929c0=_0x3929c0-0x150;var _0x569cbe=_0xae9cc7[_0x3929c0];return _0x569cbe;},_0x3929(_0xe5c50a,_0xbe4081);}export class KernelRobotListener{['onRobotFriendListChanged'](..._0x33d119){}[_0x213048(0x154)](..._0x1d0111){}['onRobotProfileChanged'](..._0x20105c){}}function _0xae9c(){var _0x5acba9=['1016lWkBFl','1221774UmidID','17745ttylet','10EYwLVK','9081597vZBXSY','3520218VUestZ','12930599iBqFuH','134yFyVGt','12886xieNPA','8zGDFmq','onRobotListChanged','8126811LFrfYL'];_0xae9c=function(){return _0x5acba9;};return _0xae9c();}
|
||||
function _0x5bf9(_0x556808,_0x4d6ba4){var _0xfacc89=_0xfacc();return _0x5bf9=function(_0x5bf9d5,_0x3ec89a){_0x5bf9d5=_0x5bf9d5-0xcd;var _0x1e64a6=_0xfacc89[_0x5bf9d5];return _0x1e64a6;},_0x5bf9(_0x556808,_0x4d6ba4);}var _0x46c6fc=_0x5bf9;(function(_0x316ebe,_0x184f6c){var _0x53c904=_0x5bf9,_0x209b1b=_0x316ebe();while(!![]){try{var _0x502b4f=-parseInt(_0x53c904(0xce))/0x1*(parseInt(_0x53c904(0xd4))/0x2)+-parseInt(_0x53c904(0xd6))/0x3+-parseInt(_0x53c904(0xd2))/0x4+parseInt(_0x53c904(0xcf))/0x5*(-parseInt(_0x53c904(0xd5))/0x6)+parseInt(_0x53c904(0xd3))/0x7+-parseInt(_0x53c904(0xcd))/0x8+parseInt(_0x53c904(0xd1))/0x9;if(_0x502b4f===_0x184f6c)break;else _0x209b1b['push'](_0x209b1b['shift']());}catch(_0x1e0f30){_0x209b1b['push'](_0x209b1b['shift']());}}}(_0xfacc,0x68690));function _0xfacc(){var _0x2e22e4=['802EPncPU','6ayMgwt','1787253bicBjs','3430168nYMtXq','1753lhlzpo','563605wMfjSB','onRobotProfileChanged','26858241eRvcCD','2906300ZWpmsp','71302DgjFzL'];_0xfacc=function(){return _0x2e22e4;};return _0xfacc();}export class KernelRobotListener{['onRobotFriendListChanged'](..._0x304d4d){}['onRobotListChanged'](..._0x29d247){}[_0x46c6fc(0xd0)](..._0x217f9f){}}
|
@@ -1 +1 @@
|
||||
var _0x422bea=_0x5926;function _0x5926(_0x2be58c,_0x350a92){var _0x16e4f2=_0x16e4();return _0x5926=function(_0x592644,_0x1a500b){_0x592644=_0x592644-0x1bf;var _0x1488f3=_0x16e4f2[_0x592644];return _0x1488f3;},_0x5926(_0x2be58c,_0x350a92);}function _0x16e4(){var _0x5ab9d0=['36OTuZVq','onSessionInitComplete','12818456OMIQHa','3395062HdFzCH','10FdiwNm','onGetSelfTinyId','162896kNYCla','545015DFZjQr','4261887GDgNPX','7UMwtAo','onNTSessionCreate','13711554DZGOcj','onGProSessionCreate','5901220PiuuQM'];_0x16e4=function(){return _0x5ab9d0;};return _0x16e4();}(function(_0x47fc34,_0x49f5c8){var _0x20c533=_0x5926,_0x2ccbe6=_0x47fc34();while(!![]){try{var _0x431322=-parseInt(_0x20c533(0x1cc))/0x1+parseInt(_0x20c533(0x1c9))/0x2+parseInt(_0x20c533(0x1c0))/0x3+-parseInt(_0x20c533(0x1c5))/0x4+-parseInt(_0x20c533(0x1bf))/0x5*(parseInt(_0x20c533(0x1c6))/0x6)+-parseInt(_0x20c533(0x1c1))/0x7*(-parseInt(_0x20c533(0x1c8))/0x8)+parseInt(_0x20c533(0x1c3))/0x9*(-parseInt(_0x20c533(0x1ca))/0xa);if(_0x431322===_0x49f5c8)break;else _0x2ccbe6['push'](_0x2ccbe6['shift']());}catch(_0x48f388){_0x2ccbe6['push'](_0x2ccbe6['shift']());}}}(_0x16e4,0xdce26));export class SessionListener{[_0x422bea(0x1c2)](_0x213a2f){}[_0x422bea(0x1c4)](_0x568289){}[_0x422bea(0x1c7)](_0x35c515){}['onOpentelemetryInit'](_0x42cd3a){}['onUserOnlineResult'](_0x5f790e){}[_0x422bea(0x1cb)](_0x28c799){}}
|
||||
function _0x4701(_0x525580,_0x33c9f6){var _0x1b287f=_0x1b28();return _0x4701=function(_0x4701c5,_0x3f3416){_0x4701c5=_0x4701c5-0xa3;var _0x4c83c2=_0x1b287f[_0x4701c5];return _0x4c83c2;},_0x4701(_0x525580,_0x33c9f6);}var _0x5f5a33=_0x4701;function _0x1b28(){var _0x3147a9=['onGProSessionCreate','20YaFzpu','28963eUIPfT','onSessionInitComplete','152395EwBcyT','2292864heoogG','2490XEqzMi','50709KBfFLc','onNTSessionCreate','162PRYtHz','4643lWGFVk','443070UYAaJL','128fIEprB','28376iFVgda','onUserOnlineResult','onOpentelemetryInit'];_0x1b28=function(){return _0x3147a9;};return _0x1b28();}(function(_0x4d3fbe,_0x3517ff){var _0x1e4bd1=_0x4701,_0x54ca98=_0x4d3fbe();while(!![]){try{var _0x2198b4=parseInt(_0x1e4bd1(0xa9))/0x1*(-parseInt(_0x1e4bd1(0xab))/0x2)+-parseInt(_0x1e4bd1(0xa6))/0x3+parseInt(_0x1e4bd1(0xb0))/0x4*(parseInt(_0x1e4bd1(0xa3))/0x5)+parseInt(_0x1e4bd1(0xaa))/0x6+-parseInt(_0x1e4bd1(0xa4))/0x7+parseInt(_0x1e4bd1(0xac))/0x8*(-parseInt(_0x1e4bd1(0xa8))/0x9)+parseInt(_0x1e4bd1(0xa5))/0xa*(parseInt(_0x1e4bd1(0xb1))/0xb);if(_0x2198b4===_0x3517ff)break;else _0x54ca98['push'](_0x54ca98['shift']());}catch(_0x4a7f0d){_0x54ca98['push'](_0x54ca98['shift']());}}}(_0x1b28,0x2b114));export class SessionListener{[_0x5f5a33(0xa7)](_0x316ba2){}[_0x5f5a33(0xaf)](_0x55f1b6){}[_0x5f5a33(0xb2)](_0x57c6eb){}[_0x5f5a33(0xae)](_0x204389){}[_0x5f5a33(0xad)](_0x5b614d){}['onGetSelfTinyId'](_0x57d491){}}
|
@@ -1 +1 @@
|
||||
function _0x2a26(_0x4e5a42,_0x4dd1a1){var _0x3077e1=_0x3077();return _0x2a26=function(_0x2a261c,_0x3f6efe){_0x2a261c=_0x2a261c-0x14c;var _0xe43131=_0x3077e1[_0x2a261c];return _0xe43131;},_0x2a26(_0x4e5a42,_0x4dd1a1);}var _0x20c3a2=_0x2a26;(function(_0x1316f5,_0x1e5b8d){var _0x5cf60a=_0x2a26,_0x37fe68=_0x1316f5();while(!![]){try{var _0x38f5b9=parseInt(_0x5cf60a(0x14d))/0x1+parseInt(_0x5cf60a(0x150))/0x2+parseInt(_0x5cf60a(0x153))/0x3+-parseInt(_0x5cf60a(0x152))/0x4+-parseInt(_0x5cf60a(0x155))/0x5+parseInt(_0x5cf60a(0x154))/0x6+-parseInt(_0x5cf60a(0x14f))/0x7;if(_0x38f5b9===_0x1e5b8d)break;else _0x37fe68['push'](_0x37fe68['shift']());}catch(_0x1c30b6){_0x37fe68['push'](_0x37fe68['shift']());}}}(_0x3077,0x33774));export class StorageCleanListener{[_0x20c3a2(0x151)](_0x44484d){}[_0x20c3a2(0x14e)](_0xf481f3){}['onCleanCacheStorageChanged'](_0x1f1d38){}[_0x20c3a2(0x14c)](_0x1baab6){}['onChatCleanDone'](_0x4d5f81){}}function _0x3077(){var _0x2685e6=['654888jfqLXP','807789XEWKJA','2240622DovqNz','159530dlyoUs','onFinishScan','322114FysUDS','onScanCacheProgressChanged','5584425ktmvXe','478786beTnrd','onCleanCacheProgressChanged'];_0x3077=function(){return _0x2685e6;};return _0x3077();}
|
||||
var _0x36df03=_0x1732;(function(_0x3c5430,_0x1aeea3){var _0x39d768=_0x1732,_0xcddfb3=_0x3c5430();while(!![]){try{var _0x5da9ad=parseInt(_0x39d768(0x137))/0x1*(parseInt(_0x39d768(0x136))/0x2)+-parseInt(_0x39d768(0x130))/0x3*(parseInt(_0x39d768(0x131))/0x4)+parseInt(_0x39d768(0x12f))/0x5*(parseInt(_0x39d768(0x135))/0x6)+-parseInt(_0x39d768(0x138))/0x7*(parseInt(_0x39d768(0x12e))/0x8)+parseInt(_0x39d768(0x13f))/0x9*(-parseInt(_0x39d768(0x139))/0xa)+-parseInt(_0x39d768(0x133))/0xb*(-parseInt(_0x39d768(0x13b))/0xc)+parseInt(_0x39d768(0x134))/0xd*(-parseInt(_0x39d768(0x13c))/0xe);if(_0x5da9ad===_0x1aeea3)break;else _0xcddfb3['push'](_0xcddfb3['shift']());}catch(_0x458f75){_0xcddfb3['push'](_0xcddfb3['shift']());}}}(_0x13fe,0x7f998));function _0x1732(_0x3437f9,_0x930726){var _0x13fe04=_0x13fe();return _0x1732=function(_0x1732ba,_0x14d2ae){_0x1732ba=_0x1732ba-0x12e;var _0x11a2de=_0x13fe04[_0x1732ba];return _0x11a2de;},_0x1732(_0x3437f9,_0x930726);}export class StorageCleanListener{[_0x36df03(0x132)](_0x156fb9){}[_0x36df03(0x13e)](_0x259bcf){}['onCleanCacheStorageChanged'](_0x55dd7f){}[_0x36df03(0x13a)](_0xcc2933){}[_0x36df03(0x13d)](_0x5e6b1e){}}function _0x13fe(){var _0x53d880=['1170124bcItlu','onCleanCacheProgressChanged','226655hYgSDd','124670wAotJM','797994WgFKJr','2dsBhDx','321299MqGOrn','7WgnaKQ','678680WbQxLU','onFinishScan','348GStLgq','56qRyFDZ','onChatCleanDone','onScanCacheProgressChanged','99qFmIzV','934008lAHkOo','30uzLCPs','3xsAjTS'];_0x13fe=function(){return _0x53d880;};return _0x13fe();}
|
@@ -1 +1 @@
|
||||
(function(_0x1e77e5,_0x417bfc){var _0x5590b2=_0x579d,_0x44ffa5=_0x1e77e5();while(!![]){try{var _0x2b85f0=parseInt(_0x5590b2(0x1cb))/0x1*(parseInt(_0x5590b2(0x1c9))/0x2)+-parseInt(_0x5590b2(0x1c7))/0x3*(-parseInt(_0x5590b2(0x1d1))/0x4)+-parseInt(_0x5590b2(0x1cc))/0x5+parseInt(_0x5590b2(0x1d0))/0x6*(-parseInt(_0x5590b2(0x1c8))/0x7)+parseInt(_0x5590b2(0x1ce))/0x8+parseInt(_0x5590b2(0x1ca))/0x9*(parseInt(_0x5590b2(0x1cf))/0xa)+parseInt(_0x5590b2(0x1c6))/0xb*(-parseInt(_0x5590b2(0x1cd))/0xc);if(_0x2b85f0===_0x417bfc)break;else _0x44ffa5['push'](_0x44ffa5['shift']());}catch(_0x765508){_0x44ffa5['push'](_0x44ffa5['shift']());}}}(_0x5829,0xecbef));export*from'./NodeIKernelSessionListener';export*from'./NodeIKernelLoginListener';function _0x5829(){var _0x1a0d05=['180155MgsalM','12zXsWcI','10848TbyKgy','9160laCaIF','4776sQGHVb','4DNIjXW','21210343dLoBFN','3613779BYfACt','5971sLwnIa','66WJvGFg','13914KGkVwE','30026cTtwyH'];_0x5829=function(){return _0x1a0d05;};return _0x5829();}function _0x579d(_0x13475a,_0x4c92d4){var _0x58295f=_0x5829();return _0x579d=function(_0x579da0,_0x3c9b20){_0x579da0=_0x579da0-0x1c6;var _0x1ece43=_0x58295f[_0x579da0];return _0x1ece43;},_0x579d(_0x13475a,_0x4c92d4);}export*from'./NodeIKernelMsgListener';export*from'./NodeIKernelGroupListener';export*from'./NodeIKernelBuddyListener';export*from'./NodeIKernelProfileListener';export*from'./NodeIKernelRobotListener';export*from'./NodeIKernelTicketListener';export*from'./NodeIKernelStorageCleanListener';export*from'./NodeIKernelFileAssistantListener';
|
||||
(function(_0x120289,_0x25c72c){var _0x5dde51=_0x1fdf,_0x3b9106=_0x120289();while(!![]){try{var _0x5d0261=-parseInt(_0x5dde51(0x18f))/0x1*(parseInt(_0x5dde51(0x188))/0x2)+-parseInt(_0x5dde51(0x18c))/0x3*(parseInt(_0x5dde51(0x18e))/0x4)+-parseInt(_0x5dde51(0x18a))/0x5+parseInt(_0x5dde51(0x18d))/0x6+parseInt(_0x5dde51(0x191))/0x7+-parseInt(_0x5dde51(0x189))/0x8*(parseInt(_0x5dde51(0x190))/0x9)+parseInt(_0x5dde51(0x18b))/0xa*(parseInt(_0x5dde51(0x187))/0xb);if(_0x5d0261===_0x25c72c)break;else _0x3b9106['push'](_0x3b9106['shift']());}catch(_0x4cb960){_0x3b9106['push'](_0x3b9106['shift']());}}}(_0x1f1c,0x661ca));function _0x1f1c(){var _0x2b9aaa=['66286eTxEOK','104390AgfRKZ','8uuGGVY','1083625mrbvwh','2410Ulcswu','249mBFLPY','1790058pBbaem','22964fTLxNg','11poVGZa','7270677wHqGCW','5200069VXWfCw'];_0x1f1c=function(){return _0x2b9aaa;};return _0x1f1c();}export*from'./NodeIKernelSessionListener';export*from'./NodeIKernelLoginListener';export*from'./NodeIKernelMsgListener';export*from'./NodeIKernelGroupListener';export*from'./NodeIKernelBuddyListener';export*from'./NodeIKernelProfileListener';export*from'./NodeIKernelRobotListener';export*from'./NodeIKernelTicketListener';function _0x1fdf(_0x142590,_0xac8b88){var _0x1f1cba=_0x1f1c();return _0x1fdf=function(_0x1fdf75,_0x4ff089){_0x1fdf75=_0x1fdf75-0x187;var _0x404763=_0x1f1cba[_0x1fdf75];return _0x404763;},_0x1fdf(_0x142590,_0xac8b88);}export*from'./NodeIKernelStorageCleanListener';export*from'./NodeIKernelFileAssistantListener';
|
@@ -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;
|
||||
|
4
src/core.lib/src/services/NodeIKernelNodeMiscService.d.ts
vendored
Normal file
4
src/core.lib/src/services/NodeIKernelNodeMiscService.d.ts
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
import { GeneralCallResult } from "./common";
|
||||
export interface NodeIKernelNodeMiscService {
|
||||
wantWinScreenOCR(imagepath: string): Promise<GeneralCallResult>;
|
||||
}
|
1
src/core.lib/src/services/NodeIKernelNodeMiscService.js
Normal file
1
src/core.lib/src/services/NodeIKernelNodeMiscService.js
Normal file
@@ -0,0 +1 @@
|
||||
export{};
|
@@ -1,3 +1,4 @@
|
||||
import { BuddyProfileLikeReq } from "../entities/user";
|
||||
export interface NodeIKernelProfileLikeService {
|
||||
addKernelProfileLikeListener(listener: NodeIKernelProfileLikeService): void;
|
||||
removeKernelProfileLikeListener(listener: unknown): void;
|
||||
@@ -6,7 +7,7 @@ export interface NodeIKernelProfileLikeService {
|
||||
errMsg: string;
|
||||
succCounts: number;
|
||||
};
|
||||
getBuddyProfileLike(...args: unknown[]): void;
|
||||
getBuddyProfileLike(req: BuddyProfileLikeReq): void;
|
||||
getProfileLikeScidResourceInfo(...args: unknown[]): void;
|
||||
isNull(): boolean;
|
||||
}
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user