mirror of
https://github.com/NapNeko/NapCatQQ.git
synced 2025-07-19 12:03:37 +00:00
Compare commits
307 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
0499ebbea3 | ||
![]() |
d5843b7236 | ||
![]() |
1c9c574a90 | ||
![]() |
39acf20e48 | ||
![]() |
52eb6ed5ab | ||
![]() |
ee78d2d59d | ||
![]() |
60dc5c4a38 | ||
![]() |
50a0dc0355 | ||
![]() |
3f681ec914 | ||
![]() |
0bf499f191 | ||
![]() |
389695a0d6 | ||
![]() |
07f1afb312 | ||
![]() |
ae91e61304 | ||
![]() |
6248991b01 | ||
![]() |
7f2d57ef62 | ||
![]() |
31f8f884f1 | ||
![]() |
4f4af5985a | ||
![]() |
a716fdf6d4 | ||
![]() |
9717f64abd | ||
![]() |
adf239183a | ||
![]() |
6cf209c79c | ||
![]() |
decc5fb3c0 | ||
![]() |
1e0820d613 | ||
![]() |
70124d5177 | ||
![]() |
269de65201 | ||
![]() |
1d11abbfb6 | ||
![]() |
700f308d6e | ||
![]() |
21b6928ca6 | ||
![]() |
998c67a649 | ||
![]() |
fb99e878b0 | ||
![]() |
1619adfc27 | ||
![]() |
5510fb473f | ||
![]() |
be1878cb2b | ||
![]() |
15ab121cbd | ||
![]() |
aa79b0e861 | ||
![]() |
b80e550bcd | ||
![]() |
dbc40b5814 | ||
![]() |
0d5696a644 | ||
![]() |
ceffa05802 | ||
![]() |
d5668920b6 | ||
![]() |
516f2da144 | ||
![]() |
33c94e1888 | ||
![]() |
51ab58cd91 | ||
![]() |
aa7798d1d1 | ||
![]() |
9067a1fc92 | ||
![]() |
4024b6c564 | ||
![]() |
d39730928b | ||
![]() |
e1f049229c | ||
![]() |
8f2676ec19 | ||
![]() |
32d26248dc | ||
![]() |
16f926401b | ||
![]() |
66d60d3599 | ||
![]() |
5a35ab6c34 | ||
![]() |
ba1542bd31 | ||
![]() |
453060945a | ||
![]() |
c8351be461 | ||
![]() |
9954da22a6 | ||
![]() |
907b5611eb | ||
![]() |
5f075de212 | ||
![]() |
8fcf3c5079 | ||
![]() |
07cee90c7a | ||
![]() |
75ad495b98 | ||
![]() |
0bb7288ad2 | ||
![]() |
ad72415532 | ||
![]() |
0ad0353fc0 | ||
![]() |
9fa0dcd7aa | ||
![]() |
1f2e80cd39 | ||
![]() |
6cb6034d43 | ||
![]() |
25134c6ac6 | ||
![]() |
92bf42878a | ||
![]() |
9f4582d158 | ||
![]() |
68af73970e | ||
![]() |
b6ed8d4975 | ||
![]() |
d07d3645ce | ||
![]() |
123759ab17 | ||
![]() |
f2f1f893d8 | ||
![]() |
db93a8eed2 | ||
![]() |
12ab6d4a7d | ||
![]() |
add759e889 | ||
![]() |
f315f7977d | ||
![]() |
f2f6701ebd | ||
![]() |
1a92794d33 | ||
![]() |
7640deb798 | ||
![]() |
f1e8ef1cf6 | ||
![]() |
5e5ac0162e | ||
![]() |
0c013820f0 | ||
![]() |
4b3a9e5847 | ||
![]() |
e4982256a4 | ||
![]() |
babc4927a8 | ||
![]() |
6dd84cf469 | ||
![]() |
a8800e3899 | ||
![]() |
5f03496046 | ||
![]() |
41500c17a2 | ||
![]() |
2dcfde8b9a | ||
![]() |
5c3305d8fa | ||
![]() |
0d1fe99f53 | ||
![]() |
4c03ffeec7 | ||
![]() |
8101d17482 | ||
![]() |
bc7b4dcc2a | ||
![]() |
3db8b9078d | ||
![]() |
943dbbefd3 | ||
![]() |
480abcb853 | ||
![]() |
60aaaff58e | ||
![]() |
e3b889bbe8 | ||
![]() |
ac5506a43b | ||
![]() |
b29f533a3b | ||
![]() |
a8ee86b09e | ||
![]() |
0238c53302 | ||
![]() |
665e3c806f | ||
![]() |
8c96838441 | ||
![]() |
4a722daec6 | ||
![]() |
4e0cdbcb91 | ||
![]() |
08976624cd | ||
![]() |
fdeba94653 | ||
![]() |
d3b100b7e5 | ||
![]() |
1de3e18b08 | ||
![]() |
d5c3c95682 | ||
![]() |
dabe1e29ed | ||
![]() |
203d1c0cfc | ||
![]() |
7edd8601be | ||
![]() |
a4423247f4 | ||
![]() |
4834b203a0 | ||
![]() |
bbabb32d13 | ||
![]() |
95112d6bdf | ||
![]() |
36cdca5a3e | ||
![]() |
6980a9f3fc | ||
![]() |
7b09479cd2 | ||
![]() |
5825fd6f36 | ||
![]() |
2d5b45dd82 | ||
![]() |
52dda1d1fe | ||
![]() |
420624bee4 | ||
![]() |
8abde7b7d0 | ||
![]() |
9e5b1ba28e | ||
![]() |
b9c7d3c18e | ||
![]() |
10aeccbbe5 | ||
![]() |
15d351ebc2 | ||
![]() |
7194f31cb6 | ||
![]() |
84b7e82446 | ||
![]() |
8264423b1a | ||
![]() |
37f897f3bf | ||
![]() |
fe3efac145 | ||
![]() |
9773aebefc | ||
![]() |
06f2b8c371 | ||
![]() |
e8f0bb8350 | ||
![]() |
9bfa6b827b | ||
![]() |
b21bc17a58 | ||
![]() |
f4d5d417d0 | ||
![]() |
91fc83621e | ||
![]() |
461feca0ca | ||
![]() |
5e9afab3f7 | ||
![]() |
2599ca6450 | ||
![]() |
fc99ad3a39 | ||
![]() |
10e1c3e72c | ||
![]() |
af5dedd4d4 | ||
![]() |
3b986c1076 | ||
![]() |
72f77e8b7c | ||
![]() |
e893bf676f | ||
![]() |
80eb34f611 | ||
![]() |
5d01947552 | ||
![]() |
d3a025ef7b | ||
![]() |
c466df841e | ||
![]() |
b3c6e2a0f3 | ||
![]() |
076c9cfed7 | ||
![]() |
c3f3d12f83 | ||
![]() |
44974034ec | ||
![]() |
d6175acd38 | ||
![]() |
62eee5f05c | ||
![]() |
d4e5201913 | ||
![]() |
f4d584765a | ||
![]() |
26e224f852 | ||
![]() |
252358ed66 | ||
![]() |
475afeb7c8 | ||
![]() |
7cbbb846eb | ||
![]() |
25f947968c | ||
![]() |
cad824dcbc | ||
![]() |
e506f50b00 | ||
![]() |
96ec149a98 | ||
![]() |
8c913512f6 | ||
![]() |
4cc307299d | ||
![]() |
407c6b4c5f | ||
![]() |
8f87070434 | ||
![]() |
4a63996ee2 | ||
![]() |
0358fe7620 | ||
![]() |
55e64395ed | ||
![]() |
ff5fb18e14 | ||
![]() |
52dd960857 | ||
![]() |
430221c2de | ||
![]() |
217bdf8f92 | ||
![]() |
38c6c869bf | ||
![]() |
84d46da67e | ||
![]() |
eb9d6240d7 | ||
![]() |
2d44a871b0 | ||
![]() |
3f89f350ff | ||
![]() |
1a8407a782 | ||
![]() |
cf288a3f73 | ||
![]() |
f1f37fb180 | ||
![]() |
fb0dd079fd | ||
![]() |
a6c584c85c | ||
![]() |
77adf35a30 | ||
![]() |
dc6951c2a9 | ||
![]() |
d14ba3f0f7 | ||
![]() |
78ddf36e35 | ||
![]() |
d42734624d | ||
![]() |
b5dbd9d59b | ||
![]() |
bed3e1289b | ||
![]() |
b11ca4e60e | ||
![]() |
4fcf3aa2bd | ||
![]() |
dc39da8ca5 | ||
![]() |
c10c87d28e | ||
![]() |
c6fe6f1cc5 | ||
![]() |
1c2bbeb26d | ||
![]() |
17ed3692d0 | ||
![]() |
966a00f41e | ||
![]() |
fd8d8f89aa | ||
![]() |
305bb74072 | ||
![]() |
7f4dcdd134 | ||
![]() |
aac37dcce1 | ||
![]() |
f539c662a5 | ||
![]() |
c82f346dd0 | ||
![]() |
21b4a87837 | ||
![]() |
ae73bcf24b | ||
![]() |
2a3b56bde1 | ||
![]() |
b8ebededd8 | ||
![]() |
227c4c422c | ||
![]() |
652bfb93cc | ||
![]() |
c2278e3536 | ||
![]() |
caa2fca4e8 | ||
![]() |
745cb0175c | ||
![]() |
e5165a780f | ||
![]() |
b4b91af02b | ||
![]() |
5649ff9c2e | ||
![]() |
5b4bf6c62a | ||
![]() |
93cb662282 | ||
![]() |
00a8715e58 | ||
![]() |
7ecd479b3e | ||
![]() |
8fe7d3aaec | ||
![]() |
f32a693393 | ||
![]() |
17ebc01597 | ||
![]() |
827fb698e1 | ||
![]() |
32bdf10fd2 | ||
![]() |
b795e6c3d2 | ||
![]() |
42ba524e4e | ||
![]() |
317c6d96e3 | ||
![]() |
3692d1499f | ||
![]() |
b21fbad8a3 | ||
![]() |
743334a68a | ||
![]() |
951413eb38 | ||
![]() |
32dcdef853 | ||
![]() |
34c9254d4a | ||
![]() |
14012a4668 | ||
![]() |
575debca63 | ||
![]() |
763cac8532 | ||
![]() |
43faacd7a7 | ||
![]() |
1d4e307e96 | ||
![]() |
7f8933b0de | ||
![]() |
81608ff025 | ||
![]() |
db63675b8e | ||
![]() |
f74a83bc46 | ||
![]() |
bc1deba3e4 | ||
![]() |
d6113a8f0a | ||
![]() |
2062cd48ea | ||
![]() |
1c965ef515 | ||
![]() |
58291b7156 | ||
![]() |
afd1648d80 | ||
![]() |
21814ffa9a | ||
![]() |
9d3522da54 | ||
![]() |
e07a76755e | ||
![]() |
ba46bcdeae | ||
![]() |
8d7e44314c | ||
![]() |
35a67498c7 | ||
![]() |
90dd934f95 | ||
![]() |
4087045542 | ||
![]() |
d11cef5907 | ||
![]() |
76c91d226c | ||
![]() |
c2b4dd2afd | ||
![]() |
25b39cb39a | ||
![]() |
35dcb7b88b | ||
![]() |
e5f7e7c26e | ||
![]() |
c5c11fd6a6 | ||
![]() |
8134083419 | ||
![]() |
a87e624198 | ||
![]() |
e4c62d20b4 | ||
![]() |
fa195d9e55 | ||
![]() |
5ef5773d23 | ||
![]() |
6eea52afdf | ||
![]() |
80e64af30f | ||
![]() |
563b6ddc36 | ||
![]() |
c051ab9dc4 | ||
![]() |
87737a8bdb | ||
![]() |
94273d80b0 | ||
![]() |
a08ec2a4bd | ||
![]() |
d246c556f4 | ||
![]() |
65aa365e38 | ||
![]() |
eeeae449b4 | ||
![]() |
17c10a7ba2 | ||
![]() |
69f4383678 | ||
![]() |
07852a7295 | ||
![]() |
20b7e9b6b5 | ||
![]() |
75f43ccea4 | ||
![]() |
59e5785e93 | ||
![]() |
b38f52dba9 | ||
![]() |
2a6b17a48e | ||
![]() |
a6c056a894 | ||
![]() |
5c3442a71f | ||
![]() |
390253242f | ||
![]() |
9ab80fe1ac | ||
![]() |
91fdd09e7a |
@@ -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
|
||||
|
6
.gitignore
vendored
6
.gitignore
vendored
@@ -4,8 +4,8 @@ package-lock.json
|
||||
pnpm-lock.yaml
|
||||
out/
|
||||
dist/
|
||||
src/core.lib/common/
|
||||
test
|
||||
/src/core.lib/common/
|
||||
/localdebug/
|
||||
|
||||
# Editor
|
||||
.vscode/*
|
||||
@@ -14,4 +14,4 @@ test
|
||||
|
||||
# Build
|
||||
*.db
|
||||
checkVersion.sh
|
||||
checkVersion.sh
|
13
CHANGELOG.md
13
CHANGELOG.md
@@ -1,13 +0,0 @@
|
||||
# v1.3.2
|
||||
|
||||
QQ Version: Windows 9.9.9-23424 / Linux 3.2.7-23361
|
||||
|
||||
## 修复与优化
|
||||
* 重置Rkey获取机制,使用接口分发Rkey
|
||||
* 尝试修复启动时消息处理需要等待过长时间
|
||||
* 修复多图情况为同一张图片的问题
|
||||
|
||||
## 新增与调整
|
||||
* 新增扩展获取好友分类列表 Api /get_friends_with_category
|
||||
|
||||
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)
|
17
docs/changelogs/CHANGELOG.v1.3.3.md
Normal file
17
docs/changelogs/CHANGELOG.v1.3.3.md
Normal file
@@ -0,0 +1,17 @@
|
||||
# v1.3.3
|
||||
|
||||
QQ Version: Windows 9.9.9-23424 / Linux 3.2.7-23361
|
||||
|
||||
## 修复与优化
|
||||
* 尝试修复多开崩溃问题
|
||||
* 修复群列表更新问题
|
||||
* 修复兼容性问题支持Win7
|
||||
* 修复下载 http 资源缺少UA
|
||||
* 优化少量消息合并转发速度
|
||||
* 修复加载群通知时出现 getUserDetailInfo timeout 导致程序崩溃
|
||||
|
||||
## 新增与调整
|
||||
* 新增设置群公告 Api: /_send_group_notice
|
||||
* 新增重启实现 包括重启快速登录/普通重启 副作用: 原进程 无法清理
|
||||
|
||||
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)
|
18
docs/changelogs/CHANGELOG.v1.3.5.md
Normal file
18
docs/changelogs/CHANGELOG.v1.3.5.md
Normal file
@@ -0,0 +1,18 @@
|
||||
# v1.3.5
|
||||
|
||||
QQ Version: Windows 9.9.9-23424 / Linux 3.2.7-23361
|
||||
|
||||
## 修复与优化
|
||||
* 优化启动脚本
|
||||
* 修复非管理时群成员减少事件上报 **无法获取操作者与操作类型**
|
||||
* 修复快速重启进程清理问题
|
||||
* 优化配置文件格式 支持自动更新配置 但仍然建议 **备份配置**
|
||||
* 修复正向反向ws多个客户端周期多次心跳问题
|
||||
|
||||
## 新增与调整
|
||||
* 支持WebUi热重载
|
||||
* 新增启动输出WEBUI秘钥
|
||||
* 新增群荣誉信息 /get_group_honor_info
|
||||
* 支持获取群系统消息 /get_group_system_msg
|
||||
|
||||
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)
|
11
docs/changelogs/CHANGELOG.v1.3.6.md
Normal file
11
docs/changelogs/CHANGELOG.v1.3.6.md
Normal file
@@ -0,0 +1,11 @@
|
||||
# v1.3.6
|
||||
|
||||
QQ Version: Windows 9.9.9-23424 / Linux 3.2.7-23361
|
||||
|
||||
## 修复与优化
|
||||
* 修复戳一戳多次上报问题
|
||||
|
||||
## 新增与调整
|
||||
|
||||
|
||||
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)
|
15
docs/changelogs/CHANGELOG.v1.3.8.md
Normal file
15
docs/changelogs/CHANGELOG.v1.3.8.md
Normal file
@@ -0,0 +1,15 @@
|
||||
# v1.3.8
|
||||
|
||||
QQ Version: Windows 9.9.9-23873 / Linux 3.2.7-23361
|
||||
|
||||
## 修复与优化
|
||||
* 优化打包后体积问题
|
||||
* 修复QQ等级获取
|
||||
* 兼容 9.7.x 版本换行符 统一为 \n
|
||||
* 修复处理加群请求 字段异常情况
|
||||
* 修复退群通知问题
|
||||
|
||||
## 新增与调整
|
||||
|
||||
|
||||
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)
|
11
docs/changelogs/CHANGELOG.v1.3.9.md
Normal file
11
docs/changelogs/CHANGELOG.v1.3.9.md
Normal file
@@ -0,0 +1,11 @@
|
||||
# v1.3.9
|
||||
|
||||
QQ Version: Windows 9.9.10-23873 / Linux 3.2.7-23361
|
||||
|
||||
## 修复与优化
|
||||
* 修复QQ等级获取与兼容性问题
|
||||
|
||||
## 新增与调整
|
||||
|
||||
|
||||
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)
|
12
docs/changelogs/CHANGELOG.v1.4.0.md
Normal file
12
docs/changelogs/CHANGELOG.v1.4.0.md
Normal file
@@ -0,0 +1,12 @@
|
||||
# v1.4.0
|
||||
|
||||
QQ Version: Windows 9.9.10-24108 / Linux 3.2.7-23361
|
||||
|
||||
## 修复与优化
|
||||
|
||||
## 新增与调整
|
||||
* 支持空间Cookies获取
|
||||
* 支持获取在线设备 API /get_online_clients
|
||||
* 支持图片OCR API: /.ocr_image /ocr_image
|
||||
|
||||
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)
|
14
docs/changelogs/CHANGELOG.v1.4.1.md
Normal file
14
docs/changelogs/CHANGELOG.v1.4.1.md
Normal file
@@ -0,0 +1,14 @@
|
||||
# v1.4.1
|
||||
|
||||
QQ Version: Windows 9.9.10-24108 / Linux 3.2.7-23361
|
||||
|
||||
## 修复与优化
|
||||
* 提高部分Api兼容性
|
||||
* 优化日志膨胀问题
|
||||
* 在线状态刷新问题修复
|
||||
## 新增与调整
|
||||
* 支持非管理群 本地记录时间数据 (建议 **备份配置 清空配置 重新配置**)
|
||||
* 新增英译中接口 Api: /translate_en2zh
|
||||
* 新增群文件管理相关扩展接口 Api: /get_group_file_count /get_group_file_list /set_group_file_folder /del_group_file /del_group_file_folder
|
||||
|
||||
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)
|
12
docs/changelogs/CHANGELOG.v1.4.2.md
Normal file
12
docs/changelogs/CHANGELOG.v1.4.2.md
Normal file
@@ -0,0 +1,12 @@
|
||||
# v1.4.2
|
||||
|
||||
QQ Version: Windows 9.9.10-24108 / Linux 3.2.7-23361
|
||||
|
||||
## 修复与优化
|
||||
* 修复获取群文件列表Api
|
||||
* 修复退群通知问题
|
||||
|
||||
## 新增与调整
|
||||
|
||||
|
||||
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)
|
11
docs/changelogs/CHANGELOG.v1.4.3.md
Normal file
11
docs/changelogs/CHANGELOG.v1.4.3.md
Normal file
@@ -0,0 +1,11 @@
|
||||
# v1.4.3
|
||||
|
||||
QQ Version: Windows 9.9.10-24108 / Linux 3.2.7-23361
|
||||
|
||||
## 修复与优化
|
||||
* 修复名片通知
|
||||
|
||||
## 新增与调整
|
||||
|
||||
|
||||
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)
|
10
docs/changelogs/CHANGELOG.v1.4.4.md
Normal file
10
docs/changelogs/CHANGELOG.v1.4.4.md
Normal file
@@ -0,0 +1,10 @@
|
||||
# v1.4.4
|
||||
|
||||
QQ Version: Windows 9.9.10-24108 / Linux 3.2.7-23361
|
||||
|
||||
## 更新
|
||||
* **重大更新:**更新了版本号
|
||||
|
||||
|
||||
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)
|
||||
|
12
docs/changelogs/CHANGELOG.v1.4.5.md
Normal file
12
docs/changelogs/CHANGELOG.v1.4.5.md
Normal file
@@ -0,0 +1,12 @@
|
||||
# v1.4.5
|
||||
|
||||
QQ Version: Windows 9.9.10-24108 / Linux 3.2.7-23361
|
||||
|
||||
## 修复与优化
|
||||
* 紧急修复二维扫码问题
|
||||
|
||||
## 新增与调整
|
||||
|
||||
|
||||
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)
|
||||
|
12
docs/changelogs/CHANGELOG.v1.4.6.md
Normal file
12
docs/changelogs/CHANGELOG.v1.4.6.md
Normal file
@@ -0,0 +1,12 @@
|
||||
# v1.4.6
|
||||
|
||||
QQ Version: Windows 9.9.10-24108 / Linux 3.2.7-23361
|
||||
|
||||
## 修复与优化
|
||||
* 优化整体稳定性
|
||||
|
||||
## 新增与调整
|
||||
|
||||
|
||||
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)
|
||||
|
11
docs/changelogs/CHANGELOG.v1.4.7.md
Normal file
11
docs/changelogs/CHANGELOG.v1.4.7.md
Normal file
@@ -0,0 +1,11 @@
|
||||
# v1.4.7
|
||||
|
||||
QQ Version: Windows 9.9.10-24108 / Linux 3.2.7-23361
|
||||
|
||||
## 修复与优化
|
||||
* 临时扩展 Api: GoCQHTTPUploadGroupFile folder_id字段 用于选择文件夹
|
||||
|
||||
## 新增与调整
|
||||
|
||||
|
||||
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)
|
131
package.json
131
package.json
@@ -1,65 +1,66 @@
|
||||
{
|
||||
"name": "napcat",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"version": "1.3.2",
|
||||
"scripts": {
|
||||
"watch:dev": "vite --mode development",
|
||||
"watch:prod": "vite --mode production",
|
||||
"build:dev": "vite build --mode development",
|
||||
"build:prod": "vite build --mode production",
|
||||
"build": "npm run build:dev",
|
||||
"build:core": "cd ./src/core && 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.7",
|
||||
"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 });
|
||||
|
181
src/common/utils/EventTask.ts
Normal file
181
src/common/utils/EventTask.ts
Normal file
@@ -0,0 +1,181 @@
|
||||
import { NodeIKernelMsgListener } from "@/core";
|
||||
import { NodeIQQNTWrapperSession } from "@/core/wrapper";
|
||||
import { randomUUID } from "crypto";
|
||||
|
||||
interface Internal_MapKey {
|
||||
timeout: number,
|
||||
createtime: number,
|
||||
func: Function
|
||||
}
|
||||
|
||||
export class ListenerClassBase {
|
||||
[key: string]: string;
|
||||
}
|
||||
|
||||
export interface ListenerIBase {
|
||||
// eslint-disable-next-line @typescript-eslint/no-misused-new
|
||||
new(listener: any): ListenerClassBase;
|
||||
}
|
||||
|
||||
export class NTEventWrapper {
|
||||
|
||||
private ListenerMap: { [key: string]: ListenerIBase } | undefined;//ListenerName-Unique -> Listener构造函数
|
||||
private WrapperSession: NodeIQQNTWrapperSession | undefined;//WrapperSession
|
||||
private ListenerManger: Map<string, ListenerClassBase> = new Map<string, ListenerClassBase>(); //ListenerName-Unique -> Listener实例
|
||||
private EventTask = new Map<string, Map<string, Map<string, Internal_MapKey>>>();//tasks ListenerMainName -> ListenerSubName-> uuid -> {timeout,createtime,func}
|
||||
constructor() {
|
||||
|
||||
}
|
||||
createProxyDispatch(ListenerMainName: string) {
|
||||
let current = this;
|
||||
return new Proxy({}, {
|
||||
get(target: any, prop: any, receiver: any) {
|
||||
// console.log('get', prop, typeof target[prop]);
|
||||
if (typeof target[prop] === 'undefined') {
|
||||
// 如果方法不存在,返回一个函数,这个函数调用existentMethod
|
||||
return (...args: any[]) => {
|
||||
current.DispatcherListener.apply(current, [ListenerMainName, prop, ...args]).then();
|
||||
};
|
||||
}
|
||||
// 如果方法存在,正常返回
|
||||
return Reflect.get(target, prop, receiver);
|
||||
}
|
||||
});
|
||||
}
|
||||
init({ ListenerMap, WrapperSession }: { ListenerMap: { [key: string]: typeof ListenerClassBase }, WrapperSession: NodeIQQNTWrapperSession }) {
|
||||
this.ListenerMap = ListenerMap;
|
||||
this.WrapperSession = WrapperSession;
|
||||
}
|
||||
CreatEventFunction<T extends (...args: any) => any>(eventName: string): T | undefined {
|
||||
let eventNameArr = eventName.split('/');
|
||||
type eventType = {
|
||||
[key: string]: () => { [key: string]: (...params: Parameters<T>) => Promise<ReturnType<T>> }
|
||||
}
|
||||
if (eventNameArr.length > 1) {
|
||||
let serviceName = 'get' + eventNameArr[0].replace('NodeIKernel', '');
|
||||
let eventName = eventNameArr[1];
|
||||
//getNodeIKernelGroupListener,GroupService
|
||||
//console.log('2', eventName);
|
||||
let services = (this.WrapperSession as unknown as eventType)[serviceName]();
|
||||
let event = services[eventName];
|
||||
//重新绑定this
|
||||
event = event.bind(services);
|
||||
if (event) {
|
||||
return event as T;
|
||||
}
|
||||
return undefined;
|
||||
}
|
||||
|
||||
}
|
||||
CreatListenerFunction<T>(listenerMainName: string, uniqueCode: string = ""): T {
|
||||
let ListenerType = this.ListenerMap![listenerMainName];
|
||||
let Listener = this.ListenerManger.get(listenerMainName + uniqueCode);
|
||||
if (!Listener && ListenerType) {
|
||||
Listener = new ListenerType(this.createProxyDispatch(listenerMainName));
|
||||
let ServiceSubName = listenerMainName.match(/^NodeIKernel(.*?)Listener$/)![1];
|
||||
let Service = "NodeIKernel" + ServiceSubName + "Service/addKernel" + ServiceSubName + "Listener";
|
||||
let addfunc = this.CreatEventFunction<(listener: T) => number>(Service);
|
||||
addfunc!(Listener as T);
|
||||
//console.log(addfunc!(Listener as T));
|
||||
this.ListenerManger.set(listenerMainName + uniqueCode, Listener);
|
||||
}
|
||||
return Listener as T;
|
||||
}
|
||||
//统一回调清理事件
|
||||
async DispatcherListener(ListenerMainName: string, ListenerSubName: string, ...args: any[]) {
|
||||
//console.log(ListenerMainName, this.EventTask.get(ListenerMainName), ListenerSubName, this.EventTask.get(ListenerMainName)?.get(ListenerSubName));
|
||||
this.EventTask.get(ListenerMainName)?.get(ListenerSubName)?.forEach((task, uuid) => {
|
||||
//console.log(task.func, uuid, task.createtime, task.timeout);
|
||||
if (task.createtime + task.timeout < Date.now()) {
|
||||
this.EventTask.get(ListenerMainName)?.get(ListenerSubName)?.delete(uuid);
|
||||
return;
|
||||
}
|
||||
task.func(...args);
|
||||
})
|
||||
}
|
||||
async CallNoListenerEvent<EventType extends (...args: any[]) => Promise<any>,>(EventName = '', timeout: number = 3000, ...args: Parameters<EventType>) {
|
||||
return new Promise<ReturnType<EventType>>(async (resolve, reject) => {
|
||||
let EventFunc = this.CreatEventFunction<EventType>(EventName);
|
||||
let complete = false;
|
||||
let Timeouter = setTimeout(() => {
|
||||
if (!complete) {
|
||||
reject(new Error('NTEvent EventName:' + EventName + ' timeout'));
|
||||
}
|
||||
}, timeout);
|
||||
let retData = await EventFunc!(...args);
|
||||
complete = true;
|
||||
resolve(retData);
|
||||
});
|
||||
}
|
||||
async CallNormalEvent<EventType extends (...args: any[]) => Promise<any>, ListenerType extends (...args: any[]) => void>(EventName = '', ListenerName = '', waitTimes = 1, timeout: number = 3000, ...args: Parameters<EventType>) {
|
||||
return new Promise<[EventRet: Awaited<ReturnType<EventType>>, ...Parameters<ListenerType>]>(async (resolve, reject) => {
|
||||
const id = randomUUID();
|
||||
let complete = 0;
|
||||
let retData: ArrayLike<Parameters<ListenerType>> | undefined = undefined;
|
||||
let retEvent: any = {};
|
||||
let databack = () => {
|
||||
if (complete < waitTimes) {
|
||||
reject(new Error('NTEvent EventName:' + EventName + ' ListenerName:' + ListenerName + ' timeout'));
|
||||
} else {
|
||||
|
||||
resolve([retEvent as Awaited<ReturnType<EventType>>, ...(retData as Parameters<ListenerType>)]);
|
||||
}
|
||||
}
|
||||
let Timeouter = setTimeout(databack, timeout);
|
||||
|
||||
let ListenerNameList = ListenerName.split('/');
|
||||
let ListenerMainName = ListenerNameList[0];
|
||||
let ListenerSubName = ListenerNameList[1];
|
||||
let eventCallbak = {
|
||||
timeout: timeout,
|
||||
createtime: Date.now(),
|
||||
func: (...args: any[]) => {
|
||||
complete++;
|
||||
//console.log('func', ...args);
|
||||
retData = args as ArrayLike<Parameters<ListenerType>>;
|
||||
if (complete >= waitTimes) {
|
||||
clearTimeout(Timeouter);
|
||||
databack();
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!this.EventTask.get(ListenerMainName)) {
|
||||
this.EventTask.set(ListenerMainName, new Map());
|
||||
}
|
||||
if (!(this.EventTask.get(ListenerMainName)?.get(ListenerSubName))) {
|
||||
this.EventTask.get(ListenerMainName)?.set(ListenerSubName, new Map());
|
||||
}
|
||||
this.EventTask.get(ListenerMainName)?.get(ListenerSubName)?.set(id, eventCallbak);
|
||||
this.CreatListenerFunction(ListenerMainName);
|
||||
let EventFunc = this.CreatEventFunction<EventType>(EventName);
|
||||
retEvent = await EventFunc!(...args);
|
||||
});
|
||||
}
|
||||
}
|
||||
export const NTEventDispatch = new NTEventWrapper();
|
||||
|
||||
// 示例代码 快速创建事件
|
||||
// let NTEvent = new NTEventWrapper();
|
||||
// let TestEvent = NTEvent.CreatEventFunction<(force: boolean) => Promise<Number>>('NodeIKernelProfileLikeService/GetTest');
|
||||
// if (TestEvent) {
|
||||
// TestEvent(true);
|
||||
// }
|
||||
|
||||
// 示例代码 快速创建监听Listener类
|
||||
// let NTEvent = new NTEventWrapper();
|
||||
// NTEvent.CreatListenerFunction<NodeIKernelMsgListener>('NodeIKernelMsgListener', 'core')
|
||||
|
||||
|
||||
// 调用接口
|
||||
//let NTEvent = new NTEventWrapper();
|
||||
//let ret = await NTEvent.CallNormalEvent<(force: boolean) => Promise<Number>, (data1: string, data2: number) => void>('NodeIKernelProfileLikeService/GetTest', 'NodeIKernelMsgListener/onAddSendMsg', 1, 3000, true);
|
||||
|
||||
// 注册监听 解除监听
|
||||
// NTEventDispatch.RigisterListener('NodeIKernelMsgListener/onAddSendMsg','core',cb);
|
||||
// NTEventDispatch.UnRigisterListener('NodeIKernelMsgListener/onAddSendMsg','core');
|
||||
|
||||
// let GetTest = NTEventDispatch.CreatEvent('NodeIKernelProfileLikeService/GetTest','NodeIKernelMsgListener/onAddSendMsg',Mode);
|
||||
// GetTest('test');
|
||||
|
||||
// always模式
|
||||
// NTEventDispatch.CreatEvent('NodeIKernelProfileLikeService/GetTest','NodeIKernelMsgListener/onAddSendMsg',Mode,(...args:any[])=>{ console.log(args) });
|
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;
|
||||
|
@@ -1,15 +1,44 @@
|
||||
import { exit } from "process";
|
||||
import { resolve } from "path";
|
||||
async function reboot() {
|
||||
let batScript = resolve(__dirname, './napcat.bat');
|
||||
let batUtf8Script = resolve(__dirname, './napcat-utf8.bat');
|
||||
let bashScript = resolve(__dirname, './napcat.sh');
|
||||
//如果是win系统写出 5s延迟启动 默认batUtf8Script启动
|
||||
// 如果是linux系统写出 5s延迟启动 默认bashScript启动
|
||||
if (process.platform === 'win32') {
|
||||
// console.log('正在重启...');
|
||||
} else if (process.platform === 'linux') {
|
||||
//console.log('正在重启...');
|
||||
}
|
||||
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.2',
|
||||
'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: 5d0e576230...f2cbf64f55
@@ -1 +1 @@
|
||||
function _0x2447(){var _0x40715d=['767928djIDKx','2613555LtFJNB','88880ITNkwU','4272LXSycu','getGroupCode','7731ImFEuE','63sfXUOj','119514rxaZvL','6MAtdxI','5478560FwCVSe','3257401IvFXNP'];_0x2447=function(){return _0x40715d;};return _0x2447();}var _0x255d07=_0x41cd;function _0x41cd(_0x5cef73,_0x12e48d){var _0x24471d=_0x2447();return _0x41cd=function(_0x41cd42,_0xac0095){_0x41cd42=_0x41cd42-0x152;var _0x389d9=_0x24471d[_0x41cd42];return _0x389d9;},_0x41cd(_0x5cef73,_0x12e48d);}(function(_0x57a7ff,_0x3c0999){var _0x5414e6=_0x41cd,_0x591d70=_0x57a7ff();while(!![]){try{var _0x4d1a4a=parseInt(_0x5414e6(0x158))/0x1*(-parseInt(_0x5414e6(0x157))/0x2)+-parseInt(_0x5414e6(0x156))/0x3*(-parseInt(_0x5414e6(0x152))/0x4)+-parseInt(_0x5414e6(0x15c))/0x5+parseInt(_0x5414e6(0x15b))/0x6+parseInt(_0x5414e6(0x15a))/0x7+-parseInt(_0x5414e6(0x153))/0x8*(parseInt(_0x5414e6(0x155))/0x9)+parseInt(_0x5414e6(0x159))/0xa;if(_0x4d1a4a===_0x3c0999)break;else _0x591d70['push'](_0x591d70['shift']());}catch(_0x1503d5){_0x591d70['push'](_0x591d70['shift']());}}}(_0x2447,0x41648));export class DependsAdapter{['onMSFStatusChange'](_0x2e5ba0,_0x5859ee){}['onMSFSsoError'](_0x540230){}[_0x255d07(0x154)](_0x341797){}}
|
||||
function _0x306c(){var _0x7679f0=['180DZdtcA','370398HwYoej','1704332sseMAv','20XNtBxl','onMSFSsoError','477474CPGixQ','onMSFStatusChange','735147lANjQo','5774385sCSDMr','2557268dtzRmb','1770728tCyhsC','77UTtlTM'];_0x306c=function(){return _0x7679f0;};return _0x306c();}var _0x4d077f=_0x1cf9;function _0x1cf9(_0x5e14dc,_0x4a63cd){var _0x306c0f=_0x306c();return _0x1cf9=function(_0x1cf9c3,_0x5f0a2a){_0x1cf9c3=_0x1cf9c3-0x1d3;var _0x327af3=_0x306c0f[_0x1cf9c3];return _0x327af3;},_0x1cf9(_0x5e14dc,_0x4a63cd);}(function(_0xbbb421,_0x3a9ebe){var _0x20df64=_0x1cf9,_0x4d2ca4=_0xbbb421();while(!![]){try{var _0x1eab6f=parseInt(_0x20df64(0x1dd))/0x1+-parseInt(_0x20df64(0x1de))/0x2*(-parseInt(_0x20df64(0x1dc))/0x3)+-parseInt(_0x20df64(0x1d8))/0x4+parseInt(_0x20df64(0x1d7))/0x5+-parseInt(_0x20df64(0x1d4))/0x6*(parseInt(_0x20df64(0x1da))/0x7)+-parseInt(_0x20df64(0x1d9))/0x8+-parseInt(_0x20df64(0x1d6))/0x9*(parseInt(_0x20df64(0x1db))/0xa);if(_0x1eab6f===_0x3a9ebe)break;else _0x4d2ca4['push'](_0x4d2ca4['shift']());}catch(_0xa7166){_0x4d2ca4['push'](_0x4d2ca4['shift']());}}}(_0x306c,0xd8afc));export class DependsAdapter{[_0x4d077f(0x1d5)](_0x6e3797,_0x249111){}[_0x4d077f(0x1d3)](_0x2b2d4c){}['getGroupCode'](_0xe52cb){}}
|
@@ -1 +1 @@
|
||||
var _0x3de2e4=_0x2540;function _0x232a(){var _0xfaa861=['13366TCpArG','114600bzkmxJ','12222dloHSn','217HnnbDg','2462142PwpkNp','2751925DTqjRJ','1511320MYXSpE','910szgNEo','dispatchCall','88swNYuM','63630fOvCkS','4GQwgLe'];_0x232a=function(){return _0xfaa861;};return _0x232a();}function _0x2540(_0x45ccb8,_0x573f47){var _0x232a07=_0x232a();return _0x2540=function(_0x2540df,_0x80e83c){_0x2540df=_0x2540df-0xd7;var _0x3c6216=_0x232a07[_0x2540df];return _0x3c6216;},_0x2540(_0x45ccb8,_0x573f47);}(function(_0x2f493a,_0x3c1636){var _0x241720=_0x2540,_0x37f272=_0x2f493a();while(!![]){try{var _0x44217c=-parseInt(_0x241720(0xdd))/0x1*(parseInt(_0x241720(0xde))/0x2)+parseInt(_0x241720(0xdc))/0x3*(parseInt(_0x241720(0xdb))/0x4)+parseInt(_0x241720(0xd8))/0x5+parseInt(_0x241720(0xe2))/0x6+-parseInt(_0x241720(0xe1))/0x7*(parseInt(_0x241720(0xdf))/0x8)+parseInt(_0x241720(0xe0))/0x9*(-parseInt(_0x241720(0xd9))/0xa)+-parseInt(_0x241720(0xd7))/0xb;if(_0x44217c===_0x3c1636)break;else _0x37f272['push'](_0x37f272['shift']());}catch(_0x169507){_0x37f272['push'](_0x37f272['shift']());}}}(_0x232a,0x51b59));export class DispatcherAdapter{['dispatchRequest'](_0xf06f3){}[_0x3de2e4(0xda)](_0x5d3ee4){}['dispatchCallWithJson'](_0x41bc9c){}}
|
||||
function _0x26eb(){var _0x99e3f=['745448sNyCLr','5464725ajHdmW','2FiSzyt','271516ALkXyM','dispatchCall','3897360vynQvX','740700roGmfZ','66bBDKdS','dispatchRequest','20422629BZFQKJ','10SXWAKc','dispatchCallWithJson','1397349nbQLVf'];_0x26eb=function(){return _0x99e3f;};return _0x26eb();}var _0x8b89f6=_0x2efb;function _0x2efb(_0x737b26,_0x346947){var _0x26eb9b=_0x26eb();return _0x2efb=function(_0x2efbc9,_0x1b8205){_0x2efbc9=_0x2efbc9-0xba;var _0xce63f5=_0x26eb9b[_0x2efbc9];return _0xce63f5;},_0x2efb(_0x737b26,_0x346947);}(function(_0x59524a,_0x460e99){var _0x1dcfe4=_0x2efb,_0x5d34ac=_0x59524a();while(!![]){try{var _0x24ac2d=parseInt(_0x1dcfe4(0xc1))/0x1+-parseInt(_0x1dcfe4(0xbd))/0x2*(parseInt(_0x1dcfe4(0xba))/0x3)+parseInt(_0x1dcfe4(0xc0))/0x4+parseInt(_0x1dcfe4(0xbc))/0x5+parseInt(_0x1dcfe4(0xc2))/0x6*(parseInt(_0x1dcfe4(0xbe))/0x7)+parseInt(_0x1dcfe4(0xbb))/0x8+parseInt(_0x1dcfe4(0xc4))/0x9*(-parseInt(_0x1dcfe4(0xc5))/0xa);if(_0x24ac2d===_0x460e99)break;else _0x5d34ac['push'](_0x5d34ac['shift']());}catch(_0x49e242){_0x5d34ac['push'](_0x5d34ac['shift']());}}}(_0x26eb,0x90be6));export class DispatcherAdapter{[_0x8b89f6(0xc3)](_0x45f5b2){}[_0x8b89f6(0xbf)](_0x297f98){}[_0x8b89f6(0xc6)](_0x47a4b7){}}
|
@@ -1 +1 @@
|
||||
function _0x4bec(){var _0x2affc4=['onShowErrUITips','6689450DqNZBP','34ZMyCSv','12LePUbj','1207507NfdXrz','1104025dBWvym','46614SyguOc','4zBaAhp','onInstallFinished','4959cKBJdo','11957682EFPufC','16003etUzGt','fixPicImgType','6704rugBBT','onGetSrvCalTime','onGetOfflineMsg'];_0x4bec=function(){return _0x2affc4;};return _0x4bec();}var _0x35d759=_0x4d9b;(function(_0x4bb643,_0x132819){var _0x50e673=_0x4d9b,_0x3322ef=_0x4bb643();while(!![]){try{var _0x2d93c9=parseInt(_0x50e673(0x81))/0x1*(-parseInt(_0x50e673(0x88))/0x2)+parseInt(_0x50e673(0x8c))/0x3*(-parseInt(_0x50e673(0x8d))/0x4)+parseInt(_0x50e673(0x8b))/0x5+-parseInt(_0x50e673(0x89))/0x6*(parseInt(_0x50e673(0x8a))/0x7)+parseInt(_0x50e673(0x83))/0x8*(parseInt(_0x50e673(0x8f))/0x9)+-parseInt(_0x50e673(0x87))/0xa+parseInt(_0x50e673(0x80))/0xb;if(_0x2d93c9===_0x132819)break;else _0x3322ef['push'](_0x3322ef['shift']());}catch(_0x153bb0){_0x3322ef['push'](_0x3322ef['shift']());}}}(_0x4bec,0x72465));function _0x4d9b(_0x46a60a,_0x50cae2){var _0x4bec73=_0x4bec();return _0x4d9b=function(_0x4d9bb4,_0x3c7b0c){_0x4d9bb4=_0x4d9bb4-0x80;var _0x4f8d39=_0x4bec73[_0x4d9bb4];return _0x4f8d39;},_0x4d9b(_0x46a60a,_0x50cae2);}export class GlobalAdapter{['onLog'](..._0x19b37e){}[_0x35d759(0x84)](..._0x4af973){}[_0x35d759(0x86)](..._0x2760d6){}[_0x35d759(0x82)](..._0x1a1083){}['getAppSetting'](..._0x19d531){}[_0x35d759(0x8e)](..._0x1771c2){}['onUpdateGeneralFlag'](..._0xf2cd68){}[_0x35d759(0x85)](..._0x50ea80){}}
|
||||
function _0x5265(_0x1008b3,_0x5139f9){var _0x5d6b94=_0x5d6b();return _0x5265=function(_0x5265a8,_0x1e5c85){_0x5265a8=_0x5265a8-0x78;var _0x34e54e=_0x5d6b94[_0x5265a8];return _0x34e54e;},_0x5265(_0x1008b3,_0x5139f9);}var _0x426564=_0x5265;(function(_0x571f61,_0x5de1ab){var _0x4b96a8=_0x5265,_0x2d503e=_0x571f61();while(!![]){try{var _0x2222ee=-parseInt(_0x4b96a8(0x79))/0x1*(parseInt(_0x4b96a8(0x7a))/0x2)+-parseInt(_0x4b96a8(0x84))/0x3+parseInt(_0x4b96a8(0x83))/0x4*(-parseInt(_0x4b96a8(0x86))/0x5)+-parseInt(_0x4b96a8(0x80))/0x6*(-parseInt(_0x4b96a8(0x87))/0x7)+-parseInt(_0x4b96a8(0x81))/0x8+parseInt(_0x4b96a8(0x7d))/0x9*(-parseInt(_0x4b96a8(0x7b))/0xa)+parseInt(_0x4b96a8(0x7f))/0xb;if(_0x2222ee===_0x5de1ab)break;else _0x2d503e['push'](_0x2d503e['shift']());}catch(_0xce7f99){_0x2d503e['push'](_0x2d503e['shift']());}}}(_0x5d6b,0xd6ed7));function _0x5d6b(){var _0x586afa=['5201292NAqMYF','onLog','5trgjvd','82243ZONDXp','onGetSrvCalTime','115040YPfARC','4DpaOfq','151190IOXrNM','onGetOfflineMsg','711fsTCTL','onInstallFinished','57800182ezqHrI','594VklOUm','11788088xUcKFT','onUpdateGeneralFlag','3622456XMOdNd'];_0x5d6b=function(){return _0x586afa;};return _0x5d6b();}export class GlobalAdapter{[_0x426564(0x85)](..._0x4e577d){}[_0x426564(0x78)](..._0x1e9f22){}['onShowErrUITips'](..._0x48bb03){}['fixPicImgType'](..._0x3cd2af){}['getAppSetting'](..._0x18e8aa){}[_0x426564(0x7e)](..._0x5459c0){}[_0x426564(0x82)](..._0x3a930f){}[_0x426564(0x7c)](..._0x47ae6d){}}
|
@@ -1 +1 @@
|
||||
(function(_0x121fc4,_0x513dc8){var _0x382b5f=_0x3eed,_0x1eeb82=_0x121fc4();while(!![]){try{var _0x42bf76=parseInt(_0x382b5f(0x1e1))/0x1*(parseInt(_0x382b5f(0x1e7))/0x2)+parseInt(_0x382b5f(0x1e5))/0x3+parseInt(_0x382b5f(0x1e3))/0x4+-parseInt(_0x382b5f(0x1e6))/0x5+-parseInt(_0x382b5f(0x1e2))/0x6+parseInt(_0x382b5f(0x1e0))/0x7*(parseInt(_0x382b5f(0x1df))/0x8)+-parseInt(_0x382b5f(0x1e8))/0x9*(parseInt(_0x382b5f(0x1e4))/0xa);if(_0x42bf76===_0x513dc8)break;else _0x1eeb82['push'](_0x1eeb82['shift']());}catch(_0x5568d5){_0x1eeb82['push'](_0x1eeb82['shift']());}}}(_0x5362,0x4b025));export*from'./NodeIDependsAdapter';export*from'./NodeIDispatcherAdapter';function _0x5362(){var _0x5b8bb7=['2THrPyg','1204386qfLplf','81480LImlGI','74180WqyIyV','1546866ulozHJ','2985150zgfAhJ','90782mGRkJd','99ynFAmP','14128MfeylH','2219nBCbLB'];_0x5362=function(){return _0x5b8bb7;};return _0x5362();}function _0x3eed(_0xa277b3,_0x154c17){var _0x5362a8=_0x5362();return _0x3eed=function(_0x3eed41,_0x2772a6){_0x3eed41=_0x3eed41-0x1df;var _0x461db4=_0x5362a8[_0x3eed41];return _0x461db4;},_0x3eed(_0xa277b3,_0x154c17);}export*from'./NodeIGlobalAdapter';
|
||||
(function(_0x5836a4,_0x522d85){var _0x3c656=_0x1c60,_0x19a43e=_0x5836a4();while(!![]){try{var _0x402fd9=parseInt(_0x3c656(0x1ce))/0x1*(parseInt(_0x3c656(0x1ca))/0x2)+-parseInt(_0x3c656(0x1cc))/0x3+parseInt(_0x3c656(0x1d0))/0x4+-parseInt(_0x3c656(0x1d1))/0x5*(-parseInt(_0x3c656(0x1d3))/0x6)+-parseInt(_0x3c656(0x1cd))/0x7*(parseInt(_0x3c656(0x1d4))/0x8)+-parseInt(_0x3c656(0x1cb))/0x9+parseInt(_0x3c656(0x1d2))/0xa*(parseInt(_0x3c656(0x1cf))/0xb);if(_0x402fd9===_0x522d85)break;else _0x19a43e['push'](_0x19a43e['shift']());}catch(_0x495d6a){_0x19a43e['push'](_0x19a43e['shift']());}}}(_0x4f42,0xd6037));export*from'./NodeIDependsAdapter';export*from'./NodeIDispatcherAdapter';function _0x1c60(_0x3e2811,_0x258d02){var _0x4f4251=_0x4f42();return _0x1c60=function(_0x1c607e,_0x2abc5f){_0x1c607e=_0x1c607e-0x1ca;var _0x1c6507=_0x4f4251[_0x1c607e];return _0x1c6507;},_0x1c60(_0x3e2811,_0x258d02);}export*from'./NodeIGlobalAdapter';function _0x4f42(){var _0x276740=['721oDaKpY','1293127qvLdEf','22FGNuem','4284156ktwEqi','25hEsrke','9416230hMWHXB','453342YEDUwJ','103736bxwfRR','2nExwgn','6395949PUmcdB','5107008yPDxAq'];_0x4f42=function(){return _0x276740;};return _0x4f42();}
|
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 _0x4d4c43=_0x2778;(function(_0x183776,_0x42bef1){const _0x56a198=_0x2778,_0x3b6fff=_0x183776();while(!![]){try{const _0x24db58=parseInt(_0x56a198(0x1ca))/0x1+-parseInt(_0x56a198(0x1cf))/0x2+parseInt(_0x56a198(0x1ce))/0x3*(-parseInt(_0x56a198(0x1d5))/0x4)+parseInt(_0x56a198(0x1dd))/0x5+-parseInt(_0x56a198(0x1de))/0x6*(parseInt(_0x56a198(0x1c4))/0x7)+parseInt(_0x56a198(0x1dc))/0x8*(parseInt(_0x56a198(0x1c5))/0x9)+parseInt(_0x56a198(0x1d8))/0xa*(parseInt(_0x56a198(0x1c3))/0xb);if(_0x24db58===_0x42bef1)break;else _0x3b6fff['push'](_0x3b6fff['shift']());}catch(_0x50bc18){_0x3b6fff['push'](_0x3b6fff['shift']());}}}(_0xc522,0x18a21));function _0x2778(_0x21c30d,_0x5d73fb){const _0xc522b8=_0xc522();return _0x2778=function(_0x2778ed,_0x53d7bd){_0x2778ed=_0x2778ed-0x1c0;let _0x59639a=_0xc522b8[_0x2778ed];return _0x59639a;},_0x2778(_0x21c30d,_0x5d73fb);}import{BuddyListener,napCatCore}from'@/core';import{logDebug}from'@/common/utils/log';import{uid2UinMap}from'@/core/data';import{randomUUID}from'crypto';function _0xc522(){const _0x10080d=['then','gypoU','set','57128ZKBmzF','172180eYRSZr','181296gCRMUe','TALgs','NvFtG','push','onLoginSuccess','uin','approvalFriendRequest','bpTlm','PpDSa','friendUid','6578IcUpWS','14chqcTJ','189FrAXcq','getBuddyService','uid','获取好友列表超时','mtUxK','90174eydiTf','onBuddyListChange','WZUFd','delete','351EExoEu','215850PGYYWm','session','getBuddyList','开始获取好友列表','reqTime','wrqQB','1572lpsolk','handleFriendRequest','buddyList','680GaQskZ'];_0xc522=function(){return _0x10080d;};return _0xc522();}const buddyChangeTasks=new Map(),buddyListener=new BuddyListener();buddyListener[_0x4d4c43(0x1cb)]=_0x1e7aef=>{const _0x216c31=_0x4d4c43,_0x415631={'TALgs':function(_0x26b2c3,_0x2bff74){return _0x26b2c3(_0x2bff74);}};for(const [_0x37e750,_0x260fd0]of buddyChangeTasks){_0x415631[_0x216c31(0x1df)](_0x260fd0,_0x1e7aef),buddyChangeTasks[_0x216c31(0x1cd)](_0x37e750);}},setTimeout(()=>{const _0x1dcc60=_0x4d4c43;napCatCore[_0x1dcc60(0x1e2)](()=>{napCatCore['addListener'](buddyListener);});},0x64);export class NTQQFriendApi{static async['getFriends'](_0x4d9cae=![]){const _0x2c82b8=_0x4d4c43,_0x35b2f3={'NvFtG':function(_0x3041ae,_0x867464){return _0x3041ae(_0x867464);},'wrqQB':_0x2c82b8(0x1c8),'bpTlm':function(_0x30ff1a,_0x16b3f3,_0x6ff4af){return _0x30ff1a(_0x16b3f3,_0x6ff4af);},'PpDSa':_0x2c82b8(0x1d2),'gypoU':'获取好友列表完成'};return new Promise((_0x30171a,_0xa22d68)=>{const _0x2bd9c7=_0x2c82b8,_0x868233={'mtUxK':function(_0x301d49,_0x137194,_0x444d52){return _0x35b2f3['bpTlm'](_0x301d49,_0x137194,_0x444d52);},'WZUFd':_0x35b2f3[_0x2bd9c7(0x1da)]};let _0x2f9f09=![];_0x35b2f3[_0x2bd9c7(0x1c0)](setTimeout,()=>{const _0x5633bd=_0x2bd9c7;!_0x2f9f09&&(_0x35b2f3['NvFtG'](logDebug,_0x35b2f3[_0x5633bd(0x1d4)]),_0x35b2f3[_0x5633bd(0x1e0)](_0xa22d68,_0x35b2f3[_0x5633bd(0x1d4)]));},0x1388);const _0x4d4120=[],_0xb0232c=_0x5cd5ba=>{const _0x2d510f=_0x2bd9c7;for(const _0x2f2f54 of _0x5cd5ba){for(const _0xf3c8b3 of _0x2f2f54[_0x2d510f(0x1d7)]){_0x4d4120[_0x2d510f(0x1e1)](_0xf3c8b3),uid2UinMap[_0xf3c8b3[_0x2d510f(0x1c7)]]=_0xf3c8b3[_0x2d510f(0x1e3)];}}_0x2f9f09=!![],_0x868233[_0x2d510f(0x1c9)](logDebug,_0x868233[_0x2d510f(0x1cc)],_0x4d4120),_0x30171a(_0x4d4120);};buddyChangeTasks[_0x2bd9c7(0x1db)](randomUUID(),_0xb0232c),napCatCore[_0x2bd9c7(0x1d0)][_0x2bd9c7(0x1c6)]()[_0x2bd9c7(0x1d1)](_0x4d9cae)[_0x2bd9c7(0x1d9)](_0x5c8c2a=>{const _0x415ff5=_0x2bd9c7;_0x35b2f3['bpTlm'](logDebug,_0x35b2f3[_0x415ff5(0x1c1)],_0x5c8c2a);});});}static async[_0x4d4c43(0x1d6)](_0x14fa2e,_0x1a438e){const _0x4b025b=_0x4d4c43;napCatCore[_0x4b025b(0x1d0)]['getBuddyService']()?.[_0x4b025b(0x1e4)]({'friendUid':_0x14fa2e[_0x4b025b(0x1c2)],'reqTime':_0x14fa2e[_0x4b025b(0x1d3)],'accept':_0x1a438e});}}
|
||||
(function(_0x40b4f2,_0x12d44a){const _0x551b96=_0x15f8,_0x52b13a=_0x40b4f2();while(!![]){try{const _0x1017f1=parseInt(_0x551b96(0xd5))/0x1*(-parseInt(_0x551b96(0xdc))/0x2)+-parseInt(_0x551b96(0xe6))/0x3*(-parseInt(_0x551b96(0xd4))/0x4)+-parseInt(_0x551b96(0xe3))/0x5*(parseInt(_0x551b96(0xe5))/0x6)+-parseInt(_0x551b96(0xd9))/0x7+-parseInt(_0x551b96(0xe0))/0x8*(parseInt(_0x551b96(0xdf))/0x9)+parseInt(_0x551b96(0xe4))/0xa+parseInt(_0x551b96(0xdd))/0xb;if(_0x1017f1===_0x12d44a)break;else _0x52b13a['push'](_0x52b13a['shift']());}catch(_0x3064c8){_0x52b13a['push'](_0x52b13a['shift']());}}}(_0x5b64,0x7c7b4));import{napCatCore}from'@/core';import{uid2UinMap}from'@/core/data';function _0x15f8(_0x440988,_0x3edceb){const _0x5b6422=_0x5b64();return _0x15f8=function(_0x15f872,_0x529f81){_0x15f872=_0x15f872-0xd3;let _0x28aaf8=_0x5b6422[_0x15f872];return _0x28aaf8;},_0x15f8(_0x440988,_0x3edceb);}function _0x5b64(){const _0x3de48c=['4541243elRICd','NodeIKernelBuddyService/getBuddyList','approvalFriendRequest','46vjRQre','9137722RzXxbY','push','3456801gfZvEJ','16IAnaJn','friendUid','uid','3156280TfCLqq','8553520LHEMmK','6kYKhdr','47163PquTMA','reqTime','getBuddyService','232CgpLJc','1731afuUwN','ixXzl','NodeIKernelBuddyListener/onBuddyListChange','uin'];_0x5b64=function(){return _0x3de48c;};return _0x5b64();}import{NTEventDispatch}from'@/common/utils/EventTask';export class NTQQFriendApi{static async['getFriends'](_0x14bc2b=![]){const _0x57c4c3=_0x15f8,_0x422091={'ixXzl':_0x57c4c3(0xda),'poYKO':_0x57c4c3(0xd7)};let [_0x2d2a11,_0x1737a7]=await NTEventDispatch['CallNormalEvent'](_0x422091[_0x57c4c3(0xd6)],_0x422091['poYKO'],0x1,0x1388,_0x14bc2b);const _0x41ef71=[];for(const _0x21b22f of _0x1737a7){for(const _0x1bd0cb of _0x21b22f['buddyList']){_0x41ef71[_0x57c4c3(0xde)](_0x1bd0cb),uid2UinMap[_0x1bd0cb[_0x57c4c3(0xe2)]]=_0x1bd0cb[_0x57c4c3(0xd8)];}}return _0x41ef71;}static async['handleFriendRequest'](_0xd0a158,_0x391250){const _0x6bf9c5=_0x15f8;napCatCore['session'][_0x6bf9c5(0xd3)]()?.[_0x6bf9c5(0xdb)]({'friendUid':_0xd0a158[_0x6bf9c5(0xe1)],'reqTime':_0xd0a158[_0x6bf9c5(0xe7)],'accept':_0x391250});}}
|
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(_0x2e1c33,_0x2ce6ae){var _0x5724f4=_0x25f4,_0x44291e=_0x2e1c33();while(!![]){try{var _0x5af712=parseInt(_0x5724f4(0xb2))/0x1*(-parseInt(_0x5724f4(0xb4))/0x2)+-parseInt(_0x5724f4(0xae))/0x3+-parseInt(_0x5724f4(0xb0))/0x4*(-parseInt(_0x5724f4(0xb8))/0x5)+parseInt(_0x5724f4(0xb3))/0x6*(-parseInt(_0x5724f4(0xb1))/0x7)+-parseInt(_0x5724f4(0xb9))/0x8*(parseInt(_0x5724f4(0xb7))/0x9)+parseInt(_0x5724f4(0xb5))/0xa*(-parseInt(_0x5724f4(0xaf))/0xb)+parseInt(_0x5724f4(0xb6))/0xc;if(_0x5af712===_0x2ce6ae)break;else _0x44291e['push'](_0x44291e['shift']());}catch(_0x44e279){_0x44291e['push'](_0x44291e['shift']());}}}(_0xe13c,0x96439));function _0x25f4(_0x3a545d,_0x50d262){var _0xe13ceb=_0xe13c();return _0x25f4=function(_0x25f40c,_0x192405){_0x25f40c=_0x25f40c-0xae;var _0x581ba9=_0xe13ceb[_0x25f40c];return _0x581ba9;},_0x25f4(_0x3a545d,_0x50d262);}export*from'./file';export*from'./friend';export*from'./group';export*from'./msg';export*from'./user';export*from'./webapi';function _0xe13c(){var _0x3ef3a8=['3776340sjPwyn','7mpYUHQ','1jxwnlP','3409326QWKrFG','352470EAJUej','386790ywMqSw','34106520OKFuJB','81513DrsDkk','5cnXlCy','1016DihFfe','1971765RJThzk','176eInPyD'];_0xe13c=function(){return _0x3ef3a8;};return _0xe13c();}
|
||||
(function(_0x12ad52,_0x10827f){var _0x43949a=_0x1d7b,_0x2bdf48=_0x12ad52();while(!![]){try{var _0x52e8ac=-parseInt(_0x43949a(0x1aa))/0x1+-parseInt(_0x43949a(0x1a2))/0x2*(-parseInt(_0x43949a(0x1a4))/0x3)+-parseInt(_0x43949a(0x1a9))/0x4*(parseInt(_0x43949a(0x1a0))/0x5)+-parseInt(_0x43949a(0x1a7))/0x6+-parseInt(_0x43949a(0x1a6))/0x7+-parseInt(_0x43949a(0x1a8))/0x8*(parseInt(_0x43949a(0x1a3))/0x9)+-parseInt(_0x43949a(0x1a1))/0xa*(-parseInt(_0x43949a(0x1a5))/0xb);if(_0x52e8ac===_0x10827f)break;else _0x2bdf48['push'](_0x2bdf48['shift']());}catch(_0x3a614d){_0x2bdf48['push'](_0x2bdf48['shift']());}}}(_0xed69,0x2dc95));export*from'./file';export*from'./friend';export*from'./group';export*from'./msg';function _0xed69(){var _0x5b2059=['1339888TLUuiT','721910lrRsxQ','1233648PQobIC','1660168FwCQqX','252QUUgVP','95615bVihYR','7195WWTyCO','50fDRFxy','8inAMwf','9kLYyjv','210774MvXbzw'];_0xed69=function(){return _0x5b2059;};return _0xed69();}export*from'./user';export*from'./webapi';export*from'./sign';function _0x1d7b(_0x115d4f,_0x239f32){var _0xed69ee=_0xed69();return _0x1d7b=function(_0x1d7b96,_0x4d3436){_0x1d7b96=_0x1d7b96-0x1a0;var _0x16b7f5=_0xed69ee[_0x1d7b96];return _0x16b7f5;},_0x1d7b(_0x115d4f,_0x239f32);}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 _0x452a5a=_0x1420;function _0x53a3(){var _0x1cf9c9=['448730mOAmJc','1055964ySbJsG','tMMUw','stringify','application/json','emJEW','51457TRlOVp','24ljGpRc','AbXDU','AdoVz','3434910fgXZcd','WGhPF','url','POST','24kKbVFL','jJWli','json','catch','音乐消息生成成功','JJXlO','15298EyAFcO','then','1826433RXBuLt','sign','60oLwcUo','30892MSKnOO'];_0x53a3=function(){return _0x1cf9c9;};return _0x53a3();}(function(_0x5f26ed,_0x1315a1){var _0x95fc47=_0x1420,_0x1c4296=_0x5f26ed();while(!![]){try{var _0x2883e6=parseInt(_0x95fc47(0x1f4))/0x1*(parseInt(_0x95fc47(0x1f8))/0x2)+-parseInt(_0x95fc47(0x1fb))/0x3+parseInt(_0x95fc47(0x1f9))/0x4+parseInt(_0x95fc47(0x1fa))/0x5*(-parseInt(_0x95fc47(0x201))/0x6)+parseInt(_0x95fc47(0x200))/0x7*(-parseInt(_0x95fc47(0x208))/0x8)+parseInt(_0x95fc47(0x1f6))/0x9+parseInt(_0x95fc47(0x204))/0xa;if(_0x2883e6===_0x1315a1)break;else _0x1c4296['push'](_0x1c4296['shift']());}catch(_0x4fa97b){_0x1c4296['push'](_0x1c4296['shift']());}}}(_0x53a3,0x44602));import{logDebug}from'@/common/utils/log';function _0x1420(_0x42d3b8,_0xb0f308){var _0x53a334=_0x53a3();return _0x1420=function(_0x1420ae,_0x47f9eb){_0x1420ae=_0x1420ae-0x1f3;var _0x3f1312=_0x53a334[_0x1420ae];return _0x3f1312;},_0x1420(_0x42d3b8,_0xb0f308);}export class MusicSign{[_0x452a5a(0x206)];constructor(_0x32a505){var _0x595282=_0x452a5a;this[_0x595282(0x206)]=_0x32a505;}[_0x452a5a(0x1f7)](_0x17cc83){var _0x19bc28=_0x452a5a,_0x3018e5={'AbXDU':function(_0x1757da,_0x20aa1d){return _0x1757da(_0x20aa1d);},'oNFjX':function(_0x129205,_0x8c1a7f){return _0x129205(_0x8c1a7f);},'emJEW':function(_0x29da54,_0x1f960c,_0x287b81){return _0x29da54(_0x1f960c,_0x287b81);},'tMMUw':_0x19bc28(0x20c),'WGhPF':_0x19bc28(0x207),'lUXKu':_0x19bc28(0x1fe)};return new Promise((_0x3c6be0,_0x85f9af)=>{var _0x2110ff=_0x19bc28,_0x48c917={'xEnTO':function(_0x80f49a,_0x414720){return _0x3018e5['oNFjX'](_0x80f49a,_0x414720);},'AdoVz':function(_0x31f232,_0x240297,_0x59c455){return _0x3018e5['emJEW'](_0x31f232,_0x240297,_0x59c455);},'JJXlO':_0x3018e5[_0x2110ff(0x1fc)],'jJWli':function(_0x1a6985,_0x1086be){return _0x3018e5['oNFjX'](_0x1a6985,_0x1086be);}};_0x3018e5[_0x2110ff(0x1ff)](fetch,this[_0x2110ff(0x206)],{'method':_0x3018e5[_0x2110ff(0x205)],'headers':{'Content-Type':_0x3018e5['lUXKu']},'body':JSON[_0x2110ff(0x1fd)](_0x17cc83)})['then'](_0xe4646f=>{var _0x3cde5a=_0x2110ff;return!_0xe4646f['ok']&&_0x48c917['xEnTO'](_0x85f9af,_0xe4646f['statusText']),_0xe4646f[_0x3cde5a(0x20a)]();})[_0x2110ff(0x1f5)](_0x5f5516=>{var _0x34bccb=_0x2110ff;_0x48c917[_0x34bccb(0x203)](logDebug,_0x48c917[_0x34bccb(0x1f3)],_0x5f5516),_0x48c917[_0x34bccb(0x209)](_0x3c6be0,_0x5f5516);})[_0x2110ff(0x20b)](_0x4e2517=>{var _0x3c85cf=_0x2110ff;_0x3018e5[_0x3c85cf(0x202)](_0x85f9af,_0x4e2517);});});}}
|
||||
function _0xfc35(){const _0x5dbc93=['400840LDcQkC','prompt','BAuXV','HttpGetJson','GRWzC',';\x20skey=','miniapp','23584cIggMF','signed_ark','xwBsu','jumpUrl','wpFrQ','7754nJTdqP','https://h5.qzone.qq.com/v2/vip/tx/trpc/ark-share/GenNewSignedArk?g_tk=','title','tag','7810NTYqyf','uin','7971012POGCAz','nZybw','259810JGIVtb','yonqn','GET','replace','preview','88Evvnre','skey','63EMoZDU','p_skey','\x5c/\x5c/','uWJgm','tagIcon','4mWMTqz','dxsHQ','528792yMDwJD','edVFA','AFikB','genBkn','source','tianxuan.imgJumpArk',';\x20p_uin=o',';\x20uin=o','data','sourcelogo','p_skey=','503839nqiwLI','NUGlB','Ndbda'];_0xfc35=function(){return _0x5dbc93;};return _0xfc35();}(function(_0x2eb5ba,_0x55a43d){const _0x5be0b9=_0x4bc1,_0x4c6747=_0x2eb5ba();while(!![]){try{const _0x2d1705=parseInt(_0x5be0b9(0xad))/0x1+-parseInt(_0x5be0b9(0xb9))/0x2*(-parseInt(_0x5be0b9(0x98))/0x3)+parseInt(_0x5be0b9(0x9d))/0x4*(parseInt(_0x5be0b9(0x91))/0x5)+-parseInt(_0x5be0b9(0x9f))/0x6+parseInt(_0x5be0b9(0xaa))/0x7*(-parseInt(_0x5be0b9(0x96))/0x8)+-parseInt(_0x5be0b9(0xbf))/0x9+-parseInt(_0x5be0b9(0xbd))/0xa*(-parseInt(_0x5be0b9(0xb4))/0xb);if(_0x2d1705===_0x55a43d)break;else _0x4c6747['push'](_0x4c6747['shift']());}catch(_0x260370){_0x4c6747['push'](_0x4c6747['shift']());}}}(_0xfc35,0x6c300));function _0x4bc1(_0x4ed444,_0x2ef58e){const _0xfc35ae=_0xfc35();return _0x4bc1=function(_0x4bc1e7,_0x156ee1){_0x4bc1e7=_0x4bc1e7-0x90;let _0x1e5798=_0xfc35ae[_0x4bc1e7];return _0x1e5798;},_0x4bc1(_0x4ed444,_0x2ef58e);}import{logDebug}from'@/common/utils/log';import{NTQQUserApi}from'./user';import{selfInfo}from'../data';import{RequestUtil}from'@/common/utils/request';import{WebApi}from'./webapi';export async function SignMiniApp(_0x8f6b4a){const _0x5e9168=_0x4bc1,_0x3f2867={'BAuXV':'com.tencent.miniapp.lua','Ndbda':_0x5e9168(0xa4),'VkXKz':_0x5e9168(0xb3),'uWJgm':'normal','AFikB':_0x5e9168(0x9a),'NUGlB':function(_0x43ab82,_0xcfd849){return _0x43ab82+_0xcfd849;},'wpFrQ':function(_0x4bb822,_0x46fd09){return _0x4bb822+_0x46fd09;},'Mtjmx':function(_0x88dc84,_0x571558){return _0x88dc84+_0x571558;},'dxsHQ':_0x5e9168(0xa9),'yonqn':_0x5e9168(0xb2),'VDbLA':_0x5e9168(0xa5),'xwBsu':_0x5e9168(0xa6),'nZybw':function(_0x5eb851,_0x3b7e33){return _0x5eb851+_0x3b7e33;},'edVFA':_0x5e9168(0xba),'VGYYO':'&ark=','sGRmg':_0x5e9168(0x93),'kbsfC':function(_0x500a15,_0x54ed58,_0x52939b){return _0x500a15(_0x54ed58,_0x52939b);},'GRWzC':'MiniApp\x20JSON\x20消息生成失败'};let _0x16d176={'app':_0x3f2867[_0x5e9168(0xaf)],'bizsrc':_0x3f2867[_0x5e9168(0xac)],'view':_0x3f2867['VkXKz'],'prompt':_0x8f6b4a[_0x5e9168(0xae)],'config':{'type':_0x3f2867[_0x5e9168(0x9b)],'forward':0x1,'autosize':0x0},'meta':{'miniapp':{'title':_0x8f6b4a[_0x5e9168(0xbb)],'preview':_0x8f6b4a[_0x5e9168(0x95)]['replace'](/\\/g,_0x3f2867[_0x5e9168(0xa1)]),'jumpUrl':_0x8f6b4a[_0x5e9168(0xb7)][_0x5e9168(0x94)](/\\/g,_0x3f2867[_0x5e9168(0xa1)]),'tag':_0x8f6b4a[_0x5e9168(0xbc)],'tagIcon':_0x8f6b4a[_0x5e9168(0x9c)][_0x5e9168(0x94)](/\\/g,_0x5e9168(0x9a)),'source':_0x8f6b4a[_0x5e9168(0xa3)],'sourcelogo':_0x8f6b4a[_0x5e9168(0xa8)]['replace'](/\\/g,_0x5e9168(0x9a))}}};const _0x47ca78=await NTQQUserApi['getSkey']();let _0x3cef92=await NTQQUserApi['getQzoneCookies']();const _0x253d74=WebApi[_0x5e9168(0xa2)](_0x3cef92['p_skey']),_0x8984da=_0x3f2867[_0x5e9168(0xab)](_0x3f2867['wpFrQ'](_0x3f2867['NUGlB'](_0x3f2867[_0x5e9168(0xb8)](_0x3f2867['Mtjmx'](_0x3f2867[_0x5e9168(0x9e)],_0x3cef92[_0x5e9168(0x99)])+_0x3f2867[_0x5e9168(0x92)],_0x3cef92[_0x5e9168(0x97)]),_0x3f2867['VDbLA']),selfInfo[_0x5e9168(0xbe)]),_0x3f2867[_0x5e9168(0xb6)])+selfInfo[_0x5e9168(0xbe)];let _0x5f335f=_0x3f2867['nZybw'](_0x3f2867[_0x5e9168(0xb8)](_0x3f2867[_0x5e9168(0x90)](_0x3f2867[_0x5e9168(0xa0)],_0x253d74),_0x3f2867['VGYYO']),encodeURIComponent(JSON['stringify'](_0x16d176))),_0x3092bf='';try{let _0x442f83=await RequestUtil[_0x5e9168(0xb0)](_0x5f335f,_0x3f2867['sGRmg'],undefined,{'Cookie':_0x8984da});_0x3092bf=_0x442f83[_0x5e9168(0xa7)][_0x5e9168(0xb5)];}catch(_0x4ba607){_0x3f2867['kbsfC'](logDebug,_0x3f2867[_0x5e9168(0xb1)],_0x4ba607);}return _0x3092bf;}
|
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 _0x4298(_0x1442f8,_0x4ae6f6){var _0x4431ac=_0x4431();return _0x4298=function(_0x4298bb,_0xf78d3b){_0x4298bb=_0x4298bb-0x171;var _0x5cb965=_0x4431ac[_0x4298bb];return _0x5cb965;},_0x4298(_0x1442f8,_0x4ae6f6);}function _0x4431(){var _0x5f13c6=['3JkOwQq','844yQfgPK','wantWinScreenOCR','7bDuzzA','translateEnWordToZn','1597158DjErsG','22090Lrzlor','567rbtsSV','util','session','hasOtherRunningQQProcess','74564dfAreA','1286241VCXoCW','128202bLomWy','3125GMTZfZ','1241544ffcDdb','getNodeMiscService'];_0x4431=function(){return _0x5f13c6;};return _0x4431();}var _0xb712ca=_0x4298;(function(_0x3b5575,_0x455b27){var _0xb69683=_0x4298,_0x449e7c=_0x3b5575();while(!![]){try{var _0x5f2194=parseInt(_0xb69683(0x17e))/0x1+parseInt(_0xb69683(0x17c))/0x2*(parseInt(_0xb69683(0x171))/0x3)+-parseInt(_0xb69683(0x172))/0x4*(-parseInt(_0xb69683(0x17f))/0x5)+parseInt(_0xb69683(0x176))/0x6*(parseInt(_0xb69683(0x174))/0x7)+-parseInt(_0xb69683(0x180))/0x8+-parseInt(_0xb69683(0x178))/0x9*(parseInt(_0xb69683(0x177))/0xa)+-parseInt(_0xb69683(0x17d))/0xb;if(_0x5f2194===_0x455b27)break;else _0x449e7c['push'](_0x449e7c['shift']());}catch(_0x5028ed){_0x449e7c['push'](_0x449e7c['shift']());}}}(_0x4431,0x252c5));import{napCatCore}from'@/core';export class NTQQSystemApi{static async[_0xb712ca(0x17b)](){var _0x1608c3=_0xb712ca;return napCatCore[_0x1608c3(0x179)][_0x1608c3(0x17b)]();}static async['ORCImage'](_0x51e7da){var _0x1818fb=_0xb712ca;return napCatCore[_0x1818fb(0x17a)][_0x1818fb(0x181)]()[_0x1818fb(0x173)](_0x51e7da);}static async['translateEnWordToZn'](_0x305785){var _0x5686af=_0xb712ca;return napCatCore[_0x5686af(0x17a)]['getRichMediaService']()[_0x5686af(0x175)](_0x305785);}}
|
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
3
src/core.lib/src/data.d.ts
vendored
3
src/core.lib/src/data.d.ts
vendored
@@ -3,6 +3,9 @@ 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>;
|
||||
};
|
||||
|
@@ -1 +1 @@
|
||||
const _0x2d6aac=_0x544d;(function(_0x1fca09,_0x1f4cbe){const _0x28bb4b=_0x544d,_0x4b01d8=_0x1fca09();while(!![]){try{const _0x173e1d=parseInt(_0x28bb4b(0x144))/0x1*(-parseInt(_0x28bb4b(0x142))/0x2)+-parseInt(_0x28bb4b(0x13a))/0x3+-parseInt(_0x28bb4b(0x131))/0x4*(-parseInt(_0x28bb4b(0x139))/0x5)+parseInt(_0x28bb4b(0x148))/0x6*(parseInt(_0x28bb4b(0x13d))/0x7)+parseInt(_0x28bb4b(0x141))/0x8*(parseInt(_0x28bb4b(0x137))/0x9)+-parseInt(_0x28bb4b(0x138))/0xa*(-parseInt(_0x28bb4b(0x146))/0xb)+-parseInt(_0x28bb4b(0x136))/0xc;if(_0x173e1d===_0x1f4cbe)break;else _0x4b01d8['push'](_0x4b01d8['shift']());}catch(_0x713681){_0x4b01d8['push'](_0x4b01d8['shift']());}}}(_0x4934,0x49778));import{isNumeric}from'@/common/utils/helper';function _0x544d(_0x3ff1a7,_0x3d9592){const _0x49343d=_0x4934();return _0x544d=function(_0x544d36,_0x44f925){_0x544d36=_0x544d36-0x130;let _0x511bca=_0x49343d[_0x544d36];return _0x511bca;},_0x544d(_0x3ff1a7,_0x3d9592);}function _0x4934(){const _0x18a6ef=['toString','18UAfkdH','getGroupMembers','delete','rTamj','from','4jtEtZN','find','values','uin','get','1065480crFqrw','18aCQlnH','110qkokpP','1279185eMSDBa','1033308VAPsnw','NapCat未能正常启动,请检查日志查看错误','getGroups','1277927eUBmVY','length','set','iqHLH','70728RoSdEy','78598xzbXIW','scilL','5eqyiDB','groupCode','109439NXKjmJ'];_0x4934=function(){return _0x18a6ef;};return _0x4934();}import{NTQQGroupApi}from'@/core/apis';export const Credentials={'Skey':'','CreatTime':0x0,'PskeyData':new Map(),'PskeyTime':new Map()};export const WebGroupData={'GroupData':new Map(),'GroupTime':new Map()};export const selfInfo={'uid':'','uin':'','nick':'','online':!![]};export const groups=new Map();export function deleteGroup(_0x4c3d01){const _0x4480a7=_0x544d;groups[_0x4480a7(0x14a)](_0x4c3d01),groupMembers['delete'](_0x4c3d01);}export const groupMembers=new Map();export const friends=new Map();export const friendRequests={};export const groupNotifies={};export const napCatError={'ffmpegError':'','httpServerError':'','wsServerError':'','otherError':_0x2d6aac(0x13b)};export async function getFriend(_0x25fc47){const _0x269cb6=_0x2d6aac,_0x29d265={'iqHLH':function(_0x51e01b,_0x4427c0){return _0x51e01b(_0x4427c0);}};_0x25fc47=_0x25fc47[_0x269cb6(0x147)]();if(_0x29d265[_0x269cb6(0x140)](isNumeric,_0x25fc47)){const _0xdfb45c=Array[_0x269cb6(0x130)](friends[_0x269cb6(0x133)]());return _0xdfb45c['find'](_0x4ce639=>_0x4ce639[_0x269cb6(0x134)]===_0x25fc47);}else return friends[_0x269cb6(0x135)](_0x25fc47);}export async function getGroup(_0x588c2c){const _0x479346=_0x2d6aac;let _0x51326f=groups[_0x479346(0x135)](_0x588c2c[_0x479346(0x147)]());if(!_0x51326f)try{const _0x2bbc81=await NTQQGroupApi[_0x479346(0x13c)]();_0x2bbc81[_0x479346(0x13e)]&&_0x2bbc81['forEach'](_0x369ea7=>{const _0x25eec5=_0x479346;groups[_0x25eec5(0x13f)](_0x369ea7[_0x25eec5(0x145)],_0x369ea7);});}catch(_0x291bf1){return undefined;}return _0x51326f=groups[_0x479346(0x135)](_0x588c2c[_0x479346(0x147)]()),_0x51326f;}export async function getGroupMember(_0x30533d,_0x15644f){const _0x552be2=_0x2d6aac,_0x5d3591={'rTamj':function(_0x58d0fa,_0x27f871){return _0x58d0fa(_0x27f871);},'scilL':function(_0x2fba63){return _0x2fba63();}};_0x30533d=_0x30533d[_0x552be2(0x147)](),_0x15644f=_0x15644f[_0x552be2(0x147)]();let _0x5289cc=groupMembers[_0x552be2(0x135)](_0x30533d);if(!_0x5289cc)try{_0x5289cc=await NTQQGroupApi[_0x552be2(0x149)](_0x30533d),groupMembers[_0x552be2(0x13f)](_0x30533d,_0x5289cc);}catch(_0x50cc8a){return null;}const _0x43aa11=()=>{const _0x199bc7=_0x552be2;let _0x5c8a6c=undefined;return _0x5d3591[_0x199bc7(0x14b)](isNumeric,_0x15644f)?_0x5c8a6c=Array['from'](_0x5289cc[_0x199bc7(0x133)]())[_0x199bc7(0x132)](_0x302a23=>_0x302a23[_0x199bc7(0x134)]===_0x15644f):_0x5c8a6c=_0x5289cc['get'](_0x15644f),_0x5c8a6c;};let _0x25d10e=_0x5d3591['scilL'](_0x43aa11);return!_0x25d10e&&(_0x5289cc=await NTQQGroupApi[_0x552be2(0x149)](_0x30533d),_0x25d10e=_0x5d3591[_0x552be2(0x143)](_0x43aa11)),_0x25d10e;}export const uid2UinMap={};export function getUidByUin(_0x77d83f){for(const _0x4737ff in uid2UinMap){if(uid2UinMap[_0x4737ff]===_0x77d83f)return _0x4737ff;}}export const tempGroupCodeMap={};export const rawFriends=[];export const stat={'packet_received':0x0,'packet_sent':0x0,'message_received':0x0,'message_sent':0x0,'last_message_time':0x0,'disconnect_times':0x0,'lost_times':0x0,'packet_lost':0x0};
|
||||
const _0x5a7240=_0x51b3;(function(_0x4647bd,_0x4c01bf){const _0x2fbd66=_0x51b3,_0x16c38d=_0x4647bd();while(!![]){try{const _0x5c531f=parseInt(_0x2fbd66(0x1a6))/0x1+parseInt(_0x2fbd66(0x1ab))/0x2+parseInt(_0x2fbd66(0x1a9))/0x3+parseInt(_0x2fbd66(0x1a7))/0x4*(-parseInt(_0x2fbd66(0x1b5))/0x5)+-parseInt(_0x2fbd66(0x1b0))/0x6+parseInt(_0x2fbd66(0x1a1))/0x7+parseInt(_0x2fbd66(0x1a3))/0x8;if(_0x5c531f===_0x4c01bf)break;else _0x16c38d['push'](_0x16c38d['shift']());}catch(_0x515d2c){_0x16c38d['push'](_0x16c38d['shift']());}}}(_0x4dd9,0x748c4));function _0x51b3(_0x3ac803,_0x15cfb2){const _0x4dd93c=_0x4dd9();return _0x51b3=function(_0x51b3be,_0x352779){_0x51b3be=_0x51b3be-0x1a1;let _0x437190=_0x4dd93c[_0x51b3be];return _0x437190;},_0x51b3(_0x3ac803,_0x15cfb2);}import{isNumeric}from'@/common/utils/helper';import{NTQQGroupApi}from'@/core/apis';export const Credentials={'Skey':'','CreatTime':0x0,'Cookies':new Map(),'ClientKey':'','KeyIndex':'','PskeyData':new Map(),'PskeyTime':new Map()};export const WebGroupData={'GroupData':new Map(),'GroupTime':new Map()};export const selfInfo={'uid':'','uin':'','nick':'','online':!![]};export const groups=new Map();export function deleteGroup(_0x34438d){const _0x47cc56=_0x51b3;groups[_0x47cc56(0x1af)](_0x34438d),groupMembers[_0x47cc56(0x1af)](_0x34438d);}export const groupMembers=new Map();export const friends=new Map();export const friendRequests={};export const groupNotifies={};export const napCatError={'ffmpegError':'','httpServerError':'','wsServerError':'','otherError':_0x5a7240(0x1b6)};export async function getFriend(_0x2a5deb){const _0x300792=_0x5a7240,_0x5db21c={'vnSDZ':function(_0x5da41b,_0x24c3ce){return _0x5da41b(_0x24c3ce);}};_0x2a5deb=_0x2a5deb[_0x300792(0x1a4)]();if(_0x5db21c[_0x300792(0x1ae)](isNumeric,_0x2a5deb)){const _0x281347=Array[_0x300792(0x1b1)](friends[_0x300792(0x1b7)]());return _0x281347[_0x300792(0x1aa)](_0x5bf3a5=>_0x5bf3a5['uin']===_0x2a5deb);}else return friends['get'](_0x2a5deb);}export async function getGroup(_0x6254c2){const _0x3924fb=_0x5a7240;let _0x37a2e4=groups[_0x3924fb(0x1b8)](_0x6254c2[_0x3924fb(0x1a4)]());if(!_0x37a2e4)try{const _0x211919=await NTQQGroupApi[_0x3924fb(0x1ac)]();_0x211919[_0x3924fb(0x1b2)]&&_0x211919[_0x3924fb(0x1a5)](_0x34507f=>{groups['set'](_0x34507f['groupCode'],_0x34507f);});}catch(_0x5ec01b){return undefined;}return _0x37a2e4=groups[_0x3924fb(0x1b8)](_0x6254c2[_0x3924fb(0x1a4)]()),_0x37a2e4;}export async function getGroupMember(_0x5af437,_0x34421a){const _0x406e10=_0x5a7240,_0x33ee8e={'ckPWT':function(_0x4f0524){return _0x4f0524();}};_0x5af437=_0x5af437['toString'](),_0x34421a=_0x34421a[_0x406e10(0x1a4)]();let _0x2343f3=groupMembers[_0x406e10(0x1b8)](_0x5af437);if(!_0x2343f3)try{_0x2343f3=await NTQQGroupApi['getGroupMembers'](_0x5af437),groupMembers[_0x406e10(0x1b3)](_0x5af437,_0x2343f3);}catch(_0x121ae7){return null;}const _0x47c921=()=>{const _0x205449=_0x406e10;let _0x5059be=undefined;return isNumeric(_0x34421a)?_0x5059be=Array[_0x205449(0x1b1)](_0x2343f3[_0x205449(0x1b7)]())[_0x205449(0x1aa)](_0x3885cf=>_0x3885cf[_0x205449(0x1ad)]===_0x34421a):_0x5059be=_0x2343f3[_0x205449(0x1b8)](_0x34421a),_0x5059be;};let _0x1752f2=_0x33ee8e[_0x406e10(0x1b4)](_0x47c921);return!_0x1752f2&&(_0x2343f3=await NTQQGroupApi[_0x406e10(0x1a8)](_0x5af437),_0x1752f2=_0x33ee8e['ckPWT'](_0x47c921)),_0x1752f2;}function _0x4dd9(){const _0x399c6b=['get','404740AAtwFZ','dtlbc','7134328pyOICn','toString','forEach','879322KRcTsm','4jXpWTk','getGroupMembers','113961UFMUwd','find','171446bHWEpY','getGroups','uin','vnSDZ','delete','3649968WuqEwi','from','length','set','ckPWT','4334675FDLtAm','NapCat未能正常启动,请检查日志查看错误','values'];_0x4dd9=function(){return _0x399c6b;};return _0x4dd9();}export const uid2UinMap={};export function getUidByUin(_0x18fab2){const _0x5e5520=_0x5a7240,_0x4dd997={'dtlbc':function(_0x1b007d,_0x481edc){return _0x1b007d===_0x481edc;}};for(const _0xffb0b6 in uid2UinMap){if(_0x4dd997[_0x5e5520(0x1a2)](uid2UinMap[_0xffb0b6],_0x18fab2))return _0xffb0b6;}}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 _0xba8a(){var _0x20f693=['7367244mXEVxV','4710cJocPO','uTDng','357897gXIOzN','4DDPQoN','871416IKcyZF','DOCUMENT','muxkU','AjKNb','94zTtmrt','9oNhhrj','742248TVQvrv','1|2|0|3|4','OTHER','VIDEO','AUDIO','914dGorUb','33KQwYZR','DKZTo','VlfAT','1060dUzuDA','958090ChPUsh'];_0xba8a=function(){return _0x20f693;};return _0xba8a();}(function(_0x55a1e8,_0x169950){var _0x139f96=_0x14e1,_0x295222=_0x55a1e8();while(!![]){try{var _0x357c52=parseInt(_0x139f96(0x1bf))/0x1*(parseInt(_0x139f96(0x1c6))/0x2)+-parseInt(_0x139f96(0x1b9))/0x3*(parseInt(_0x139f96(0x1ba))/0x4)+parseInt(_0x139f96(0x1ca))/0x5*(parseInt(_0x139f96(0x1b7))/0x6)+-parseInt(_0x139f96(0x1bb))/0x7+parseInt(_0x139f96(0x1c1))/0x8*(-parseInt(_0x139f96(0x1c0))/0x9)+-parseInt(_0x139f96(0x1cb))/0xa*(parseInt(_0x139f96(0x1c7))/0xb)+parseInt(_0x139f96(0x1cc))/0xc;if(_0x357c52===_0x169950)break;else _0x295222['push'](_0x295222['shift']());}catch(_0x18d025){_0x295222['push'](_0x295222['shift']());}}}(_0xba8a,0x30a98));;export var CacheFileType;function _0x14e1(_0x2c5c7c,_0xbc69bc){var _0xba8a78=_0xba8a();return _0x14e1=function(_0x14e121,_0xa17195){_0x14e121=_0x14e121-0x1b7;var _0x30c7ee=_0xba8a78[_0x14e121];return _0x30c7ee;},_0x14e1(_0x2c5c7c,_0xbc69bc);}(function(_0x35259c){var _0x3fe19d=_0x14e1,_0x22c8e7={'DKZTo':_0x3fe19d(0x1c2),'uTDng':_0x3fe19d(0x1c5),'AjKNb':'IMAGE','VlfAT':_0x3fe19d(0x1c4),'muxkU':'DOCUMENT','ntTyr':_0x3fe19d(0x1c3)},_0x156e60=_0x22c8e7[_0x3fe19d(0x1c8)]['split']('|'),_0x20b97a=0x0;while(!![]){switch(_0x156e60[_0x20b97a++]){case'0':_0x35259c[_0x35259c[_0x22c8e7[_0x3fe19d(0x1b8)]]=0x2]=_0x22c8e7[_0x3fe19d(0x1b8)];continue;case'1':_0x35259c[_0x35259c[_0x22c8e7['AjKNb']]=0x0]=_0x22c8e7[_0x3fe19d(0x1be)];continue;case'2':_0x35259c[_0x35259c[_0x22c8e7[_0x3fe19d(0x1c9)]]=0x1]=_0x22c8e7['VlfAT'];continue;case'3':_0x35259c[_0x35259c[_0x3fe19d(0x1bc)]=0x3]=_0x22c8e7[_0x3fe19d(0x1bd)];continue;case'4':_0x35259c[_0x35259c[_0x22c8e7['ntTyr']]=0x4]=_0x3fe19d(0x1c3);continue;}break;}}(CacheFileType||(CacheFileType={})));
|
||||
function _0x3255(){var _0xbd652=['374667rlVvhJ','12yljTEB','311495ftKelm','1157172dZghAt','1|3|4|2|0','70212BLalJv','split','OzTVj','snBtI','bsHkF','18mtqfOj','DOCUMENT','uGAwM','1356285yzcrOi','360872PAvkxF','RDYKX','560130nrBiQS'];_0x3255=function(){return _0xbd652;};return _0x3255();}function _0x1809(_0x21af16,_0xf79f86){var _0x3255a2=_0x3255();return _0x1809=function(_0x1809b4,_0x32c035){_0x1809b4=_0x1809b4-0xf7;var _0x4bcca4=_0x3255a2[_0x1809b4];return _0x4bcca4;},_0x1809(_0x21af16,_0xf79f86);}(function(_0x57cec8,_0x3c84fd){var _0x5e0347=_0x1809,_0x59cc79=_0x57cec8();while(!![]){try{var _0x4791ed=-parseInt(_0x5e0347(0xfe))/0x1+parseInt(_0x5e0347(0xf8))/0x2+-parseInt(_0x5e0347(0xf9))/0x3+parseInt(_0x5e0347(0xfa))/0x4*(parseInt(_0x5e0347(0xfb))/0x5)+-parseInt(_0x5e0347(0xfc))/0x6+parseInt(_0x5e0347(0x106))/0x7+-parseInt(_0x5e0347(0x107))/0x8*(parseInt(_0x5e0347(0x103))/0x9);if(_0x4791ed===_0x3c84fd)break;else _0x59cc79['push'](_0x59cc79['shift']());}catch(_0x42d78d){_0x59cc79['push'](_0x59cc79['shift']());}}}(_0x3255,0x2c908));;export var CacheFileType;(function(_0xfe7494){var _0x8ccabf=_0x1809,_0x1cd349={'bsHkF':_0x8ccabf(0xfd),'OzTVj':'OTHER','jEuOP':'IMAGE','snBtI':_0x8ccabf(0x104),'RDYKX':'VIDEO','uGAwM':'AUDIO'},_0x3601b0=_0x1cd349[_0x8ccabf(0x102)][_0x8ccabf(0xff)]('|'),_0x231274=0x0;while(!![]){switch(_0x3601b0[_0x231274++]){case'0':_0xfe7494[_0xfe7494[_0x1cd349[_0x8ccabf(0x100)]]=0x4]=_0x1cd349['OzTVj'];continue;case'1':_0xfe7494[_0xfe7494[_0x1cd349['jEuOP']]=0x0]=_0x1cd349['jEuOP'];continue;case'2':_0xfe7494[_0xfe7494[_0x1cd349[_0x8ccabf(0x101)]]=0x3]=_0x8ccabf(0x104);continue;case'3':_0xfe7494[_0xfe7494[_0x1cd349[_0x8ccabf(0xf7)]]=0x1]=_0x1cd349[_0x8ccabf(0xf7)];continue;case'4':_0xfe7494[_0xfe7494[_0x1cd349[_0x8ccabf(0x105)]]=0x2]=_0x1cd349[_0x8ccabf(0x105)];continue;}break;}}(CacheFileType||(CacheFileType={})));
|
3
src/core.lib/src/entities/constructor.d.ts
vendored
3
src/core.lib/src/entities/constructor.d.ts
vendored
@@ -5,7 +5,7 @@ export declare class SendMsgElementConstructor {
|
||||
static at(atUid: string, atNtUid: string, atType: AtType, atName: string): SendTextElement;
|
||||
static reply(msgSeq: string, msgId: string, senderUin: string, senderUinStr: string): SendReplyElement;
|
||||
static pic(picPath: string, summary?: string, subType?: 0 | 1): Promise<SendPicElement>;
|
||||
static file(filePath: string, fileName?: string): Promise<SendFileElement>;
|
||||
static file(filePath: string, fileName?: string, folderId?: string): Promise<SendFileElement>;
|
||||
static video(filePath: string, fileName?: string, diyThumbPath?: string): Promise<SendVideoElement>;
|
||||
static ptt(pttPath: string): Promise<SendPttElement>;
|
||||
static face(faceId: number): SendFaceElement;
|
||||
@@ -14,4 +14,5 @@ export declare class SendMsgElementConstructor {
|
||||
static rps(resultId: number | null): SendFaceElement;
|
||||
static ark(data: any): SendArkElement;
|
||||
static markdown(content: string): SendMarkdownElement;
|
||||
static miniapp(): Promise<SendArkElement>;
|
||||
}
|
||||
|
File diff suppressed because one or more lines are too long
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
@@ -1 +1 @@
|
||||
function _0x2e05(){var _0x4ddf70=['ojEhQ','330286bdrrth','NVoGc','7AEyZKD','2185797xDbFMj','6625640GprRsw','ERQqL','normal','265184gQRLEL','520906gjjUJB','80mqgsLD','9nvBQVG','1440056UeeIak','7981836DgXNLd','owner'];_0x2e05=function(){return _0x4ddf70;};return _0x2e05();}(function(_0x3d022a,_0x536117){var _0x10f4c7=_0x5452,_0x5de07a=_0x3d022a();while(!![]){try{var _0x2a2816=-parseInt(_0x10f4c7(0x74))/0x1+-parseInt(_0x10f4c7(0x7b))/0x2+parseInt(_0x10f4c7(0x7e))/0x3+parseInt(_0x10f4c7(0x73))/0x4*(-parseInt(_0x10f4c7(0x75))/0x5)+parseInt(_0x10f4c7(0x78))/0x6*(parseInt(_0x10f4c7(0x7d))/0x7)+-parseInt(_0x10f4c7(0x77))/0x8*(parseInt(_0x10f4c7(0x76))/0x9)+parseInt(_0x10f4c7(0x7f))/0xa;if(_0x2a2816===_0x536117)break;else _0x5de07a['push'](_0x5de07a['shift']());}catch(_0xc97f23){_0x5de07a['push'](_0x5de07a['shift']());}}}(_0x2e05,0xc2035));function _0x5452(_0x43729c,_0x4809b0){var _0x2e05d9=_0x2e05();return _0x5452=function(_0x5452c6,_0x45f04f){_0x5452c6=_0x5452c6-0x73;var _0x3979c3=_0x2e05d9[_0x5452c6];return _0x3979c3;},_0x5452(_0x43729c,_0x4809b0);}export var GroupMemberRole;(function(_0x3cbbec){var _0x313b87=_0x5452,_0xdf8ebe={'ojEhQ':_0x313b87(0x81),'NVoGc':'admin','ERQqL':_0x313b87(0x79)};_0x3cbbec[_0x3cbbec[_0xdf8ebe[_0x313b87(0x7a)]]=0x2]=_0xdf8ebe[_0x313b87(0x7a)],_0x3cbbec[_0x3cbbec[_0xdf8ebe[_0x313b87(0x7c)]]=0x3]=_0xdf8ebe[_0x313b87(0x7c)],_0x3cbbec[_0x3cbbec[_0x313b87(0x79)]=0x4]=_0xdf8ebe[_0x313b87(0x80)];}(GroupMemberRole||(GroupMemberRole={})));
|
||||
(function(_0x16bb00,_0x529479){var _0x58acd3=_0x1f52,_0x83850c=_0x16bb00();while(!![]){try{var _0x4dba7e=parseInt(_0x58acd3(0x9d))/0x1*(parseInt(_0x58acd3(0xa1))/0x2)+parseInt(_0x58acd3(0xa0))/0x3+parseInt(_0x58acd3(0xa3))/0x4+parseInt(_0x58acd3(0x9f))/0x5*(-parseInt(_0x58acd3(0xa7))/0x6)+parseInt(_0x58acd3(0xa4))/0x7*(-parseInt(_0x58acd3(0xa9))/0x8)+-parseInt(_0x58acd3(0xa6))/0x9*(-parseInt(_0x58acd3(0xa2))/0xa)+-parseInt(_0x58acd3(0xa8))/0xb;if(_0x4dba7e===_0x529479)break;else _0x83850c['push'](_0x83850c['shift']());}catch(_0x1fff63){_0x83850c['push'](_0x83850c['shift']());}}}(_0x1b00,0x34834));function _0x1b00(){var _0x10442f=['5504mcwaus','80630UmgXPd','1604756KCBrYF','18529JSUqSe','owner','297HsTJAf','18eDuHWE','7734155TEIoGK','824NBPxaQ','admin','138jwsjMm','zkguU','192185bTvtCe','777315oARlcQ'];_0x1b00=function(){return _0x10442f;};return _0x1b00();}function _0x1f52(_0x4df769,_0x56ba16){var _0x1b0022=_0x1b00();return _0x1f52=function(_0x1f528c,_0x50aa52){_0x1f528c=_0x1f528c-0x9c;var _0x4b787f=_0x1b0022[_0x1f528c];return _0x4b787f;},_0x1f52(_0x4df769,_0x56ba16);}export var GroupMemberRole;(function(_0x1e5125){var _0x1b0d48=_0x1f52,_0x1a252a={'zkguU':'normal'};_0x1e5125[_0x1e5125[_0x1a252a[_0x1b0d48(0x9e)]]=0x2]=_0x1a252a[_0x1b0d48(0x9e)],_0x1e5125[_0x1e5125[_0x1b0d48(0x9c)]=0x3]=_0x1b0d48(0x9c),_0x1e5125[_0x1e5125[_0x1b0d48(0xa5)]=0x4]='owner';}(GroupMemberRole||(GroupMemberRole={})));
|
@@ -1 +1 @@
|
||||
(function(_0x442a25,_0x28608f){var _0x5bf91c=_0x4185,_0x1a00df=_0x442a25();while(!![]){try{var _0x401c73=-parseInt(_0x5bf91c(0x172))/0x1+parseInt(_0x5bf91c(0x176))/0x2+parseInt(_0x5bf91c(0x174))/0x3+-parseInt(_0x5bf91c(0x171))/0x4+parseInt(_0x5bf91c(0x175))/0x5+-parseInt(_0x5bf91c(0x173))/0x6+parseInt(_0x5bf91c(0x177))/0x7;if(_0x401c73===_0x28608f)break;else _0x1a00df['push'](_0x1a00df['shift']());}catch(_0x3294b4){_0x1a00df['push'](_0x1a00df['shift']());}}}(_0x4d8a,0x31842));export*from'./user';function _0x4185(_0x2ec5c9,_0xb89b1a){var _0x4d8a6b=_0x4d8a();return _0x4185=function(_0x41856a,_0x531f4f){_0x41856a=_0x41856a-0x171;var _0x28f773=_0x4d8a6b[_0x41856a];return _0x28f773;},_0x4185(_0x2ec5c9,_0xb89b1a);}export*from'./group';export*from'./msg';export*from'./notify';export*from'./cache';function _0x4d8a(){var _0x70ae87=['3425254pKfpIw','1361236TUsWvm','112347xhZezN','2396184Jokkdh','755562nEzblh','692320dOPmSP','350396ncIOQA'];_0x4d8a=function(){return _0x70ae87;};return _0x4d8a();}export*from'./constructor';
|
||||
(function(_0x5f2ac8,_0x5d8d8e){var _0x3101c7=_0x327f,_0x32caa2=_0x5f2ac8();while(!![]){try{var _0x64bad=-parseInt(_0x3101c7(0xd4))/0x1+-parseInt(_0x3101c7(0xd6))/0x2*(-parseInt(_0x3101c7(0xd9))/0x3)+-parseInt(_0x3101c7(0xd7))/0x4+-parseInt(_0x3101c7(0xdd))/0x5+parseInt(_0x3101c7(0xd5))/0x6*(parseInt(_0x3101c7(0xdb))/0x7)+parseInt(_0x3101c7(0xda))/0x8*(parseInt(_0x3101c7(0xd8))/0x9)+parseInt(_0x3101c7(0xdc))/0xa*(parseInt(_0x3101c7(0xd3))/0xb);if(_0x64bad===_0x5d8d8e)break;else _0x32caa2['push'](_0x32caa2['shift']());}catch(_0x5d86a2){_0x32caa2['push'](_0x32caa2['shift']());}}}(_0x41cc,0xe0441));function _0x327f(_0x2fda65,_0xe35b27){var _0x41cc30=_0x41cc();return _0x327f=function(_0x327f3e,_0x394bc0){_0x327f3e=_0x327f3e-0xd3;var _0x46f144=_0x41cc30[_0x327f3e];return _0x46f144;},_0x327f(_0x2fda65,_0xe35b27);}export*from'./user';export*from'./group';export*from'./msg';export*from'./notify';export*from'./cache';function _0x41cc(){var _0x547364=['9gIQHEG','3jGVPvE','5733248CfUkZQ','21KJSNsi','337670uhljqk','9048010kQWmuz','979EGshqq','1365686vkzant','844770HRAWuN','1588778jkhksC','3379248sBULpx'];_0x41cc=function(){return _0x547364;};return _0x41cc();}export*from'./constructor';
|
17
src/core.lib/src/entities/msg.d.ts
vendored
17
src/core.lib/src/entities/msg.d.ts
vendored
@@ -4,6 +4,22 @@ export interface Peer {
|
||||
peerUid: string;
|
||||
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,
|
||||
PIC = 2,
|
||||
@@ -99,6 +115,7 @@ export interface FileElement {
|
||||
fileSize: string;
|
||||
picHeight?: number;
|
||||
picWidth?: number;
|
||||
folderId?: string;
|
||||
picThumbPath?: Map<number, string>;
|
||||
file10MMd5?: string;
|
||||
fileSha?: string;
|
||||
|
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
(function(_0x3ffe7e,_0x3dab47){var _0x5482e6=_0xfb87,_0x2ef63d=_0x3ffe7e();while(!![]){try{var _0x143dcc=parseInt(_0x5482e6(0x1b3))/0x1+parseInt(_0x5482e6(0x1c1))/0x2*(-parseInt(_0x5482e6(0x1a3))/0x3)+parseInt(_0x5482e6(0x1b1))/0x4+parseInt(_0x5482e6(0x1a5))/0x5+-parseInt(_0x5482e6(0x1bd))/0x6+-parseInt(_0x5482e6(0x1b2))/0x7*(-parseInt(_0x5482e6(0x1a6))/0x8)+-parseInt(_0x5482e6(0x1ae))/0x9;if(_0x143dcc===_0x3dab47)break;else _0x2ef63d['push'](_0x2ef63d['shift']());}catch(_0x368541){_0x2ef63d['push'](_0x2ef63d['shift']());}}}(_0x1d10,0x36aab));function _0xfb87(_0x508b2a,_0x2adca6){var _0x1d100a=_0x1d10();return _0xfb87=function(_0xfb878d,_0x19cffc){_0xfb878d=_0xfb878d-0x1a3;var _0x519e42=_0x1d100a[_0xfb878d];return _0x519e42;},_0xfb87(_0x508b2a,_0x2adca6);}export var GroupNotifyTypes;(function(_0x25e825){var _0x104dfb=_0xfb87,_0x22c6b4={'HZole':_0x104dfb(0x1ad),'jIvDs':'MEMBER_EXIT','lHVlp':_0x104dfb(0x1b0),'iKUZh':_0x104dfb(0x1b8),'hDQcD':_0x104dfb(0x1a8),'oEcxG':'INVITE_ME','IPImG':_0x104dfb(0x1b9),'wRSdv':_0x104dfb(0x1a9)},_0x5980af='5|6|2|3|0|1|7|4'[_0x104dfb(0x1ab)]('|'),_0x5c699d=0x0;while(!![]){switch(_0x5980af[_0x5c699d++]){case'0':_0x25e825[_0x25e825[_0x22c6b4[_0x104dfb(0x1bf)]]=0x9]=_0x104dfb(0x1ad);continue;case'1':_0x25e825[_0x25e825[_0x22c6b4[_0x104dfb(0x1c2)]]=0xb]=_0x22c6b4['jIvDs'];continue;case'2':_0x25e825[_0x25e825[_0x22c6b4[_0x104dfb(0x1c0)]]=0x7]=_0x22c6b4['lHVlp'];continue;case'3':_0x25e825[_0x25e825[_0x22c6b4['iKUZh']]=0x8]=_0x104dfb(0x1b8);continue;case'4':_0x25e825[_0x25e825['ADMIN_UNSET_OTHER']=0xd]=_0x22c6b4[_0x104dfb(0x1bc)];continue;case'5':_0x25e825[_0x25e825[_0x22c6b4['oEcxG']]=0x1]=_0x22c6b4[_0x104dfb(0x1b6)];continue;case'6':_0x25e825[_0x25e825[_0x22c6b4[_0x104dfb(0x1aa)]]=0x4]=_0x104dfb(0x1b9);continue;case'7':_0x25e825[_0x25e825[_0x22c6b4[_0x104dfb(0x1a7)]]=0xc]=_0x22c6b4[_0x104dfb(0x1a7)];continue;}break;}}(GroupNotifyTypes||(GroupNotifyTypes={})));export var GroupNotifyStatus;function _0x1d10(){var _0x101ed2=['APPROVE','JOIN_REQUEST','963492IsbpVS','54145isTSGh','335653eEnHau','InsEU','PyUeA','oEcxG','zXjrc','ADMIN_SET','INVITED_JOIN','approve','DleAn','hDQcD','1344252qSBytp','fYxOS','HZole','lHVlp','16412etYnoQ','jIvDs','129FAerJi','REJECT','2075940boWDyi','328QQTWTy','wRSdv','ADMIN_UNSET_OTHER','ADMIN_UNSET','IPImG','split','IGNORE','KICK_MEMBER','4572306IGRuHt'];_0x1d10=function(){return _0x101ed2;};return _0x1d10();}(function(_0x4f03b3){var _0x4696e6=_0xfb87,_0x1956a1={'PyUeA':_0x4696e6(0x1ac),'qljDs':'WAIT_HANDLE','DleAn':_0x4696e6(0x1af),'InsEU':_0x4696e6(0x1a4)};_0x4f03b3[_0x4f03b3['IGNORE']=0x0]=_0x1956a1[_0x4696e6(0x1b5)],_0x4f03b3[_0x4f03b3[_0x1956a1['qljDs']]=0x1]=_0x1956a1['qljDs'],_0x4f03b3[_0x4f03b3[_0x1956a1[_0x4696e6(0x1bb)]]=0x2]=_0x1956a1[_0x4696e6(0x1bb)],_0x4f03b3[_0x4f03b3[_0x1956a1[_0x4696e6(0x1b4)]]=0x3]=_0x1956a1[_0x4696e6(0x1b4)];}(GroupNotifyStatus||(GroupNotifyStatus={})));export var GroupRequestOperateTypes;(function(_0xfcdc73){var _0xf2aaa=_0xfb87,_0x476479={'fYxOS':_0xf2aaa(0x1ba),'zXjrc':'reject'};_0xfcdc73[_0xfcdc73[_0x476479[_0xf2aaa(0x1be)]]=0x1]=_0x476479[_0xf2aaa(0x1be)],_0xfcdc73[_0xfcdc73[_0x476479[_0xf2aaa(0x1b7)]]=0x2]=_0x476479['zXjrc'];}(GroupRequestOperateTypes||(GroupRequestOperateTypes={})));
|
||||
(function(_0xb61317,_0x270df9){var _0x350d7d=_0x1b82,_0x2c1cb2=_0xb61317();while(!![]){try{var _0x194b80=parseInt(_0x350d7d(0x174))/0x1+-parseInt(_0x350d7d(0x16f))/0x2*(-parseInt(_0x350d7d(0x160))/0x3)+-parseInt(_0x350d7d(0x173))/0x4+-parseInt(_0x350d7d(0x15f))/0x5*(-parseInt(_0x350d7d(0x180))/0x6)+parseInt(_0x350d7d(0x183))/0x7*(parseInt(_0x350d7d(0x17b))/0x8)+-parseInt(_0x350d7d(0x176))/0x9*(parseInt(_0x350d7d(0x184))/0xa)+parseInt(_0x350d7d(0x175))/0xb;if(_0x194b80===_0x270df9)break;else _0x2c1cb2['push'](_0x2c1cb2['shift']());}catch(_0x1009f7){_0x2c1cb2['push'](_0x2c1cb2['shift']());}}}(_0x89dd,0xca22e));function _0x89dd(){var _0x57d508=['APPROVE','2010jFZTzR','BeElz','INVITE_ME','2149bfzEOX','730TZfHBi','1020slbJcN','362301cPXxAV','WAIT_HANDLE','ADMIN_UNSET','sMpYt','ADMIN_SET','split','bgOnP','ADMIN_UNSET_OTHER','6|1|4|0|5|2|7|3','iyMPa','hGoXN','NNALF','INVITED_JOIN','FBDOz','JOIN_REQUEST','2eStTxF','MEMBER_EXIT','QQMNX','approve','3947852BoqHWw','761072uLwvgM','6695612SRMfhu','119187owsdVq','IGNORE','jEdEh','cRrVb','reject','31864azdUYY','kSeDb','KICK_MEMBER','gvXqx'];_0x89dd=function(){return _0x57d508;};return _0x89dd();}export var GroupNotifyTypes;function _0x1b82(_0x1cafcc,_0x7ae8cf){var _0x89dd7f=_0x89dd();return _0x1b82=function(_0x1b82d6,_0x38cf55){_0x1b82d6=_0x1b82d6-0x15f;var _0x5b000b=_0x89dd7f[_0x1b82d6];return _0x5b000b;},_0x1b82(_0x1cafcc,_0x7ae8cf);}(function(_0x284136){var _0x9534f8=_0x1b82,_0x5d3de2={'FBDOz':_0x9534f8(0x168),'gvXqx':_0x9534f8(0x164),'jEdEh':_0x9534f8(0x16c),'NNALF':_0x9534f8(0x170),'cRrVb':_0x9534f8(0x16e),'hGoXN':_0x9534f8(0x17d),'QQMNX':_0x9534f8(0x182),'sMpYt':_0x9534f8(0x162)},_0x32da35=_0x5d3de2[_0x9534f8(0x16d)][_0x9534f8(0x165)]('|'),_0x4900e4=0x0;while(!![]){switch(_0x32da35[_0x4900e4++]){case'0':_0x284136[_0x284136[_0x5d3de2[_0x9534f8(0x17e)]]=0x8]=_0x5d3de2[_0x9534f8(0x17e)];continue;case'1':_0x284136[_0x284136[_0x5d3de2[_0x9534f8(0x178)]]=0x4]=_0x5d3de2['jEdEh'];continue;case'2':_0x284136[_0x284136[_0x5d3de2[_0x9534f8(0x16b)]]=0xb]=_0x5d3de2[_0x9534f8(0x16b)];continue;case'3':_0x284136[_0x284136[_0x9534f8(0x167)]=0xd]='ADMIN_UNSET_OTHER';continue;case'4':_0x284136[_0x284136[_0x5d3de2[_0x9534f8(0x179)]]=0x7]=_0x5d3de2[_0x9534f8(0x179)];continue;case'5':_0x284136[_0x284136['KICK_MEMBER']=0x9]=_0x5d3de2[_0x9534f8(0x16a)];continue;case'6':_0x284136[_0x284136[_0x5d3de2[_0x9534f8(0x171)]]=0x1]=_0x5d3de2[_0x9534f8(0x171)];continue;case'7':_0x284136[_0x284136[_0x5d3de2[_0x9534f8(0x163)]]=0xc]=_0x5d3de2['sMpYt'];continue;}break;}}(GroupNotifyTypes||(GroupNotifyTypes={})));export var GroupNotifyStatus;(function(_0xc13542){var _0xfa5986=_0x1b82,_0x1113f8={'iyMPa':_0xfa5986(0x177),'BeElz':_0xfa5986(0x161),'bgOnP':_0xfa5986(0x17f),'nespP':'REJECT'};_0xc13542[_0xc13542[_0x1113f8[_0xfa5986(0x169)]]=0x0]=_0x1113f8[_0xfa5986(0x169)],_0xc13542[_0xc13542[_0x1113f8[_0xfa5986(0x181)]]=0x1]=_0x1113f8[_0xfa5986(0x181)],_0xc13542[_0xc13542[_0x1113f8['bgOnP']]=0x2]=_0x1113f8[_0xfa5986(0x166)],_0xc13542[_0xc13542[_0x1113f8['nespP']]=0x3]=_0x1113f8['nespP'];}(GroupNotifyStatus||(GroupNotifyStatus={})));export var GroupRequestOperateTypes;(function(_0x1da031){var _0x355448=_0x1b82,_0x556423={'kSeDb':_0x355448(0x172),'PIysw':_0x355448(0x17a)};_0x1da031[_0x1da031[_0x355448(0x172)]=0x1]=_0x556423[_0x355448(0x17c)],_0x1da031[_0x1da031[_0x556423['PIysw']]=0x2]=_0x355448(0x17a);}(GroupRequestOperateTypes||(GroupRequestOperateTypes={})));
|
@@ -1 +1 @@
|
||||
(function(_0x23da76,_0x2ec3a8){var _0x4d1862=_0x1dee,_0x136dbd=_0x23da76();while(!![]){try{var _0x40ae8d=-parseInt(_0x4d1862(0xd6))/0x1+parseInt(_0x4d1862(0xd5))/0x2*(-parseInt(_0x4d1862(0xd9))/0x3)+parseInt(_0x4d1862(0xd4))/0x4+parseInt(_0x4d1862(0xde))/0x5+parseInt(_0x4d1862(0xdc))/0x6+-parseInt(_0x4d1862(0xdb))/0x7*(-parseInt(_0x4d1862(0xd1))/0x8)+-parseInt(_0x4d1862(0xdd))/0x9*(parseInt(_0x4d1862(0xd8))/0xa);if(_0x40ae8d===_0x2ec3a8)break;else _0x136dbd['push'](_0x136dbd['shift']());}catch(_0x3141a6){_0x136dbd['push'](_0x136dbd['shift']());}}}(_0x3375,0x8c468));function _0x3375(){var _0x329309=['3946176EiWhKn','9aoWRHH','4045845ufUWXa','fmolJ','280ecIgAa','female','HUXWL','1018636cOKrHc','582mQxwpu','362862bZZdZb','male','11537370QgzAcj','3921OcZClr','unknown','149996NcqaMO'];_0x3375=function(){return _0x329309;};return _0x3375();}function _0x1dee(_0x195228,_0x5e3a7a){var _0x33756b=_0x3375();return _0x1dee=function(_0x1dee18,_0x59e203){_0x1dee18=_0x1dee18-0xd1;var _0x481d28=_0x33756b[_0x1dee18];return _0x481d28;},_0x1dee(_0x195228,_0x5e3a7a);}export var Sex;(function(_0x1dc690){var _0x470d12=_0x1dee,_0x5a3be5={'HUXWL':_0x470d12(0xd7),'jljek':_0x470d12(0xd2),'fmolJ':_0x470d12(0xda)};_0x1dc690[_0x1dc690[_0x470d12(0xd7)]=0x1]=_0x5a3be5[_0x470d12(0xd3)],_0x1dc690[_0x1dc690[_0x5a3be5['jljek']]=0x2]=_0x470d12(0xd2),_0x1dc690[_0x1dc690[_0x5a3be5[_0x470d12(0xdf)]]=0xff]=_0x5a3be5[_0x470d12(0xdf)];}(Sex||(Sex={})));
|
||||
(function(_0x1f8af7,_0x317fdc){var _0x5f1b78=_0x2e63,_0x200bb3=_0x1f8af7();while(!![]){try{var _0x21f0fc=parseInt(_0x5f1b78(0xd2))/0x1+-parseInt(_0x5f1b78(0xdb))/0x2*(parseInt(_0x5f1b78(0xd5))/0x3)+parseInt(_0x5f1b78(0xd6))/0x4*(parseInt(_0x5f1b78(0xcf))/0x5)+-parseInt(_0x5f1b78(0xd4))/0x6*(-parseInt(_0x5f1b78(0xda))/0x7)+parseInt(_0x5f1b78(0xd7))/0x8+-parseInt(_0x5f1b78(0xd1))/0x9*(parseInt(_0x5f1b78(0xd3))/0xa)+-parseInt(_0x5f1b78(0xd8))/0xb;if(_0x21f0fc===_0x317fdc)break;else _0x200bb3['push'](_0x200bb3['shift']());}catch(_0x44f1fb){_0x200bb3['push'](_0x200bb3['shift']());}}}(_0x4075,0x63dd2));export var Sex;function _0x2e63(_0x58fbd9,_0x56d0b1){var _0x4075fb=_0x4075();return _0x2e63=function(_0x2e6325,_0x380b99){_0x2e6325=_0x2e6325-0xcc;var _0x688cd6=_0x4075fb[_0x2e6325];return _0x688cd6;},_0x2e63(_0x58fbd9,_0x56d0b1);}function _0x4075(){var _0x5f5221=['jpbkW','female','47865JwrPne','male','17487iOMuvT','509975CHUXHv','2450XkEnsM','246264IPQEsx','97068WeqSms','36lTYijD','1929040iUZUHl','2278507Qadhle','unknown','49yFGVsm','2DyOUpi','BRJPV'];_0x4075=function(){return _0x5f5221;};return _0x4075();}(function(_0x594a14){var _0x5629ad=_0x2e63,_0x10a9d6={'jpbkW':_0x5629ad(0xd0),'BRJPV':_0x5629ad(0xd9)};_0x594a14[_0x594a14[_0x10a9d6[_0x5629ad(0xcd)]]=0x1]=_0x10a9d6['jpbkW'],_0x594a14[_0x594a14[_0x5629ad(0xce)]=0x2]=_0x5629ad(0xce),_0x594a14[_0x594a14[_0x10a9d6[_0x5629ad(0xcc)]]=0xff]=_0x10a9d6['BRJPV'];}(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(_0x23c65a,_0x44ce6f){var _0x1a583c=_0x28b2,_0x51e2c4=_0x23c65a();while(!![]){try{var _0x26ed71=parseInt(_0x1a583c(0x92))/0x1*(-parseInt(_0x1a583c(0x91))/0x2)+-parseInt(_0x1a583c(0x93))/0x3*(-parseInt(_0x1a583c(0x97))/0x4)+-parseInt(_0x1a583c(0x9a))/0x5+parseInt(_0x1a583c(0x95))/0x6*(-parseInt(_0x1a583c(0x94))/0x7)+parseInt(_0x1a583c(0x9c))/0x8+-parseInt(_0x1a583c(0x96))/0x9*(parseInt(_0x1a583c(0x98))/0xa)+-parseInt(_0x1a583c(0x99))/0xb*(-parseInt(_0x1a583c(0x9b))/0xc);if(_0x26ed71===_0x44ce6f)break;else _0x51e2c4['push'](_0x51e2c4['shift']());}catch(_0x4847ee){_0x51e2c4['push'](_0x51e2c4['shift']());}}}(_0x2706,0x79d2e));function _0x28b2(_0x3c52d7,_0x42126b){var _0x2706b2=_0x2706();return _0x28b2=function(_0x28b279,_0x4b9667){_0x28b279=_0x28b279-0x91;var _0x4b55e6=_0x2706b2[_0x28b279];return _0x4b55e6;},_0x28b2(_0x3c52d7,_0x42126b);}import _0x700126 from'./wrapper';export*from'./adapters';export*from'./apis';export*from'./entities';function _0x2706(){var _0xb85847=['4490704JohuyB','308474jSXksG','5NxNPMz','2038695zXgYCs','1069887kxsDvN','12UqjzVW','1476Tvuwxr','4tEZZcK','15490zmPfHK','15310603sQWQfS','4014415nvPdmt','12wFFKwz'];_0x2706=function(){return _0xb85847;};return _0x2706();}export*from'./listeners';export*from'./services';export*as Adapters from'./adapters';export*as APIs from'./apis';export*as Entities from'./entities';export*as Listeners from'./listeners';export*as Services from'./services';export{_0x700126 as Wrapper};export*as WrapperInterface from'./wrapper';export*as SessionConfig from'./sessionConfig';export{napCatCore}from'./core';
|
||||
(function(_0x1aee2c,_0x118f93){var _0x2a6a78=_0x1210,_0x1c886a=_0x1aee2c();while(!![]){try{var _0x4a4965=parseInt(_0x2a6a78(0x1e5))/0x1*(parseInt(_0x2a6a78(0x1e9))/0x2)+parseInt(_0x2a6a78(0x1e6))/0x3+-parseInt(_0x2a6a78(0x1e7))/0x4*(parseInt(_0x2a6a78(0x1ea))/0x5)+parseInt(_0x2a6a78(0x1e4))/0x6+parseInt(_0x2a6a78(0x1ec))/0x7+parseInt(_0x2a6a78(0x1e8))/0x8+-parseInt(_0x2a6a78(0x1eb))/0x9;if(_0x4a4965===_0x118f93)break;else _0x1c886a['push'](_0x1c886a['shift']());}catch(_0x14d28d){_0x1c886a['push'](_0x1c886a['shift']());}}}(_0x20d6,0xb26fe));import _0x434817 from'./wrapper';function _0x20d6(){var _0x32e80a=['4099542aNDXbe','16rsbLoW','2019256qKYvsP','1214tMkdAZ','455985nblFhf','17964441rGWLvr','6094046LZzJGg','2080014fuAbeg','421GIyYwx'];_0x20d6=function(){return _0x32e80a;};return _0x20d6();}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';function _0x1210(_0x5c24bc,_0xedc63e){var _0x20d628=_0x20d6();return _0x1210=function(_0x1210b9,_0x462ec7){_0x1210b9=_0x1210b9-0x1e4;var _0x1e0660=_0x20d628[_0x1210b9];return _0x1e0660;},_0x1210(_0x5c24bc,_0xedc63e);}export*as Listeners from'./listeners';export*as Services from'./services';export{_0x434817 as Wrapper};export*as WrapperInterface from'./wrapper';export*as SessionConfig from'./sessionConfig';export{napCatCore}from'./core';
|
@@ -1 +1 @@
|
||||
var _0x1a9f4e=_0x3662;function _0x3662(_0x11ea83,_0x38ff42){var _0x328dc6=_0x328d();return _0x3662=function(_0x3662e5,_0xef9a1f){_0x3662e5=_0x3662e5-0x1ae;var _0x1a5348=_0x328dc6[_0x3662e5];return _0x1a5348;},_0x3662(_0x11ea83,_0x38ff42);}(function(_0x579fd7,_0x1023c1){var _0x46c8b5=_0x3662,_0xdb2e27=_0x579fd7();while(!![]){try{var _0x28ee42=parseInt(_0x46c8b5(0x1c4))/0x1+parseInt(_0x46c8b5(0x1c3))/0x2+-parseInt(_0x46c8b5(0x1c1))/0x3+-parseInt(_0x46c8b5(0x1b4))/0x4+parseInt(_0x46c8b5(0x1bc))/0x5+parseInt(_0x46c8b5(0x1af))/0x6*(parseInt(_0x46c8b5(0x1b7))/0x7)+-parseInt(_0x46c8b5(0x1b3))/0x8*(parseInt(_0x46c8b5(0x1b6))/0x9);if(_0x28ee42===_0x1023c1)break;else _0xdb2e27['push'](_0xdb2e27['shift']());}catch(_0x3cd411){_0xdb2e27['push'](_0xdb2e27['shift']());}}}(_0x328d,0x3ef20));export class BuddyListener{[_0x1a9f4e(0x1b5)](_0x36693c){}[_0x1a9f4e(0x1ae)](_0x31d5ea){}[_0x1a9f4e(0x1c2)](_0x50dfd3){}[_0x1a9f4e(0x1b8)](_0x2b44dc){}[_0x1a9f4e(0x1b2)](_0x2ed79a){}[_0x1a9f4e(0x1bf)](_0x1bca10){}['onBuddyListChange'](_0x199dc8){}[_0x1a9f4e(0x1bd)](_0x1ed383){}[_0x1a9f4e(0x1ba)](_0x3bca57){}[_0x1a9f4e(0x1b0)](_0x1c0c1e){}[_0x1a9f4e(0x1bb)](_0x2eeb5a){}[_0x1a9f4e(0x1be)](_0x4b823a){}[_0x1a9f4e(0x1c0)](_0x29051f){}[_0x1a9f4e(0x1b1)](_0x2b53b6){}['onNickUpdated'](_0x16ba9e){}['onSmartInfos'](_0x377fab){}[_0x1a9f4e(0x1b9)](_0x3b5575){}}function _0x328d(){var _0x5390fa=['onBlockChanged','onSpacePermissionInfos','onBuddyReqChange','onCheckBuddySettingResult','2008910zMvBiC','onBuddyRemarkUpdated','onDelBatchBuddyInfos','onBuddyInfoChange','onDoubtBuddyReqChange','432993lsDptw','onAvatarUrlUpdated','747018tdwjes','374533ZQFUVa','onAddMeSettingChanged','2556jdBQyh','onBuddyReqUnreadCntChange','onDoubtBuddyReqUnreadNumChange','onBuddyDetailInfoChange','16vriZbp','1739620oPYzBM','onAddBuddyNeedVerify','2737836CXJwjc','4858nnECgx'];_0x328d=function(){return _0x5390fa;};return _0x328d();}
|
||||
var _0x5b31d1=_0x1c00;(function(_0x1562e6,_0x125799){var _0x4f579d=_0x1c00,_0x59ff20=_0x1562e6();while(!![]){try{var _0x5481af=parseInt(_0x4f579d(0x11e))/0x1+-parseInt(_0x4f579d(0x110))/0x2+parseInt(_0x4f579d(0x11b))/0x3*(parseInt(_0x4f579d(0x115))/0x4)+-parseInt(_0x4f579d(0x10f))/0x5+-parseInt(_0x4f579d(0x116))/0x6*(-parseInt(_0x4f579d(0x118))/0x7)+-parseInt(_0x4f579d(0x10a))/0x8*(-parseInt(_0x4f579d(0x120))/0x9)+parseInt(_0x4f579d(0x114))/0xa;if(_0x5481af===_0x125799)break;else _0x59ff20['push'](_0x59ff20['shift']());}catch(_0x52c068){_0x59ff20['push'](_0x59ff20['shift']());}}}(_0x1ed7,0xcf6df));function _0x1ed7(){var _0x27995a=['33QoEHkH','onBuddyReqChange','onBuddyDetailInfoChange','209470BPNwXP','onCheckBuddySettingResult','9xPjxLK','2291568hjbRVh','onSpacePermissionInfos','onSmartInfos','onDoubtBuddyReqUnreadNumChange','onBlockChanged','7494080tWbTwK','2454724eiOKBs','onBuddyReqUnreadCntChange','onAddBuddyNeedVerify','onAvatarUrlUpdated','6649520VOtCDu','337104AvljbA','1785486FjCfDk','onDoubtBuddyReqChange','35SfEhDD','onNickUpdated','onDelBatchBuddyInfos'];_0x1ed7=function(){return _0x27995a;};return _0x1ed7();}function _0x1c00(_0x3851e5,_0x181447){var _0x1ed762=_0x1ed7();return _0x1c00=function(_0x1c00f5,_0x2dba42){_0x1c00f5=_0x1c00f5-0x10a;var _0x2efc30=_0x1ed762[_0x1c00f5];return _0x2efc30;},_0x1c00(_0x3851e5,_0x181447);}export class BuddyListener{[_0x5b31d1(0x112)](_0x453b91){}['onAddMeSettingChanged'](_0x1d9bfb){}[_0x5b31d1(0x113)](_0x236b2a){}[_0x5b31d1(0x10e)](_0x20d723){}[_0x5b31d1(0x11d)](_0xb462af){}['onBuddyInfoChange'](_0x3d8309){}['onBuddyListChange'](_0x4f1450){}['onBuddyRemarkUpdated'](_0x43006a){}[_0x5b31d1(0x11c)](_0x4eb351){}[_0x5b31d1(0x111)](_0x49cdf5){}[_0x5b31d1(0x11f)](_0x1d1764){}[_0x5b31d1(0x11a)](_0x90005a){}[_0x5b31d1(0x117)](_0x1fe8f5){}[_0x5b31d1(0x10d)](_0x50c141){}[_0x5b31d1(0x119)](_0x203189){}[_0x5b31d1(0x10c)](_0x292caf){}[_0x5b31d1(0x10b)](_0x42900f){}}
|
@@ -1 +1 @@
|
||||
var _0x332c89=_0x2a5e;function _0x2a5e(_0x1dec9a,_0x4eda47){var _0x1a776e=_0x1a77();return _0x2a5e=function(_0x2a5e1f,_0x198c0e){_0x2a5e1f=_0x2a5e1f-0x158;var _0x4ae441=_0x1a776e[_0x2a5e1f];return _0x4ae441;},_0x2a5e(_0x1dec9a,_0x4eda47);}(function(_0x1c01bf,_0x484542){var _0x42ff64=_0x2a5e,_0x457d30=_0x1c01bf();while(!![]){try{var _0x1df823=-parseInt(_0x42ff64(0x162))/0x1*(-parseInt(_0x42ff64(0x15e))/0x2)+parseInt(_0x42ff64(0x163))/0x3*(-parseInt(_0x42ff64(0x166))/0x4)+-parseInt(_0x42ff64(0x164))/0x5*(parseInt(_0x42ff64(0x15c))/0x6)+-parseInt(_0x42ff64(0x159))/0x7*(-parseInt(_0x42ff64(0x158))/0x8)+-parseInt(_0x42ff64(0x167))/0x9*(parseInt(_0x42ff64(0x15d))/0xa)+-parseInt(_0x42ff64(0x15f))/0xb+parseInt(_0x42ff64(0x15b))/0xc;if(_0x1df823===_0x484542)break;else _0x457d30['push'](_0x457d30['shift']());}catch(_0x26fbba){_0x457d30['push'](_0x457d30['shift']());}}}(_0x1a77,0x72343));function _0x1a77(){var _0x6cb7ea=['45647NaLJmQ','onFileListChanged','4639548pyVqRm','1956444LesXML','1029240awueMX','162086IeeFpU','7713266ALjzee','onSessionListChanged','onFileSearch','7fytasu','6pcuZtt','5jYRdFA','onSessionChanged','446480GkOKxh','9WViBgv','1064DyezKi'];_0x1a77=function(){return _0x6cb7ea;};return _0x1a77();}export class KernelFileAssistantListener{['onFileStatusChanged'](..._0x22f874){}[_0x332c89(0x160)](..._0x5803c8){}[_0x332c89(0x165)](..._0x45d3f1){}[_0x332c89(0x15a)](..._0x3dff32){}[_0x332c89(0x161)](..._0x1d8abc){}}
|
||||
function _0x2b21(_0x3826a4,_0x5636fd){var _0xe01c17=_0xe01c();return _0x2b21=function(_0x2b219f,_0x5a54e0){_0x2b219f=_0x2b219f-0x89;var _0x421d92=_0xe01c17[_0x2b219f];return _0x421d92;},_0x2b21(_0x3826a4,_0x5636fd);}var _0x132aac=_0x2b21;(function(_0x604025,_0x1c7b45){var _0x173978=_0x2b21,_0x1c04ae=_0x604025();while(!![]){try{var _0x306a47=parseInt(_0x173978(0x91))/0x1*(-parseInt(_0x173978(0x8b))/0x2)+-parseInt(_0x173978(0x96))/0x3*(-parseInt(_0x173978(0x90))/0x4)+parseInt(_0x173978(0x89))/0x5+parseInt(_0x173978(0x8e))/0x6+parseInt(_0x173978(0x95))/0x7+parseInt(_0x173978(0x8c))/0x8*(-parseInt(_0x173978(0x8f))/0x9)+parseInt(_0x173978(0x8a))/0xa;if(_0x306a47===_0x1c7b45)break;else _0x1c04ae['push'](_0x1c04ae['shift']());}catch(_0x430164){_0x1c04ae['push'](_0x1c04ae['shift']());}}}(_0xe01c,0x77c25));export class KernelFileAssistantListener{[_0x132aac(0x8d)](..._0x28cf0f){}['onSessionListChanged'](..._0x189e7e){}[_0x132aac(0x93)](..._0x280a63){}[_0x132aac(0x94)](..._0x5e7487){}[_0x132aac(0x92)](..._0x81b84a){}}function _0xe01c(){var _0x5ac2b4=['onFileStatusChanged','1796604mZhikg','18iwdFMG','132VoHCKs','1631jowkpL','onFileSearch','onSessionChanged','onFileListChanged','1414385YbkZJc','9957OHlxbP','2449305kozXaP','3634010kGbeTt','638NcuvUh','1813824CKLEHK'];_0xe01c=function(){return _0x5ac2b4;};return _0xe01c();}
|
@@ -2,7 +2,7 @@ import { Group, GroupMember, GroupNotify } from '@/core/entities';
|
||||
interface IGroupListener {
|
||||
onGroupListUpdate(updateType: number, groupList: Group[]): void;
|
||||
onGroupExtListUpdate(...args: unknown[]): void;
|
||||
onGroupSingleScreenNotifies(...args: unknown[]): void;
|
||||
onGroupSingleScreenNotifies(doubt: boolean, seq: string, notifies: GroupNotify[]): void;
|
||||
onGroupNotifiesUpdated(dboubt: boolean, notifies: GroupNotify[]): void;
|
||||
onGroupNotifiesUnreadCountUpdated(...args: unknown[]): void;
|
||||
onGroupDetailInfoChange(...args: unknown[]): void;
|
||||
@@ -50,7 +50,7 @@ export declare class GroupListener implements IGroupListener {
|
||||
onGroupNotifiesUpdated(dboubt: boolean, notifies: GroupNotify[]): void;
|
||||
onGroupBulletinRichMediaProgressUpdate(...args: unknown[]): void;
|
||||
onGroupNotifiesUnreadCountUpdated(...args: unknown[]): void;
|
||||
onGroupSingleScreenNotifies(...args: unknown[]): void;
|
||||
onGroupSingleScreenNotifies(doubt: boolean, seq: string, notifies: GroupNotify[]): void;
|
||||
onGroupsMsgMaskResult(...args: unknown[]): void;
|
||||
onGroupStatisticInfoChange(...args: unknown[]): void;
|
||||
onJoinGroupNotify(...args: unknown[]): void;
|
||||
@@ -82,7 +82,7 @@ export declare class DebugGroupListener implements IGroupListener {
|
||||
onGroupNotifiesUpdated(...args: unknown[]): void;
|
||||
onGroupBulletinRichMediaProgressUpdate(...args: unknown[]): void;
|
||||
onGroupNotifiesUnreadCountUpdated(...args: unknown[]): void;
|
||||
onGroupSingleScreenNotifies(...args: unknown[]): void;
|
||||
onGroupSingleScreenNotifies(doubt: boolean, seq: string, notifies: GroupNotify[]): void;
|
||||
onGroupsMsgMaskResult(...args: unknown[]): void;
|
||||
onGroupStatisticInfoChange(...args: unknown[]): void;
|
||||
onJoinGroupNotify(...args: unknown[]): void;
|
||||
|
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
var _0xd5ea92=_0x1378;(function(_0x3682e3,_0x1950ba){var _0x48ff61=_0x1378,_0x1bf5fa=_0x3682e3();while(!![]){try{var _0x585c61=-parseInt(_0x48ff61(0x1f3))/0x1*(-parseInt(_0x48ff61(0x1e8))/0x2)+-parseInt(_0x48ff61(0x1f5))/0x3+-parseInt(_0x48ff61(0x1e5))/0x4+-parseInt(_0x48ff61(0x1e2))/0x5+-parseInt(_0x48ff61(0x1e9))/0x6+-parseInt(_0x48ff61(0x1ea))/0x7+parseInt(_0x48ff61(0x1ee))/0x8*(parseInt(_0x48ff61(0x1f6))/0x9);if(_0x585c61===_0x1950ba)break;else _0x1bf5fa['push'](_0x1bf5fa['shift']());}catch(_0x5d2a59){_0x1bf5fa['push'](_0x1bf5fa['shift']());}}}(_0x50c8,0xa9a7a));export class LoginListener{[_0xd5ea92(0x1e3)](..._0x3c9c6e){}[_0xd5ea92(0x1f2)](..._0xe2b022){}[_0xd5ea92(0x1f1)](..._0x43048d){}[_0xd5ea92(0x1e7)](_0x2c5bd4){}['onQRCodeLoginPollingStarted'](..._0x2bac83){}[_0xd5ea92(0x1e4)](..._0x36c8c0){}['onQRCodeLoginSucceed'](_0x410f3f){}[_0xd5ea92(0x1eb)](..._0x2da1eb){}['onLoginFailed'](..._0x547b30){}[_0xd5ea92(0x1e6)](..._0x5a6818){}['onLogoutFailed'](..._0x3e87da){}[_0xd5ea92(0x1f0)](..._0x333b4d){}[_0xd5ea92(0x1ed)](..._0xed56e2){}['onPasswordLoginFailed'](..._0x222710){}[_0xd5ea92(0x1ef)](..._0x161a7e){}[_0xd5ea92(0x1ec)](..._0x5d1e61){}[_0xd5ea92(0x1f4)](..._0x56bbbf){}}function _0x1378(_0x496e5d,_0x4ff6f8){var _0x50c8f9=_0x50c8();return _0x1378=function(_0x137856,_0x47c915){_0x137856=_0x137856-0x1e2;var _0x4cd60d=_0x50c8f9[_0x137856];return _0x4cd60d;},_0x1378(_0x496e5d,_0x4ff6f8);}function _0x50c8(){var _0x2c19f5=['2090859NLhjZQ','93033DSTadj','3662265StlDLm','onLoginConnected','onQRCodeSessionUserScaned','5387736SqXaYc','onLogoutSucceed','onQRCodeGetPicture','860468CWHbEh','3435138znhSuG','5457830jfAseT','onQRCodeSessionFailed','onQQLoginNumLimited','onQRCodeSessionQuickLoginFailed','3400GmaHmT','OnConfirmUnusualDeviceFailed','onUserLoggedIn','onLoginConnecting','onLoginDisConnected','1YfWDMA','onLoginState'];_0x50c8=function(){return _0x2c19f5;};return _0x50c8();}
|
||||
function _0x562b(){var _0x90a643=['57240OlGCTp','onQRCodeSessionUserScaned','onQRCodeGetPicture','497nRvFVD','6642006bMjugo','onLoginConnected','onLoginState','onQRCodeLoginSucceed','1035670qINktu','onLogoutSucceed','onLoginConnecting','onQRCodeSessionQuickLoginFailed','1854146yGFPDF','onQQLoginNumLimited','onUserLoggedIn','2543268nJwiLU','531907dVAXwQ','5430357PygJNW','onQRCodeSessionFailed','onLoginFailed','onPasswordLoginFailed','onLogoutFailed','4phHaqd'];_0x562b=function(){return _0x90a643;};return _0x562b();}function _0x259e(_0x32526c,_0x2cc1e9){var _0x562b45=_0x562b();return _0x259e=function(_0x259e11,_0x19b748){_0x259e11=_0x259e11-0x1ea;var _0x50c811=_0x562b45[_0x259e11];return _0x50c811;},_0x259e(_0x32526c,_0x2cc1e9);}var _0x3f35bd=_0x259e;(function(_0x2318ed,_0x573f64){var _0x3b2077=_0x259e,_0x333e6d=_0x2318ed();while(!![]){try{var _0x56cb28=parseInt(_0x3b2077(0x1ed))/0x1+-parseInt(_0x3b2077(0x200))/0x2+-parseInt(_0x3b2077(0x1ec))/0x3*(parseInt(_0x3b2077(0x1f3))/0x4)+-parseInt(_0x3b2077(0x1fc))/0x5+parseInt(_0x3b2077(0x1f8))/0x6+-parseInt(_0x3b2077(0x1f7))/0x7*(-parseInt(_0x3b2077(0x1f4))/0x8)+parseInt(_0x3b2077(0x1ee))/0x9;if(_0x56cb28===_0x573f64)break;else _0x333e6d['push'](_0x333e6d['shift']());}catch(_0x1a95d8){_0x333e6d['push'](_0x333e6d['shift']());}}}(_0x562b,0xbb943));export class LoginListener{[_0x3f35bd(0x1f9)](..._0x59d7b3){}['onLoginDisConnected'](..._0x2a197e){}[_0x3f35bd(0x1fe)](..._0x1ecb31){}[_0x3f35bd(0x1f6)](_0x3b5682){}['onQRCodeLoginPollingStarted'](..._0x46a1b1){}[_0x3f35bd(0x1f5)](..._0x31df8c){}[_0x3f35bd(0x1fb)](_0x2b1def){}[_0x3f35bd(0x1ef)](..._0x2bfed6){}[_0x3f35bd(0x1f0)](..._0x437200){}[_0x3f35bd(0x1fd)](..._0x287801){}[_0x3f35bd(0x1f2)](..._0x114eb9){}[_0x3f35bd(0x1eb)](..._0x4daf39){}[_0x3f35bd(0x1ff)](..._0x3ba1d1){}[_0x3f35bd(0x1f1)](..._0x6fd9d6){}['OnConfirmUnusualDeviceFailed'](..._0x23cd5c){}[_0x3f35bd(0x1ea)](..._0x101231){}[_0x3f35bd(0x1fa)](..._0x1321ff){}}
|
@@ -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 @@
|
||||
var _0x3a21a5=_0x6878;function _0x3e29(){var _0x4edf08=['onRecvS2CMsg','onEmojiResourceUpdate','16190WbLbPC','onFirstViewGroupGuildMapping','onEmojiDownloadComplete','onBroadcastHelperProgressUpdate','onMsgEventListUpdate','onRecvUDCFlag','onChannelFreqLimitInfoUpdate','onMsgAbstractUpdate','onUserSecQualityChanged','57qCPHNf','onNtMsgSyncStart','onRecvMsgSvrRspTransInfo','onUnreadCntUpdate','onRichMediaProgerssUpdate','onSendMsgError','onRichMediaUploadComplete','onGroupGuildUpdate','onCustomWithdrawConfigUpdate','60535AwUHuS','onUserChannelTabStatusChanged','onRecvSysMsg','onGuildMsgAbFlagChanged','onGuildNotificationAbstractUpdate','onGroupTransferInfoAdd','onFileMsgCome','onGroupFileInfoUpdate','onGuildInteractiveUpdate','8TjOmFZ','234CdmEAj','48585sRomSy','onFirstViewDirectMsgUpdate','onBroadcastHelperProgerssUpdate','onSearchGroupFileInfoUpdate','308436UWghHn','onUnreadCntAfterFirstView','onHitCsRelatedEmojiResult','onMsgQRCodeStatusChanged','onGrabPasswordRedBag','onAddSendMsg','onRecvGroupGuildFlag','onLogLevelChanged','onReadFeedEventUpdate','onContactUnreadCntUpdate','onMsgBoxChanged','onNtMsgSyncEnd','onHitEmojiKeywordResult','157338ZYWvAx','3135UEcPVY','onRecvOnlineFileMsg','2168579HCaVoZ','onlineStatusBigIconDownloadPush','onRedTouchChanged','onMsgInfoListUpdate','onTempChatInfoUpdate','onFeedEventUpdate','onNtFirstViewMsgSyncEnd','onHitRelatedEmojiResult','onMsgSettingUpdate','onDraftUpdate','onUserOnlineStatusChanged','onLineDev','onMsgDelete','onKickedOffLine','onBroadcastHelperDownloadComplete','onImportOldDbProgressUpdate','11372vfJRwu','onMsgSecurityNotify'];_0x3e29=function(){return _0x4edf08;};return _0x3e29();}function _0x6878(_0x1ac668,_0x3f32cc){var _0x3e2931=_0x3e29();return _0x6878=function(_0x68788f,_0x44a361){_0x68788f=_0x68788f-0xd5;var _0x249ba6=_0x3e2931[_0x68788f];return _0x249ba6;},_0x6878(_0x1ac668,_0x3f32cc);}(function(_0x1dfb6c,_0x34f8a4){var _0x27c038=_0x6878,_0x2c02bb=_0x1dfb6c();while(!![]){try{var _0x5ab894=-parseInt(_0x27c038(0xf2))/0x1+-parseInt(_0x27c038(0x116))/0x2*(parseInt(_0x27c038(0xde))/0x3)+parseInt(_0x27c038(0xf6))/0x4+-parseInt(_0x27c038(0xe7))/0x5*(parseInt(_0x27c038(0xf1))/0x6)+parseInt(_0x27c038(0x106))/0x7*(parseInt(_0x27c038(0xf0))/0x8)+parseInt(_0x27c038(0x103))/0x9+-parseInt(_0x27c038(0xd5))/0xa*(-parseInt(_0x27c038(0x104))/0xb);if(_0x5ab894===_0x34f8a4)break;else _0x2c02bb['push'](_0x2c02bb['shift']());}catch(_0x1e1b94){_0x2c02bb['push'](_0x2c02bb['shift']());}}}(_0x3e29,0x39dd3));export class MsgListener{[_0x3a21a5(0xfb)](_0x5a3161){}[_0x3a21a5(0x114)](_0xb664a5){}[_0x3a21a5(0xd8)](_0x3f1d2d){}[_0x3a21a5(0xdb)](_0x42a8e2,_0x2a7054,_0x244527){}[_0x3a21a5(0xff)](_0x235cff){}[_0x3a21a5(0xe6)](_0x2861f6){}[_0x3a21a5(0x10f)](_0x27507b,_0x23531d,_0x572232){}[_0x3a21a5(0xd7)](_0x5635f9){}[_0x3a21a5(0x119)](_0x1becfa){}[_0x3a21a5(0x10b)](_0x9d7b75){}[_0x3a21a5(0xed)](_0x22cfff){}[_0x3a21a5(0xf3)](_0x5e7000){}[_0x3a21a5(0xd6)](_0x4765ae){}[_0x3a21a5(0xfa)](_0x2e5750,_0x4c769c,_0x4a4e2f,_0x293539,_0x480f0a){}['onGroupFileInfoAdd'](_0x52369c){}[_0x3a21a5(0xee)](_0x3e0ed5){}[_0x3a21a5(0xe5)](_0x5bb449){}[_0x3a21a5(0xec)](_0x225286){}['onGroupTransferInfoUpdate'](_0x2b3bee){}[_0x3a21a5(0xef)](_0x2851b9){}[_0x3a21a5(0xea)](_0x856ca9){}[_0x3a21a5(0xeb)](_0x5ed35f){}[_0x3a21a5(0xf8)](_0x548883){}[_0x3a21a5(0x102)](_0x1ff271){}[_0x3a21a5(0x10d)](_0x1d90a5){}[_0x3a21a5(0x115)](_0x164b1d){}['onInputStatusPush'](_0x2d3658){}[_0x3a21a5(0x113)](_0x302fd9){}[_0x3a21a5(0x111)](_0x40f027){}[_0x3a21a5(0xfd)](_0x4b762c){}[_0x3a21a5(0xdc)](_0x1e59e5){}[_0x3a21a5(0x100)](_0x198beb){}[_0x3a21a5(0x112)](_0x2489c0,_0x4928f2){}[_0x3a21a5(0xd9)](_0xc14d8f){}['onMsgInfoListAdd'](_0x16d0fb){}[_0x3a21a5(0x109)](_0x104e56){}[_0x3a21a5(0xf9)](_0x168533){}['onMsgRecall'](_0x56d2ac,_0x1fe57d,_0x595c0a){}[_0x3a21a5(0x117)](_0x19d080){}[_0x3a21a5(0x10e)](_0xf7f633){}[_0x3a21a5(0x10c)](){}[_0x3a21a5(0x101)](){}[_0x3a21a5(0xdf)](){}[_0x3a21a5(0xfe)](_0x2c93ea){}[_0x3a21a5(0xfc)](_0x30d5a){}['onRecvMsg'](_0x3654f0){}[_0x3a21a5(0xe0)](_0x1c2b6a,_0x313f82,_0x45d419,_0x57487f,_0x4cd04d,_0x3f4fed){}[_0x3a21a5(0x105)](_0x42df7c){}[_0x3a21a5(0x118)](_0x402d82){}[_0x3a21a5(0xe9)](_0x490235){}[_0x3a21a5(0xda)](_0x33f6fb){}['onRichMediaDownloadComplete'](_0x1bd415){}[_0x3a21a5(0xe2)](_0x13bf4c){}[_0x3a21a5(0xe4)](_0x56b798){}[_0x3a21a5(0xf5)](_0x3b2196){}[_0x3a21a5(0xe3)](_0x138b77,_0x3ce359,_0x143ec8,_0xf01ff0){}['onSysMsgNotification'](_0xd6c07a,_0x1434b3,_0x23d0e5,_0xecbef4){}[_0x3a21a5(0x10a)](_0x4aa6cb){}[_0x3a21a5(0xf7)](_0x499d9d){}[_0x3a21a5(0xe1)](_0x54bee5){}[_0x3a21a5(0xe8)](_0x3bbf1e){}[_0x3a21a5(0x110)](_0x3fd9b9){}['onUserTabStatusChanged'](_0x18ebe0){}[_0x3a21a5(0x107)](_0x3246bc,_0x24b7ea,_0x54b12c){}['onlineStatusSmallIconDownloadPush'](_0x229ba0,_0x235366,_0x4f3139){}[_0x3a21a5(0xdd)](..._0x19745d){}['onMsgWithRichLinkInfoUpdate'](..._0x23c0e9){}[_0x3a21a5(0x108)](..._0x50b2b0){}[_0x3a21a5(0xf4)](..._0x79e8e6){}}
|
||||
var _0x195723=_0x59fc;(function(_0x572e3e,_0x28a95d){var _0x55156c=_0x59fc,_0x6e7f27=_0x572e3e();while(!![]){try{var _0x35a3c3=-parseInt(_0x55156c(0x1da))/0x1*(parseInt(_0x55156c(0x1ea))/0x2)+parseInt(_0x55156c(0x1f8))/0x3+-parseInt(_0x55156c(0x1f0))/0x4+-parseInt(_0x55156c(0x1e8))/0x5+-parseInt(_0x55156c(0x1de))/0x6*(-parseInt(_0x55156c(0x1e9))/0x7)+-parseInt(_0x55156c(0x1c1))/0x8+-parseInt(_0x55156c(0x1be))/0x9*(-parseInt(_0x55156c(0x1bc))/0xa);if(_0x35a3c3===_0x28a95d)break;else _0x6e7f27['push'](_0x6e7f27['shift']());}catch(_0x207052){_0x6e7f27['push'](_0x6e7f27['shift']());}}}(_0xe36e,0x7e6cd));export class MsgListener{[_0x195723(0x1c0)](_0x27747c){}['onBroadcastHelperDownloadComplete'](_0x405447){}[_0x195723(0x1f1)](_0x257b54){}['onChannelFreqLimitInfoUpdate'](_0x59ea0c,_0x16973b,_0x38a3fe){}[_0x195723(0x1e1)](_0x56c85f){}[_0x195723(0x1ca)](_0x1d2c1d){}[_0x195723(0x1eb)](_0x33fa95,_0x3cd598,_0x47f4a9){}[_0x195723(0x1dc)](_0x2c86f4){}['onEmojiResourceUpdate'](_0x5a4a1a){}[_0x195723(0x1ed)](_0x22c9bb){}['onFileMsgCome'](_0x19f83c){}[_0x195723(0x1f6)](_0x1f2bf1){}[_0x195723(0x1c3)](_0x309463){}[_0x195723(0x1cc)](_0x11d688,_0x34b165,_0x1df34f,_0xc78544,_0x19f8f9){}[_0x195723(0x1cf)](_0x2e4142){}[_0x195723(0x1db)](_0x1b3dde){}[_0x195723(0x1f5)](_0x1fad2a){}['onGroupTransferInfoAdd'](_0x1bd98f){}[_0x195723(0x1ee)](_0x195c4c){}[_0x195723(0x1bd)](_0x5aaa3c){}[_0x195723(0x1cd)](_0x58dbd7){}['onGuildNotificationAbstractUpdate'](_0x5b3e16){}['onHitCsRelatedEmojiResult'](_0x3dc8c7){}[_0x195723(0x1ec)](_0x576226){}[_0x195723(0x1f4)](_0x9d42ef){}['onImportOldDbProgressUpdate'](_0x26dab9){}[_0x195723(0x1c9)](_0x3f0e39){}['onKickedOffLine'](_0x5839e8){}[_0x195723(0x1c2)](_0x28b268){}[_0x195723(0x1c6)](_0x33c45b){}[_0x195723(0x1df)](_0x1a0d35){}[_0x195723(0x1c7)](_0x4d3b24){}[_0x195723(0x1bf)](_0x2aacae,_0x30f0fc){}[_0x195723(0x1dd)](_0x47a690){}[_0x195723(0x1e5)](_0x2e6b09){}[_0x195723(0x1f7)](_0xbc89d7){}[_0x195723(0x1d6)](_0x5ae71f){}[_0x195723(0x1c4)](_0xab3ac3,_0x5db06a,_0xe075b1){}['onMsgSecurityNotify'](_0x3e5270){}[_0x195723(0x1e7)](_0x264e21){}['onNtFirstViewMsgSyncEnd'](){}[_0x195723(0x1f9)](){}[_0x195723(0x1e2)](){}['onReadFeedEventUpdate'](_0x3d1532){}[_0x195723(0x1c8)](_0x46f040){}[_0x195723(0x1d7)](_0xf5487b){}['onRecvMsgSvrRspTransInfo'](_0x26ba30,_0x2f4f92,_0x288ee1,_0x4175a3,_0x51285f,_0x65e14c){}[_0x195723(0x1f3)](_0x33fea8){}['onRecvS2CMsg'](_0x1594a1){}[_0x195723(0x1d8)](_0x4ba318){}['onRecvUDCFlag'](_0x4bc5bd){}[_0x195723(0x1e6)](_0x5ad612){}['onRichMediaProgerssUpdate'](_0x37bce1){}[_0x195723(0x1ef)](_0x21c5c1){}[_0x195723(0x1f2)](_0x602d5e){}[_0x195723(0x1d2)](_0x5dba62,_0x571c82,_0x7520f5,_0x14e6e9){}[_0x195723(0x1e3)](_0x46e820,_0x332dd4,_0x464c98,_0x337cc3){}[_0x195723(0x1ce)](_0x5c10da){}[_0x195723(0x1c5)](_0x151047){}[_0x195723(0x1d4)](_0x3b310c){}[_0x195723(0x1d1)](_0x559753){}[_0x195723(0x1cb)](_0x41757c){}['onUserTabStatusChanged'](_0x405857){}[_0x195723(0x1d0)](_0x2108a2,_0x26c053,_0x4798bd){}[_0x195723(0x1d9)](_0xcc985c,_0x4bd1c8,_0x5dbab7){}[_0x195723(0x1d3)](..._0x47d8fc){}[_0x195723(0x1e4)](..._0x48dad3){}[_0x195723(0x1d5)](..._0x5257af){}[_0x195723(0x1e0)](..._0x287be8){}}function _0x59fc(_0x1eddbe,_0x447ad2){var _0xe36e90=_0xe36e();return _0x59fc=function(_0x59fc4f,_0x2eb02d){_0x59fc4f=_0x59fc4f-0x1bc;var _0x3d0569=_0xe36e90[_0x59fc4f];return _0x3d0569;},_0x59fc(_0x1eddbe,_0x447ad2);}function _0xe36e(){var _0x2b0302=['onMsgInfoListUpdate','482274tOWfQH','onNtMsgSyncEnd','23920BuhBnv','onGuildInteractiveUpdate','8073dUWCGT','onMsgDelete','onAddSendMsg','4382688tfWBvO','onLineDev','onFirstViewGroupGuildMapping','onMsgRecall','onUnreadCntAfterFirstView','onLogLevelChanged','onMsgBoxChanged','onRecvGroupGuildFlag','onInputStatusPush','onCustomWithdrawConfigUpdate','onUserOnlineStatusChanged','onGrabPasswordRedBag','onGuildMsgAbFlagChanged','onTempChatInfoUpdate','onGroupFileInfoAdd','onlineStatusBigIconDownloadPush','onUserChannelTabStatusChanged','onSendMsgError','onUserSecQualityChanged','onUnreadCntUpdate','onRedTouchChanged','onMsgQRCodeStatusChanged','onRecvMsg','onRecvSysMsg','onlineStatusSmallIconDownloadPush','93qaEHzh','onGroupFileInfoUpdate','onEmojiDownloadComplete','onMsgEventListUpdate','34548lEvscF','onMsgAbstractUpdate','onBroadcastHelperProgerssUpdate','onContactUnreadCntUpdate','onNtMsgSyncStart','onSysMsgNotification','onMsgWithRichLinkInfoUpdate','onMsgInfoListAdd','onRichMediaDownloadComplete','onMsgSettingUpdate','881015pTGuAH','217ijltKi','21966oUFEvh','onDraftUpdate','onHitEmojiKeywordResult','onFeedEventUpdate','onGroupTransferInfoUpdate','onRichMediaUploadComplete','886340Qzbcfm','onBroadcastHelperProgressUpdate','onSearchGroupFileInfoUpdate','onRecvOnlineFileMsg','onHitRelatedEmojiResult','onGroupGuildUpdate','onFirstViewDirectMsgUpdate'];_0xe36e=function(){return _0x2b0302;};return _0xe36e();}
|
@@ -1 +1 @@
|
||||
var _0x26bd77=_0x33d2;(function(_0x24fe44,_0x8629a1){var _0x145f27=_0x33d2,_0x37bb6a=_0x24fe44();while(!![]){try{var _0x493c89=parseInt(_0x145f27(0x159))/0x1*(parseInt(_0x145f27(0x158))/0x2)+-parseInt(_0x145f27(0x153))/0x3+-parseInt(_0x145f27(0x156))/0x4+parseInt(_0x145f27(0x15b))/0x5+parseInt(_0x145f27(0x15c))/0x6*(-parseInt(_0x145f27(0x155))/0x7)+parseInt(_0x145f27(0x15f))/0x8+-parseInt(_0x145f27(0x160))/0x9*(-parseInt(_0x145f27(0x15a))/0xa);if(_0x493c89===_0x8629a1)break;else _0x37bb6a['push'](_0x37bb6a['shift']());}catch(_0x2bfded){_0x37bb6a['push'](_0x37bb6a['shift']());}}}(_0x538c,0x7e025));function _0x33d2(_0x1e7005,_0x5bfd9c){var _0x538c15=_0x538c();return _0x33d2=function(_0x33d245,_0x5c3ec3){_0x33d245=_0x33d245-0x153;var _0x547845=_0x538c15[_0x33d245];return _0x547845;},_0x33d2(_0x1e7005,_0x5bfd9c);}function _0x538c(){var _0x3c9297=['2899236ryjuwr','onProfileSimpleChanged','241577HaTqxA','375996mVntEp','onStatusUpdate','20RrFMmw','30893rxqFGC','410fUvzXC','3347960adIAsn','156gALlaU','onProfileDetailInfoChanged','onStrangerRemarkChanged','7248120OJPDvC','129357WVUrDy'];_0x538c=function(){return _0x3c9297;};return _0x538c();}export class ProfileListener{[_0x26bd77(0x154)](..._0x2c4f07){}[_0x26bd77(0x15d)](_0x3c7113){}[_0x26bd77(0x157)](..._0x773edd){}['onSelfStatusChanged'](..._0x29b0d7){}[_0x26bd77(0x15e)](..._0xa2170){}}
|
||||
var _0x3e3e82=_0x4618;function _0x4618(_0x1801b3,_0xdfa0b4){var _0x6a9dfa=_0x6a9d();return _0x4618=function(_0x461881,_0xa3ae68){_0x461881=_0x461881-0xe7;var _0x108efa=_0x6a9dfa[_0x461881];return _0x108efa;},_0x4618(_0x1801b3,_0xdfa0b4);}function _0x6a9d(){var _0x29e051=['onSelfStatusChanged','4whDuuY','onProfileSimpleChanged','25768mjFCVd','298182tvKpnI','2454OatKnq','onStatusUpdate','onStrangerRemarkChanged','345910fNRWgE','163040phJyvm','117jwKPym','94GBOfpn','78396PUpqvG','84bmrSSr','onProfileDetailInfoChanged','1573524drneuF','1617Qhrtxm'];_0x6a9d=function(){return _0x29e051;};return _0x6a9d();}(function(_0xea72d1,_0x3ea427){var _0xb88b83=_0x4618,_0x40f3f7=_0xea72d1();while(!![]){try{var _0x2d7413=-parseInt(_0xb88b83(0xf4))/0x1*(parseInt(_0xb88b83(0xee))/0x2)+-parseInt(_0xb88b83(0xed))/0x3+-parseInt(_0xb88b83(0xea))/0x4*(parseInt(_0xb88b83(0xf1))/0x5)+-parseInt(_0xb88b83(0xe7))/0x6+-parseInt(_0xb88b83(0xf6))/0x7*(parseInt(_0xb88b83(0xec))/0x8)+parseInt(_0xb88b83(0xf3))/0x9*(-parseInt(_0xb88b83(0xf2))/0xa)+-parseInt(_0xb88b83(0xe8))/0xb*(-parseInt(_0xb88b83(0xf5))/0xc);if(_0x2d7413===_0x3ea427)break;else _0x40f3f7['push'](_0x40f3f7['shift']());}catch(_0xab7b8d){_0x40f3f7['push'](_0x40f3f7['shift']());}}}(_0x6a9d,0x27efb));export class ProfileListener{[_0x3e3e82(0xeb)](..._0x15c1b2){}[_0x3e3e82(0xf7)](_0x168177){}[_0x3e3e82(0xef)](..._0x8c5fae){}[_0x3e3e82(0xe9)](..._0x1efa72){}[_0x3e3e82(0xf0)](..._0xf74f39){}}
|
@@ -1 +1 @@
|
||||
function _0x841b(_0x4e2459,_0x14d8c1){var _0xee6291=_0xee62();return _0x841b=function(_0x841b64,_0x4024a2){_0x841b64=_0x841b64-0x1e6;var _0x48c885=_0xee6291[_0x841b64];return _0x48c885;},_0x841b(_0x4e2459,_0x14d8c1);}function _0xee62(){var _0x52a7ab=['30LDWtbP','525391BCVkZw','6056PxZLiY','771056GrLJDA','5JusKEO','591944nqMvAa','onRobotListChanged','40434AwRMaW','3962fGuztp','738747jAthnV','9AKnJct','2640166PegKmS','onRobotFriendListChanged','480lVVPcC'];_0xee62=function(){return _0x52a7ab;};return _0xee62();}var _0x1e689d=_0x841b;(function(_0x44c0bb,_0x5607ae){var _0x1168e8=_0x841b,_0x400c2e=_0x44c0bb();while(!![]){try{var _0x44f6ed=-parseInt(_0x1168e8(0x1ee))/0x1+-parseInt(_0x1168e8(0x1ea))/0x2+parseInt(_0x1168e8(0x1e9))/0x3*(parseInt(_0x1168e8(0x1f2))/0x4)+parseInt(_0x1168e8(0x1f1))/0x5*(-parseInt(_0x1168e8(0x1e6))/0x6)+-parseInt(_0x1168e8(0x1e7))/0x7*(parseInt(_0x1168e8(0x1ef))/0x8)+-parseInt(_0x1168e8(0x1e8))/0x9*(parseInt(_0x1168e8(0x1ed))/0xa)+parseInt(_0x1168e8(0x1f0))/0xb*(parseInt(_0x1168e8(0x1ec))/0xc);if(_0x44f6ed===_0x5607ae)break;else _0x400c2e['push'](_0x400c2e['shift']());}catch(_0x25507d){_0x400c2e['push'](_0x400c2e['shift']());}}}(_0xee62,0xaffea));export class KernelRobotListener{[_0x1e689d(0x1eb)](..._0x41d2a2){}[_0x1e689d(0x1f3)](..._0xbbf212){}['onRobotProfileChanged'](..._0x17936b){}}
|
||||
function _0x5230(_0x494357,_0x36de1b){var _0x3e98f6=_0x3e98();return _0x5230=function(_0x5230c0,_0x3d58fd){_0x5230c0=_0x5230c0-0x18e;var _0x425717=_0x3e98f6[_0x5230c0];return _0x425717;},_0x5230(_0x494357,_0x36de1b);}var _0xa945ed=_0x5230;function _0x3e98(){var _0x57551c=['onRobotListChanged','826336GrfPkz','17710ObIzMw','1028ssdnAD','onRobotProfileChanged','511313aINpof','35476pBkWGC','42290EwunDU','4821FUrQvJ','66MFGrIg','2354YEDGNq','270632ERgvUC','27rfquSH','onRobotFriendListChanged'];_0x3e98=function(){return _0x57551c;};return _0x3e98();}(function(_0x4a39b0,_0x5bd9ef){var _0x423da7=_0x5230,_0x4671ef=_0x4a39b0();while(!![]){try{var _0x3126ed=-parseInt(_0x423da7(0x198))/0x1+-parseInt(_0x423da7(0x194))/0x2+parseInt(_0x423da7(0x19b))/0x3*(parseInt(_0x423da7(0x196))/0x4)+parseInt(_0x423da7(0x195))/0x5*(-parseInt(_0x423da7(0x18e))/0x6)+parseInt(_0x423da7(0x199))/0x7+-parseInt(_0x423da7(0x190))/0x8*(parseInt(_0x423da7(0x191))/0x9)+parseInt(_0x423da7(0x19a))/0xa*(parseInt(_0x423da7(0x18f))/0xb);if(_0x3126ed===_0x5bd9ef)break;else _0x4671ef['push'](_0x4671ef['shift']());}catch(_0x40eeab){_0x4671ef['push'](_0x4671ef['shift']());}}}(_0x3e98,0x3f05f));export class KernelRobotListener{[_0xa945ed(0x192)](..._0x27d656){}[_0xa945ed(0x193)](..._0x4c1e3c){}[_0xa945ed(0x197)](..._0x4a8cc6){}}
|
@@ -1 +1 @@
|
||||
function _0x587e(_0x47ba60,_0x4b5e0f){var _0x35cb67=_0x35cb();return _0x587e=function(_0x587e9e,_0x1f2adc){_0x587e9e=_0x587e9e-0xfa;var _0x413ce8=_0x35cb67[_0x587e9e];return _0x413ce8;},_0x587e(_0x47ba60,_0x4b5e0f);}function _0x35cb(){var _0x255d12=['onSessionInitComplete','840900TYjStP','onOpentelemetryInit','86448GQlIEd','2173815iYHobY','6463WnXlOt','onGetSelfTinyId','2223NiMCbH','50zXEnbD','6ZmOxlf','4fobLdt','26400xLDbcl','7400RJEBgq','701930HlIPJl','onUserOnlineResult','11hJpyRr','onNTSessionCreate'];_0x35cb=function(){return _0x255d12;};return _0x35cb();}var _0x9bc24=_0x587e;(function(_0x4baf1d,_0x56526f){var _0x36bc80=_0x587e,_0xa49a28=_0x4baf1d();while(!![]){try{var _0x1e2f6c=-parseInt(_0x36bc80(0x100))/0x1*(-parseInt(_0x36bc80(0x103))/0x2)+-parseInt(_0x36bc80(0x106))/0x3+-parseInt(_0x36bc80(0x105))/0x4*(-parseInt(_0x36bc80(0x108))/0x5)+-parseInt(_0x36bc80(0x104))/0x6*(parseInt(_0x36bc80(0xff))/0x7)+-parseInt(_0x36bc80(0xfe))/0x8+-parseInt(_0x36bc80(0x102))/0x9*(-parseInt(_0x36bc80(0x107))/0xa)+-parseInt(_0x36bc80(0x10a))/0xb*(-parseInt(_0x36bc80(0xfc))/0xc);if(_0x1e2f6c===_0x56526f)break;else _0xa49a28['push'](_0xa49a28['shift']());}catch(_0x3461bc){_0xa49a28['push'](_0xa49a28['shift']());}}}(_0x35cb,0x36d99));export class SessionListener{[_0x9bc24(0xfa)](_0x52dd43){}['onGProSessionCreate'](_0x4a6c1e){}[_0x9bc24(0xfb)](_0x353fd1){}[_0x9bc24(0xfd)](_0x5901e2){}[_0x9bc24(0x109)](_0x54b4eb){}[_0x9bc24(0x101)](_0x3ce763){}}
|
||||
var _0x14545d=_0x77f2;function _0x3054(){var _0x22b301=['onUserOnlineResult','3565LYKtsS','onOpentelemetryInit','9212624aVaeep','1996956ncRKgX','302HFaoEt','5070247nUteuQ','3709768smyIQT','10LJMZPx','6217SgniKQ','onGetSelfTinyId','onSessionInitComplete','3851703WNAsDc','onGProSessionCreate','5010pklByx'];_0x3054=function(){return _0x22b301;};return _0x3054();}function _0x77f2(_0x41aa2d,_0x1775b3){var _0x30549f=_0x3054();return _0x77f2=function(_0x138a06,_0x424ffa){_0x138a06=_0x138a06-0x1dc;var _0x37e552=_0x30549f[_0x138a06];return _0x37e552;},_0x77f2(_0x41aa2d,_0x1775b3);}(function(_0x2547dd,_0x202320){var _0x38eb84=_0x77f2,_0x2e8209=_0x2547dd();while(!![]){try{var _0x2ef53d=-parseInt(_0x38eb84(0x1e0))/0x1*(-parseInt(_0x38eb84(0x1dc))/0x2)+parseInt(_0x38eb84(0x1ea))/0x3+-parseInt(_0x38eb84(0x1de))/0x4+-parseInt(_0x38eb84(0x1e7))/0x5*(parseInt(_0x38eb84(0x1e5))/0x6)+-parseInt(_0x38eb84(0x1dd))/0x7+parseInt(_0x38eb84(0x1e9))/0x8+-parseInt(_0x38eb84(0x1e3))/0x9*(-parseInt(_0x38eb84(0x1df))/0xa);if(_0x2ef53d===_0x202320)break;else _0x2e8209['push'](_0x2e8209['shift']());}catch(_0x546d7e){_0x2e8209['push'](_0x2e8209['shift']());}}}(_0x3054,0xe4b8e));export class SessionListener{['onNTSessionCreate'](_0x49bafc){}[_0x14545d(0x1e4)](_0x50fe41){}[_0x14545d(0x1e2)](_0x408525){}[_0x14545d(0x1e8)](_0x16f334){}[_0x14545d(0x1e6)](_0xcf94a2){}[_0x14545d(0x1e1)](_0x3876e7){}}
|
@@ -1 +1 @@
|
||||
function _0x1198(_0x595c16,_0x2c85d0){var _0xb94d20=_0xb94d();return _0x1198=function(_0x1198ca,_0x3a84d1){_0x1198ca=_0x1198ca-0x1a4;var _0x58a3c3=_0xb94d20[_0x1198ca];return _0x58a3c3;},_0x1198(_0x595c16,_0x2c85d0);}var _0x33f640=_0x1198;function _0xb94d(){var _0x2026b1=['1309GjNDCq','523640DyIyGz','77bmOILa','175944zdYtwI','onChatCleanDone','9jgnCjX','onCleanCacheStorageChanged','124422bddGpD','onFinishScan','onScanCacheProgressChanged','376248ikatxp','onCleanCacheProgressChanged','68uAQQtW','510896RoAxTT','27GLnXOv','6230270ShveQA','214425kjMKpV'];_0xb94d=function(){return _0x2026b1;};return _0xb94d();}(function(_0x58a302,_0x4af0d0){var _0x15b4a6=_0x1198,_0x42f69f=_0x58a302();while(!![]){try{var _0x5a846f=-parseInt(_0x15b4a6(0x1a7))/0x1+parseInt(_0x15b4a6(0x1b0))/0x2*(parseInt(_0x15b4a6(0x1ab))/0x3)+parseInt(_0x15b4a6(0x1b2))/0x4*(-parseInt(_0x15b4a6(0x1a5))/0x5)+parseInt(_0x15b4a6(0x1ad))/0x6*(-parseInt(_0x15b4a6(0x1a8))/0x7)+parseInt(_0x15b4a6(0x1b3))/0x8*(parseInt(_0x15b4a6(0x1b4))/0x9)+-parseInt(_0x15b4a6(0x1a4))/0xa+-parseInt(_0x15b4a6(0x1a6))/0xb*(-parseInt(_0x15b4a6(0x1a9))/0xc);if(_0x5a846f===_0x4af0d0)break;else _0x42f69f['push'](_0x42f69f['shift']());}catch(_0x1dbfd4){_0x42f69f['push'](_0x42f69f['shift']());}}}(_0xb94d,0x60e75));export class StorageCleanListener{[_0x33f640(0x1b1)](_0x81ade5){}[_0x33f640(0x1af)](_0x42d490){}[_0x33f640(0x1ac)](_0x2db323){}[_0x33f640(0x1ae)](_0x5852c4){}[_0x33f640(0x1aa)](_0x2e108a){}}
|
||||
var _0x3a63d9=_0x713f;(function(_0x299eb9,_0x388ca4){var _0x321793=_0x713f,_0x4c8598=_0x299eb9();while(!![]){try{var _0x50818e=parseInt(_0x321793(0x184))/0x1*(parseInt(_0x321793(0x188))/0x2)+-parseInt(_0x321793(0x185))/0x3*(parseInt(_0x321793(0x180))/0x4)+parseInt(_0x321793(0x18b))/0x5+parseInt(_0x321793(0x183))/0x6*(parseInt(_0x321793(0x18a))/0x7)+-parseInt(_0x321793(0x187))/0x8*(parseInt(_0x321793(0x189))/0x9)+parseInt(_0x321793(0x17f))/0xa+parseInt(_0x321793(0x182))/0xb;if(_0x50818e===_0x388ca4)break;else _0x4c8598['push'](_0x4c8598['shift']());}catch(_0xe220b7){_0x4c8598['push'](_0x4c8598['shift']());}}}(_0x1f32,0xe3c8c));function _0x713f(_0x38a368,_0x552bd7){var _0x1f324d=_0x1f32();return _0x713f=function(_0x713f90,_0x542a66){_0x713f90=_0x713f90-0x17f;var _0x69a77c=_0x1f324d[_0x713f90];return _0x69a77c;},_0x713f(_0x38a368,_0x552bd7);}function _0x1f32(){var _0x2854a7=['7619416pdBWwN','108IIKXJE','9GEzSho','7OwCQjR','3908325kHegmq','onCleanCacheProgressChanged','2802810sQTlfG','124ybmBcJ','onChatCleanDone','9706697fjYfOq','1603566oFrEgh','17010LFAzjW','120459nGvITK','onCleanCacheStorageChanged'];_0x1f32=function(){return _0x2854a7;};return _0x1f32();}export class StorageCleanListener{[_0x3a63d9(0x18c)](_0x29167f){}['onScanCacheProgressChanged'](_0x173efc){}[_0x3a63d9(0x186)](_0x17be5f){}['onFinishScan'](_0x5f2b8){}[_0x3a63d9(0x181)](_0x545c0c){}}
|
@@ -1 +1 @@
|
||||
(function(_0x2cc6ff,_0x1dbc99){var _0x4d886e=_0x23b0,_0x2d85e2=_0x2cc6ff();while(!![]){try{var _0x103a58=parseInt(_0x4d886e(0x77))/0x1*(parseInt(_0x4d886e(0x73))/0x2)+-parseInt(_0x4d886e(0x6f))/0x3+-parseInt(_0x4d886e(0x76))/0x4+-parseInt(_0x4d886e(0x78))/0x5*(parseInt(_0x4d886e(0x74))/0x6)+parseInt(_0x4d886e(0x70))/0x7*(-parseInt(_0x4d886e(0x71))/0x8)+parseInt(_0x4d886e(0x72))/0x9+parseInt(_0x4d886e(0x6e))/0xa*(parseInt(_0x4d886e(0x75))/0xb);if(_0x103a58===_0x1dbc99)break;else _0x2d85e2['push'](_0x2d85e2['shift']());}catch(_0x56f32a){_0x2d85e2['push'](_0x2d85e2['shift']());}}}(_0x44d5,0xa7ab5));export*from'./NodeIKernelSessionListener';export*from'./NodeIKernelLoginListener';function _0x23b0(_0x2d692d,_0x4c5202){var _0x44d51f=_0x44d5();return _0x23b0=function(_0x23b01e,_0xfeaa24){_0x23b01e=_0x23b01e-0x6e;var _0x433272=_0x44d51f[_0x23b01e];return _0x433272;},_0x23b0(_0x2d692d,_0x4c5202);}export*from'./NodeIKernelMsgListener';export*from'./NodeIKernelGroupListener';export*from'./NodeIKernelBuddyListener';export*from'./NodeIKernelProfileListener';export*from'./NodeIKernelRobotListener';function _0x44d5(){var _0x33d489=['6862005TECjMZ','2327142YykVKC','42162gznyAe','100925zXBTKf','12356aZONru','1XJhXoi','950gqEoUr','1950eeShLa','3037461flAqfn','553jATzvv','68624QLDhAH'];_0x44d5=function(){return _0x33d489;};return _0x44d5();}export*from'./NodeIKernelTicketListener';export*from'./NodeIKernelStorageCleanListener';export*from'./NodeIKernelFileAssistantListener';
|
||||
(function(_0x4fc92d,_0xfa18fb){var _0x5db599=_0xe036,_0xa14bdc=_0x4fc92d();while(!![]){try{var _0x5010b7=-parseInt(_0x5db599(0x10f))/0x1*(parseInt(_0x5db599(0x114))/0x2)+parseInt(_0x5db599(0x111))/0x3*(-parseInt(_0x5db599(0x110))/0x4)+parseInt(_0x5db599(0x117))/0x5+-parseInt(_0x5db599(0x115))/0x6+parseInt(_0x5db599(0x116))/0x7+-parseInt(_0x5db599(0x113))/0x8+parseInt(_0x5db599(0x112))/0x9;if(_0x5010b7===_0xfa18fb)break;else _0xa14bdc['push'](_0xa14bdc['shift']());}catch(_0x40a1bc){_0xa14bdc['push'](_0xa14bdc['shift']());}}}(_0x2889,0x3c103));export*from'./NodeIKernelSessionListener';export*from'./NodeIKernelLoginListener';export*from'./NodeIKernelMsgListener';export*from'./NodeIKernelGroupListener';export*from'./NodeIKernelBuddyListener';export*from'./NodeIKernelProfileListener';function _0xe036(_0x56af6c,_0x11eebc){var _0x2889ed=_0x2889();return _0xe036=function(_0xe036ce,_0x5df7f0){_0xe036ce=_0xe036ce-0x10f;var _0x275624=_0x2889ed[_0xe036ce];return _0x275624;},_0xe036(_0x56af6c,_0x11eebc);}export*from'./NodeIKernelRobotListener';function _0x2889(){var _0xbfa6a7=['6051726yrPHUK','1499760vxRyol','2mXQiUe','833994aIbiRf','1410108AWYPXn','1366605DccmOd','172622npSgIm','2404TxBQMj','2007qZLHDl'];_0x2889=function(){return _0xbfa6a7;};return _0x2889();}export*from'./NodeIKernelTicketListener';export*from'./NodeIKernelStorageCleanListener';export*from'./NodeIKernelFileAssistantListener';
|
@@ -2,7 +2,7 @@ export interface NodeIKernelAvatarService {
|
||||
addAvatarListener(arg: unknown): unknown;
|
||||
removeAvatarListener(arg: unknown): unknown;
|
||||
getAvatarPath(arg1: unknown, arg2: unknown): unknown;
|
||||
forceDownloadAvatar(uid: string, unknown: boolean): Promise<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,9 +45,9 @@ 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;
|
||||
@@ -61,9 +61,16 @@ export interface NodeIKernelGroupService {
|
||||
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,14 +1,29 @@
|
||||
import { GetFileListParam } from "../entities";
|
||||
import { GeneralCallResult } from "./common";
|
||||
export interface NodeIKernelRichMediaService {
|
||||
getVideoPlayUrl(arg1: unknown, arg2: unknown, arg3: unknown, arg4: unknown, arg5: unknown): unknown;
|
||||
getVideoPlayUrlV2(arg1: unknown, arg2: unknown, arg3: unknown, arg4: unknown, arg5: unknown): unknown;
|
||||
getRichMediaFileDir(arg1: unknown, arg2: unknown, arg3: unknown): unknown;
|
||||
getVideoPlayUrlInVisit(arg: unknown): unknown;
|
||||
isFileExpired(arg: unknown): unknown;
|
||||
deleteGroupFolder(GroupCode: string, FolderId: string): Promise<GeneralCallResult & {
|
||||
groupFileCommonResult: {
|
||||
retCode: number;
|
||||
retMsg: string;
|
||||
clientWording: string;
|
||||
};
|
||||
}>;
|
||||
downloadRichMediaInVisit(arg: unknown): unknown;
|
||||
downloadFileForModelId(arg1: unknown, arg2: unknown, arg3: unknown): unknown;
|
||||
downloadFileForFileUuid(arg1: unknown, arg2: unknown, arg3: unknown): unknown;
|
||||
downloadFileByUrlListtransgroupfile(arg1: unknown, arg2: unknown): unknown;
|
||||
downloadFileForFileInfotransgroupfile(arg1: unknown, arg2: unknown): unknown;
|
||||
createGroupFolder(GroupCode: string, FolderName: string): Promise<GeneralCallResult & {
|
||||
resultWithGroupItem: {
|
||||
result: any;
|
||||
groupItem: Array<any>;
|
||||
};
|
||||
}>;
|
||||
downloadFile(arg1: unknown, arg2: unknown, arg3: unknown, arg4: unknown): unknown;
|
||||
createGroupFoldertransgroupfile(arg1: unknown, arg2: unknown): unknown;
|
||||
downloadGroupFolder(arg1: unknown, arg2: unknown, arg3: unknown): unknown;
|
||||
@@ -19,6 +34,16 @@ export interface NodeIKernelRichMediaService {
|
||||
cancelUrlDownload(arg: unknown): unknown;
|
||||
updateOnlineVideoElemStatus(arg: unknown): unknown;
|
||||
getGroupSpace(arg: unknown): unknown;
|
||||
getGroupFileList(groupCode: string, params: GetFileListParam): Promise<GeneralCallResult & {
|
||||
groupSpaceResult: {
|
||||
retCode: number;
|
||||
retMsg: string;
|
||||
clientWording: string;
|
||||
totalSpace: number;
|
||||
usedSpace: number;
|
||||
allUpload: boolean;
|
||||
};
|
||||
}>;
|
||||
getGroupFileInfotransgroupfile(arg1: unknown, arg2: unknown): unknown;
|
||||
getGroupFileListtransgroupfile(arg1: unknown, arg2: unknown): unknown;
|
||||
getGroupTransferListtransgroupfile(arg1: unknown, arg2: unknown): unknown;
|
||||
@@ -26,10 +51,21 @@ export interface NodeIKernelRichMediaService {
|
||||
moveGroupFile(arg1: unknown, arg2: unknown, arg3: unknown, arg4: unknown, arg5: unknown): unknown;
|
||||
transGroupFile(arg1: unknown, arg2: unknown): unknown;
|
||||
searchGroupFileByWord(arg1: unknown, arg2: unknown, arg3: unknown, arg4: unknown, arg5: unknown): unknown;
|
||||
deleteGroupFile(arg1: unknown, arg2: unknown, arg3: unknown): unknown;
|
||||
deleteGroupFile(GroupCode: string, params: Array<number>, Files: Array<string>): Promise<GeneralCallResult & {
|
||||
transGroupFileResult: {
|
||||
result: any;
|
||||
successFileIdList: Array<any>;
|
||||
failFileIdList: Array<any>;
|
||||
};
|
||||
}>;
|
||||
translateEnWordToZn(words: string[]): Promise<GeneralCallResult & {
|
||||
words: string[];
|
||||
}>;
|
||||
getScreenOCR(arg: unknown): unknown;
|
||||
translateEnWordToZn(arg: unknown): unknown;
|
||||
batchGetGroupFileCount(arg: unknown): unknown;
|
||||
batchGetGroupFileCount(Gids: Array<string>): Promise<GeneralCallResult & {
|
||||
groupCodes: Array<string>;
|
||||
groupFileCounts: Array<number>;
|
||||
}>;
|
||||
queryPicDownloadSize(arg: unknown): unknown;
|
||||
searchGroupFiletransgroupfile(arg1: unknown, arg2: unknown): unknown;
|
||||
searchMoreGroupFile(arg: unknown): unknown;
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user