mirror of
https://github.com/NapNeko/NapCatQQ.git
synced 2025-07-19 12:03:37 +00:00
Compare commits
127 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
914136b750 | ||
![]() |
f9a60795f5 | ||
![]() |
19640927c7 | ||
![]() |
22faac7e36 | ||
![]() |
30d260ab32 | ||
![]() |
115120d066 | ||
![]() |
1327844736 | ||
![]() |
29904f3cb7 | ||
![]() |
50395594b7 | ||
![]() |
9360af88b3 | ||
![]() |
376370336c | ||
![]() |
70df6e3302 | ||
![]() |
0a1fc2dc12 | ||
![]() |
9857f6e437 | ||
![]() |
56d6ebe916 | ||
![]() |
81134ea2d4 | ||
![]() |
a9f3e7fc54 | ||
![]() |
eb84e2f8c9 | ||
![]() |
61cfa0e86d | ||
![]() |
0a01b8ade9 | ||
![]() |
1457efa9a4 | ||
![]() |
fa5c7add7a | ||
![]() |
d644eba4d1 | ||
![]() |
9c422c1a8f | ||
![]() |
b6db37202f | ||
![]() |
4ca3891089 | ||
![]() |
4c7ed01776 | ||
![]() |
45c922c377 | ||
![]() |
f854c258bd | ||
![]() |
a643fac073 | ||
![]() |
861f105bea | ||
![]() |
bf10ce9f1e | ||
![]() |
ccf521d0a8 | ||
![]() |
6075d98eaa | ||
![]() |
a3801fc243 | ||
![]() |
a1f0c05f3a | ||
![]() |
a568c96929 | ||
![]() |
d58bcf3c0e | ||
![]() |
985f2e6436 | ||
![]() |
ad441fa793 | ||
![]() |
316300cc86 | ||
![]() |
5c4f37b234 | ||
![]() |
77b51a072d | ||
![]() |
2536e1ae6a | ||
![]() |
14822c9599 | ||
![]() |
e53c37adc9 | ||
![]() |
c37539354c | ||
![]() |
ae0277f33c | ||
![]() |
b863896249 | ||
![]() |
5b42f8b743 | ||
![]() |
3883fab614 | ||
![]() |
61d6bcec4b | ||
![]() |
3b5902b033 | ||
![]() |
3a88c21a3b | ||
![]() |
91a5055dee | ||
![]() |
7befd1469f | ||
![]() |
c72ebe495c | ||
![]() |
19e06b97e6 | ||
![]() |
7519825303 | ||
![]() |
d9315bf309 | ||
![]() |
8c36c809a0 | ||
![]() |
8138aa3cb2 | ||
![]() |
87aef3ca78 | ||
![]() |
a3f1d26d6b | ||
![]() |
06cebc5670 | ||
![]() |
867fd62d77 | ||
![]() |
650cdf2916 | ||
![]() |
ebf461f2fd | ||
![]() |
27fa319b2a | ||
![]() |
d95ac894f4 | ||
![]() |
ae84a8dd11 | ||
![]() |
2fc963f986 | ||
![]() |
be1f938ebd | ||
![]() |
cccf4d503d | ||
![]() |
9dad2a8ac6 | ||
![]() |
75af104f07 | ||
![]() |
76ecba245b | ||
![]() |
3697c2ced8 | ||
![]() |
b9d1d84716 | ||
![]() |
64b2d547ce | ||
![]() |
d8d2ff7e4e | ||
![]() |
8aa5dc6482 | ||
![]() |
474ba20e61 | ||
![]() |
bdea2d02a9 | ||
![]() |
c4307481f1 | ||
![]() |
b8ac1b28bd | ||
![]() |
24038cda95 | ||
![]() |
86c82e9608 | ||
![]() |
daab5d150b | ||
![]() |
9ff82bdb90 | ||
![]() |
c6d70ef1cf | ||
![]() |
15d4bb3c76 | ||
![]() |
3e698981fd | ||
![]() |
9d45c934a5 | ||
![]() |
c2bf9cf93e | ||
![]() |
b3c6fd7f26 | ||
![]() |
ccd155de71 | ||
![]() |
1f90d2e46b | ||
![]() |
4c5d974c22 | ||
![]() |
392eda1cbc | ||
![]() |
a9da3279e8 | ||
![]() |
1ce8351180 | ||
![]() |
96c334478a | ||
![]() |
f1b0875b05 | ||
![]() |
cea9e11c83 | ||
![]() |
f098b39200 | ||
![]() |
012d948b59 | ||
![]() |
3334cd0a71 | ||
![]() |
d63d53fd88 | ||
![]() |
a7fa39b2fd | ||
![]() |
40bb42e193 | ||
![]() |
9c382c639b | ||
![]() |
a43cde38f1 | ||
![]() |
c35d2e08cd | ||
![]() |
3377c383c1 | ||
![]() |
c00e6d95cd | ||
![]() |
725fccf4ed | ||
![]() |
13129bd219 | ||
![]() |
4561977bcf | ||
![]() |
40be8a91f5 | ||
![]() |
2a04d5830b | ||
![]() |
82a38574f3 | ||
![]() |
fea3a33c2b | ||
![]() |
9a502cdf6f | ||
![]() |
4b616299cf | ||
![]() |
102243e064 | ||
![]() |
4b21ac5ebe |
@@ -1,21 +1,21 @@
|
||||
# EditorConfig is awesome: https://EditorConfig.org
|
||||
|
||||
# top-most EditorConfig file
|
||||
root = true
|
||||
|
||||
# Unix-style newlines with a newline ending every file
|
||||
[*]
|
||||
end_of_line = lf|crlf
|
||||
insert_final_newline = true
|
||||
|
||||
# Matches multiple files with brace expansion notation
|
||||
# Set default charset
|
||||
charset = utf-8
|
||||
|
||||
# 2 space indentation
|
||||
[*.{cjs,mjs,js,jsx,ts,tsx,css,scss,sass,html,json}]
|
||||
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.
|
||||
# EditorConfig is awesome: https://EditorConfig.org
|
||||
|
||||
# top-most EditorConfig file
|
||||
root = true
|
||||
|
||||
# Unix-style newlines with a newline ending every file
|
||||
[*]
|
||||
end_of_line = lf
|
||||
insert_final_newline = true
|
||||
|
||||
# Matches multiple files with brace expansion notation
|
||||
# Set default charset
|
||||
charset = utf-8
|
||||
|
||||
# 2 space indentation
|
||||
[*.{cjs,mjs,js,jsx,ts,tsx,css,scss,sass,html,json}]
|
||||
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.
|
||||
|
4
.github/workflows/build.yml
vendored
4
.github/workflows/build.yml
vendored
@@ -1,4 +1,4 @@
|
||||
name: "Build"
|
||||
name: "Build Action"
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
@@ -47,7 +47,7 @@ jobs:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
target_platform: [win32]
|
||||
target_arch: [x64]
|
||||
target_arch: [x64,ia32]
|
||||
steps:
|
||||
- name: Clone Main Repository
|
||||
uses: actions/checkout@v4
|
||||
|
5
.github/workflows/release.yml
vendored
5
.github/workflows/release.yml
vendored
@@ -1,4 +1,4 @@
|
||||
name: "release"
|
||||
name: "Build Release"
|
||||
|
||||
on:
|
||||
push:
|
||||
@@ -72,7 +72,7 @@ jobs:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
target_platform: [win32]
|
||||
target_arch: [x64]
|
||||
target_arch: [x64,ia32]
|
||||
steps:
|
||||
- name: Clone Main Repository
|
||||
uses: actions/checkout@v4
|
||||
@@ -130,6 +130,7 @@ jobs:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
body_path: CHANGELOG.md
|
||||
files: |
|
||||
NapCat.win32.ia32.zip
|
||||
NapCat.win32.x64.zip
|
||||
NapCat.linux.x64.zip
|
||||
NapCat.linux.arm64.zip
|
||||
|
69
.github/workflows/test.yml
vendored
Normal file
69
.github/workflows/test.yml
vendored
Normal file
@@ -0,0 +1,69 @@
|
||||
name: "Build Test"
|
||||
on:
|
||||
workflow_dispatch:
|
||||
|
||||
permissions: write-all
|
||||
|
||||
jobs:
|
||||
build-linux:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
target_platform: [linux]
|
||||
target_arch: [x64, arm64]
|
||||
steps:
|
||||
- name: Clone Main Repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
repository: 'NapNeko/NapCatQQ'
|
||||
submodules: true
|
||||
ref: main
|
||||
token: ${{ secrets.NAPCAT_BUILD }}
|
||||
- name: Use Node.js 20.X
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 20.x
|
||||
- name: Build NuCat Linux
|
||||
run: |
|
||||
npm i --arch=${{ matrix.target_arch }} --platform=${{ matrix.target_platform }}
|
||||
npm run build:prod
|
||||
cd dist
|
||||
npm i --omit=dev --arch=${{ matrix.target_arch }} --platform=${{ matrix.target_platform }}
|
||||
cd ..
|
||||
- name: Upload Artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: NapCat.${{ matrix.target_platform }}.${{ matrix.target_arch }}
|
||||
path: dist
|
||||
build-win32:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
target_platform: [win32]
|
||||
target_arch: [x64,ia32]
|
||||
steps:
|
||||
- name: Clone Main Repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
repository: 'NapNeko/NapCatQQ'
|
||||
submodules: true
|
||||
ref: main
|
||||
token: ${{ secrets.NAPCAT_BUILD }}
|
||||
- name: Use Node.js 20.X
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 20.x
|
||||
- name: Build NuCat Linux
|
||||
run: |
|
||||
npm i --arch=${{ matrix.target_arch }} --platform=${{ matrix.target_platform }}
|
||||
npm run build:prod
|
||||
cd dist
|
||||
npm i --omit=dev --arch=${{ matrix.target_arch }} --platform=${{ matrix.target_platform }}
|
||||
cd ..
|
||||
- name: Upload Artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: NapCat.${{ matrix.target_platform }}.${{ matrix.target_arch }}
|
||||
path: dist
|
4
.gitmodules
vendored
4
.gitmodules
vendored
@@ -1,4 +0,0 @@
|
||||
[submodule "src/core"]
|
||||
path = src/core
|
||||
url = https://github.com/NapNeko/core.git
|
||||
branch = master
|
18
docs/changelogs/CHANGELOG.v1.6.5.md
Normal file
18
docs/changelogs/CHANGELOG.v1.6.5.md
Normal file
@@ -0,0 +1,18 @@
|
||||
# v1.6.5
|
||||
|
||||
QQ Version: Windows 9.9.12-26000 / Linux 3.2.9-26000
|
||||
## 使用前警告
|
||||
1. 在最近版本由于QQ本体大幅变动,为了保证NapCat可用性,NapCat近期启动与安装方式将将大幅变动,请关注文档和社群获取。
|
||||
2. 在Core上完全执行开源,请不要用于违法用途,如此可能造成NapCat完全停止更新。
|
||||
3. 针对原启动方式的围堵,NapCat研发了多种方式,除此其余理论与扩展的分析和思路将部分展示于Docs,以便各位参与开发与维护NapCat。
|
||||
## 其余·备注
|
||||
启动方式: WayBoot.03 (Electron Main进程为Node 直接注入代码 同理项目: LiteLoader)
|
||||
|
||||
## 修复与优化
|
||||
1. 优化了WrapperNative载入代码
|
||||
2. 优化缓存
|
||||
|
||||
## 新增与调整
|
||||
没有哦
|
||||
|
||||
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)
|
13
docs/changelogs/old/CHANGELOG.v1.5.2.md
Normal file
13
docs/changelogs/old/CHANGELOG.v1.5.2.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# v1.5.2
|
||||
|
||||
QQ Version: Windows 9.9.10-24108 / Linux 3.2.7-23361
|
||||
|
||||
## 修复与优化
|
||||
* 替换Uid/Uin为内部实现
|
||||
* 增加HttpApi调用稳定性
|
||||
* 修复 GetMsg 兼容性
|
||||
|
||||
## 新增与调整
|
||||
* 支持真正意义上的陌生人信息获取 Api: GoCQHTTP_GetStrangerInfo
|
||||
|
||||
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)
|
15
docs/changelogs/old/CHANGELOG.v1.5.3.md
Normal file
15
docs/changelogs/old/CHANGELOG.v1.5.3.md
Normal file
@@ -0,0 +1,15 @@
|
||||
# v1.5.3
|
||||
|
||||
QQ Version: Windows 9.9.11-24568 / Linux 3.2.9-23568
|
||||
|
||||
## 修复与优化
|
||||
* 修复引用消息id问题
|
||||
* 修复添加好友的通知
|
||||
|
||||
## 新增与调整
|
||||
* 扩展群分享Json生成
|
||||
* 扩展关于收藏的一系列接口
|
||||
* 支持专属群头衔获取
|
||||
* 支持视频获取直链
|
||||
|
||||
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)
|
11
docs/changelogs/old/CHANGELOG.v1.5.4.md
Normal file
11
docs/changelogs/old/CHANGELOG.v1.5.4.md
Normal file
@@ -0,0 +1,11 @@
|
||||
# v1.5.4
|
||||
|
||||
QQ Version: Windows 9.9.11-24568 / Linux 3.2.9-23568
|
||||
|
||||
## 修复与优化
|
||||
* 紧急修复视频与文件问题
|
||||
|
||||
## 新增与调整
|
||||
|
||||
|
||||
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)
|
11
docs/changelogs/old/CHANGELOG.v1.5.5.md
Normal file
11
docs/changelogs/old/CHANGELOG.v1.5.5.md
Normal file
@@ -0,0 +1,11 @@
|
||||
# v1.5.5
|
||||
|
||||
QQ Version: Windows 9.9.11-24568 / Linux 3.2.9-23568
|
||||
|
||||
## 修复与优化
|
||||
* 紧急修复一些问题
|
||||
|
||||
## 新增与调整
|
||||
|
||||
|
||||
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)
|
11
docs/changelogs/old/CHANGELOG.v1.5.6.md
Normal file
11
docs/changelogs/old/CHANGELOG.v1.5.6.md
Normal file
@@ -0,0 +1,11 @@
|
||||
# v1.5.6
|
||||
|
||||
QQ Version: Windows 9.9.11-24568 / Linux 3.2.9-24568
|
||||
|
||||
## 修复与优化
|
||||
* 修复一些问题
|
||||
|
||||
## 新增与调整
|
||||
|
||||
|
||||
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)
|
11
docs/changelogs/old/CHANGELOG.v1.5.7.md
Normal file
11
docs/changelogs/old/CHANGELOG.v1.5.7.md
Normal file
@@ -0,0 +1,11 @@
|
||||
# v1.5.7
|
||||
|
||||
QQ Version: Windows 9.9.11-24568 / Linux 3.2.9-24568
|
||||
|
||||
## 修复与优化
|
||||
* 修复一些问题
|
||||
|
||||
## 新增与调整
|
||||
|
||||
|
||||
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)
|
14
docs/changelogs/old/CHANGELOG.v1.5.8.md
Normal file
14
docs/changelogs/old/CHANGELOG.v1.5.8.md
Normal file
@@ -0,0 +1,14 @@
|
||||
# v1.5.8
|
||||
|
||||
QQ Version: Windows 9.9.11-24568 / Linux 3.2.9-24568
|
||||
|
||||
## 修复与优化
|
||||
* 修复视频文件残留问题
|
||||
* 重构 getcookies接口 支持大部分常见域
|
||||
|
||||
## 新增与调整
|
||||
* 日志大小限制
|
||||
* 支持 QQ音乐 卡片 无签名支持时 启用内置方法(缺点没有封面 限速1min/条)
|
||||
* 支持Window X86-32机器
|
||||
|
||||
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)
|
12
docs/changelogs/old/CHANGELOG.v1.5.9.md
Normal file
12
docs/changelogs/old/CHANGELOG.v1.5.9.md
Normal file
@@ -0,0 +1,12 @@
|
||||
# v1.5.9
|
||||
|
||||
QQ Version: Windows 9.9.11-24815 / Linux 3.2.9-24815
|
||||
|
||||
## 修复与优化
|
||||
* 优化缓存问题
|
||||
* 修复poke异常上报
|
||||
|
||||
## 新增与调整
|
||||
|
||||
|
||||
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)
|
11
docs/changelogs/old/CHANGELOG.v1.6.0.md
Normal file
11
docs/changelogs/old/CHANGELOG.v1.6.0.md
Normal file
@@ -0,0 +1,11 @@
|
||||
# v1.6.0
|
||||
|
||||
QQ Version: Windows 9.9.11-24815 / Linux 3.2.9-24815
|
||||
|
||||
## 修复与优化
|
||||
|
||||
|
||||
## 新增与调整
|
||||
* 新增图片subtype属性 区分表情图片与商城图片
|
||||
|
||||
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)
|
11
docs/changelogs/old/CHANGELOG.v1.6.1.md
Normal file
11
docs/changelogs/old/CHANGELOG.v1.6.1.md
Normal file
@@ -0,0 +1,11 @@
|
||||
# v1.6.1
|
||||
|
||||
QQ Version: Windows 9.9.11-24815 / Linux 3.2.9-24815
|
||||
|
||||
## 修复与优化
|
||||
|
||||
|
||||
## 新增与调整
|
||||
* 修复poke异常事件
|
||||
|
||||
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)
|
13
docs/changelogs/old/CHANGELOG.v1.6.2.md
Normal file
13
docs/changelogs/old/CHANGELOG.v1.6.2.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# v1.6.2
|
||||
|
||||
QQ Version: Windows 9.9.11-24815 / Linux 3.2.9-24815
|
||||
|
||||
## 修复与优化
|
||||
* 修复获取Cookies异常崩溃问题
|
||||
* 尝试修复成员退群缓存问题
|
||||
* 修复自身退群后群缓存清理问题
|
||||
|
||||
## 新增与调整
|
||||
|
||||
|
||||
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)
|
13
docs/changelogs/old/CHANGELOG.v1.6.3.md
Normal file
13
docs/changelogs/old/CHANGELOG.v1.6.3.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# v1.6.3
|
||||
|
||||
QQ Version: Windows 9.9.11-24815 / Linux 3.2.9-24815
|
||||
|
||||
## 修复与优化
|
||||
* 修复带有groupid的私聊消息异常发送到群聊消息
|
||||
* 尝试修复rws热重载失效问题
|
||||
* 尝试修复进群事件无法正常获取uin
|
||||
|
||||
## 新增与调整
|
||||
|
||||
|
||||
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)
|
18
docs/changelogs/old/CHANGELOG.v1.6.4.md
Normal file
18
docs/changelogs/old/CHANGELOG.v1.6.4.md
Normal file
@@ -0,0 +1,18 @@
|
||||
# v1.6.4
|
||||
|
||||
QQ Version: Windows 9.9.12-26000 / Linux 3.2.9-26000
|
||||
## 使用前警告
|
||||
1. 在最近版本由于QQ本体大幅变动,为了保证NapCat可用性,NapCat近期启动与安装方式将将大幅变动,请关注文档和社群获取。
|
||||
2. 在Core上完全执行开源,请不要用于违法用途,如此可能造成NapCat完全停止更新。
|
||||
3. 针对原启动方式的围堵,NapCat研发了多种方式,除此其余理论与扩展的分析和思路将部分展示于Docs,以便各位参与开发与维护NapCat。
|
||||
## 其余·备注
|
||||
启动方式: WayBoot.03 (Electron Main进程为Node 直接注入代码 同理项目: LiteLoader)
|
||||
|
||||
## 修复与优化
|
||||
1. 支持Win平台 9.9.12
|
||||
2. 修复部分发送图片下载异常情况
|
||||
|
||||
## 新增与调整
|
||||
没有哦
|
||||
|
||||
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)
|
2
docs/develop/Android.md
Normal file
2
docs/develop/Android.md
Normal file
@@ -0,0 +1,2 @@
|
||||
# 开始
|
||||
jadx 跳转于 `com.tencent.qqnt.kernel.*`
|
42
docs/develop/GetMemberExt.md
Normal file
42
docs/develop/GetMemberExt.md
Normal file
@@ -0,0 +1,42 @@
|
||||
# Android
|
||||
```java
|
||||
GroupMemberExtReq groupMemberExtReq = new GroupMemberExtReq();
|
||||
groupMemberExtReq.sourceType = MemberExtSourceType.TITLETYPE.ordinal();
|
||||
groupMemberExtReq.groupCode = longOrNull.longValue();
|
||||
groupMemberExtReq.beginUin = "0";
|
||||
groupMemberExtReq.dataTime = "0";
|
||||
Long[] lArr = new Long[1];
|
||||
AppInterface a2 = dVar.a();
|
||||
lArr[0] = Long.valueOf(a2 != null ? a2.getLongAccountUin() : 0L);
|
||||
arrayListOf = CollectionsKt__CollectionsKt.arrayListOf(lArr);
|
||||
groupMemberExtReq.uinList = arrayListOf;
|
||||
MemberExtInfoFilter memberExtInfoFilter = new MemberExtInfoFilter();
|
||||
memberExtInfoFilter.memberLevelInfoUin = 1;
|
||||
memberExtInfoFilter.memberLevelInfoPoint = 1;
|
||||
memberExtInfoFilter.memberLevelInfoActiveDay = 1;
|
||||
memberExtInfoFilter.memberLevelInfoLevel = 1;
|
||||
memberExtInfoFilter.levelName = 1;
|
||||
memberExtInfoFilter.dataTime = 1;
|
||||
memberExtInfoFilter.sysShowFlag = 1;
|
||||
memberExtInfoFilter.userShowFlag = 1;
|
||||
memberExtInfoFilter.userShowFlagNew = 1;
|
||||
memberExtInfoFilter.levelNameNew = 1;
|
||||
Unit unit = Unit.INSTANCE;
|
||||
groupMemberExtReq.memberExtFilter = memberExtInfoFilter;
|
||||
troopLevelFrequencyControl.f(troopUin, new TroopListRepo$fetchTroopLevelInfo$2(b2, groupMemberExtReq, troopUin, new com.tencent.qqnt.troopmemberlist.report.c("fetchTroopLevelInfo")));
|
||||
```
|
||||
# Win
|
||||
参数解析位于 sub_181456A10(24108) -> wrapper.node(24108)+1456A10
|
||||
IGroupService.GetMemberExt(param: object);
|
||||
param展开如下
|
||||
```
|
||||
groupCode string
|
||||
beginUin string
|
||||
dataTime string
|
||||
uinList Array<string>
|
||||
uinNum string
|
||||
groupType string
|
||||
richCardNameVer string
|
||||
sourceType number
|
||||
memberExtFilter object// 参数解析位于 sub_18145A6D0(24108) -> wrapper.node(24108)+145A6D0
|
||||
```
|
48
docs/develop/Image.NTAndroid.md
Normal file
48
docs/develop/Image.NTAndroid.md
Normal file
@@ -0,0 +1,48 @@
|
||||
public static final int C2C_PIC_DOWNLOAD = 1004;
|
||||
public static final String C2C_PIC_DOWNLOAD_DOMAIN = "c2cpicdw.qpic.cn";
|
||||
public static final String C2C_PIC_DOWNLOAD_QUIC_DOMAIN = "c2cpicdw.quic.qpic.cn";
|
||||
public static final int FLAG_NOT_UPLOAD = 3;
|
||||
public static final int FLAG_UPLOADINFO_ERROR = 4;
|
||||
public static final int GROUP_PIC_DOWNLOAD = 1000;
|
||||
public static final String GROUP_PIC_DOWNLOAD_DOMAIN = "gchat.qpic.cn";
|
||||
public static final String GROUP_PIC_DOWNLOAD_QUIC_DOMAIN = "gchat.quic.qpic.cn";
|
||||
public static final String GUILD_PIC_DOWNLOAD_DOMAIN = "gchat.qpic.cn/qmeetpic";
|
||||
public static final boolean NEW_STORE_FLAG = true;
|
||||
public static final String PTT_VIDEO_DOWNLOAD_DOMAIN = "grouptalk.c2c.qq.com";
|
||||
|
||||
protected static final int AVIF_DECODE_EXCEPTION = 4;
|
||||
protected static final int AVIF_DECODE_FAIL = 1;
|
||||
protected static final int AVIF_DECODE_FAIL_SO_FAIL = 2;
|
||||
protected static final int AVIF_DECODE_FAIL_UNKNOWN = 6;
|
||||
protected static final int AVIF_DECODE_FILETYPE_ERROR = 5;
|
||||
protected static final int AVIF_DECODE_OOM = 3;
|
||||
protected static final int AVIF_DECODE_RENAME_FAIL = 7;
|
||||
protected static final int AVIF_DECODE_SUC = 0;
|
||||
public static final String AVIF_FILE_SUFFIX = ".avif";
|
||||
public static final int AVIF_REQ_APPRUNTIME_NULL = 12;
|
||||
public static final int AVIF_REQ_CODEC_UNSURPPORT = 5;
|
||||
protected static final int AVIF_REQ_DENSITY_UNSURPPORT = 10;
|
||||
protected static final int AVIF_REQ_FLASH_PHOTO = 9;
|
||||
protected static final int AVIF_REQ_HAS_TMP_AVIF = 7;
|
||||
protected static final int AVIF_REQ_INVALID_MSG_RECORD = 2;
|
||||
protected static final int AVIF_REQ_IS_RAW_PHOTO = 3;
|
||||
protected static final int AVIF_REQ_OUTPUTSTREAM_UNSURPPORT = 11;
|
||||
protected static final int AVIF_REQ_OVERSIZE = 6;
|
||||
protected static final int AVIF_REQ_RETRY = 1;
|
||||
public static final int AVIF_REQ_SO_DOWNLOAD_FAILED = 8;
|
||||
protected static final int AVIF_REQ_SUC = 0;
|
||||
public static final int AVIF_REQ_SWITCH_CLOSE = 4;
|
||||
public static final String C2C_PIC_DOWNLOAD_ERROR_CODE = "C2CPicDownloadErrorCode";
|
||||
static final int DOWNLOAD_ST_COMPLETE = 1;
|
||||
static final int DOWNLOAD_ST_HEAD = 2;
|
||||
static final int DOWNLOAD_ST_LEFT = 4;
|
||||
static final int DOWNLOAD_ST_PART = 3;
|
||||
private static final int ENCRYPT_APPID = 1600000226;
|
||||
public static final String GROUP_PIC_DOWNLOAD_ERROR_CODE = "GroupPicDownloadErrorCode";
|
||||
public static final String KEY_PIC_DOWNLOAD_ERROR_CODE = "param_detail_code";
|
||||
protected static final int QUIC_FAIL_IP_LIST_EMPTY = 1;
|
||||
protected static final int QUIC_FAIL_REQUEST_HTTPS = 3;
|
||||
protected static final int QUIC_FAIL_REQUEST_QUIC = 2;
|
||||
protected static final int QUIC_FAIL_SO_LOAD = 4;
|
||||
public static final String REPORT_TAG_DIRECT_DOWNLOAD_FAIL = "report_direct_download_fail";
|
||||
public static final String REQ_PARAM_AVIF = "tp=avif";
|
444
docs/develop/Msg常量NTAndroid.md
Normal file
444
docs/develop/Msg常量NTAndroid.md
Normal file
@@ -0,0 +1,444 @@
|
||||
```java
|
||||
MsgConstant
|
||||
int ARKSTRUCTELEMENTSUBTYPETENCENTDOCFROMMINIAPP = 1;
|
||||
int ARKSTRUCTELEMENTSUBTYPETENCENTDOCFROMPLUSPANEL = 2;
|
||||
int ARKSTRUCTELEMENTSUBTYPEUNKNOWN = 0;
|
||||
int ATTYPEALL = 1;
|
||||
int ATTYPECATEGORY = 512;
|
||||
int ATTYPECHANNEL = 16;
|
||||
int ATTYPEME = 4;
|
||||
int ATTYPEONE = 2;
|
||||
int ATTYPEONLINE = 64;
|
||||
int ATTYPEROLE = 8;
|
||||
int ATTYPESUMMON = 32;
|
||||
int ATTYPESUMMONONLINE = 128;
|
||||
int ATTYPESUMMONROLE = 256;
|
||||
int ATTYPEUNKNOWN = 0;
|
||||
int CALENDARELEMSUBTYPECOMMON = 3;
|
||||
int CALENDARELEMSUBTYPESTRONG = 1;
|
||||
int CALENDARELEMSUBTYPEUNKNOWN = 0;
|
||||
int CALENDARELEMSUBTYPEWEAK = 2;
|
||||
int FACEBUBBLEELEMSUBTYPENORMAL = 1;
|
||||
int FACEBUBBLEELEMSUBTYPEUNKNOWN = 0;
|
||||
int FETCHLONGMSGERRCODEMSGEXPIRED = 196;
|
||||
int FILEELEMENTSUBTYPEAI = 16;
|
||||
int FILEELEMENTSUBTYPEAPP = 11;
|
||||
int FILEELEMENTSUBTYPEAUDIO = 3;
|
||||
int FILEELEMENTSUBTYPEDOC = 4;
|
||||
int FILEELEMENTSUBTYPEEMOTICON = 15;
|
||||
int FILEELEMENTSUBTYPEEXCEL = 6;
|
||||
int FILEELEMENTSUBTYPEFOLDER = 13;
|
||||
int FILEELEMENTSUBTYPEHTML = 10;
|
||||
int FILEELEMENTSUBTYPEIPA = 14;
|
||||
int FILEELEMENTSUBTYPENORMAL = 0;
|
||||
int FILEELEMENTSUBTYPEPDF = 7;
|
||||
int FILEELEMENTSUBTYPEPIC = 1;
|
||||
int FILEELEMENTSUBTYPEPPT = 5;
|
||||
int FILEELEMENTSUBTYPEPSD = 12;
|
||||
int FILEELEMENTSUBTYPETXT = 8;
|
||||
int FILEELEMENTSUBTYPEVIDEO = 2;
|
||||
int FILEELEMENTSUBTYPEZIP = 9;
|
||||
int GRAYTIPELEMENTSUBTYPEAIOOP = 15;
|
||||
int GRAYTIPELEMENTSUBTYPEBLOCK = 14;
|
||||
int GRAYTIPELEMENTSUBTYPEBUDDY = 5;
|
||||
int GRAYTIPELEMENTSUBTYPEBUDDYNOTIFY = 9;
|
||||
int GRAYTIPELEMENTSUBTYPEEMOJIREPLY = 3;
|
||||
int GRAYTIPELEMENTSUBTYPEESSENCE = 7;
|
||||
int GRAYTIPELEMENTSUBTYPEFEED = 6;
|
||||
int GRAYTIPELEMENTSUBTYPEFEEDCHANNELMSG = 11;
|
||||
int GRAYTIPELEMENTSUBTYPEFILE = 10;
|
||||
int GRAYTIPELEMENTSUBTYPEGROUP = 4;
|
||||
int GRAYTIPELEMENTSUBTYPEGROUPNOTIFY = 8;
|
||||
int GRAYTIPELEMENTSUBTYPEJSON = 17;
|
||||
int GRAYTIPELEMENTSUBTYPELOCALMSG = 13;
|
||||
int GRAYTIPELEMENTSUBTYPEPROCLAMATION = 2;
|
||||
int GRAYTIPELEMENTSUBTYPEREVOKE = 1;
|
||||
int GRAYTIPELEMENTSUBTYPEUNKNOWN = 0;
|
||||
int GRAYTIPELEMENTSUBTYPEWALLET = 16;
|
||||
int GRAYTIPELEMENTSUBTYPEXMLMSG = 12;
|
||||
int INLINEKEYBOARDBUTTONRENDERSTYLEBLUEBLACKGROUND = 4;
|
||||
int INLINEKEYBOARDBUTTONRENDERSTYLEBLUEBORDER = 1;
|
||||
int INLINEKEYBOARDBUTTONRENDERSTYLEGRAYBORDER = 0;
|
||||
int INLINEKEYBOARDBUTTONRENDERSTYLENOBORDER = 2;
|
||||
int INLINEKEYBOARDBUTTONRENDERSTYLEREDCHARACTER = 3;
|
||||
int INPUTSTATUSTYPECANCEL = 2;
|
||||
int INPUTSTATUSTYPESPEAK = 3;
|
||||
int INPUTSTATUSTYPETEXT = 1;
|
||||
int KACTIVITYMSG = 22;
|
||||
int KADDLOCALMSGEXTINFOTYPEPROLOGUEMSG = 1;
|
||||
int KANONYMOUSATMEMSGTYPEINMSGBOX = 1001;
|
||||
int KANONYMOUSFLAGFROMOTHERPEOPLE = 1;
|
||||
int KANONYMOUSFLAGFROMOWN = 2;
|
||||
int KANONYMOUSFLAGINVALID = 0;
|
||||
int KAPPCHANNELMSG = 16;
|
||||
int KATALLMSGTYPEINMSGBOX = 2000;
|
||||
int KATMEMSGTYPEINMSGBOX = 1000;
|
||||
int KATTRIBUTETYPEADELIEMSG = 16;
|
||||
int KATTRIBUTETYPEEXTENDBUSINESS = 13;
|
||||
int KATTRIBUTETYPEFEEDBACKSTATE = 17;
|
||||
int KATTRIBUTETYPEGROUPHONOR = 2;
|
||||
int KATTRIBUTETYPEKINGHONOR = 3;
|
||||
int KATTRIBUTETYPELONGMSG = 8;
|
||||
int KATTRIBUTETYPEMEMORYSTATEMSGINFO = 18;
|
||||
int KATTRIBUTETYPEMSG = 0;
|
||||
int KATTRIBUTETYPEMSGBOXEVENTTYPE = 14;
|
||||
int KATTRIBUTETYPEPERSONAL = 1;
|
||||
int KATTRIBUTETYPEPUBLICACCOUNT = 4;
|
||||
int KATTRIBUTETYPEQQCONNECT = 12;
|
||||
int KATTRIBUTETYPESENDMSGRSPTRANSSVRINFO = 15;
|
||||
int KATTRIBUTETYPESHAREDMSGINFO = 5;
|
||||
int KATTRIBUTETYPETEMPCHATGAMESESSION = 6;
|
||||
int KATTRIBUTETYPETOROBOTMSG = 9;
|
||||
int KATTRIBUTETYPEUININFO = 7;
|
||||
int KATTRIBUTETYPEZPLAN = 11;
|
||||
int KAUTOREPLYTEXTNONEINDEX = -1;
|
||||
int KAVRECORDMSG = 19;
|
||||
int KBUSINESSTYPGUILD = 1;
|
||||
int KBUSINESSTYPNT = 0;
|
||||
int KCHATTYPEADELIE = 42;
|
||||
int KCHATTYPEBUDDYNOTIFY = 5;
|
||||
int KCHATTYPEC2C = 1;
|
||||
int KCHATTYPECIRCLE = 113;
|
||||
int KCHATTYPEDATALINE = 8;
|
||||
int KCHATTYPEDATALINEMQQ = 134;
|
||||
int KCHATTYPEDISC = 3;
|
||||
int KCHATTYPEFAV = 41;
|
||||
int KCHATTYPEGAMEMESSAGE = 105;
|
||||
int KCHATTYPEGAMEMESSAGEFOLDER = 116;
|
||||
int KCHATTYPEGROUP = 2;
|
||||
int KCHATTYPEGROUPBLESS = 133;
|
||||
int KCHATTYPEGROUPGUILD = 9;
|
||||
int KCHATTYPEGROUPHELPER = 7;
|
||||
int KCHATTYPEGROUPNOTIFY = 6;
|
||||
int KCHATTYPEGUILD = 4;
|
||||
int KCHATTYPEGUILDMETA = 16;
|
||||
int KCHATTYPEMATCHFRIEND = 104;
|
||||
int KCHATTYPEMATCHFRIENDFOLDER = 109;
|
||||
int KCHATTYPENEARBY = 106;
|
||||
int KCHATTYPENEARBYASSISTANT = 107;
|
||||
int KCHATTYPENEARBYFOLDER = 110;
|
||||
int KCHATTYPENEARBYHELLOFOLDER = 112;
|
||||
int KCHATTYPENEARBYINTERACT = 108;
|
||||
int KCHATTYPEQQNOTIFY = 132;
|
||||
int KCHATTYPERELATEACCOUNT = 131;
|
||||
int KCHATTYPESERVICEASSISTANT = 118;
|
||||
int KCHATTYPESERVICEASSISTANTSUB = 201;
|
||||
int KCHATTYPESQUAREPUBLIC = 115;
|
||||
int KCHATTYPESUBSCRIBEFOLDER = 30;
|
||||
int KCHATTYPETEMPADDRESSBOOK = 111;
|
||||
int KCHATTYPETEMPBUSSINESSCRM = 102;
|
||||
int KCHATTYPETEMPC2CFROMGROUP = 100;
|
||||
int KCHATTYPETEMPC2CFROMUNKNOWN = 99;
|
||||
int KCHATTYPETEMPFRIENDVERIFY = 101;
|
||||
int KCHATTYPETEMPNEARBYPRO = 119;
|
||||
int KCHATTYPETEMPPUBLICACCOUNT = 103;
|
||||
int KCHATTYPETEMPWPA = 117;
|
||||
int KCHATTYPEUNKNOWN = 0;
|
||||
int KCHATTYPEWEIYUN = 40;
|
||||
int KCOMMONREDENVELOPEMSGTYPEINMSGBOX = 1007;
|
||||
int KDOWNSOURCETYPEAIOINNER = 1;
|
||||
int KDOWNSOURCETYPEBIGSCREEN = 2;
|
||||
int KDOWNSOURCETYPEHISTORY = 3;
|
||||
int KDOWNSOURCETYPEUNKNOWN = 0;
|
||||
int KELEMTYPEACTIVITY = 25;
|
||||
int KELEMTYPEACTIVITYSTATE = 41;
|
||||
int KELEMTYPEACTIVITYSUBTYPECREATEMOBATEAM = 12;
|
||||
int KELEMTYPEACTIVITYSUBTYPEDISBANDMOBATEAM = 11;
|
||||
int KELEMTYPEACTIVITYSUBTYPEFEEDSQUARE = 10001;
|
||||
int KELEMTYPEACTIVITYSUBTYPEFINISHGAME = 16;
|
||||
int KELEMTYPEACTIVITYSUBTYPEFINISHMATCHTEAM = 14;
|
||||
int KELEMTYPEACTIVITYSUBTYPEHOTCHAT = 10000;
|
||||
int KELEMTYPEACTIVITYSUBTYPEMINIGAME = 18;
|
||||
int KELEMTYPEACTIVITYSUBTYPEMUSICPLAY = 17;
|
||||
int KELEMTYPEACTIVITYSUBTYPENEWSMOBA = 9;
|
||||
int KELEMTYPEACTIVITYSUBTYPENOLIVE = 2;
|
||||
int KELEMTYPEACTIVITYSUBTYPENOSCREENSHARE = 7;
|
||||
int KELEMTYPEACTIVITYSUBTYPENOVOICE = 3;
|
||||
int KELEMTYPEACTIVITYSUBTYPEONLIVE = 1;
|
||||
int KELEMTYPEACTIVITYSUBTYPEONSCREENSHARE = 6;
|
||||
int KELEMTYPEACTIVITYSUBTYPEONVOICE = 4;
|
||||
int KELEMTYPEACTIVITYSUBTYPESTARTMATCHTEAM = 13;
|
||||
int KELEMTYPEACTIVITYSUBTYPETARTGAME = 15;
|
||||
int KELEMTYPEACTIVITYSUBTYPEUNKNOWN = 0;
|
||||
int KELEMTYPEADELIEACTIONBAR = 44;
|
||||
int KELEMTYPEADELIERECOMMENDEDMSG = 43;
|
||||
int KELEMTYPEARKSTRUCT = 10;
|
||||
int KELEMTYPEAVRECORD = 21;
|
||||
int KELEMTYPECALENDAR = 19;
|
||||
int KELEMTYPEFACE = 6;
|
||||
int KELEMTYPEFACEBUBBLE = 27;
|
||||
int KELEMTYPEFEED = 22;
|
||||
int KELEMTYPEFILE = 3;
|
||||
int KELEMTYPEGIPHY = 15;
|
||||
int KELEMTYPEGRAYTIP = 8;
|
||||
int KELEMTYPEINLINEKEYBOARD = 17;
|
||||
int KELEMTYPEINTEXTGIFT = 18;
|
||||
int KELEMTYPELIVEGIFT = 12;
|
||||
int KELEMTYPEMARKDOWN = 14;
|
||||
int KELEMTYPEMARKETFACE = 11;
|
||||
int KELEMTYPEMULTIFORWARD = 16;
|
||||
int KELEMTYPEONLINEFILE = 23;
|
||||
int KELEMTYPEPIC = 2;
|
||||
int KELEMTYPEPROLOGUE = 46;
|
||||
int KELEMTYPEPTT = 4;
|
||||
int KELEMTYPEREPLY = 7;
|
||||
int KELEMTYPESHARELOCATION = 28;
|
||||
int KELEMTYPESTRUCTLONGMSG = 13;
|
||||
int KELEMTYPETASKTOPMSG = 29;
|
||||
int KELEMTYPETEXT = 1;
|
||||
int KELEMTYPETOFU = 26;
|
||||
int KELEMTYPEUNKNOWN = 0;
|
||||
int KELEMTYPEVIDEO = 5;
|
||||
int KELEMTYPEWALLET = 9;
|
||||
int KELEMTYPEYOLOGAMERESULT = 20;
|
||||
int KENTERAIO = 1;
|
||||
int KEXITAIO = 2;
|
||||
int KFEEDBACKBUTTONTYPEDISLIKE = 2;
|
||||
int KFEEDBACKBUTTONTYPELIKE = 1;
|
||||
int KFEEDBACKBUTTONTYPEPROMPTCLICK = 5;
|
||||
int KFEEDBACKBUTTONTYPEREGENERATE = 4;
|
||||
int KFEEDBACKBUTTONTYPEUNKNOWN = 0;
|
||||
int KFEEDBACKOPTLIKE = 1;
|
||||
int KFEEDBACKOPTUNKNOWN = 0;
|
||||
int KFEEDBACKOPTUNLIKE = 2;
|
||||
int KFRIENDNEWADDEDMSGTYPEINMSGBOX = 1008;
|
||||
int KGAMEBOXNEWMSGTYPEINMSGBOX = 3000;
|
||||
int KGIFTATMEMSGTYPEINMSGBOX = 1005;
|
||||
int KGROUPFILEATALLMSGTYPEINMSGBOX = 2001;
|
||||
int KGROUPHOMEWORK = 20000;
|
||||
int KGROUPHOMEWORKTASK = 20001;
|
||||
int KGROUPKEYWORDMSGTYPEINMSGBOX = 2006;
|
||||
int KGROUPMANNOUNCEATALLMSGTYPEINMSGBOX = 2004;
|
||||
int KGROUPTASKATALLMSGTYPEINMSGBOX = 2003;
|
||||
int KGROUPUNREADTYPEINMSGBOX = 2007;
|
||||
int KGUILDCHANNELLIST = 10;
|
||||
int KHIGHLIGHTWORDINTEMPCHATTYPEINMSGBOX = 1009;
|
||||
int KHOMEWORKREMINDER = 10000;
|
||||
int KLIKEORDISLIKESTATEDISLIKE = 2;
|
||||
int KLIKEORDISLIKESTATELIKE = 1;
|
||||
int KLIKEORDISLIKESTATENONESELECTED = 0;
|
||||
int KMARKETFACE = 17;
|
||||
int KMEMORYSTATEMSGTYPEADELIEWELCOME = 1;
|
||||
int KMEMORYSTATEMSGTYPEUNKNOWN = 0;
|
||||
int KMINIPROGRAMNOTICE = 114;
|
||||
int KMSGSUBTYPEARKGROUPANNOUNCE = 3;
|
||||
int KMSGSUBTYPEARKGROUPANNOUNCECONFIRMREQUIRED = 4;
|
||||
int KMSGSUBTYPEARKGROUPGIFTATME = 5;
|
||||
int KMSGSUBTYPEARKGROUPTASKATALL = 6;
|
||||
int KMSGSUBTYPEARKMULTIMSG = 7;
|
||||
int KMSGSUBTYPEARKNORMAL = 0;
|
||||
int KMSGSUBTYPEARKTENCENTDOCFROMMINIAPP = 1;
|
||||
int KMSGSUBTYPEARKTENCENTDOCFROMPLUSPANEL = 2;
|
||||
int KMSGSUBTYPEEMOTICON = 15;
|
||||
int KMSGSUBTYPEFILEAPP = 11;
|
||||
int KMSGSUBTYPEFILEAUDIO = 3;
|
||||
int KMSGSUBTYPEFILEDOC = 4;
|
||||
int KMSGSUBTYPEFILEEXCEL = 6;
|
||||
int KMSGSUBTYPEFILEFOLDER = 13;
|
||||
int KMSGSUBTYPEFILEHTML = 10;
|
||||
int KMSGSUBTYPEFILEIPA = 14;
|
||||
int KMSGSUBTYPEFILENORMAL = 0;
|
||||
int KMSGSUBTYPEFILEPDF = 7;
|
||||
int KMSGSUBTYPEFILEPIC = 1;
|
||||
int KMSGSUBTYPEFILEPPT = 5;
|
||||
int KMSGSUBTYPEFILEPSD = 12;
|
||||
int KMSGSUBTYPEFILETXT = 8;
|
||||
int KMSGSUBTYPEFILEVIDEO = 2;
|
||||
int KMSGSUBTYPEFILEZIP = 9;
|
||||
int KMSGSUBTYPELINK = 5;
|
||||
int KMSGSUBTYPEMARKETFACE = 1;
|
||||
int KMSGSUBTYPEMIXEMOTICON = 7;
|
||||
int KMSGSUBTYPEMIXFACE = 3;
|
||||
int KMSGSUBTYPEMIXMARKETFACE = 2;
|
||||
int KMSGSUBTYPEMIXPIC = 1;
|
||||
int KMSGSUBTYPEMIXREPLY = 4;
|
||||
int KMSGSUBTYPEMIXTEXT = 0;
|
||||
int KMSGSUBTYPETENCENTDOC = 6;
|
||||
int KMSGTYPEARKSTRUCT = 11;
|
||||
int KMSGTYPEFACEBUBBLE = 24;
|
||||
int KMSGTYPEFILE = 3;
|
||||
int KMSGTYPEGIFT = 14;
|
||||
int KMSGTYPEGIPHY = 13;
|
||||
int KMSGTYPEGRAYTIPS = 5;
|
||||
int KMSGTYPEMIX = 2;
|
||||
int KMSGTYPEMULTIMSGFORWARD = 8;
|
||||
int KMSGTYPENULL = 1;
|
||||
int KMSGTYPEONLINEFILE = 21;
|
||||
int KMSGTYPEONLINEFOLDER = 27;
|
||||
int KMSGTYPEPROLOGUE = 29;
|
||||
int KMSGTYPEPTT = 6;
|
||||
int KMSGTYPEREPLY = 9;
|
||||
int KMSGTYPESHARELOCATION = 25;
|
||||
int KMSGTYPESTRUCT = 4;
|
||||
int KMSGTYPESTRUCTLONGMSG = 12;
|
||||
int KMSGTYPETEXTGIFT = 15;
|
||||
int KMSGTYPEUNKNOWN = 0;
|
||||
int KMSGTYPEVIDEO = 7;
|
||||
int KMSGTYPEWALLET = 10;
|
||||
int KNEEDCONFIRMGROUPMANNOUNCEATALLMSGTYPEINMSGBOX = 2005;
|
||||
int KNOTPASSTHROUGHEVENTTYPEUPPERBOUNDARY = 9999;
|
||||
int KPTTFORMATTYPEAMR = 0;
|
||||
int KPTTFORMATTYPESILK = 1;
|
||||
int KPTTTRANSLATESTATUSFAIL = 3;
|
||||
int KPTTTRANSLATESTATUSSUC = 2;
|
||||
int KPTTTRANSLATESTATUSTRANSLATING = 1;
|
||||
int KPTTTRANSLATESTATUSUNKNOWN = 0;
|
||||
int KPTTVIPLEVELTYPENONE = 0;
|
||||
int KPTTVIPLEVELTYPEQQVIP = 0;
|
||||
int KPTTVIPLEVELTYPESVIP = 0;
|
||||
int KPTTVOICECHANGETYPEBEASTMACHINE = 7;
|
||||
int KPTTVOICECHANGETYPEBOY = 2;
|
||||
int KPTTVOICECHANGETYPECATCHCOLD = 13;
|
||||
int KPTTVOICECHANGETYPEECHO = 5;
|
||||
int KPTTVOICECHANGETYPEFATGUY = 16;
|
||||
int KPTTVOICECHANGETYPEFLASHING = 9;
|
||||
int KPTTVOICECHANGETYPEGIRL = 1;
|
||||
int KPTTVOICECHANGETYPEHORRIBLE = 3;
|
||||
int KPTTVOICECHANGETYPEKINDERGARTEN = 6;
|
||||
int KPTTVOICECHANGETYPEMEDAROT = 15;
|
||||
int KPTTVOICECHANGETYPENONE = 0;
|
||||
int KPTTVOICECHANGETYPEOPTIMUSPRIME = 8;
|
||||
int KPTTVOICECHANGETYPEOUTOFDATE = 14;
|
||||
int KPTTVOICECHANGETYPEPAPI = 11;
|
||||
int KPTTVOICECHANGETYPEQUICK = 4;
|
||||
int KPTTVOICECHANGETYPESTUTTER = 10;
|
||||
int KPTTVOICECHANGETYPETRAPPEDBEAST = 12;
|
||||
int KPTTVOICETYPEINTERCOM = 1;
|
||||
int KPTTVOICETYPESOUNDRECORD = 2;
|
||||
int KPTTVOICETYPEUNKNOW = 0;
|
||||
int KPTTVOICETYPEVOICECHANGE = 3;
|
||||
int KPUBLICACCOUNTTIANSHUHIGHLIGHTWORDTYPEINMSGBOX = 1010;
|
||||
int KREPLYABSELEMTYPEFACE = 2;
|
||||
int KREPLYABSELEMTYPEPIC = 3;
|
||||
int KREPLYABSELEMTYPETEXT = 1;
|
||||
int KREPLYABSELEMTYPEUNKNOWN = 0;
|
||||
int KREPLYATMEMSGTYPEINMSGBOX = 1002;
|
||||
int KRMDOWNTYPEORIG = 1;
|
||||
int KRMDOWNTYPETHUMB = 2;
|
||||
int KRMDOWNTYPEUNKNOWN = 0;
|
||||
int KRMFILETHUMBSIZE128 = 128;
|
||||
int KRMFILETHUMBSIZE320 = 320;
|
||||
int KRMFILETHUMBSIZE384 = 384;
|
||||
int KRMFILETHUMBSIZE750 = 750;
|
||||
int KRMPICAIOTHUMBSIZE = 0;
|
||||
int KRMPICTHUMBSIZE198 = 198;
|
||||
int KRMPICTHUMBSIZE720 = 720;
|
||||
int KRMPICTYPEBMP = 3;
|
||||
int KRMPICTYPECHECKOTHER = 900;
|
||||
int KRMPICTYPEGIF = 2;
|
||||
int KRMPICTYPEJPG = 0;
|
||||
int KRMPICTYPENEWPICAPNG = 2001;
|
||||
int KRMPICTYPENEWPICBMP = 1005;
|
||||
int KRMPICTYPENEWPICGIF = 2000;
|
||||
int KRMPICTYPENEWPICJPEG = 1000;
|
||||
int KRMPICTYPENEWPICPNG = 1001;
|
||||
int KRMPICTYPENEWPICPROGERSSIVJPEG = 1003;
|
||||
int KRMPICTYPENEWPICSHARPP = 1004;
|
||||
int KRMPICTYPENEWPICWEBP = 1002;
|
||||
int KRMPICTYPEPNG = 1;
|
||||
int KRMPICTYPEUNKOWN = 0;
|
||||
int KRMTHUMBSIZEZERO = 0;
|
||||
int KRMTRNASFERSTATUSDOWNLOADING = 3;
|
||||
int KRMTRNASFERSTATUSFAIL = 5;
|
||||
int KRMTRNASFERSTATUSINIT = 1;
|
||||
int KRMTRNASFERSTATUSSUC = 4;
|
||||
int KRMTRNASFERSTATUSUNKOW = 0;
|
||||
int KRMTRNASFERSTATUSUPLOADING = 2;
|
||||
int KRMTRNASFERSTATUSUSERCANCEL = 6;
|
||||
int KSEEKINGPARTNERFLAGSEEKING = 1;
|
||||
int KSEEKINGPARTNERFLAGUNKNOWN = 0;
|
||||
int KSENDSTATUSFAILED = 0;
|
||||
int KSENDSTATUSSENDING = 1;
|
||||
int KSENDSTATUSSUCCESS = 2;
|
||||
int KSENDSTATUSSUCCESSNOSEQ = 3;
|
||||
int KSENDTYPEDROPPED = 6;
|
||||
int KSENDTYPELOCAL = 3;
|
||||
int KSENDTYPEOTHERDEVICE = 2;
|
||||
int KSENDTYPERECV = 0;
|
||||
int KSENDTYPESELF = 1;
|
||||
int KSENDTYPESELFFORWARD = 4;
|
||||
int KSENDTYPESELFMULTIFORWARD = 5;
|
||||
int KSESSIONTYPEADDRESSBOOK = 5;
|
||||
int KSESSIONTYPEC2C = 1;
|
||||
int KSESSIONTYPEDISC = 3;
|
||||
int KSESSIONTYPEFAV = 41;
|
||||
int KSESSIONTYPEGROUP = 2;
|
||||
int KSESSIONTYPEGROUPBLESS = 52;
|
||||
int KSESSIONTYPEGUILD = 4;
|
||||
int KSESSIONTYPEGUILDMETA = 16;
|
||||
int KSESSIONTYPENEARBYPRO = 54;
|
||||
int KSESSIONTYPEQQNOTIFY = 51;
|
||||
int KSESSIONTYPERELATEACCOUNT = 50;
|
||||
int KSESSIONTYPESERVICEASSISTANT = 19;
|
||||
int KSESSIONTYPESUBSCRIBEFOLDER = 30;
|
||||
int KSESSIONTYPETYPEBUDDYNOTIFY = 7;
|
||||
int KSESSIONTYPETYPEGROUPHELPER = 9;
|
||||
int KSESSIONTYPETYPEGROUPNOTIFY = 8;
|
||||
int KSESSIONTYPEUNKNOWN = 0;
|
||||
int KSESSIONTYPEWEIYUN = 40;
|
||||
int KSPECIALCAREMSGTYPEINMSGBOX = 1006;
|
||||
int KSPECIFIEDREDENVELOPEATMEMSGTYPEINMSGBOX = 1004;
|
||||
int KSPECIFIEDREDENVELOPEATONEMSGTYPEINMSGBOX = 1003;
|
||||
int KTENCENTDOCTYPEADDON = 110;
|
||||
int KTENCENTDOCTYPEDOC = 0;
|
||||
int KTENCENTDOCTYPEDRAWING = 89;
|
||||
int KTENCENTDOCTYPEDRIVE = 101;
|
||||
int KTENCENTDOCTYPEFILE = 100;
|
||||
int KTENCENTDOCTYPEFLOWCHART = 91;
|
||||
int KTENCENTDOCTYPEFOLDER = 3;
|
||||
int KTENCENTDOCTYPEFORM = 2;
|
||||
int KTENCENTDOCTYPEMIND = 90;
|
||||
int KTENCENTDOCTYPENOTES = 5;
|
||||
int KTENCENTDOCTYPEPDF = 6;
|
||||
int KTENCENTDOCTYPEPROGRAM = 7;
|
||||
int KTENCENTDOCTYPESHEET = 1;
|
||||
int KTENCENTDOCTYPESLIDE = 4;
|
||||
int KTENCENTDOCTYPESMARTCANVAS = 8;
|
||||
int KTENCENTDOCTYPESMARTSHEET = 9;
|
||||
int KTENCENTDOCTYPESPEECH = 102;
|
||||
int KTENCENTDOCTYPEUNKNOWN = 10;
|
||||
int KTOFURECORDMSG = 23;
|
||||
int KTOPMSGTYPETASK = 1;
|
||||
int KTOPMSGTYPEUNKNOWN = 0;
|
||||
int KTRIGGERTYPEAUTO = 1;
|
||||
int KTRIGGERTYPEMANUAL = 0;
|
||||
int KUNKNOWN = 0;
|
||||
int KUNKNOWNTYPEINMSGBOX = 0;
|
||||
int KUNREADCNTUPTYPEALLDIRECTSESSION = 4;
|
||||
int KUNREADCNTUPTYPEALLFEEDSINGUILD = 6;
|
||||
int KUNREADCNTUPTYPEALLGUILD = 3;
|
||||
int KUNREADCNTUPTYPECATEGORY = 5;
|
||||
int KUNREADCNTUPTYPECHANNEL = 1;
|
||||
int KUNREADCNTUPTYPECONTACT = 0;
|
||||
int KUNREADCNTUPTYPEGUILD = 2;
|
||||
int KUNREADCNTUPTYPEGUILDGROUP = 7;
|
||||
int KUNREADSHOWTTYPEGRAYPOINT = 2;
|
||||
int KUNREADSHOWTYPEREDPOINT = 1;
|
||||
int KUNREADSHOWTYPESMALLGRAYPOINT = 4;
|
||||
int KUNREADSHOWTYPESMALLREDPOINT = 3;
|
||||
int KUNREADSHOWTYPEUNKNOWN = 0;
|
||||
int KVASGIFTCOINTYPECOIN = 0;
|
||||
int KVASGIFTCOINTYPEMARKETCOIN = 1;
|
||||
int KYOLOGAMERESULTMSG = 18;
|
||||
int PIC_800_RECOMMENDED = 7;
|
||||
int PIC_AIGC_EMOJI = 14;
|
||||
int PIC_ALBUM_GIF = 11;
|
||||
int PIC_COMMERCIAL_ADVERTISING = 9;
|
||||
int PIC_FIND = 10;
|
||||
int PIC_HOT = 2;
|
||||
int PIC_HOT_EMOJI = 13;
|
||||
int PIC_NORMAL = 0;
|
||||
int PIC_PK = 3;
|
||||
int PIC_QQZONE = 5;
|
||||
int PIC_SELFIE_GIF = 8;
|
||||
int PIC_SEND_FROM_TAB_SEARCH_BOX = 12;
|
||||
int PIC_USER = 1;
|
||||
int PIC_WISDOM_FIGURE = 4;
|
||||
int REPLYORIGINALMSGSTATEHASRECALL = 1;
|
||||
int REPLYORIGINALMSGSTATEUNKNOWN = 0;
|
||||
int SHARELOCATIONELEMSUBTYPENORMAL = 1;
|
||||
int SHARELOCATIONELEMSUBTYPEUNKNOWN = 0;
|
||||
int TEXTELEMENTSUBTYPELINK = 1;
|
||||
int TEXTELEMENTSUBTYPETENCENTDOC = 2;
|
||||
int TEXTELEMENTSUBTYPEUNKNOWN = 0;
|
||||
```
|
24
docs/develop/参与开发.md
Normal file
24
docs/develop/参与开发.md
Normal file
@@ -0,0 +1,24 @@
|
||||
# 前排提示
|
||||
由于Core未处于开源,非组织人员无法参与Core开发,此处为Core开发提示
|
||||
|
||||
# 准备工具
|
||||
frida ida-pro jadx x64dbg ce 内部调试脚本
|
||||
|
||||
## ida-pro
|
||||
1. 用于快速分析入参和返回类型
|
||||
2. 通过静态QLog推测语义
|
||||
3. 提取Listener与Service (常用)
|
||||
## frida
|
||||
1. 用于动态获取QLog推测语义
|
||||
2. 捕捉Native函数 实际入参与数据 分析中间流程
|
||||
|
||||
## jadx
|
||||
1. 通过其它平台实现 静态获取QLog推测语义
|
||||
2. 提供部分未调用代码 参考
|
||||
|
||||
## x64dbg
|
||||
1. 验证IDA的Hook点
|
||||
|
||||
## 内部脚本
|
||||
1. 提取Listener与Service (不调用无类型 不推荐)
|
||||
2. 获取NT调用流程
|
1
docs/develop/碎碎的研究记录.md
Normal file
1
docs/develop/碎碎的研究记录.md
Normal file
@@ -0,0 +1 @@
|
||||
getMsgUniqueId 传入时间 产出一个唯一ID 发送消息作为一个参数
|
11
package.json
11
package.json
@@ -2,7 +2,7 @@
|
||||
"name": "napcat",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"version": "1.5.1",
|
||||
"version": "1.6.5",
|
||||
"scripts": {
|
||||
"watch:dev": "vite --mode development",
|
||||
"watch:prod": "vite --mode production",
|
||||
@@ -18,6 +18,11 @@
|
||||
"depend": "cd dist && npm install --omit=dev"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "^7.24.7",
|
||||
"@babel/preset-typescript": "^7.24.7",
|
||||
"vite-plugin-babel": "^1.2.0",
|
||||
"@babel/plugin-proposal-class-properties": "^7.18.6",
|
||||
"@babel/plugin-proposal-decorators": "^7.24.7",
|
||||
"@log4js-node/log4js-api": "^1.0.2",
|
||||
"@protobuf-ts/plugin": "^2.9.4",
|
||||
"@rollup/plugin-node-resolve": "^15.2.3",
|
||||
@@ -28,7 +33,7 @@
|
||||
"@types/fluent-ffmpeg": "^2.1.24",
|
||||
"@types/node": "^20.11.30",
|
||||
"@types/qrcode-terminal": "^0.12.2",
|
||||
"@types/uuid": "^9.0.8",
|
||||
"@types/uuid": "^10.0.0",
|
||||
"@types/ws": "^8.5.10",
|
||||
"@typescript-eslint/eslint-plugin": "^7.4.0",
|
||||
"@typescript-eslint/parser": "^7.4.0",
|
||||
@@ -61,7 +66,7 @@
|
||||
"qrcode-terminal": "^0.12.0",
|
||||
"silk-wasm": "^3.3.4",
|
||||
"sqlite3": "^5.1.7",
|
||||
"uuid": "^9.0.1",
|
||||
"uuid": "^10.0.0",
|
||||
"ws": "^8.16.0"
|
||||
}
|
||||
}
|
||||
|
45
script/BootWay.03.ps1
Normal file
45
script/BootWay.03.ps1
Normal file
@@ -0,0 +1,45 @@
|
||||
# Dont Use This Script
|
||||
# 2024.7.3
|
||||
function Get-QQpath {
|
||||
try {
|
||||
$key = Get-ItemProperty -Path "HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\QQ"
|
||||
$uninstallString = $key.UninstallString
|
||||
return [System.IO.Path]::GetDirectoryName($uninstallString) + "\QQ.exe"
|
||||
}
|
||||
catch {
|
||||
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 " "
|
||||
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
|
||||
$commandInfo = Get-Command $QQpath -ErrorAction Stop
|
||||
Start-Process powershell -ArgumentList "-noexit", "-noprofile", "-command &{& chcp 65001;& '$($commandInfo.Path)' --enable-logging $params}"
|
28
script/NapCat.164.bat
Normal file
28
script/NapCat.164.bat
Normal file
@@ -0,0 +1,28 @@
|
||||
@echo off
|
||||
chcp 65001
|
||||
:: 检查是否有管理员权限
|
||||
net session >nul 2>&1
|
||||
if %errorlevel% neq 0 (
|
||||
echo 请求管理员权限...
|
||||
powershell -Command "Start-Process '%~f0' -Verb runAs"
|
||||
exit /b
|
||||
)
|
||||
:: 如果有管理员权限,继续执行
|
||||
setlocal enabledelayedexpansion
|
||||
:loop_read
|
||||
for /f "tokens=2*" %%a in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\QQ" /v "UninstallString"') do (
|
||||
set "RetString=%%b"
|
||||
goto :napcat_boot
|
||||
)
|
||||
|
||||
:napcat_boot
|
||||
for %%a in ("!RetString!") do (
|
||||
set "pathWithoutUninstall=%%~dpa"
|
||||
)
|
||||
|
||||
set "QQPath=!pathWithoutUninstall!QQ.exe"
|
||||
|
||||
echo !QQPath!
|
||||
"!QQPath!" --enable-logging %*
|
||||
|
||||
pause
|
20
script/index.js
Normal file
20
script/index.js
Normal file
@@ -0,0 +1,20 @@
|
||||
// --------------------
|
||||
// 2024.7.3 9.9.12 BootWay.03 其余方法暂不公开(此方案为临时方案 Win平台已验证)
|
||||
// 缺陷 (已知)
|
||||
// 1.与非入侵式不同 现在破坏本体代码
|
||||
// 2.重启代码与正常启动代码失效
|
||||
// 3.Win需要补丁
|
||||
// 4.更新后丢失内容 需要重写此文件
|
||||
// 5.安装难度上升与周围基础设施失效
|
||||
// --------------------
|
||||
|
||||
const path = require('path');
|
||||
const CurrentPath = path.dirname(__filename)
|
||||
const hasNapcatParam = process.argv.includes('--enable-logging');
|
||||
if (hasNapcatParam) {
|
||||
(async () => {
|
||||
await import("file://" + path.join(CurrentPath, './napcat/napcat.mjs'));
|
||||
})();
|
||||
} else {
|
||||
require('./launcher.node').load('external_index', module);
|
||||
}
|
@@ -1,4 +1,3 @@
|
||||
import { NodeIKernelMsgListener } from '@/core';
|
||||
import { NodeIQQNTWrapperSession } from '@/core/wrapper';
|
||||
import { randomUUID } from 'crypto';
|
||||
|
||||
@@ -95,7 +94,7 @@ export class NTEventWrapper {
|
||||
});
|
||||
}
|
||||
async CallNoListenerEvent<EventType extends (...args: any[]) => Promise<any>,>(EventName = '', timeout: number = 3000, ...args: Parameters<EventType>) {
|
||||
return new Promise<ReturnType<EventType>>(async (resolve, reject) => {
|
||||
return new Promise<Awaited<ReturnType<EventType>>>(async (resolve, reject) => {
|
||||
const EventFunc = this.CreatEventFunction<EventType>(EventName);
|
||||
let complete = false;
|
||||
const Timeouter = setTimeout(() => {
|
||||
|
@@ -1,4 +1,4 @@
|
||||
import { logError, logDebug } from '@/common/utils/log';
|
||||
import { logError, logDebug } from "@/common/utils/log";
|
||||
|
||||
type group_id = number;
|
||||
type user_id = number;
|
||||
@@ -31,7 +31,7 @@ class LRU<T> {
|
||||
private tail: cacheNode<T> | null = null;
|
||||
private onFuncs: ((node: cacheNode<T>) => void)[] = [];
|
||||
|
||||
constructor(maxAge: number = 2e4, maxSize: number = 5e3) {
|
||||
constructor(maxAge: number = 6e4, maxSize: number = 5e3) {
|
||||
this.maxAge = maxAge;
|
||||
this.maxSize = maxSize;
|
||||
this.cache = Object.create(null);
|
||||
@@ -44,7 +44,7 @@ class LRU<T> {
|
||||
// 移除LRU节点
|
||||
private removeLRUNode(node: cacheNode<T>) {
|
||||
logDebug(
|
||||
'removeLRUNode',
|
||||
"removeLRUNode",
|
||||
node.groupId,
|
||||
node.userId,
|
||||
node.value,
|
||||
@@ -140,6 +140,26 @@ class LRU<T> {
|
||||
}
|
||||
}
|
||||
}
|
||||
public get(groupId: group_id): { userId: user_id; value: T }[];
|
||||
public get(groupId: group_id, userId: user_id): null | { userId: user_id; value: T };
|
||||
public get(groupId: group_id, userId?: user_id): any {
|
||||
const groupObject = this.cache[groupId];
|
||||
if(!groupObject) return userId === undefined ? [] : null;
|
||||
|
||||
if (userId === undefined) {
|
||||
return Object.entries(groupObject).map(([userId, { value }]) => ({
|
||||
userId: Number(userId),
|
||||
value,
|
||||
}));
|
||||
}
|
||||
|
||||
if (groupObject[userId]) {
|
||||
return { userId, value: groupObject[userId].value };
|
||||
}
|
||||
|
||||
return null;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
export default LRU;
|
||||
|
53
src/common/utils/MessageUnique.ts
Normal file
53
src/common/utils/MessageUnique.ts
Normal file
@@ -0,0 +1,53 @@
|
||||
import crypto from 'crypto';
|
||||
|
||||
class LimitedHashTable<K, V> {
|
||||
private keyToValue: Map<K, V> = new Map();
|
||||
private valueToKey: Map<V, K> = new Map();
|
||||
private maxSize: number;
|
||||
private KeyQueneList: K[] = [];
|
||||
private ValueQueneList: V[] = [];
|
||||
constructor(maxSize: number) {
|
||||
this.maxSize = maxSize;
|
||||
}
|
||||
set(key: K, value: V): void {
|
||||
this.keyToValue.set(key, value);
|
||||
this.valueToKey.set(value, key);
|
||||
if (this.KeyQueneList.length >= this.maxSize || this.ValueQueneList.length >= this.maxSize) {
|
||||
this.KeyQueneList.shift();
|
||||
this.ValueQueneList.shift();
|
||||
}
|
||||
}
|
||||
|
||||
getValue(key: K): V | undefined {
|
||||
return this.keyToValue.get(key);
|
||||
}
|
||||
|
||||
getKey(value: V): K | undefined {
|
||||
return this.valueToKey.get(value);
|
||||
}
|
||||
|
||||
delete(key: K): void {
|
||||
const value = this.keyToValue.get(key);
|
||||
if (value !== undefined) {
|
||||
this.keyToValue.delete(key);
|
||||
this.valueToKey.delete(value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class MessageUniqueWrapper {
|
||||
private msgIdMap: LimitedHashTable<number, string> = new LimitedHashTable(1000);
|
||||
createMsg(MsgId: string) {
|
||||
const ShortId = parseInt(crypto.createHash('sha1').update('2345').digest('hex').slice(0, 8), 16);
|
||||
this.msgIdMap.set(ShortId, MsgId);
|
||||
return ShortId;
|
||||
}
|
||||
getMsgIdByShortId(ShortId: number) {
|
||||
return this.msgIdMap.getValue(ShortId);
|
||||
}
|
||||
getShortIdByMsgId(MsgId: string) {
|
||||
return this.msgIdMap.getKey(MsgId);
|
||||
}
|
||||
}
|
||||
|
||||
export const MessageUnique = new MessageUniqueWrapper();
|
17
src/common/utils/Packet.ts
Normal file
17
src/common/utils/Packet.ts
Normal file
@@ -0,0 +1,17 @@
|
||||
// 方案一 MiniApp发包方案
|
||||
// 前置条件: 处于GUI环境 存在MiniApp
|
||||
|
||||
import { NTQQSystemApi } from '@/core';
|
||||
|
||||
// 前排提示: 开发验证仅Win平台开展
|
||||
export class MiniAppUtil {
|
||||
static async RunMiniAppWithGUI() {
|
||||
//process.env.ELECTRON_RUN_AS_NODE = undefined;//没用还是得自己用cpp之类的语言写个程序转发参数
|
||||
return NTQQSystemApi.BootMiniApp(process.execPath, 'miniapp://open/1007?url=https%3A%2F%2Fm.q.qq.com%2Fa%2Fs%2Fedd0a83d3b8afe233dfa07adaaf8033f%3Fscene%3D1007%26min_refer%3D10001');
|
||||
}
|
||||
}
|
||||
// 方案二 MiniApp发包方案 替代MiniApp方案
|
||||
// 前置条件: 无
|
||||
export class MojoMiniAppUtil{
|
||||
|
||||
}
|
@@ -38,11 +38,11 @@ type QQVersionConfigInfo = {
|
||||
}
|
||||
|
||||
let _qqVersionConfigInfo: QQVersionConfigInfo = {
|
||||
'baseVersion': '9.9.9-23361',
|
||||
'curVersion': '9.9.9-23361',
|
||||
'baseVersion': '9.9.11-24568',
|
||||
'curVersion': '9.9.11-24568',
|
||||
'prevVersion': '',
|
||||
'onErrorVersions': [],
|
||||
'buildId': '23361'
|
||||
'buildId': '24568'
|
||||
};
|
||||
|
||||
if (fs.existsSync(configVersionInfoPath)) {
|
||||
@@ -55,7 +55,7 @@ if (fs.existsSync(configVersionInfoPath)) {
|
||||
}
|
||||
|
||||
export const qqVersionConfigInfo: QQVersionConfigInfo = _qqVersionConfigInfo;
|
||||
|
||||
//V1_WIN_NQ_9.9.11_24568_GW_B
|
||||
export const qqPkgInfo: QQPkgInfo = JSON.parse(fs.readFileSync(pkgInfoPath).toString());
|
||||
// platform_type: 3,
|
||||
// app_type: 4,
|
||||
@@ -65,9 +65,13 @@ export const qqPkgInfo: QQPkgInfo = JSON.parse(fs.readFileSync(pkgInfoPath).toSt
|
||||
// platVer: '10.0.26100',
|
||||
// clientVer: '9.9.9-23159',
|
||||
|
||||
let _appid: string = '537213803'; // 默认为 Windows 平台的 appid
|
||||
// Linux
|
||||
// app_version: '3.2.9-24568',
|
||||
// qua: 'V1_LNX_NQ_3.2.9_24568_GW_B',
|
||||
|
||||
let _appid: string = '537226369'; // 默认为 Windows 平台的 appid
|
||||
if (systemPlatform === 'linux') {
|
||||
_appid = '537213827';
|
||||
_appid = '537226441';
|
||||
}
|
||||
// todo: mac 平台的 appid
|
||||
export const appid = _appid;
|
||||
|
@@ -232,19 +232,6 @@ class DBUtil extends DBUtilBase {
|
||||
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() {
|
||||
@@ -415,63 +402,18 @@ class DBUtil extends DBUtilBase {
|
||||
});
|
||||
}
|
||||
|
||||
// 被动收到的临时会话消息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[]) => {
|
||||
const cache = this.LURCache.get(groupId).map(e=>({user_id:e.userId, last_sent_time:e.value}));
|
||||
if (err) {
|
||||
logError('查询发言时间失败', groupId);
|
||||
return resolve([]);
|
||||
return resolve(cache.map(e=>({...e, join_time:0})));
|
||||
}
|
||||
Object.assign(rows, cache)
|
||||
logDebug('查询发言时间成功', groupId, rows);
|
||||
resolve(rows);
|
||||
});
|
||||
|
@@ -1,5 +1,5 @@
|
||||
import fs from 'fs';
|
||||
import fsPromise from 'fs/promises';
|
||||
import fsPromise, { stat } from 'fs/promises';
|
||||
import crypto from 'crypto';
|
||||
import util from 'util';
|
||||
import path from 'node:path';
|
||||
@@ -50,7 +50,40 @@ export function checkFileReceived(path: string, timeout: number = 3000): Promise
|
||||
check();
|
||||
});
|
||||
}
|
||||
// 定义一个异步函数来检查文件是否存在
|
||||
export async function checkFileReceived2(path: string, timeout: number = 3000): Promise<void> {
|
||||
// 使用 Promise.race 来同时进行文件状态检查和超时计时
|
||||
// Promise.race 会返回第一个解决(resolve)或拒绝(reject)的 Promise
|
||||
await Promise.race([
|
||||
checkFile(path),
|
||||
timeoutPromise(timeout, `文件不存在: ${path}`),
|
||||
]);
|
||||
}
|
||||
|
||||
// 转换超时时间至 Promise
|
||||
function timeoutPromise(timeout: number, errorMsg: string): Promise<void> {
|
||||
return new Promise((_, reject) => {
|
||||
setTimeout(() => {
|
||||
reject(new Error(errorMsg));
|
||||
}, timeout);
|
||||
});
|
||||
}
|
||||
|
||||
// 异步检查文件是否存在
|
||||
async function checkFile(path: string): Promise<void> {
|
||||
try {
|
||||
await stat(path);
|
||||
} catch (error: any) {
|
||||
if (error.code === 'ENOENT') {
|
||||
// 如果文件不存在,则抛出一个错误
|
||||
throw new Error(`文件不存在: ${path}`);
|
||||
} else {
|
||||
// 对于 stat 调用的其他错误,重新抛出
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
// 如果文件存在,则无需做任何事情,Promise 解决(resolve)自身
|
||||
}
|
||||
export async function file2base64(path: string) {
|
||||
const readFile = util.promisify(fs.readFile);
|
||||
const result = {
|
||||
@@ -115,6 +148,8 @@ export async function httpDownload(options: string | HttpDownloadOptions): Promi
|
||||
};
|
||||
if (typeof options === 'string') {
|
||||
url = options;
|
||||
const host = new URL(url).hostname;
|
||||
headers['Host'] = host;
|
||||
} else {
|
||||
url = options.url;
|
||||
if (options.headers) {
|
||||
@@ -125,7 +160,12 @@ export async function httpDownload(options: string | HttpDownloadOptions): Promi
|
||||
}
|
||||
}
|
||||
}
|
||||
const fetchRes = await fetch(url, { headers });
|
||||
const fetchRes = await fetch(url, { headers }).catch((err) => {
|
||||
if (err.cause) {
|
||||
throw err.cause;
|
||||
}
|
||||
throw err;
|
||||
});
|
||||
if (!fetchRes.ok) throw new Error(`下载文件失败: ${fetchRes.statusText}`);
|
||||
|
||||
const blob = await fetchRes.blob();
|
||||
|
@@ -4,7 +4,7 @@ import fs from 'fs/promises';
|
||||
import { log, logDebug } from './log';
|
||||
import { dirname } from 'node:path';
|
||||
import { fileURLToPath } from 'node:url';
|
||||
|
||||
import * as fsPromise from 'node:fs/promises';
|
||||
|
||||
const __filename = fileURLToPath(import.meta.url);
|
||||
const __dirname = dirname(__filename);
|
||||
@@ -43,8 +43,88 @@ export function truncateString(obj: any, maxLength = 500) {
|
||||
}
|
||||
return obj;
|
||||
}
|
||||
export function simpleDecorator(target: any, context: any) {
|
||||
}
|
||||
|
||||
// export function CacheClassFunc(ttl: number = 3600 * 1000, customKey: string = '') {
|
||||
// const cache = new Map<string, { expiry: number; value: any }>();
|
||||
// return function CacheClassFuncDecorator(originalMethod: Function, context: ClassMethodDecoratorContext) {
|
||||
// async function CacheClassFuncDecoratorInternal(this: any, ...args: any[]) {
|
||||
// const key = `${customKey}${String(context.name)}.(${args.map(arg => JSON.stringify(arg)).join(', ')})`;
|
||||
// const cachedValue = cache.get(key);
|
||||
// if (cachedValue && cachedValue.expiry > Date.now()) {
|
||||
// return cachedValue.value;
|
||||
// }
|
||||
// const result = originalMethod.call(this, ...args);
|
||||
// cache.set(key, { expiry: Date.now() + ttl, value: result });
|
||||
// return result;
|
||||
// }
|
||||
// return CacheClassFuncDecoratorInternal;
|
||||
// }
|
||||
// }
|
||||
export function CacheClassFuncAsync(ttl: number = 3600 * 1000, customKey: string = '') {
|
||||
//console.log('CacheClassFuncAsync', ttl, customKey);
|
||||
function logExecutionTime(target: any, methodName: string, descriptor: PropertyDescriptor) {
|
||||
//console.log('logExecutionTime', target, methodName, descriptor);
|
||||
const cache = new Map<string, { expiry: number; value: any }>();
|
||||
const originalMethod = descriptor.value;
|
||||
descriptor.value = async function (...args: any[]) {
|
||||
const key = `${customKey}${String(methodName)}.(${args.map(arg => JSON.stringify(arg)).join(', ')})`;
|
||||
cache.forEach((value, key) => {
|
||||
if (value.expiry < Date.now()) {
|
||||
cache.delete(key);
|
||||
}
|
||||
});
|
||||
const cachedValue = cache.get(key);
|
||||
if (cachedValue && cachedValue.expiry > Date.now()) {
|
||||
return cachedValue.value;
|
||||
}
|
||||
// const start = Date.now();
|
||||
const result = await originalMethod.apply(this, args);
|
||||
// const end = Date.now();
|
||||
// console.log(`Method ${methodName} executed in ${end - start} ms.`);
|
||||
cache.set(key, { expiry: Date.now() + ttl, value: result });
|
||||
return result;
|
||||
};
|
||||
}
|
||||
return logExecutionTime;
|
||||
}
|
||||
|
||||
// export function CacheClassFuncAsync(ttl: number = 3600 * 1000, customKey: string = ''): any {
|
||||
// const cache = new Map<string, { expiry: number; value: any }>();
|
||||
|
||||
// // 注意:在JavaScript装饰器中,我们通常不直接处理ClassMethodDecoratorContext这样的类型,
|
||||
// // 因为装饰器的参数通常是目标类(对于类装饰器)、属性名(对于属性装饰器)等。
|
||||
// // 对于方法装饰器,我们关注的是方法本身及其描述符。
|
||||
// // 但这里我们维持原逻辑,假设有一个自定义的处理上下文的方式。
|
||||
|
||||
// return function (originalMethod: Function): any {
|
||||
// console.log(originalMethod);
|
||||
// // 由于JavaScript装饰器原生不支持异步直接定义,我们保持async定义以便处理异步方法。
|
||||
// async function decoratorWrapper(this: any, ...args: any[]): Promise<any> {
|
||||
// console.log(...args);
|
||||
// const key = `${customKey}${originalMethod.name}.(${args.map(arg => JSON.stringify(arg)).join(', ')})`;
|
||||
// const cachedValue = cache.get(key);
|
||||
// // 遍历cache 清除expiry内容
|
||||
// cache.forEach((value, key) => {
|
||||
// if (value.expiry < Date.now()) {
|
||||
// cache.delete(key);
|
||||
// }
|
||||
// });
|
||||
// if (cachedValue && cachedValue.expiry > Date.now()) {
|
||||
// return cachedValue.value;
|
||||
// }
|
||||
|
||||
// // 直接await异步方法的结果
|
||||
// const result = await originalMethod.apply(this, args);
|
||||
// cache.set(key, { expiry: Date.now() + ttl, value: result });
|
||||
// return result;
|
||||
// }
|
||||
|
||||
// // 返回装饰后的方法,保持与原方法相同的名称和描述符(如果需要更精细的控制,可以考虑使用Object.getOwnPropertyDescriptor等)
|
||||
// return decoratorWrapper;
|
||||
// };
|
||||
// }
|
||||
|
||||
/**
|
||||
* 函数缓存装饰器,根据方法名、参数、自定义key生成缓存键,在一定时间内返回缓存结果
|
||||
@@ -181,4 +261,26 @@ export function isEqual(obj1: any, obj2: any) {
|
||||
if (!isEqual(obj1[key], obj2[key])) return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
export async function deleteOldFiles(directoryPath: string, daysThreshold: number) {
|
||||
try {
|
||||
const files = await fsPromise.readdir(directoryPath);
|
||||
|
||||
for (const file of files) {
|
||||
const filePath = path.join(directoryPath, file);
|
||||
const stats = await fsPromise.stat(filePath);
|
||||
const lastModifiedTime = stats.mtimeMs;
|
||||
const currentTime = Date.now();
|
||||
const timeDifference = currentTime - lastModifiedTime;
|
||||
const daysDifference = timeDifference / (1000 * 60 * 60 * 24);
|
||||
|
||||
if (daysDifference > daysThreshold) {
|
||||
await fsPromise.unlink(filePath); // Delete the file
|
||||
//console.log(`Deleted: ${filePath}`);
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
//console.error('Error deleting files:', error);
|
||||
}
|
||||
}
|
||||
|
@@ -39,7 +39,7 @@ const logConfig: Configuration = {
|
||||
FileAppender: { // 输出到文件的appender
|
||||
type: 'file',
|
||||
filename: logPath, // 指定日志文件的位置和文件名
|
||||
maxLoogSize: 10485760, // 日志文件的最大大小(单位:字节),这里设置为10MB
|
||||
maxLogSize: 10485760, // 日志文件的最大大小(单位:字节),这里设置为10MB
|
||||
layout: {
|
||||
type: 'pattern',
|
||||
pattern: '%d{yyyy-MM-dd hh:mm:ss} [%p] %X{userInfo} | %m'
|
||||
|
@@ -1,12 +1,13 @@
|
||||
import https from 'node:https';
|
||||
import http from 'node:http';
|
||||
|
||||
import { readFileSync } from 'node:fs';
|
||||
import { NTQQUserApi } from '@/core';
|
||||
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 req = client.get(url, (res) => {
|
||||
let cookies: { [key: string]: string } = {};
|
||||
const handleRedirect = (res: http.IncomingMessage) => {
|
||||
//console.log(res.headers.location);
|
||||
@@ -17,6 +18,8 @@ export class RequestUtil {
|
||||
// 合并重定向过程中的cookies
|
||||
cookies = { ...cookies, ...redirectCookies };
|
||||
resolve(cookies);
|
||||
}).catch((err) => {
|
||||
reject(err);
|
||||
});
|
||||
} else {
|
||||
resolve(cookies);
|
||||
@@ -40,16 +43,17 @@ export class RequestUtil {
|
||||
}
|
||||
});
|
||||
}
|
||||
}).on('error', (err) => {
|
||||
reject(err);
|
||||
});
|
||||
req.on('error', (error: any) => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 请求和回复都是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> {
|
||||
static async HttpGetJson<T>(url: string, method: string = 'GET', data?: any, headers: { [key: string]: string } = {}, isJsonRet: boolean = true, isArgJson: boolean = true): Promise<T> {
|
||||
const option = new URL(url);
|
||||
const protocol = url.startsWith('https://') ? https : http;
|
||||
const options = {
|
||||
@@ -59,6 +63,10 @@ export class RequestUtil {
|
||||
method: method,
|
||||
headers: headers
|
||||
};
|
||||
// headers: {
|
||||
// 'Content-Type': 'application/json',
|
||||
// 'Content-Length': Buffer.byteLength(postData),
|
||||
// },
|
||||
return new Promise((resolve, reject) => {
|
||||
const req = protocol.request(options, (res: any) => {
|
||||
let responseBody = '';
|
||||
@@ -100,7 +108,86 @@ export class RequestUtil {
|
||||
}
|
||||
|
||||
// 请求返回都是原始内容
|
||||
static async HttpGetText(url: string, method: string = 'GET', data?: any, headers: Record<string, string> = {}) {
|
||||
static async HttpGetText(url: string, method: string = 'GET', data?: any, headers: { [key: string]: string } = {}) {
|
||||
return this.HttpGetJson<string>(url, method, data, headers, false, false);
|
||||
}
|
||||
}
|
||||
|
||||
static async createFormData(boundary: string, filePath: string): Promise<Buffer> {
|
||||
let type = 'image/png';
|
||||
if (filePath.endsWith('.jpg')) {
|
||||
type = 'image/jpeg';
|
||||
}
|
||||
const formDataParts = [
|
||||
`------${boundary}\r\n`,
|
||||
`Content-Disposition: form-data; name="share_image"; filename="${filePath}"\r\n`,
|
||||
'Content-Type: ' + type + '\r\n\r\n'
|
||||
];
|
||||
|
||||
const fileContent = readFileSync(filePath);
|
||||
const footer = `\r\n------${boundary}--`;
|
||||
return Buffer.concat([
|
||||
Buffer.from(formDataParts.join(''), 'utf8'),
|
||||
fileContent,
|
||||
Buffer.from(footer, 'utf8')
|
||||
]);
|
||||
}
|
||||
|
||||
static async uploadImageForOpenPlatform(filePath: string): Promise<string> {
|
||||
return new Promise(async (resolve, reject) => {
|
||||
type retType = { retcode: number, result?: { url: string } };
|
||||
try {
|
||||
const cookies = Object.entries(await NTQQUserApi.getCookies('connect.qq.com')).map(([key, value]) => `${key}=${value}`).join('; ');
|
||||
const options = {
|
||||
hostname: 'cgi.connect.qq.com',
|
||||
port: 443,
|
||||
path: '/qqconnectopen/upload_share_image',
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Referer': 'https://cgi.connect.qq.com',
|
||||
'Cookie': cookies,
|
||||
'Accept': '*/*',
|
||||
'Connection': 'keep-alive',
|
||||
'Content-Type': 'multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW'
|
||||
}
|
||||
};
|
||||
const req = https.request(options, async (res) => {
|
||||
let responseBody = '';
|
||||
|
||||
res.on('data', (chunk: string | Buffer) => {
|
||||
responseBody += chunk.toString();
|
||||
});
|
||||
|
||||
res.on('end', () => {
|
||||
try {
|
||||
if (res.statusCode && res.statusCode >= 200 && res.statusCode < 300) {
|
||||
const responseJson = JSON.parse(responseBody) as retType;
|
||||
resolve(responseJson.result!.url!);
|
||||
} else {
|
||||
reject(new Error(`Unexpected status code: ${res.statusCode}`));
|
||||
}
|
||||
} catch (parseError) {
|
||||
reject(parseError);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
req.on('error', (error) => {
|
||||
reject(error);
|
||||
console.error('Error during upload:', error);
|
||||
});
|
||||
|
||||
const body = await RequestUtil.createFormData('WebKitFormBoundary7MA4YWxkTrZu0gW', filePath);
|
||||
// req.setHeader('Content-Length', Buffer.byteLength(body));
|
||||
// console.log(`Prepared data size: ${Buffer.byteLength(body)} bytes`);
|
||||
req.write(body);
|
||||
req.end();
|
||||
return;
|
||||
} catch (error) {
|
||||
reject(error);
|
||||
}
|
||||
return undefined;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
1
src/core
1
src/core
Submodule src/core deleted from 4e93949d20
@@ -1,14 +0,0 @@
|
||||
interface IDependsAdapter {
|
||||
onMSFStatusChange(arg1: number, arg2: number): void;
|
||||
onMSFSsoError(args: unknown): void;
|
||||
getGroupCode(args: unknown): void;
|
||||
}
|
||||
export interface NodeIDependsAdapter extends IDependsAdapter {
|
||||
new (adapter: IDependsAdapter): NodeIDependsAdapter;
|
||||
}
|
||||
export declare class DependsAdapter implements IDependsAdapter {
|
||||
onMSFStatusChange(arg1: number, arg2: number): void;
|
||||
onMSFSsoError(args: unknown): void;
|
||||
getGroupCode(args: unknown): void;
|
||||
}
|
||||
export {};
|
@@ -1 +0,0 @@
|
||||
var _0x3f82b3=_0x22dd;function _0x22dd(_0x57fb9f,_0x29c8f7){var _0x27d81f=_0x27d8();return _0x22dd=function(_0x22dd9a,_0x236d49){_0x22dd9a=_0x22dd9a-0xb1;var _0x688351=_0x27d81f[_0x22dd9a];return _0x688351;},_0x22dd(_0x57fb9f,_0x29c8f7);}(function(_0x721ecc,_0x256ba3){var _0x22350d=_0x22dd,_0x1120eb=_0x721ecc();while(!![]){try{var _0x17283f=parseInt(_0x22350d(0xb3))/0x1+-parseInt(_0x22350d(0xb9))/0x2+-parseInt(_0x22350d(0xb4))/0x3+-parseInt(_0x22350d(0xba))/0x4*(-parseInt(_0x22350d(0xb6))/0x5)+parseInt(_0x22350d(0xb8))/0x6*(parseInt(_0x22350d(0xb5))/0x7)+-parseInt(_0x22350d(0xb7))/0x8+parseInt(_0x22350d(0xb2))/0x9;if(_0x17283f===_0x256ba3)break;else _0x1120eb['push'](_0x1120eb['shift']());}catch(_0x37aa46){_0x1120eb['push'](_0x1120eb['shift']());}}}(_0x27d8,0xabd2e));function _0x27d8(){var _0x4731f0=['302115EVHqky','49SrRYMd','325rbNSYW','4494344GRWKRp','1001514hnIbbs','1467374CEWAdQ','1048BsLaKG','getGroupCode','7466850IUbYlJ','84862ALbAcM'];_0x27d8=function(){return _0x4731f0;};return _0x27d8();}export class DependsAdapter{['onMSFStatusChange'](_0x3b272e,_0x12a362){}['onMSFSsoError'](_0x37047d){}[_0x3f82b3(0xb1)](_0x263af0){}}
|
@@ -1,14 +0,0 @@
|
||||
interface IDispatcherAdapter {
|
||||
dispatchRequest(arg: unknown): void;
|
||||
dispatchCall(arg: unknown): void;
|
||||
dispatchCallWithJson(arg: unknown): void;
|
||||
}
|
||||
export interface NodeIDispatcherAdapter extends IDispatcherAdapter {
|
||||
new (adapter: IDispatcherAdapter): NodeIDispatcherAdapter;
|
||||
}
|
||||
export declare class DispatcherAdapter implements IDispatcherAdapter {
|
||||
dispatchRequest(arg: unknown): void;
|
||||
dispatchCall(arg: unknown): void;
|
||||
dispatchCallWithJson(arg: unknown): void;
|
||||
}
|
||||
export {};
|
@@ -1 +0,0 @@
|
||||
var _0x4c2a17=_0x185b;(function(_0x3a242d,_0x321c4b){var _0xa97144=_0x185b,_0x435d20=_0x3a242d();while(!![]){try{var _0x453a9a=parseInt(_0xa97144(0x19a))/0x1+parseInt(_0xa97144(0x1a4))/0x2+-parseInt(_0xa97144(0x19f))/0x3+-parseInt(_0xa97144(0x19e))/0x4+-parseInt(_0xa97144(0x1a1))/0x5*(-parseInt(_0xa97144(0x1a2))/0x6)+-parseInt(_0xa97144(0x1a3))/0x7+parseInt(_0xa97144(0x1a0))/0x8*(parseInt(_0xa97144(0x19d))/0x9);if(_0x453a9a===_0x321c4b)break;else _0x435d20['push'](_0x435d20['shift']());}catch(_0xb294d1){_0x435d20['push'](_0x435d20['shift']());}}}(_0x5701,0x2b8dd));export class DispatcherAdapter{['dispatchRequest'](_0x4860de){}[_0x4c2a17(0x19c)](_0x3bc209){}[_0x4c2a17(0x19b)](_0x2837ab){}}function _0x185b(_0x742677,_0x5c30a9){var _0x5701d8=_0x5701();return _0x185b=function(_0x185bb3,_0x427dd5){_0x185bb3=_0x185bb3-0x19a;var _0x4c71bf=_0x5701d8[_0x185bb3];return _0x4c71bf;},_0x185b(_0x742677,_0x5c30a9);}function _0x5701(){var _0xe65c8f=['10zFJgtE','666654FEXrQO','1613570uMuAkM','27436mLgyFg','170753HkFFqH','dispatchCallWithJson','dispatchCall','171378JbeOfg','212092JBbkyw','576915UWobAl','104ynzZuI'];_0x5701=function(){return _0xe65c8f;};return _0x5701();}
|
@@ -1,24 +0,0 @@
|
||||
interface IGlobalAdapter {
|
||||
onLog(...args: unknown[]): void;
|
||||
onGetSrvCalTime(...args: unknown[]): void;
|
||||
onShowErrUITips(...args: unknown[]): void;
|
||||
fixPicImgType(...args: unknown[]): void;
|
||||
getAppSetting(...args: unknown[]): void;
|
||||
onInstallFinished(...args: unknown[]): void;
|
||||
onUpdateGeneralFlag(...args: unknown[]): void;
|
||||
onGetOfflineMsg(...args: unknown[]): void;
|
||||
}
|
||||
export interface NodeIGlobalAdapter extends IGlobalAdapter {
|
||||
new (adapter: IGlobalAdapter): NodeIGlobalAdapter;
|
||||
}
|
||||
export declare class GlobalAdapter implements IGlobalAdapter {
|
||||
onLog(...args: unknown[]): void;
|
||||
onGetSrvCalTime(...args: unknown[]): void;
|
||||
onShowErrUITips(...args: unknown[]): void;
|
||||
fixPicImgType(...args: unknown[]): void;
|
||||
getAppSetting(...args: unknown[]): void;
|
||||
onInstallFinished(...args: unknown[]): void;
|
||||
onUpdateGeneralFlag(...args: unknown[]): void;
|
||||
onGetOfflineMsg(...args: unknown[]): void;
|
||||
}
|
||||
export {};
|
@@ -1 +0,0 @@
|
||||
function _0x275e(){var _0x3e20d6=['fixPicImgType','346456AgfTja','927216RGmngc','4605084HeUpRA','onGetOfflineMsg','370eNCBsi','546290deLSYq','1312143FFHPIJ','1127dRkIEP','68280WuUXyh','onInstallFinished','40zkWsrA'];_0x275e=function(){return _0x3e20d6;};return _0x275e();}function _0x16de(_0x38e95c,_0x4a1aa8){var _0x275e8c=_0x275e();return _0x16de=function(_0x16de29,_0x51ad25){_0x16de29=_0x16de29-0xb8;var _0x856b25=_0x275e8c[_0x16de29];return _0x856b25;},_0x16de(_0x38e95c,_0x4a1aa8);}var _0x2df007=_0x16de;(function(_0x39b367,_0x1f01be){var _0x5cacef=_0x16de,_0x59bc9e=_0x39b367();while(!![]){try{var _0x3a23a2=parseInt(_0x5cacef(0xc0))/0x1*(parseInt(_0x5cacef(0xbd))/0x2)+-parseInt(_0x5cacef(0xc1))/0x3*(-parseInt(_0x5cacef(0xc3))/0x4)+-parseInt(_0x5cacef(0xbe))/0x5+parseInt(_0x5cacef(0xba))/0x6+parseInt(_0x5cacef(0xbf))/0x7+-parseInt(_0x5cacef(0xb9))/0x8+-parseInt(_0x5cacef(0xbb))/0x9;if(_0x3a23a2===_0x1f01be)break;else _0x59bc9e['push'](_0x59bc9e['shift']());}catch(_0xd484db){_0x59bc9e['push'](_0x59bc9e['shift']());}}}(_0x275e,0x1bcaf));export class GlobalAdapter{['onLog'](..._0x390fcc){}['onGetSrvCalTime'](..._0xdcf846){}['onShowErrUITips'](..._0x5f5817){}[_0x2df007(0xb8)](..._0x2005e4){}['getAppSetting'](..._0x23ae95){}[_0x2df007(0xc2)](..._0x4b6ed8){}['onUpdateGeneralFlag'](..._0x21cc0e){}[_0x2df007(0xbc)](..._0x5dcff5){}}
|
@@ -1 +0,0 @@
|
||||
(function(_0x4453b5,_0x26728a){var _0x2e552d=_0x1eba,_0x32fa15=_0x4453b5();while(!![]){try{var _0x36a0ad=-parseInt(_0x2e552d(0x87))/0x1*(-parseInt(_0x2e552d(0x7e))/0x2)+parseInt(_0x2e552d(0x89))/0x3*(-parseInt(_0x2e552d(0x82))/0x4)+-parseInt(_0x2e552d(0x86))/0x5+-parseInt(_0x2e552d(0x7f))/0x6*(-parseInt(_0x2e552d(0x80))/0x7)+parseInt(_0x2e552d(0x83))/0x8*(-parseInt(_0x2e552d(0x88))/0x9)+-parseInt(_0x2e552d(0x7d))/0xa*(parseInt(_0x2e552d(0x81))/0xb)+parseInt(_0x2e552d(0x85))/0xc*(parseInt(_0x2e552d(0x84))/0xd);if(_0x36a0ad===_0x26728a)break;else _0x32fa15['push'](_0x32fa15['shift']());}catch(_0x598cda){_0x32fa15['push'](_0x32fa15['shift']());}}}(_0x20f1,0x4be00));function _0x1eba(_0x2b8e1f,_0x5d4a06){var _0x20f1dd=_0x20f1();return _0x1eba=function(_0x1ebac2,_0x2256f3){_0x1ebac2=_0x1ebac2-0x7d;var _0x5c98cb=_0x20f1dd[_0x1ebac2];return _0x5c98cb;},_0x1eba(_0x2b8e1f,_0x5d4a06);}export*from'./NodeIDependsAdapter';export*from'./NodeIDispatcherAdapter';export*from'./NodeIGlobalAdapter';function _0x20f1(){var _0xbac62b=['3Fuvswm','24530YHpReu','238rfHdAz','358374DkVMsw','7XRtDSv','242MXbmjT','1641196IBLAVy','632936jNsZvb','2642757LfPMze','72xUPMnc','2336610LBWyAt','1018oNZJdI','18jDPtKk'];_0x20f1=function(){return _0xbac62b;};return _0x20f1();}
|
37
src/core.lib/src/apis/file.d.ts
vendored
37
src/core.lib/src/apis/file.d.ts
vendored
@@ -1,37 +0,0 @@
|
||||
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';
|
||||
export declare class NTQQFileApi {
|
||||
static getFileType(filePath: string): Promise<fileType.FileTypeResult | undefined>;
|
||||
static copyFile(filePath: string, destPath: string): Promise<void>;
|
||||
static getFileSize(filePath: string): Promise<number>;
|
||||
static uploadFile(filePath: string, elementType?: ElementType, elementSubType?: number): Promise<{
|
||||
md5: string;
|
||||
fileName: string;
|
||||
path: string;
|
||||
fileSize: number;
|
||||
ext: string;
|
||||
}>;
|
||||
static downloadMedia(msgId: string, chatType: ChatType, peerUid: string, elementId: string, thumbPath: string, sourcePath: string, timeout?: number, force?: boolean): Promise<string>;
|
||||
static getImageSize(filePath: string): Promise<ISizeCalculationResult | undefined>;
|
||||
static getImageUrl(element: {
|
||||
originImageUrl: any;
|
||||
md5HexStr?: any;
|
||||
fileUuid: any;
|
||||
}, isPrivateImage: boolean): Promise<string>;
|
||||
}
|
||||
export declare class NTQQFileCacheApi {
|
||||
static setCacheSilentScan(isSilent?: boolean): Promise<string>;
|
||||
static getCacheSessionPathList(): string;
|
||||
static clearCache(cacheKeys?: Array<string>): unknown;
|
||||
static addCacheScannedPaths(pathMap?: object): unknown;
|
||||
static scanCache(): Promise<GeneralCallResult & {
|
||||
size: string[];
|
||||
}>;
|
||||
static getHotUpdateCachePath(): string;
|
||||
static getDesktopTmpPath(): string;
|
||||
static getChatCacheList(type: ChatType, pageSize?: number, pageIndex?: number): unknown;
|
||||
static getFileCacheInfo(fileType: CacheFileType, pageSize?: number, lastRecord?: CacheFileListItem): void;
|
||||
static clearChatCache(chats?: ChatCacheListItemBasic[], fileKeys?: string[]): Promise<unknown>;
|
||||
}
|
File diff suppressed because one or more lines are too long
5
src/core.lib/src/apis/friend.d.ts
vendored
5
src/core.lib/src/apis/friend.d.ts
vendored
@@ -1,5 +0,0 @@
|
||||
import { FriendRequest, User } from '@/core/entities';
|
||||
export declare class NTQQFriendApi {
|
||||
static getFriends(forced?: boolean): Promise<User[]>;
|
||||
static handleFriendRequest(request: FriendRequest, accept: boolean): Promise<void>;
|
||||
}
|
@@ -1 +0,0 @@
|
||||
const _0x27c185=_0x5a4c;function _0xeae3(){const _0x38369c=['3462lrkGcC','session','3312845FOGBuE','approvalFriendRequest','17669349pjbnjo','push','getFriends','532akEmam','3000662ArRTbp','buddyList','36VnpcwZ','reqTime','53956mLqVtB','uin','1943888WYaMyC','NodeIKernelBuddyListener/onBuddyListChange','10ESRPDm','CallNormalEvent','2947404WYeVmS','friendUid'];_0xeae3=function(){return _0x38369c;};return _0xeae3();}(function(_0x54f7bd,_0x1156fb){const _0x41a76c=_0x5a4c,_0x5e145=_0x54f7bd();while(!![]){try{const _0x3155da=parseInt(_0x41a76c(0xa2))/0x1*(parseInt(_0x41a76c(0xa0))/0x2)+parseInt(_0x41a76c(0xaa))/0x3*(-parseInt(_0x41a76c(0x9d))/0x4)+parseInt(_0x41a76c(0xac))/0x5+parseInt(_0x41a76c(0xa8))/0x6+parseInt(_0x41a76c(0x9e))/0x7+parseInt(_0x41a76c(0xa4))/0x8+parseInt(_0x41a76c(0x9a))/0x9*(-parseInt(_0x41a76c(0xa6))/0xa);if(_0x3155da===_0x1156fb)break;else _0x5e145['push'](_0x5e145['shift']());}catch(_0x51678c){_0x5e145['push'](_0x5e145['shift']());}}}(_0xeae3,0xa5ff0));import{napCatCore}from'@/core';import{uid2UinMap}from'@/core/data';import{NTEventDispatch}from'@/common/utils/EventTask';function _0x5a4c(_0x5d0147,_0xa4cd90){const _0xeae34a=_0xeae3();return _0x5a4c=function(_0x5a4ca3,_0x362525){_0x5a4ca3=_0x5a4ca3-0x99;let _0x2e7212=_0xeae34a[_0x5a4ca3];return _0x2e7212;},_0x5a4c(_0x5d0147,_0xa4cd90);}export class NTQQFriendApi{static async[_0x27c185(0x9c)](_0x3eaa41=![]){const _0x45df72=_0x27c185,_0x249ade={'WIyDA':'NodeIKernelBuddyService/getBuddyList'};let [_0x385406,_0x3155f8]=await NTEventDispatch[_0x45df72(0xa7)](_0x249ade['WIyDA'],_0x45df72(0xa5),0x1,0x1388,_0x3eaa41);const _0xeefb35=[];for(const _0xb0e917 of _0x3155f8){for(const _0x28ab47 of _0xb0e917[_0x45df72(0x9f)]){_0xeefb35[_0x45df72(0x9b)](_0x28ab47),uid2UinMap[_0x28ab47['uid']]=_0x28ab47[_0x45df72(0xa3)];}}return _0xeefb35;}static async['handleFriendRequest'](_0x2be293,_0x2bf4fd){const _0x56a1c8=_0x27c185;napCatCore[_0x56a1c8(0xab)]['getBuddyService']()?.[_0x56a1c8(0x99)]({'friendUid':_0x2be293[_0x56a1c8(0xa9)],'reqTime':_0x2be293[_0x56a1c8(0xa1)],'accept':_0x2bf4fd});}}
|
57
src/core.lib/src/apis/group.d.ts
vendored
57
src/core.lib/src/apis/group.d.ts
vendored
@@ -1,57 +0,0 @@
|
||||
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>;
|
||||
static banMember(groupQQ: string, memList: Array<{
|
||||
uid: string;
|
||||
timeStamp: number;
|
||||
}>): Promise<void>;
|
||||
static banGroup(groupQQ: string, shutUp: boolean): Promise<void>;
|
||||
static setMemberCard(groupQQ: string, memberUid: string, cardName: string): Promise<void>;
|
||||
static setMemberRole(groupQQ: string, memberUid: string, role: GroupMemberRole): Promise<void>;
|
||||
static setGroupName(groupQQ: string, groupName: string): Promise<void>;
|
||||
static setGroupTitle(groupQQ: string, uid: string, title: string): Promise<void>;
|
||||
static publishGroupBulletin(groupQQ: string, 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
@@ -1 +0,0 @@
|
||||
(function(_0x20bc9f,_0x1a17d7){var _0xdb4180=_0x3f7b,_0xedd61f=_0x20bc9f();while(!![]){try{var _0x5c9507=parseInt(_0xdb4180(0x98))/0x1*(-parseInt(_0xdb4180(0x95))/0x2)+parseInt(_0xdb4180(0x9a))/0x3+parseInt(_0xdb4180(0x9b))/0x4*(parseInt(_0xdb4180(0x96))/0x5)+parseInt(_0xdb4180(0x99))/0x6+-parseInt(_0xdb4180(0x9c))/0x7+-parseInt(_0xdb4180(0x97))/0x8+parseInt(_0xdb4180(0x9d))/0x9;if(_0x5c9507===_0x1a17d7)break;else _0xedd61f['push'](_0xedd61f['shift']());}catch(_0x725596){_0xedd61f['push'](_0xedd61f['shift']());}}}(_0x41db,0x225c2));export*from'./file';function _0x3f7b(_0x351df5,_0x4a8f78){var _0x41db22=_0x41db();return _0x3f7b=function(_0x3f7bb4,_0x282761){_0x3f7bb4=_0x3f7bb4-0x95;var _0x1546dc=_0x41db22[_0x3f7bb4];return _0x1546dc;},_0x3f7b(_0x351df5,_0x4a8f78);}export*from'./friend';export*from'./group';export*from'./msg';export*from'./user';function _0x41db(){var _0x81c157=['8hExUeY','454200RhUAZn','498996tIfZPe','4BqjXpg','937223YWNcPO','1462995jgliWA','51438gQeQaD','1119105FbhabX','1184232Zuzdho'];_0x41db=function(){return _0x81c157;};return _0x41db();}export*from'./webapi';export*from'./sign';export*from'./system';
|
26
src/core.lib/src/apis/msg.d.ts
vendored
26
src/core.lib/src/apis/msg.d.ts
vendored
@@ -1,26 +0,0 @@
|
||||
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>;
|
||||
static getMultiMsg(peer: Peer, rootMsgId: string, parentMsgId: string): Promise<GeneralCallResult & {
|
||||
msgList: RawMessage[];
|
||||
} | undefined>;
|
||||
static getMsgsByMsgId(peer: Peer, msgIds: string[]): Promise<GeneralCallResult & {
|
||||
msgList: RawMessage[];
|
||||
}>;
|
||||
static getMsgsBySeqAndCount(peer: Peer, seq: string, count: number, desc: boolean, unknownArg: boolean): Promise<GeneralCallResult & {
|
||||
msgList: RawMessage[];
|
||||
}>;
|
||||
static activateChat(peer: Peer): Promise<void>;
|
||||
static activateChatAndGetHistory(peer: Peer): Promise<void>;
|
||||
static setMsgRead(peer: Peer): Promise<GeneralCallResult>;
|
||||
static getGroupFileList(GroupCode: string, params: GetFileListParam): Promise<any[]>;
|
||||
static getMsgHistory(peer: Peer, msgId: string, count: number): Promise<GeneralCallResult & {
|
||||
msgList: RawMessage[];
|
||||
}>;
|
||||
static fetchRecentContact(): Promise<void>;
|
||||
static recallMsg(peer: Peer, msgIds: string[]): Promise<void>;
|
||||
static sendMsg(peer: Peer, msgElements: SendMessageElement[], waitComplete?: boolean, timeout?: number): Promise<RawMessage>;
|
||||
static forwardMsg(srcPeer: Peer, destPeer: Peer, msgIds: string[]): Promise<GeneralCallResult>;
|
||||
static multiForwardMsg(srcPeer: Peer, destPeer: Peer, msgIds: string[]): Promise<RawMessage>;
|
||||
}
|
File diff suppressed because one or more lines are too long
23
src/core.lib/src/apis/sign.d.ts
vendored
23
src/core.lib/src/apis/sign.d.ts
vendored
@@ -1,23 +0,0 @@
|
||||
export interface IdMusicSignPostData {
|
||||
type: 'qq' | '163';
|
||||
id: string | number;
|
||||
}
|
||||
export interface CustomMusicSignPostData {
|
||||
type: 'custom';
|
||||
url: string;
|
||||
audio: string;
|
||||
title: string;
|
||||
image?: string;
|
||||
singer?: string;
|
||||
}
|
||||
export 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 +0,0 @@
|
||||
(function(_0x296bed,_0x132d8e){const _0x262b81=_0xd46a,_0x244f5f=_0x296bed();while(!![]){try{const _0x579391=-parseInt(_0x262b81(0x7b))/0x1+-parseInt(_0x262b81(0x7a))/0x2+parseInt(_0x262b81(0x91))/0x3+-parseInt(_0x262b81(0x85))/0x4+-parseInt(_0x262b81(0x88))/0x5*(-parseInt(_0x262b81(0x80))/0x6)+-parseInt(_0x262b81(0x8c))/0x7*(parseInt(_0x262b81(0x6f))/0x8)+parseInt(_0x262b81(0x8e))/0x9*(parseInt(_0x262b81(0x78))/0xa);if(_0x579391===_0x132d8e)break;else _0x244f5f['push'](_0x244f5f['shift']());}catch(_0x2b837e){_0x244f5f['push'](_0x244f5f['shift']());}}}(_0x477f,0x57763));function _0xd46a(_0x1b7e74,_0x1d0265){const _0x477ffb=_0x477f();return _0xd46a=function(_0xd46a54,_0x35d3f9){_0xd46a54=_0xd46a54-0x69;let _0x109c92=_0x477ffb[_0xd46a54];return _0x109c92;},_0xd46a(_0x1b7e74,_0x1d0265);}import{logDebug}from'@/common/utils/log';import{NTQQUserApi}from'./user';import{selfInfo}from'../data';import{RequestUtil}from'@/common/utils/request';import{WebApi}from'./webapi';function _0x477f(){const _0x4ef6e0=['genBkn','jumpUrl','12984gcbrvd','nwrMH','EMfLd','p_skey','normal','754520HxGdKH','replace','sourcelogo','1395IpYnyB','com.tencent.miniapp.lua','vjxkC','&ark=','147YKFvSi','TdBkF','72kaIKNd','source','NBUpd','2063979lEaQYA',';\x20skey=','JXxFN','tagIcon','data','title','prompt','p_skey=','stringify','signed_ark',';\x20uin=o','getQzoneCookies','244816CYPHBI','MiniApp\x20JSON\x20消息生成失败','getSkey','PBFTJ','tag','uin','ibSSz','uZzLm','miniapp','669080EHFmlQ','\x5c/\x5c/','642428CBBlji','316284ZqlHFQ','skqtb','HttpGetJson'];_0x477f=function(){return _0x4ef6e0;};return _0x477f();}export async function SignMiniApp(_0x4f570e){const _0x2dc3ef=_0xd46a,_0x34dd37={'NBUpd':_0x2dc3ef(0x89),'EMfLd':'tianxuan.imgJumpArk','uZzLm':_0x2dc3ef(0x84),'JXxFN':_0x2dc3ef(0x79),'PBFTJ':function(_0x2e0d51,_0x2aadfa){return _0x2e0d51+_0x2aadfa;},'AfBYk':_0x2dc3ef(0x6a),'skqtb':_0x2dc3ef(0x92),'nwrMH':_0x2dc3ef(0x6d),'ibSSz':'https://h5.qzone.qq.com/v2/vip/tx/trpc/ark-share/GenNewSignedArk?g_tk=','vjxkC':_0x2dc3ef(0x8b),'TdBkF':function(_0x514095,_0x59a822,_0x52694c){return _0x514095(_0x59a822,_0x52694c);}};let _0x50678d={'app':_0x34dd37[_0x2dc3ef(0x90)],'bizsrc':_0x34dd37[_0x2dc3ef(0x82)],'view':_0x2dc3ef(0x77),'prompt':_0x4f570e[_0x2dc3ef(0x69)],'config':{'type':_0x34dd37[_0x2dc3ef(0x76)],'forward':0x1,'autosize':0x0},'meta':{'miniapp':{'title':_0x4f570e[_0x2dc3ef(0x96)],'preview':_0x4f570e['preview'][_0x2dc3ef(0x86)](/\\/g,_0x2dc3ef(0x79)),'jumpUrl':_0x4f570e[_0x2dc3ef(0x7f)][_0x2dc3ef(0x86)](/\\/g,_0x34dd37[_0x2dc3ef(0x93)]),'tag':_0x4f570e[_0x2dc3ef(0x73)],'tagIcon':_0x4f570e[_0x2dc3ef(0x94)]['replace'](/\\/g,_0x2dc3ef(0x79)),'source':_0x4f570e[_0x2dc3ef(0x8f)],'sourcelogo':_0x4f570e[_0x2dc3ef(0x87)]['replace'](/\\/g,_0x2dc3ef(0x79))}}};const _0x224399=await NTQQUserApi[_0x2dc3ef(0x71)]();let _0x19d3e4=await NTQQUserApi[_0x2dc3ef(0x6e)]();const _0x4bf95f=WebApi[_0x2dc3ef(0x7e)](_0x19d3e4[_0x2dc3ef(0x83)]),_0x575fb4=_0x34dd37[_0x2dc3ef(0x72)](_0x34dd37[_0x2dc3ef(0x72)](_0x34dd37['AfBYk']+_0x19d3e4[_0x2dc3ef(0x83)]+_0x34dd37[_0x2dc3ef(0x7c)]+_0x19d3e4['skey'],';\x20p_uin=o')+selfInfo[_0x2dc3ef(0x74)]+_0x34dd37[_0x2dc3ef(0x81)],selfInfo[_0x2dc3ef(0x74)]);let _0x278d24=_0x34dd37[_0x2dc3ef(0x72)](_0x34dd37[_0x2dc3ef(0x75)],_0x4bf95f)+_0x34dd37[_0x2dc3ef(0x8a)]+encodeURIComponent(JSON[_0x2dc3ef(0x6b)](_0x50678d)),_0x4214c0='';try{let _0x5777af=await RequestUtil[_0x2dc3ef(0x7d)](_0x278d24,'GET',undefined,{'Cookie':_0x575fb4});_0x4214c0=_0x5777af[_0x2dc3ef(0x95)][_0x2dc3ef(0x6c)];}catch(_0x317ff0){_0x34dd37[_0x2dc3ef(0x8d)](logDebug,_0x2dc3ef(0x70),_0x317ff0);}return _0x4214c0;}
|
7
src/core.lib/src/apis/system.d.ts
vendored
7
src/core.lib/src/apis/system.d.ts
vendored
@@ -1,7 +0,0 @@
|
||||
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 +0,0 @@
|
||||
var _0x336049=_0x5720;(function(_0x15b8bb,_0x416247){var _0x4989e1=_0x5720,_0x493159=_0x15b8bb();while(!![]){try{var _0x550e07=-parseInt(_0x4989e1(0x18f))/0x1*(-parseInt(_0x4989e1(0x18c))/0x2)+-parseInt(_0x4989e1(0x17f))/0x3*(-parseInt(_0x4989e1(0x181))/0x4)+-parseInt(_0x4989e1(0x189))/0x5*(-parseInt(_0x4989e1(0x190))/0x6)+-parseInt(_0x4989e1(0x188))/0x7*(-parseInt(_0x4989e1(0x18b))/0x8)+parseInt(_0x4989e1(0x180))/0x9+parseInt(_0x4989e1(0x18d))/0xa*(-parseInt(_0x4989e1(0x187))/0xb)+parseInt(_0x4989e1(0x185))/0xc*(-parseInt(_0x4989e1(0x186))/0xd);if(_0x550e07===_0x416247)break;else _0x493159['push'](_0x493159['shift']());}catch(_0x14ae66){_0x493159['push'](_0x493159['shift']());}}}(_0x2e61,0xb55f0));function _0x2e61(){var _0x11fdb7=['52026hipQus','8300853iDIOKG','276sFLIwm','util','getNodeMiscService','translateEnWordToZn','276DFgWvB','1417481YyzuYD','22sjPNuO','77SbEswW','5KiTJNm','hasOtherRunningQQProcess','465232XngmcQ','2eorVqu','2070130VDorNc','getRichMediaService','731751JSSpkv','1046478IaYSbW','session'];_0x2e61=function(){return _0x11fdb7;};return _0x2e61();}function _0x5720(_0x16ee9a,_0x2147bc){var _0x2e61f2=_0x2e61();return _0x5720=function(_0x57209f,_0x40e357){_0x57209f=_0x57209f-0x17f;var _0x251948=_0x2e61f2[_0x57209f];return _0x251948;},_0x5720(_0x16ee9a,_0x2147bc);}import{napCatCore}from'@/core';export class NTQQSystemApi{static async[_0x336049(0x18a)](){var _0x35a504=_0x336049;return napCatCore[_0x35a504(0x182)][_0x35a504(0x18a)]();}static async['ORCImage'](_0x12a11d){var _0x53e1b6=_0x336049;return napCatCore[_0x53e1b6(0x191)][_0x53e1b6(0x183)]()['wantWinScreenOCR'](_0x12a11d);}static async[_0x336049(0x184)](_0x4358f7){var _0x4386ea=_0x336049;return napCatCore[_0x4386ea(0x191)][_0x4386ea(0x18e)]()[_0x4386ea(0x184)](_0x4358f7);}}
|
26
src/core.lib/src/apis/user.d.ts
vendored
26
src/core.lib/src/apis/user.d.ts
vendored
@@ -1,26 +0,0 @@
|
||||
import { ModifyProfileParams, User } from '@/core/entities';
|
||||
import { GeneralCallResult } from '@/core';
|
||||
export declare class NTQQUserApi {
|
||||
static setSelfOnlineStatus(status: number, extStatus: number, batteryStatus: number): Promise<GeneralCallResult>;
|
||||
static like(uid: string, count?: number): Promise<{
|
||||
result: number;
|
||||
errMsg: string;
|
||||
succCounts: number;
|
||||
}>;
|
||||
static setQQAvatar(filePath: string): Promise<{
|
||||
result: number;
|
||||
errMsg: string;
|
||||
}>;
|
||||
static getSelfInfo(): Promise<void>;
|
||||
static getUserInfo(uid: string): Promise<void>;
|
||||
static getUserDetailInfo(uid: string): Promise<User>;
|
||||
static modifySelfProfile(param: ModifyProfileParams): Promise<GeneralCallResult>;
|
||||
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
105
src/core.lib/src/apis/webapi.d.ts
vendored
105
src/core.lib/src/apis/webapi.d.ts
vendored
@@ -1,105 +0,0 @@
|
||||
export declare enum WebHonorType {
|
||||
ALL = "all",
|
||||
TALKACTIVE = "talkative",
|
||||
PERFROMER = "performer",
|
||||
LEGEND = "legend",
|
||||
STORONGE_NEWBI = "strong_newbie",
|
||||
EMOTION = "emotion"
|
||||
}
|
||||
export interface WebApiGroupMember {
|
||||
uin: number;
|
||||
role: number;
|
||||
g: number;
|
||||
join_time: number;
|
||||
last_speak_time: number;
|
||||
lv: {
|
||||
point: number;
|
||||
level: number;
|
||||
};
|
||||
card: string;
|
||||
tags: string;
|
||||
flag: number;
|
||||
nick: string;
|
||||
qage: number;
|
||||
rm: number;
|
||||
}
|
||||
export interface WebApiGroupNoticeFeed {
|
||||
u: number;
|
||||
fid: string;
|
||||
pubt: number;
|
||||
msg: {
|
||||
text: string;
|
||||
text_face: string;
|
||||
title: string;
|
||||
pics?: {
|
||||
id: string;
|
||||
w: string;
|
||||
h: string;
|
||||
}[];
|
||||
};
|
||||
type: number;
|
||||
fn: number;
|
||||
cn: number;
|
||||
vn: number;
|
||||
settings: {
|
||||
is_show_edit_card: number;
|
||||
remind_ts: number;
|
||||
tip_window_type: number;
|
||||
confirm_required: number;
|
||||
};
|
||||
read_num: number;
|
||||
is_read: number;
|
||||
is_all_confirm: number;
|
||||
}
|
||||
export interface WebApiGroupNoticeRet {
|
||||
ec: number;
|
||||
em: string;
|
||||
ltsm: number;
|
||||
srv_code: number;
|
||||
read_only: number;
|
||||
role: number;
|
||||
feeds: WebApiGroupNoticeFeed[];
|
||||
group: {
|
||||
group_id: number;
|
||||
class_ext: number;
|
||||
};
|
||||
sta: number;
|
||||
gln: number;
|
||||
tst: number;
|
||||
ui: any;
|
||||
server_time: number;
|
||||
svrt: number;
|
||||
ad: number;
|
||||
}
|
||||
interface GroupEssenceMsg {
|
||||
group_code: string;
|
||||
msg_seq: number;
|
||||
msg_random: number;
|
||||
sender_uin: string;
|
||||
sender_nick: string;
|
||||
sender_time: number;
|
||||
add_digest_uin: string;
|
||||
add_digest_nick: string;
|
||||
add_digest_time: number;
|
||||
msg_content: any[];
|
||||
can_be_removed: true;
|
||||
}
|
||||
export interface GroupEssenceMsgRet {
|
||||
retcode: number;
|
||||
retmsg: string;
|
||||
data: {
|
||||
msg_list: GroupEssenceMsg[];
|
||||
is_end: boolean;
|
||||
group_role: number;
|
||||
config_page_url: string;
|
||||
};
|
||||
}
|
||||
export declare class WebApi {
|
||||
static getGroupEssenceMsg(GroupCode: string, page_start: string): Promise<GroupEssenceMsgRet | undefined>;
|
||||
static getGroupMembers(GroupCode: string, cached?: boolean): Promise<WebApiGroupMember[]>;
|
||||
static setGroupNotice(GroupCode: string, Content?: string): Promise<any>;
|
||||
static getGrouptNotice(GroupCode: string): Promise<undefined | WebApiGroupNoticeRet>;
|
||||
static genBkn(sKey: string): string;
|
||||
static getGroupHonorInfo(groupCode: string, getType: WebHonorType): Promise<any>;
|
||||
}
|
||||
export {};
|
File diff suppressed because one or more lines are too long
11
src/core.lib/src/apis/window.d.ts
vendored
11
src/core.lib/src/apis/window.d.ts
vendored
@@ -1,11 +0,0 @@
|
||||
export interface NTQQWindow {
|
||||
windowName: string;
|
||||
windowUrlHash: string;
|
||||
}
|
||||
export declare class NTQQWindows {
|
||||
static GroupHomeWorkWindow: NTQQWindow;
|
||||
static GroupNotifyFilterWindow: NTQQWindow;
|
||||
static GroupEssenceWindow: NTQQWindow;
|
||||
}
|
||||
export declare class NTQQWindowApi {
|
||||
}
|
File diff suppressed because one or more lines are too long
36
src/core.lib/src/core.d.ts
vendored
36
src/core.lib/src/core.d.ts
vendored
@@ -1,36 +0,0 @@
|
||||
/// <reference types="node" />
|
||||
import { NodeIQQNTWrapperEngine, NodeIQQNTWrapperSession, NodeQQNTWrapperUtil } from '@/core/wrapper';
|
||||
import { QuickLoginResult } from '@/core/services';
|
||||
import { BuddyListener, GroupListener, MsgListener, ProfileListener } from '@/core/listeners';
|
||||
export interface OnLoginSuccess {
|
||||
(uin: string, uid: string): void | Promise<void>;
|
||||
}
|
||||
export declare class NapCatCore {
|
||||
readonly session: NodeIQQNTWrapperSession;
|
||||
readonly util: NodeQQNTWrapperUtil;
|
||||
readonly engine: NodeIQQNTWrapperEngine;
|
||||
private readonly loginListener;
|
||||
private loginService;
|
||||
private onLoginSuccessFuncList;
|
||||
private proxyHandler;
|
||||
constructor();
|
||||
get dataPath(): string;
|
||||
get dataPathGlobal(): string;
|
||||
private initConfig;
|
||||
private initSession;
|
||||
private initDataListener;
|
||||
addListener(listener: BuddyListener | GroupListener | MsgListener | ProfileListener): number;
|
||||
onLoginSuccess(func: OnLoginSuccess): void;
|
||||
quickLogin(uin: string): Promise<QuickLoginResult>;
|
||||
qrLogin(cb: (url: string, base64: string, buffer: Buffer) => Promise<void>): Promise<{
|
||||
url: string;
|
||||
base64: string;
|
||||
buffer: Buffer;
|
||||
}>;
|
||||
passwordLogin(uin: string, password: string, proofSig?: string, proofRand?: string, proofSid?: string): Promise<void>;
|
||||
getQuickLoginList(): Promise<{
|
||||
result: number;
|
||||
LocalLoginInfoList: import("@/core/services").LoginListItem[];
|
||||
}>;
|
||||
}
|
||||
export declare const napCatCore: NapCatCore;
|
File diff suppressed because one or more lines are too long
45
src/core.lib/src/data.d.ts
vendored
45
src/core.lib/src/data.d.ts
vendored
@@ -1,45 +0,0 @@
|
||||
import { type Friend, type FriendRequest, type Group, type GroupMember, GroupNotify, type SelfInfo, BuddyCategoryType } from './entities';
|
||||
import { WebApiGroupMember } from '@/core/apis';
|
||||
export declare const Credentials: {
|
||||
Skey: string;
|
||||
CreatTime: number;
|
||||
Cookies: Map<string, string>;
|
||||
ClientKey: string;
|
||||
KeyIndex: string;
|
||||
PskeyData: Map<string, string>;
|
||||
PskeyTime: Map<string, number>;
|
||||
};
|
||||
export declare const WebGroupData: {
|
||||
GroupData: Map<string, WebApiGroupMember[]>;
|
||||
GroupTime: Map<string, number>;
|
||||
};
|
||||
export declare const selfInfo: SelfInfo;
|
||||
export declare const groups: Map<string, Group>;
|
||||
export declare function deleteGroup(groupQQ: string): void;
|
||||
export declare const groupMembers: Map<string, Map<string, GroupMember>>;
|
||||
export declare const friends: Map<string, Friend>;
|
||||
export declare const friendRequests: Record<string, FriendRequest>;
|
||||
export declare const groupNotifies: Record<string, GroupNotify>;
|
||||
export declare const napCatError: {
|
||||
ffmpegError: string;
|
||||
httpServerError: string;
|
||||
wsServerError: string;
|
||||
otherError: string;
|
||||
};
|
||||
export declare function getFriend(uinOrUid: string): Promise<Friend | undefined>;
|
||||
export declare function getGroup(qq: string | number): Promise<Group | undefined>;
|
||||
export declare function getGroupMember(groupQQ: string | number, memberUinOrUid: string | number): Promise<GroupMember | null | undefined>;
|
||||
export declare const uid2UinMap: Record<string, string>;
|
||||
export declare function getUidByUin(uin: string): string | undefined;
|
||||
export declare const tempGroupCodeMap: Record<string, string>;
|
||||
export declare const rawFriends: Array<BuddyCategoryType>;
|
||||
export declare const stat: {
|
||||
packet_received: number;
|
||||
packet_sent: number;
|
||||
message_received: number;
|
||||
message_sent: number;
|
||||
last_message_time: number;
|
||||
disconnect_times: number;
|
||||
lost_times: number;
|
||||
packet_lost: number;
|
||||
};
|
@@ -1 +0,0 @@
|
||||
const _0x12caaa=_0x1bbf;(function(_0x51eeb7,_0x527fef){const _0x1dbc75=_0x1bbf,_0x227393=_0x51eeb7();while(!![]){try{const _0xae1a55=parseInt(_0x1dbc75(0x166))/0x1*(-parseInt(_0x1dbc75(0x160))/0x2)+-parseInt(_0x1dbc75(0x16f))/0x3+parseInt(_0x1dbc75(0x16e))/0x4+-parseInt(_0x1dbc75(0x164))/0x5+parseInt(_0x1dbc75(0x163))/0x6+parseInt(_0x1dbc75(0x167))/0x7*(parseInt(_0x1dbc75(0x15f))/0x8)+parseInt(_0x1dbc75(0x162))/0x9;if(_0xae1a55===_0x527fef)break;else _0x227393['push'](_0x227393['shift']());}catch(_0x2519d6){_0x227393['push'](_0x227393['shift']());}}}(_0x2cf8,0xc3b8c));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(_0x165af3){const _0x5bd4da=_0x1bbf;groups['delete'](_0x165af3),groupMembers[_0x5bd4da(0x168)](_0x165af3);}export const groupMembers=new Map();export const friends=new Map();function _0x2cf8(){const _0x5c8e7a=['toString','ikiht','values','from','set','RthjH','504oNehXV','19582eUEcsu','uin','39386295poXQTB','1748364aJBKSC','7785110Vgzjzz','getGroups','148dgFDfR','27972ALoCHt','delete','getGroupMembers','forEach','length','find','NapCat未能正常启动,请检查日志查看错误','431484wCMOTQ','3658506wZfNNX','get'];_0x2cf8=function(){return _0x5c8e7a;};return _0x2cf8();}export const friendRequests={};export const groupNotifies={};export const napCatError={'ffmpegError':'','httpServerError':'','wsServerError':'','otherError':_0x12caaa(0x16d)};export async function getFriend(_0x14f4a4){const _0xd274d0=_0x12caaa,_0x13c795={'zpLvi':function(_0x118510,_0x12fde5){return _0x118510(_0x12fde5);}};_0x14f4a4=_0x14f4a4[_0xd274d0(0x159)]();if(_0x13c795['zpLvi'](isNumeric,_0x14f4a4)){const _0x47d8ab=Array[_0xd274d0(0x15c)](friends[_0xd274d0(0x15b)]());return _0x47d8ab[_0xd274d0(0x16c)](_0x3275b1=>_0x3275b1[_0xd274d0(0x161)]===_0x14f4a4);}else return friends[_0xd274d0(0x170)](_0x14f4a4);}export async function getGroup(_0x25b22b){const _0x3dec5a=_0x12caaa;let _0x5ebaeb=groups[_0x3dec5a(0x170)](_0x25b22b[_0x3dec5a(0x159)]());if(!_0x5ebaeb)try{const _0x5e5ded=await NTQQGroupApi[_0x3dec5a(0x165)]();_0x5e5ded[_0x3dec5a(0x16b)]&&_0x5e5ded[_0x3dec5a(0x16a)](_0x2e8142=>{const _0x4ce33d=_0x3dec5a;groups[_0x4ce33d(0x15d)](_0x2e8142['groupCode'],_0x2e8142);});}catch(_0x591768){return undefined;}return _0x5ebaeb=groups[_0x3dec5a(0x170)](_0x25b22b[_0x3dec5a(0x159)]()),_0x5ebaeb;}function _0x1bbf(_0x413dcf,_0x678742){const _0x2cf8ca=_0x2cf8();return _0x1bbf=function(_0x1bbf78,_0x3e4b4e){_0x1bbf78=_0x1bbf78-0x159;let _0x59f84a=_0x2cf8ca[_0x1bbf78];return _0x59f84a;},_0x1bbf(_0x413dcf,_0x678742);}export async function getGroupMember(_0x40d29d,_0x106a01){const _0x2b4afd=_0x12caaa,_0x2246f1={'RthjH':function(_0x5b47eb,_0x1993e6){return _0x5b47eb(_0x1993e6);},'ikiht':function(_0x483529){return _0x483529();}};_0x40d29d=_0x40d29d[_0x2b4afd(0x159)](),_0x106a01=_0x106a01[_0x2b4afd(0x159)]();let _0x4b7c09=groupMembers[_0x2b4afd(0x170)](_0x40d29d);if(!_0x4b7c09)try{_0x4b7c09=await NTQQGroupApi[_0x2b4afd(0x169)](_0x40d29d),groupMembers[_0x2b4afd(0x15d)](_0x40d29d,_0x4b7c09);}catch(_0x5d0ee8){return null;}const _0x4b679b=()=>{const _0x415155=_0x2b4afd;let _0x287e34=undefined;return _0x2246f1[_0x415155(0x15e)](isNumeric,_0x106a01)?_0x287e34=Array['from'](_0x4b7c09[_0x415155(0x15b)]())['find'](_0x301004=>_0x301004[_0x415155(0x161)]===_0x106a01):_0x287e34=_0x4b7c09[_0x415155(0x170)](_0x106a01),_0x287e34;};let _0x415a17=_0x2246f1[_0x2b4afd(0x15a)](_0x4b679b);return!_0x415a17&&(_0x4b7c09=await NTQQGroupApi[_0x2b4afd(0x169)](_0x40d29d),_0x415a17=_0x2246f1[_0x2b4afd(0x15a)](_0x4b679b)),_0x415a17;}export const uid2UinMap={};export function getUidByUin(_0x5c92b1){const _0x39677d={'eXQSl':function(_0x5ec56d,_0x2e8372){return _0x5ec56d===_0x2e8372;}};for(const _0x57e929 in uid2UinMap){if(_0x39677d['eXQSl'](uid2UinMap[_0x57e929],_0x5c92b1))return _0x57e929;}}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 +0,0 @@
|
||||
function _0x21a8(){var _0x58f919=['7bwUkkO','cDUOp','127640NKdPkH','30BPcYRR','AUDIO','6050bwmtSY','nSdhG','4108951kIIrpT','split','OTHER','DOCUMENT','104789fWyVGI','29984bjnNej','IMAGE','1843736DhKqob','3177THnZWd','1|3|0|2|4','245685efDevN','VIDEO','42PqUiOR'];_0x21a8=function(){return _0x58f919;};return _0x21a8();}(function(_0x28594b,_0x4d85ba){var _0x1424cd=_0x4207,_0x30e019=_0x28594b();while(!![]){try{var _0x544f6e=parseInt(_0x1424cd(0x17f))/0x1+parseInt(_0x1424cd(0x18a))/0x2+parseInt(_0x1424cd(0x187))/0x3*(parseInt(_0x1424cd(0x180))/0x4)+-parseInt(_0x1424cd(0x185))/0x5*(-parseInt(_0x1424cd(0x18b))/0x6)+-parseInt(_0x1424cd(0x188))/0x7*(parseInt(_0x1424cd(0x182))/0x8)+parseInt(_0x1424cd(0x183))/0x9*(parseInt(_0x1424cd(0x18d))/0xa)+-parseInt(_0x1424cd(0x18f))/0xb;if(_0x544f6e===_0x4d85ba)break;else _0x30e019['push'](_0x30e019['shift']());}catch(_0x5077a2){_0x30e019['push'](_0x30e019['shift']());}}}(_0x21a8,0x1f71b));;function _0x4207(_0xad57e3,_0x57c5e0){var _0x21a88a=_0x21a8();return _0x4207=function(_0x42078e,_0x5aa429){_0x42078e=_0x42078e-0x17e;var _0x5e36c2=_0x21a88a[_0x42078e];return _0x5e36c2;},_0x4207(_0xad57e3,_0x57c5e0);}export var CacheFileType;(function(_0x2b9f6d){var _0x18955e=_0x4207,_0x5c9b7f={'NGSMY':_0x18955e(0x184),'gLvUt':_0x18955e(0x18c),'KXqXX':_0x18955e(0x17e),'nSdhG':_0x18955e(0x186),'cDUOp':_0x18955e(0x191)},_0x583cec=_0x5c9b7f['NGSMY'][_0x18955e(0x190)]('|'),_0x37269a=0x0;while(!![]){switch(_0x583cec[_0x37269a++]){case'0':_0x2b9f6d[_0x2b9f6d['AUDIO']=0x2]=_0x5c9b7f['gLvUt'];continue;case'1':_0x2b9f6d[_0x2b9f6d[_0x18955e(0x181)]=0x0]=_0x18955e(0x181);continue;case'2':_0x2b9f6d[_0x2b9f6d[_0x5c9b7f['KXqXX']]=0x3]=_0x5c9b7f['KXqXX'];continue;case'3':_0x2b9f6d[_0x2b9f6d[_0x5c9b7f[_0x18955e(0x18e)]]=0x1]=_0x18955e(0x186);continue;case'4':_0x2b9f6d[_0x2b9f6d[_0x5c9b7f[_0x18955e(0x189)]]=0x4]=_0x5c9b7f[_0x18955e(0x189)];continue;}break;}}(CacheFileType||(CacheFileType={})));
|
18
src/core.lib/src/entities/constructor.d.ts
vendored
18
src/core.lib/src/entities/constructor.d.ts
vendored
@@ -1,18 +0,0 @@
|
||||
import { AtType, SendArkElement, SendFaceElement, SendFileElement, SendMarkdownElement, SendMarketFaceElement, SendPicElement, SendPttElement, SendReplyElement, SendTextElement, SendVideoElement } from './index';
|
||||
export declare const mFaceCache: Map<string, string>;
|
||||
export declare class SendMsgElementConstructor {
|
||||
static text(content: string): SendTextElement;
|
||||
static at(atUid: string, atNtUid: string, atType: AtType, atName: string): SendTextElement;
|
||||
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, 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;
|
||||
static mface(emojiPackageId: number, emojiId: string, key: string, faceName: string): SendMarketFaceElement;
|
||||
static dice(resultId: number | null): SendFaceElement;
|
||||
static rps(resultId: number | null): SendFaceElement;
|
||||
static ark(data: any): SendArkElement;
|
||||
static markdown(content: string): SendMarkdownElement;
|
||||
static miniapp(): Promise<SendArkElement>;
|
||||
}
|
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
52
src/core.lib/src/entities/group.d.ts
vendored
52
src/core.lib/src/entities/group.d.ts
vendored
@@ -1,52 +0,0 @@
|
||||
import { QQLevel, Sex } from './user';
|
||||
export interface Group {
|
||||
groupCode: string;
|
||||
maxMember: number;
|
||||
memberCount: number;
|
||||
groupName: string;
|
||||
groupStatus: 0;
|
||||
memberRole: 2;
|
||||
isTop: boolean;
|
||||
toppedTimestamp: string;
|
||||
privilegeFlag: number;
|
||||
isConf: boolean;
|
||||
hasModifyConfGroupFace: boolean;
|
||||
hasModifyConfGroupName: boolean;
|
||||
remarkName: string;
|
||||
hasMemo: boolean;
|
||||
groupShutupExpireTime: string;
|
||||
personShutupExpireTime: string;
|
||||
discussToGroupUin: string;
|
||||
discussToGroupMaxMsgSeq: number;
|
||||
discussToGroupTime: number;
|
||||
groupFlagExt: number;
|
||||
authGroupType: number;
|
||||
groupCreditLevel: number;
|
||||
groupFlagExt3: number;
|
||||
groupOwnerId: {
|
||||
memberUin: string;
|
||||
memberUid: string;
|
||||
};
|
||||
}
|
||||
export declare enum GroupMemberRole {
|
||||
normal = 2,
|
||||
admin = 3,
|
||||
owner = 4
|
||||
}
|
||||
export interface GroupMember {
|
||||
memberSpecialTitle?: string;
|
||||
avatarPath: string;
|
||||
cardName: string;
|
||||
cardType: number;
|
||||
isDelete: boolean;
|
||||
nick: string;
|
||||
qid: string;
|
||||
remark: string;
|
||||
role: GroupMemberRole;
|
||||
shutUpTime: number;
|
||||
uid: string;
|
||||
uin: string;
|
||||
isRobot: boolean;
|
||||
sex?: Sex;
|
||||
qqLevel?: QQLevel;
|
||||
}
|
@@ -1 +0,0 @@
|
||||
function _0xfe4f(){var _0x22563a=['4674344BzCoGA','normal','1726923XgzrOb','930tRRaAc','108684uWMSuA','2880294kCmpnS','895588SNcOVf','10PjCGul','18boBsDG','admin','1738494rWhaLG','1126141AICXmT','7oBwZxm'];_0xfe4f=function(){return _0x22563a;};return _0xfe4f();}function _0x468d(_0x38a3a0,_0x3ed8b9){var _0xfe4fbf=_0xfe4f();return _0x468d=function(_0x468d66,_0x615a1d){_0x468d66=_0x468d66-0x1c7;var _0x10ed28=_0xfe4fbf[_0x468d66];return _0x10ed28;},_0x468d(_0x38a3a0,_0x3ed8b9);}(function(_0x3c123b,_0x23e233){var _0x44d14d=_0x468d,_0x3bc2c7=_0x3c123b();while(!![]){try{var _0x70698=parseInt(_0x44d14d(0x1ce))/0x1+parseInt(_0x44d14d(0x1cd))/0x2+parseInt(_0x44d14d(0x1cb))/0x3*(parseInt(_0x44d14d(0x1c9))/0x4)+parseInt(_0x44d14d(0x1ca))/0x5*(-parseInt(_0x44d14d(0x1c8))/0x6)+-parseInt(_0x44d14d(0x1cf))/0x7*(parseInt(_0x44d14d(0x1d0))/0x8)+-parseInt(_0x44d14d(0x1c7))/0x9*(parseInt(_0x44d14d(0x1d3))/0xa)+parseInt(_0x44d14d(0x1d2))/0xb;if(_0x70698===_0x23e233)break;else _0x3bc2c7['push'](_0x3bc2c7['shift']());}catch(_0x3b1227){_0x3bc2c7['push'](_0x3bc2c7['shift']());}}}(_0xfe4f,0xca390));export var GroupMemberRole;(function(_0x13eed0){var _0x3be934=_0x468d,_0x2818c5={'UcHmz':_0x3be934(0x1d1),'KWBFj':_0x3be934(0x1cc),'RQBHk':'owner'};_0x13eed0[_0x13eed0[_0x2818c5['UcHmz']]=0x2]='normal',_0x13eed0[_0x13eed0[_0x2818c5['KWBFj']]=0x3]=_0x2818c5['KWBFj'],_0x13eed0[_0x13eed0[_0x2818c5['RQBHk']]=0x4]=_0x2818c5['RQBHk'];}(GroupMemberRole||(GroupMemberRole={})));
|
@@ -1 +0,0 @@
|
||||
function _0x14bc(){var _0x4f49b1=['40684Mxiqpd','885170fQcQyB','274AUVjnY','1224nzbFan','317043yUpRIR','1156736YNRhjK','977607RkiKna','1281972Nmxudk','424UFlGox'];_0x14bc=function(){return _0x4f49b1;};return _0x14bc();}(function(_0x1e121e,_0x4f001d){var _0x1cfe2d=_0x4473,_0x5e4046=_0x1e121e();while(!![]){try{var _0x20ea89=parseInt(_0x1cfe2d(0x14a))/0x1*(-parseInt(_0x1cfe2d(0x149))/0x2)+-parseInt(_0x1cfe2d(0x14b))/0x3+parseInt(_0x1cfe2d(0x14c))/0x4+parseInt(_0x1cfe2d(0x148))/0x5+parseInt(_0x1cfe2d(0x14e))/0x6+-parseInt(_0x1cfe2d(0x147))/0x7*(parseInt(_0x1cfe2d(0x14f))/0x8)+parseInt(_0x1cfe2d(0x14d))/0x9;if(_0x20ea89===_0x4f001d)break;else _0x5e4046['push'](_0x5e4046['shift']());}catch(_0x4fa7ec){_0x5e4046['push'](_0x5e4046['shift']());}}}(_0x14bc,0x328fa));export*from'./user';export*from'./group';export*from'./msg';function _0x4473(_0x5d5188,_0x1b3cfb){var _0x14bc48=_0x14bc();return _0x4473=function(_0x4473d4,_0x1230a6){_0x4473d4=_0x4473d4-0x147;var _0x34458e=_0x14bc48[_0x4473d4];return _0x34458e;},_0x4473(_0x5d5188,_0x1b3cfb);}export*from'./notify';export*from'./cache';export*from'./constructor';
|
400
src/core.lib/src/entities/msg.d.ts
vendored
400
src/core.lib/src/entities/msg.d.ts
vendored
@@ -1,400 +0,0 @@
|
||||
import { GroupMemberRole } from './group';
|
||||
export interface Peer {
|
||||
chatType: ChatType;
|
||||
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,
|
||||
FILE = 3,
|
||||
PTT = 4,
|
||||
VIDEO = 5,
|
||||
FACE = 6,
|
||||
REPLY = 7,
|
||||
ARK = 10,
|
||||
MFACE = 11,
|
||||
MARKDOWN = 14
|
||||
}
|
||||
export interface SendTextElement {
|
||||
elementType: ElementType.TEXT;
|
||||
elementId: string;
|
||||
textElement: {
|
||||
content: string;
|
||||
atType: number;
|
||||
atUid: string;
|
||||
atTinyId: string;
|
||||
atNtUid: string;
|
||||
};
|
||||
}
|
||||
export interface SendPttElement {
|
||||
elementType: ElementType.PTT;
|
||||
elementId: string;
|
||||
pttElement: {
|
||||
fileName: string;
|
||||
filePath: string;
|
||||
md5HexStr: string;
|
||||
fileSize: number;
|
||||
duration: number;
|
||||
formatType: number;
|
||||
voiceType: number;
|
||||
voiceChangeType: number;
|
||||
canConvert2Text: boolean;
|
||||
waveAmplitudes: number[];
|
||||
fileSubId: string;
|
||||
playState: number;
|
||||
autoConvertText: number;
|
||||
};
|
||||
}
|
||||
export declare enum PicType {
|
||||
gif = 2000,
|
||||
jpg = 1000
|
||||
}
|
||||
export declare enum PicSubType {
|
||||
normal = 0,// 普通图片,大图
|
||||
face = 1
|
||||
}
|
||||
export interface SendPicElement {
|
||||
elementType: ElementType.PIC;
|
||||
elementId: string;
|
||||
picElement: {
|
||||
md5HexStr: string;
|
||||
fileSize: number | string;
|
||||
picWidth: number;
|
||||
picHeight: number;
|
||||
fileName: string;
|
||||
sourcePath: string;
|
||||
original: boolean;
|
||||
picType: PicType;
|
||||
picSubType: PicSubType;
|
||||
fileUuid: string;
|
||||
fileSubId: string;
|
||||
thumbFileSize: number;
|
||||
summary: string;
|
||||
};
|
||||
}
|
||||
export interface SendReplyElement {
|
||||
elementType: ElementType.REPLY;
|
||||
elementId: string;
|
||||
replyElement: {
|
||||
replayMsgSeq: string;
|
||||
replayMsgId: string;
|
||||
senderUin: string;
|
||||
senderUinStr: string;
|
||||
};
|
||||
}
|
||||
export interface SendFaceElement {
|
||||
elementType: ElementType.FACE;
|
||||
elementId: string;
|
||||
faceElement: FaceElement;
|
||||
}
|
||||
export interface SendMarketFaceElement {
|
||||
elementType: ElementType.MFACE;
|
||||
marketFaceElement: MarketFaceElement;
|
||||
}
|
||||
export interface FileElement {
|
||||
fileMd5?: string;
|
||||
fileName: string;
|
||||
filePath: string;
|
||||
fileSize: string;
|
||||
picHeight?: number;
|
||||
picWidth?: number;
|
||||
folderId?: string;
|
||||
picThumbPath?: Map<number, string>;
|
||||
file10MMd5?: string;
|
||||
fileSha?: string;
|
||||
fileSha3?: string;
|
||||
fileUuid?: string;
|
||||
fileSubId?: string;
|
||||
thumbFileSize?: number;
|
||||
fileBizId?: number;
|
||||
}
|
||||
export interface SendFileElement {
|
||||
elementType: ElementType.FILE;
|
||||
elementId: string;
|
||||
fileElement: FileElement;
|
||||
}
|
||||
export interface SendVideoElement {
|
||||
elementType: ElementType.VIDEO;
|
||||
elementId: string;
|
||||
videoElement: VideoElement;
|
||||
}
|
||||
export interface SendArkElement {
|
||||
elementType: ElementType.ARK;
|
||||
elementId: string;
|
||||
arkElement: ArkElement;
|
||||
}
|
||||
export interface SendMarkdownElement {
|
||||
elementType: ElementType.MARKDOWN;
|
||||
elementId: string;
|
||||
markdownElement: MarkdownElement;
|
||||
}
|
||||
export type SendMessageElement = SendTextElement | SendPttElement | SendPicElement | SendReplyElement | SendFaceElement | SendMarketFaceElement | SendFileElement | SendVideoElement | SendArkElement | SendMarkdownElement;
|
||||
export declare enum AtType {
|
||||
notAt = 0,
|
||||
atAll = 1,
|
||||
atUser = 2
|
||||
}
|
||||
export declare enum ChatType {
|
||||
friend = 1,
|
||||
group = 2,
|
||||
chatDevice = 8,//移动设备?
|
||||
temp = 100
|
||||
}
|
||||
export interface PttElement {
|
||||
canConvert2Text: boolean;
|
||||
duration: number;
|
||||
fileBizId: null;
|
||||
fileId: number;
|
||||
fileName: string;
|
||||
filePath: string;
|
||||
fileSize: string;
|
||||
fileSubId: string;
|
||||
fileUuid: string;
|
||||
formatType: string;
|
||||
invalidState: number;
|
||||
md5HexStr: string;
|
||||
playState: number;
|
||||
progress: number;
|
||||
text: string;
|
||||
transferStatus: number;
|
||||
translateStatus: number;
|
||||
voiceChangeType: number;
|
||||
voiceType: number;
|
||||
waveAmplitudes: number[];
|
||||
}
|
||||
export interface ArkElement {
|
||||
bytesData: string;
|
||||
linkInfo: null;
|
||||
subElementType: null;
|
||||
}
|
||||
export declare const IMAGE_HTTP_HOST = "https://gchat.qpic.cn";
|
||||
export declare const IMAGE_HTTP_HOST_NT = "https://multimedia.nt.qq.com.cn";
|
||||
export interface PicElement {
|
||||
originImageUrl: string;
|
||||
originImageMd5?: string;
|
||||
sourcePath: string;
|
||||
thumbPath: Map<number, string>;
|
||||
picWidth: number;
|
||||
picHeight: number;
|
||||
fileSize: number;
|
||||
fileName: string;
|
||||
fileUuid: string;
|
||||
md5HexStr?: string;
|
||||
}
|
||||
export declare enum GrayTipElementSubType {
|
||||
INVITE_NEW_MEMBER = 12,
|
||||
MEMBER_NEW_TITLE = 17
|
||||
}
|
||||
export interface GrayTipElement {
|
||||
subElementType: GrayTipElementSubType;
|
||||
revokeElement: {
|
||||
operatorRole: string;
|
||||
operatorUid: string;
|
||||
operatorNick: string;
|
||||
operatorRemark: string;
|
||||
operatorMemRemark?: string;
|
||||
wording: string;
|
||||
};
|
||||
aioOpGrayTipElement: TipAioOpGrayTipElement;
|
||||
groupElement: TipGroupElement;
|
||||
xmlElement: {
|
||||
content: string;
|
||||
templId: string;
|
||||
};
|
||||
jsonGrayTipElement: {
|
||||
jsonStr: string;
|
||||
};
|
||||
}
|
||||
export declare enum FaceType {
|
||||
normal = 1,// 小黄脸
|
||||
normal2 = 2,// 新小黄脸, 从faceIndex 222开始?
|
||||
dice = 3
|
||||
}
|
||||
export declare enum FaceIndex {
|
||||
dice = 358,
|
||||
RPS = 359
|
||||
}
|
||||
export interface FaceElement {
|
||||
faceIndex: number;
|
||||
faceType: FaceType;
|
||||
faceText?: string;
|
||||
packId?: string;
|
||||
stickerId?: string;
|
||||
sourceType?: number;
|
||||
stickerType?: number;
|
||||
resultId?: string;
|
||||
surpriseId?: string;
|
||||
randomType?: number;
|
||||
}
|
||||
export interface MarketFaceElement {
|
||||
emojiPackageId: number;
|
||||
faceName: string;
|
||||
emojiId: string;
|
||||
key: string;
|
||||
}
|
||||
export interface VideoElement {
|
||||
filePath: string;
|
||||
fileName: string;
|
||||
videoMd5?: string;
|
||||
thumbMd5?: string;
|
||||
fileTime?: number;
|
||||
thumbSize?: number;
|
||||
fileFormat?: number;
|
||||
fileSize?: string;
|
||||
thumbWidth?: number;
|
||||
thumbHeight?: number;
|
||||
busiType?: 0;
|
||||
subBusiType?: 0;
|
||||
thumbPath?: Map<number, any>;
|
||||
transferStatus?: 0;
|
||||
progress?: 0;
|
||||
invalidState?: 0;
|
||||
fileUuid?: string;
|
||||
fileSubId?: string;
|
||||
fileBizId?: null;
|
||||
originVideoMd5?: string;
|
||||
import_rich_media_context?: null;
|
||||
sourceVideoCodecFormat?: number;
|
||||
}
|
||||
export interface MarkdownElement {
|
||||
content: string;
|
||||
}
|
||||
export interface InlineKeyboardElementRowButton {
|
||||
id: string;
|
||||
label: string;
|
||||
visitedLabel: string;
|
||||
style: 1;
|
||||
type: 2;
|
||||
clickLimit: 0;
|
||||
unsupportTips: string;
|
||||
data: string;
|
||||
atBotShowChannelList: boolean;
|
||||
permissionType: number;
|
||||
specifyRoleIds: [];
|
||||
specifyTinyids: [];
|
||||
isReply: false;
|
||||
anchor: 0;
|
||||
enter: false;
|
||||
subscribeDataTemplateIds: [];
|
||||
}
|
||||
export interface InlineKeyboardElement {
|
||||
rows: [
|
||||
{
|
||||
buttons: InlineKeyboardElementRowButton[];
|
||||
}
|
||||
];
|
||||
}
|
||||
export interface TipAioOpGrayTipElement {
|
||||
operateType: number;
|
||||
peerUid: string;
|
||||
fromGrpCodeOfTmpChat: string;
|
||||
}
|
||||
export declare enum TipGroupElementType {
|
||||
memberIncrease = 1,
|
||||
kicked = 3,// 被移出群
|
||||
ban = 8
|
||||
}
|
||||
export interface TipGroupElement {
|
||||
type: TipGroupElementType;
|
||||
role: 0;
|
||||
groupName: string;
|
||||
memberUid: string;
|
||||
memberNick: string;
|
||||
memberRemark: string;
|
||||
adminUid: string;
|
||||
adminNick: string;
|
||||
adminRemark: string;
|
||||
createGroup: null;
|
||||
memberAdd?: {
|
||||
showType: 1;
|
||||
otherAdd: null;
|
||||
otherAddByOtherQRCode: null;
|
||||
otherAddByYourQRCode: null;
|
||||
youAddByOtherQRCode: null;
|
||||
otherInviteOther: null;
|
||||
otherInviteYou: null;
|
||||
youInviteOther: null;
|
||||
};
|
||||
shutUp?: {
|
||||
curTime: string;
|
||||
duration: string;
|
||||
admin: {
|
||||
uid: string;
|
||||
card: string;
|
||||
name: string;
|
||||
role: GroupMemberRole;
|
||||
};
|
||||
member: {
|
||||
uid: string;
|
||||
card: string;
|
||||
name: string;
|
||||
role: GroupMemberRole;
|
||||
};
|
||||
};
|
||||
}
|
||||
export interface MultiForwardMsgElement {
|
||||
xmlContent: string;
|
||||
resId: string;
|
||||
fileName: string;
|
||||
}
|
||||
export interface RawMessage {
|
||||
id?: number;
|
||||
msgId: string;
|
||||
msgTime: string;
|
||||
msgSeq: string;
|
||||
msgType: number;
|
||||
subMsgType: number;
|
||||
senderUid: string;
|
||||
senderUin: string;
|
||||
peerUid: string;
|
||||
peerUin: string;
|
||||
sendNickName: string;
|
||||
sendMemberName?: string;
|
||||
chatType: ChatType;
|
||||
sendStatus?: number;
|
||||
recallTime: string;
|
||||
elements: {
|
||||
elementId: string;
|
||||
elementType: ElementType;
|
||||
replyElement: {
|
||||
senderUid: string;
|
||||
sourceMsgIsIncPic: boolean;
|
||||
sourceMsgText: string;
|
||||
replayMsgSeq: string;
|
||||
};
|
||||
textElement: {
|
||||
atType: AtType;
|
||||
atUid: string;
|
||||
content: string;
|
||||
atNtUid: string;
|
||||
};
|
||||
picElement: PicElement;
|
||||
pttElement: PttElement;
|
||||
arkElement: ArkElement;
|
||||
grayTipElement: GrayTipElement;
|
||||
faceElement: FaceElement;
|
||||
videoElement: VideoElement;
|
||||
fileElement: FileElement;
|
||||
marketFaceElement: MarketFaceElement;
|
||||
inlineKeyboardElement: InlineKeyboardElement;
|
||||
markdownElement: MarkdownElement;
|
||||
multiForwardMsgElement: MultiForwardMsgElement;
|
||||
}[];
|
||||
}
|
File diff suppressed because one or more lines are too long
69
src/core.lib/src/entities/notify.d.ts
vendored
69
src/core.lib/src/entities/notify.d.ts
vendored
@@ -1,69 +0,0 @@
|
||||
export declare enum GroupNotifyTypes {
|
||||
INVITE_ME = 1,
|
||||
INVITED_JOIN = 4,// 有人接受了邀请入群
|
||||
JOIN_REQUEST = 7,
|
||||
ADMIN_SET = 8,
|
||||
KICK_MEMBER = 9,
|
||||
MEMBER_EXIT = 11,// 主动退出
|
||||
ADMIN_UNSET = 12,
|
||||
ADMIN_UNSET_OTHER = 13
|
||||
}
|
||||
export interface GroupNotifies {
|
||||
doubt: boolean;
|
||||
nextStartSeq: string;
|
||||
notifies: GroupNotify[];
|
||||
}
|
||||
export declare enum GroupNotifyStatus {
|
||||
IGNORE = 0,
|
||||
WAIT_HANDLE = 1,
|
||||
APPROVE = 2,
|
||||
REJECT = 3
|
||||
}
|
||||
export interface GroupNotify {
|
||||
time: number;
|
||||
seq: string;
|
||||
type: GroupNotifyTypes;
|
||||
status: GroupNotifyStatus;
|
||||
group: {
|
||||
groupCode: string;
|
||||
groupName: string;
|
||||
};
|
||||
user1: {
|
||||
uid: string;
|
||||
nickName: string;
|
||||
};
|
||||
user2: {
|
||||
uid: string;
|
||||
nickName: string;
|
||||
};
|
||||
actionUser: {
|
||||
uid: string;
|
||||
nickName: string;
|
||||
};
|
||||
actionTime: string;
|
||||
invitationExt: {
|
||||
srcType: number;
|
||||
groupCode: string;
|
||||
waitStatus: number;
|
||||
};
|
||||
postscript: string;
|
||||
repeatSeqs: [];
|
||||
warningTips: string;
|
||||
}
|
||||
export declare enum GroupRequestOperateTypes {
|
||||
approve = 1,
|
||||
reject = 2
|
||||
}
|
||||
export interface FriendRequest {
|
||||
friendUid: string;
|
||||
reqTime: string;
|
||||
extWords: string;
|
||||
isUnread: boolean;
|
||||
friendNick: string;
|
||||
sourceId: number;
|
||||
groupCode: string;
|
||||
}
|
||||
export interface FriendRequestNotify {
|
||||
unreadNums: number;
|
||||
buddyReqs: FriendRequest[];
|
||||
}
|
@@ -1 +0,0 @@
|
||||
(function(_0x19adaa,_0x56a38f){var _0x22c269=_0xe6a3,_0x4d1ed1=_0x19adaa();while(!![]){try{var _0x4f42a1=-parseInt(_0x22c269(0x1b5))/0x1*(parseInt(_0x22c269(0x1b4))/0x2)+parseInt(_0x22c269(0x1b0))/0x3*(parseInt(_0x22c269(0x19f))/0x4)+parseInt(_0x22c269(0x19d))/0x5*(parseInt(_0x22c269(0x195))/0x6)+parseInt(_0x22c269(0x1a4))/0x7*(-parseInt(_0x22c269(0x1b3))/0x8)+parseInt(_0x22c269(0x1a8))/0x9+-parseInt(_0x22c269(0x1ad))/0xa+parseInt(_0x22c269(0x1ae))/0xb;if(_0x4f42a1===_0x56a38f)break;else _0x4d1ed1['push'](_0x4d1ed1['shift']());}catch(_0xb738c2){_0x4d1ed1['push'](_0x4d1ed1['shift']());}}}(_0x2b6d,0x9f8e0));export var GroupNotifyTypes;function _0xe6a3(_0x4af4aa,_0x19eda9){var _0x2b6d36=_0x2b6d();return _0xe6a3=function(_0xe6a34,_0x340ef2){_0xe6a34=_0xe6a34-0x193;var _0x263a9c=_0x2b6d36[_0xe6a34];return _0x263a9c;},_0xe6a3(_0x4af4aa,_0x19eda9);}(function(_0x4847c5){var _0x4d0343=_0xe6a3,_0x174d9b={'PRoCv':'JOIN_REQUEST','curNx':_0x4d0343(0x197),'PpLhV':_0x4d0343(0x1a1),'EZAOo':_0x4d0343(0x196),'DdWWY':_0x4d0343(0x19a),'koXXq':'ADMIN_UNSET'},_0x59ba1c=_0x4d0343(0x1ab)['split']('|'),_0xecf760=0x0;while(!![]){switch(_0x59ba1c[_0xecf760++]){case'0':_0x4847c5[_0x4847c5[_0x4d0343(0x193)]=0xd]=_0x4d0343(0x193);continue;case'1':_0x4847c5[_0x4847c5[_0x174d9b[_0x4d0343(0x19e)]]=0x7]=_0x174d9b[_0x4d0343(0x19e)];continue;case'2':_0x4847c5[_0x4847c5[_0x174d9b[_0x4d0343(0x1b1)]]=0x4]=_0x174d9b[_0x4d0343(0x1b1)];continue;case'3':_0x4847c5[_0x4847c5[_0x174d9b[_0x4d0343(0x19b)]]=0x8]=_0x174d9b[_0x4d0343(0x19b)];continue;case'4':_0x4847c5[_0x4847c5[_0x174d9b[_0x4d0343(0x1af)]]=0x9]='KICK_MEMBER';continue;case'5':_0x4847c5[_0x4847c5[_0x4d0343(0x19a)]=0x1]=_0x174d9b[_0x4d0343(0x19c)];continue;case'6':_0x4847c5[_0x4847c5[_0x4d0343(0x1a9)]=0xc]=_0x174d9b['koXXq'];continue;case'7':_0x4847c5[_0x4847c5[_0x4d0343(0x1a3)]=0xb]='MEMBER_EXIT';continue;}break;}}(GroupNotifyTypes||(GroupNotifyTypes={})));export var GroupNotifyStatus;function _0x2b6d(){var _0x53a903=['approve','REJECT','APPROVE','5482062Heixji','ADMIN_UNSET','LczLZ','5|2|1|3|4|7|6|0','XWKXi','4792400ySuoEl','6268229eyujnE','EZAOo','12vLgAOJ','curNx','HdsbK','280CtpltI','675362GKDhHf','2VSJtMd','ADMIN_UNSET_OTHER','YWYwW','816npOrDS','KICK_MEMBER','INVITED_JOIN','lyfuO','JxSKa','INVITE_ME','PpLhV','DdWWY','30640CFAUGu','PRoCv','108428cimJFa','reject','ADMIN_SET','IGNORE','MEMBER_EXIT','62531OeKwRq'];_0x2b6d=function(){return _0x53a903;};return _0x2b6d();}(function(_0x11adf2){var _0xcfc64b=_0xe6a3,_0x403d8b={'LczLZ':_0xcfc64b(0x1a2),'JxSKa':'WAIT_HANDLE','HdsbK':_0xcfc64b(0x1a7),'lyfuO':_0xcfc64b(0x1a6)};_0x11adf2[_0x11adf2[_0x403d8b[_0xcfc64b(0x1aa)]]=0x0]='IGNORE',_0x11adf2[_0x11adf2[_0x403d8b['JxSKa']]=0x1]=_0x403d8b[_0xcfc64b(0x199)],_0x11adf2[_0x11adf2[_0xcfc64b(0x1a7)]=0x2]=_0x403d8b[_0xcfc64b(0x1b2)],_0x11adf2[_0x11adf2[_0x403d8b[_0xcfc64b(0x198)]]=0x3]=_0x403d8b['lyfuO'];}(GroupNotifyStatus||(GroupNotifyStatus={})));export var GroupRequestOperateTypes;(function(_0xd75311){var _0x325bbd=_0xe6a3,_0x301890={'XWKXi':_0x325bbd(0x1a5),'YWYwW':_0x325bbd(0x1a0)};_0xd75311[_0xd75311[_0x301890[_0x325bbd(0x1ac)]]=0x1]=_0x325bbd(0x1a5),_0xd75311[_0xd75311[_0x301890[_0x325bbd(0x194)]]=0x2]=_0x301890[_0x325bbd(0x194)];}(GroupRequestOperateTypes||(GroupRequestOperateTypes={})));
|
100
src/core.lib/src/entities/user.d.ts
vendored
100
src/core.lib/src/entities/user.d.ts
vendored
@@ -1,100 +0,0 @@
|
||||
export declare enum Sex {
|
||||
male = 1,
|
||||
female = 2,
|
||||
unknown = 255
|
||||
}
|
||||
export interface BuddyCategoryType {
|
||||
categoryId: number;
|
||||
categroyName: string;
|
||||
categroyMbCount: number;
|
||||
buddyList: User[];
|
||||
}
|
||||
export interface ModifyProfileParams {
|
||||
nick: string;
|
||||
longNick: string;
|
||||
sex: Sex;
|
||||
birthday: {
|
||||
birthday_year: string;
|
||||
birthday_month: string;
|
||||
birthday_day: string;
|
||||
};
|
||||
location: any;
|
||||
}
|
||||
export interface BuddyProfileLikeReq {
|
||||
friendUids: string[];
|
||||
basic: number;
|
||||
vote: number;
|
||||
favorite: number;
|
||||
userProfile: number;
|
||||
type: number;
|
||||
start: number;
|
||||
limit: number;
|
||||
}
|
||||
export interface QQLevel {
|
||||
crownNum: number;
|
||||
sunNum: number;
|
||||
moonNum: number;
|
||||
starNum: number;
|
||||
}
|
||||
export interface User {
|
||||
uid: string;
|
||||
uin: string;
|
||||
nick: string;
|
||||
avatarUrl?: string;
|
||||
longNick?: string;
|
||||
remark?: string;
|
||||
sex?: Sex;
|
||||
qqLevel?: QQLevel;
|
||||
qid?: string;
|
||||
birthday_year?: number;
|
||||
birthday_month?: number;
|
||||
birthday_day?: number;
|
||||
topTime?: string;
|
||||
constellation?: number;
|
||||
shengXiao?: number;
|
||||
kBloodType?: number;
|
||||
homeTown?: string;
|
||||
makeFriendCareer?: number;
|
||||
pos?: string;
|
||||
eMail?: string;
|
||||
phoneNum?: string;
|
||||
college?: string;
|
||||
country?: string;
|
||||
province?: string;
|
||||
city?: string;
|
||||
postCode?: string;
|
||||
address?: string;
|
||||
isBlock?: boolean;
|
||||
isSpecialCareOpen?: boolean;
|
||||
isSpecialCareZone?: boolean;
|
||||
ringId?: string;
|
||||
regTime?: number;
|
||||
interest?: string;
|
||||
labels?: string[];
|
||||
isHideQQLevel?: number;
|
||||
privilegeIcon?: {
|
||||
jumpUrl: string;
|
||||
openIconList: unknown[];
|
||||
closeIconList: unknown[];
|
||||
};
|
||||
photoWall?: {
|
||||
picList: unknown[];
|
||||
};
|
||||
vipFlag?: boolean;
|
||||
yearVipFlag?: boolean;
|
||||
svipFlag?: boolean;
|
||||
vipLevel?: number;
|
||||
status?: number;
|
||||
qidianMasterFlag?: number;
|
||||
qidianCrewFlag?: number;
|
||||
qidianCrewFlag2?: number;
|
||||
extStatus?: number;
|
||||
recommendImgFlag?: number;
|
||||
disableEmojiShortCuts?: number;
|
||||
pendantId?: string;
|
||||
}
|
||||
export interface SelfInfo extends User {
|
||||
online?: boolean;
|
||||
}
|
||||
export interface Friend extends User {
|
||||
}
|
@@ -1 +0,0 @@
|
||||
(function(_0x425abd,_0x1e888d){var _0x176f22=_0x3a30,_0x4eb957=_0x425abd();while(!![]){try{var _0x55b3d4=-parseInt(_0x176f22(0x68))/0x1*(-parseInt(_0x176f22(0x69))/0x2)+-parseInt(_0x176f22(0x6a))/0x3+-parseInt(_0x176f22(0x67))/0x4*(-parseInt(_0x176f22(0x6e))/0x5)+parseInt(_0x176f22(0x6d))/0x6*(parseInt(_0x176f22(0x6f))/0x7)+parseInt(_0x176f22(0x65))/0x8*(-parseInt(_0x176f22(0x6c))/0x9)+parseInt(_0x176f22(0x6b))/0xa*(parseInt(_0x176f22(0x70))/0xb)+-parseInt(_0x176f22(0x71))/0xc;if(_0x55b3d4===_0x1e888d)break;else _0x4eb957['push'](_0x4eb957['shift']());}catch(_0x301dbf){_0x4eb957['push'](_0x4eb957['shift']());}}}(_0x10d9,0xc0c6b));export var Sex;function _0x10d9(){var _0x45bd45=['24TPufBz','female','61524PPefuR','30274SgfYql','2wYyaKc','2551476BRiunw','1069530XXNJIz','2371527aHKuUV','174Ewznuh','135ujiScL','364847LFBbAu','77YfwsAT','3301548qQopWo','male','zQdhj'];_0x10d9=function(){return _0x45bd45;};return _0x10d9();}function _0x3a30(_0x3ec91f,_0x599ffb){var _0x10d945=_0x10d9();return _0x3a30=function(_0x3a3089,_0x1ccb2f){_0x3a3089=_0x3a3089-0x64;var _0x28741a=_0x10d945[_0x3a3089];return _0x28741a;},_0x3a30(_0x3ec91f,_0x599ffb);}(function(_0x59140d){var _0x4927b5=_0x3a30,_0x5741d0={'zQdhj':'male','OFEli':'female','VYGsK':'unknown'};_0x59140d[_0x59140d[_0x4927b5(0x72)]=0x1]=_0x5741d0[_0x4927b5(0x64)],_0x59140d[_0x59140d[_0x5741d0['OFEli']]=0x2]=_0x4927b5(0x66),_0x59140d[_0x59140d[_0x5741d0['VYGsK']]=0xff]=_0x5741d0['VYGsK'];}(Sex||(Sex={})));
|
8
src/core.lib/src/external/hook.d.ts
vendored
8
src/core.lib/src/external/hook.d.ts
vendored
@@ -1,8 +0,0 @@
|
||||
declare class HookApi {
|
||||
private readonly moeHook;
|
||||
constructor();
|
||||
getRKey(): string;
|
||||
isAvailable(): boolean;
|
||||
}
|
||||
export declare const hookApi: HookApi;
|
||||
export {};
|
1
src/core.lib/src/external/hook.js
vendored
1
src/core.lib/src/external/hook.js
vendored
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
||||
(function(_0x319fd4,_0x36ebc7){var _0x16c645=_0x1d55,_0x598f2d=_0x319fd4();while(!![]){try{var _0x100f53=-parseInt(_0x16c645(0x9e))/0x1+parseInt(_0x16c645(0x9b))/0x2*(-parseInt(_0x16c645(0x9f))/0x3)+parseInt(_0x16c645(0x9d))/0x4+-parseInt(_0x16c645(0x9a))/0x5*(-parseInt(_0x16c645(0x98))/0x6)+-parseInt(_0x16c645(0xa1))/0x7+parseInt(_0x16c645(0x99))/0x8*(parseInt(_0x16c645(0x9c))/0x9)+parseInt(_0x16c645(0xa0))/0xa*(parseInt(_0x16c645(0x97))/0xb);if(_0x100f53===_0x36ebc7)break;else _0x598f2d['push'](_0x598f2d['shift']());}catch(_0x545faa){_0x598f2d['push'](_0x598f2d['shift']());}}}(_0xf987,0x45f64));import _0x3295a6 from'./wrapper';export*from'./adapters';export*from'./apis';export*from'./entities';export*from'./listeners';export*from'./services';export*as Adapters from'./adapters';function _0x1d55(_0x492aeb,_0x2def52){var _0xf987b4=_0xf987();return _0x1d55=function(_0x1d55bf,_0x3366cc){_0x1d55bf=_0x1d55bf-0x97;var _0x289d93=_0xf987b4[_0x1d55bf];return _0x289d93;},_0x1d55(_0x492aeb,_0x2def52);}function _0xf987(){var _0x18f69e=['3798pPzyMr','1107212bUtfwn','488277OidVGU','3ZknyDF','590NcbPFy','3117562glWUQw','123409TtdMvU','2182044MHUfbL','424iilEix','5UPtXMP','209114WOuxTa'];_0xf987=function(){return _0x18f69e;};return _0xf987();}export*as APIs from'./apis';export*as Entities from'./entities';export*as Listeners from'./listeners';export*as Services from'./services';export{_0x3295a6 as Wrapper};export*as WrapperInterface from'./wrapper';export*as SessionConfig from'./sessionConfig';export{napCatCore}from'./core';
|
@@ -1,44 +0,0 @@
|
||||
import { BuddyCategoryType, FriendRequestNotify } from '@/core/entities';
|
||||
export type OnBuddyChangeParams = BuddyCategoryType[];
|
||||
interface IBuddyListener {
|
||||
onBuddyListChange(arg: OnBuddyChangeParams): void;
|
||||
onBuddyInfoChange(arg: unknown): void;
|
||||
onBuddyDetailInfoChange(arg: unknown): void;
|
||||
onNickUpdated(arg: unknown): void;
|
||||
onBuddyRemarkUpdated(arg: unknown): void;
|
||||
onAvatarUrlUpdated(arg: unknown): void;
|
||||
onBuddyReqChange(arg: FriendRequestNotify): void;
|
||||
onBuddyReqUnreadCntChange(arg: unknown): void;
|
||||
onCheckBuddySettingResult(arg: unknown): void;
|
||||
onAddBuddyNeedVerify(arg: unknown): void;
|
||||
onSmartInfos(arg: unknown): void;
|
||||
onSpacePermissionInfos(arg: unknown): void;
|
||||
onDoubtBuddyReqChange(arg: unknown): void;
|
||||
onDoubtBuddyReqUnreadNumChange(arg: unknown): void;
|
||||
onBlockChanged(arg: unknown): void;
|
||||
onAddMeSettingChanged(arg: unknown): void;
|
||||
onDelBatchBuddyInfos(arg: unknown): void;
|
||||
}
|
||||
export interface NodeIKernelBuddyListener extends IBuddyListener {
|
||||
new (listener: IBuddyListener): NodeIKernelBuddyListener;
|
||||
}
|
||||
export declare class BuddyListener implements IBuddyListener {
|
||||
onAddBuddyNeedVerify(arg: unknown): void;
|
||||
onAddMeSettingChanged(arg: unknown): void;
|
||||
onAvatarUrlUpdated(arg: unknown): void;
|
||||
onBlockChanged(arg: unknown): void;
|
||||
onBuddyDetailInfoChange(arg: unknown): void;
|
||||
onBuddyInfoChange(arg: unknown): void;
|
||||
onBuddyListChange(arg: OnBuddyChangeParams): void;
|
||||
onBuddyRemarkUpdated(arg: unknown): void;
|
||||
onBuddyReqChange(arg: FriendRequestNotify): void;
|
||||
onBuddyReqUnreadCntChange(arg: unknown): void;
|
||||
onCheckBuddySettingResult(arg: unknown): void;
|
||||
onDelBatchBuddyInfos(arg: unknown): void;
|
||||
onDoubtBuddyReqChange(arg: unknown): void;
|
||||
onDoubtBuddyReqUnreadNumChange(arg: unknown): void;
|
||||
onNickUpdated(arg: unknown): void;
|
||||
onSmartInfos(arg: unknown): void;
|
||||
onSpacePermissionInfos(arg: unknown): void;
|
||||
}
|
||||
export {};
|
@@ -1 +0,0 @@
|
||||
var _0x23ddb8=_0x2807;function _0x2807(_0x50bec3,_0x3a2f12){var _0x37a4a0=_0x37a4();return _0x2807=function(_0x280733,_0x4ca479){_0x280733=_0x280733-0x166;var _0x2b7184=_0x37a4a0[_0x280733];return _0x2b7184;},_0x2807(_0x50bec3,_0x3a2f12);}(function(_0x57b081,_0xcf01f0){var _0x3ea7e8=_0x2807,_0x359b72=_0x57b081();while(!![]){try{var _0x5a72db=parseInt(_0x3ea7e8(0x16d))/0x1+-parseInt(_0x3ea7e8(0x175))/0x2+-parseInt(_0x3ea7e8(0x168))/0x3*(parseInt(_0x3ea7e8(0x166))/0x4)+-parseInt(_0x3ea7e8(0x16a))/0x5+parseInt(_0x3ea7e8(0x16c))/0x6*(-parseInt(_0x3ea7e8(0x174))/0x7)+parseInt(_0x3ea7e8(0x16b))/0x8+parseInt(_0x3ea7e8(0x178))/0x9;if(_0x5a72db===_0xcf01f0)break;else _0x359b72['push'](_0x359b72['shift']());}catch(_0x25c4bb){_0x359b72['push'](_0x359b72['shift']());}}}(_0x37a4,0x56836));function _0x37a4(){var _0x44b3e3=['onSmartInfos','1981011zGKrTe','onAddBuddyNeedVerify','3052675KXxGXu','2443040qOTpUi','33204EgNaVL','181209BklYDD','onDoubtBuddyReqChange','onDelBatchBuddyInfos','onBuddyReqUnreadCntChange','onBuddyRemarkUpdated','onSpacePermissionInfos','onCheckBuddySettingResult','532IUDSdU','147526DehJlD','onNickUpdated','onBuddyInfoChange','14696892FSrlvj','4nGTPMa'];_0x37a4=function(){return _0x44b3e3;};return _0x37a4();}export class BuddyListener{[_0x23ddb8(0x169)](_0x4921b8){}['onAddMeSettingChanged'](_0x29d5ce){}['onAvatarUrlUpdated'](_0x1e1697){}['onBlockChanged'](_0x326261){}['onBuddyDetailInfoChange'](_0x263d09){}[_0x23ddb8(0x177)](_0x326756){}['onBuddyListChange'](_0x1395e7){}[_0x23ddb8(0x171)](_0x8597ba){}['onBuddyReqChange'](_0x313e76){}[_0x23ddb8(0x170)](_0x3d4ac9){}[_0x23ddb8(0x173)](_0x3f8ad8){}[_0x23ddb8(0x16f)](_0x4dac3c){}[_0x23ddb8(0x16e)](_0x33d605){}['onDoubtBuddyReqUnreadNumChange'](_0x51e2e4){}[_0x23ddb8(0x176)](_0x2004d4){}[_0x23ddb8(0x167)](_0x67b91d){}[_0x23ddb8(0x172)](_0x163501){}}
|
@@ -1,17 +0,0 @@
|
||||
export interface IKernelFileAssistantListener {
|
||||
onFileStatusChanged(...args: unknown[]): unknown;
|
||||
onSessionListChanged(...args: unknown[]): unknown;
|
||||
onSessionChanged(...args: unknown[]): unknown;
|
||||
onFileListChanged(...args: unknown[]): unknown;
|
||||
onFileSearch(...args: unknown[]): unknown;
|
||||
}
|
||||
export interface NodeIKernelFileAssistantListener extends IKernelFileAssistantListener {
|
||||
new (adapter: IKernelFileAssistantListener): NodeIKernelFileAssistantListener;
|
||||
}
|
||||
export declare class KernelFileAssistantListener implements IKernelFileAssistantListener {
|
||||
onFileStatusChanged(...args: unknown[]): void;
|
||||
onSessionListChanged(...args: unknown[]): void;
|
||||
onSessionChanged(...args: unknown[]): void;
|
||||
onFileListChanged(...args: unknown[]): void;
|
||||
onFileSearch(...args: unknown[]): void;
|
||||
}
|
@@ -1 +0,0 @@
|
||||
var _0x432220=_0x5630;(function(_0xb122d2,_0x46fb6a){var _0x8ddffd=_0x5630,_0x6e08d6=_0xb122d2();while(!![]){try{var _0xe651f2=parseInt(_0x8ddffd(0x10d))/0x1*(parseInt(_0x8ddffd(0x11a))/0x2)+-parseInt(_0x8ddffd(0x113))/0x3+parseInt(_0x8ddffd(0x10c))/0x4*(parseInt(_0x8ddffd(0x119))/0x5)+-parseInt(_0x8ddffd(0x114))/0x6*(parseInt(_0x8ddffd(0x118))/0x7)+-parseInt(_0x8ddffd(0x116))/0x8*(-parseInt(_0x8ddffd(0x10b))/0x9)+-parseInt(_0x8ddffd(0x10e))/0xa*(parseInt(_0x8ddffd(0x10f))/0xb)+parseInt(_0x8ddffd(0x110))/0xc*(parseInt(_0x8ddffd(0x117))/0xd);if(_0xe651f2===_0x46fb6a)break;else _0x6e08d6['push'](_0x6e08d6['shift']());}catch(_0x18ac53){_0x6e08d6['push'](_0x6e08d6['shift']());}}}(_0x5cbd,0x8a0e7));function _0x5cbd(){var _0x10d8d5=['3042964gjsjka','12gjKcjb','70SbsBmZ','1211210BFgWNP','12BXOQDj','onFileStatusChanged','onFileSearch','2102988SWouMz','66YhQlqd','onFileListChanged','51568XMiGBC','17939077EJaUxG','552503dZkVib','5RzvUww','115648yQsBhK','99XRZHir'];_0x5cbd=function(){return _0x10d8d5;};return _0x5cbd();}function _0x5630(_0x5d5623,_0x36bebd){var _0x5cbd15=_0x5cbd();return _0x5630=function(_0x5630c1,_0x26aee4){_0x5630c1=_0x5630c1-0x10b;var _0x50110c=_0x5cbd15[_0x5630c1];return _0x50110c;},_0x5630(_0x5d5623,_0x36bebd);}export class KernelFileAssistantListener{[_0x432220(0x111)](..._0x1ae1b1){}['onSessionListChanged'](..._0x1687e5){}['onSessionChanged'](..._0x4fad0f){}[_0x432220(0x115)](..._0x2cf65c){}[_0x432220(0x112)](..._0x53d0d8){}}
|
@@ -1,95 +0,0 @@
|
||||
import { Group, GroupMember, GroupNotify } from '@/core/entities';
|
||||
interface IGroupListener {
|
||||
onGroupListUpdate(updateType: number, groupList: Group[]): void;
|
||||
onGroupExtListUpdate(...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;
|
||||
onGroupAllInfoChange(...args: unknown[]): void;
|
||||
onGroupsMsgMaskResult(...args: unknown[]): void;
|
||||
onGroupConfMemberChange(...args: unknown[]): void;
|
||||
onGroupBulletinChange(...args: unknown[]): void;
|
||||
onGetGroupBulletinListResult(...args: unknown[]): void;
|
||||
onMemberListChange(arg: {
|
||||
sceneId: string;
|
||||
ids: string[];
|
||||
infos: Map<string, GroupMember>;
|
||||
finish: boolean;
|
||||
hasRobot: boolean;
|
||||
}): void;
|
||||
onMemberInfoChange(groupCode: string, changeType: number, members: Map<string, GroupMember>): void;
|
||||
onSearchMemberChange(...args: unknown[]): void;
|
||||
onGroupBulletinRichMediaDownloadComplete(...args: unknown[]): void;
|
||||
onGroupBulletinRichMediaProgressUpdate(...args: unknown[]): void;
|
||||
onGroupStatisticInfoChange(...args: unknown[]): void;
|
||||
onJoinGroupNotify(...args: unknown[]): void;
|
||||
onShutUpMemberListChanged(...args: unknown[]): void;
|
||||
onGroupBulletinRemindNotify(...args: unknown[]): void;
|
||||
onGroupFirstBulletinNotify(...args: unknown[]): void;
|
||||
onJoinGroupNoVerifyFlag(...args: unknown[]): void;
|
||||
onGroupArkInviteStateResult(...args: unknown[]): void;
|
||||
onGroupMemberLevelInfoChange(...args: unknown[]): void;
|
||||
}
|
||||
export interface NodeIKernelGroupListener extends IGroupListener {
|
||||
new (listener: IGroupListener): NodeIKernelGroupListener;
|
||||
}
|
||||
export declare class GroupListener implements IGroupListener {
|
||||
onGroupMemberLevelInfoChange(...args: unknown[]): void;
|
||||
onGetGroupBulletinListResult(...args: unknown[]): void;
|
||||
onGroupAllInfoChange(...args: unknown[]): void;
|
||||
onGroupBulletinChange(...args: unknown[]): void;
|
||||
onGroupBulletinRemindNotify(...args: unknown[]): void;
|
||||
onGroupArkInviteStateResult(...args: unknown[]): void;
|
||||
onGroupBulletinRichMediaDownloadComplete(...args: unknown[]): void;
|
||||
onGroupConfMemberChange(...args: unknown[]): void;
|
||||
onGroupDetailInfoChange(...args: unknown[]): void;
|
||||
onGroupExtListUpdate(...args: unknown[]): void;
|
||||
onGroupFirstBulletinNotify(...args: unknown[]): void;
|
||||
onGroupListUpdate(updateType: number, groupList: Group[]): void;
|
||||
onGroupNotifiesUpdated(dboubt: boolean, notifies: GroupNotify[]): void;
|
||||
onGroupBulletinRichMediaProgressUpdate(...args: unknown[]): void;
|
||||
onGroupNotifiesUnreadCountUpdated(...args: unknown[]): void;
|
||||
onGroupSingleScreenNotifies(doubt: boolean, seq: string, notifies: GroupNotify[]): void;
|
||||
onGroupsMsgMaskResult(...args: unknown[]): void;
|
||||
onGroupStatisticInfoChange(...args: unknown[]): void;
|
||||
onJoinGroupNotify(...args: unknown[]): void;
|
||||
onJoinGroupNoVerifyFlag(...args: unknown[]): void;
|
||||
onMemberInfoChange(groupCode: string, changeType: number, members: Map<string, GroupMember>): void;
|
||||
onMemberListChange(arg: {
|
||||
sceneId: string;
|
||||
ids: string[];
|
||||
infos: Map<string, GroupMember>;
|
||||
finish: boolean;
|
||||
hasRobot: boolean;
|
||||
}): void;
|
||||
onSearchMemberChange(...args: unknown[]): void;
|
||||
onShutUpMemberListChanged(...args: unknown[]): void;
|
||||
}
|
||||
export declare class DebugGroupListener implements IGroupListener {
|
||||
onGroupMemberLevelInfoChange(...args: unknown[]): void;
|
||||
onGetGroupBulletinListResult(...args: unknown[]): void;
|
||||
onGroupAllInfoChange(...args: unknown[]): void;
|
||||
onGroupBulletinChange(...args: unknown[]): void;
|
||||
onGroupBulletinRemindNotify(...args: unknown[]): void;
|
||||
onGroupArkInviteStateResult(...args: unknown[]): void;
|
||||
onGroupBulletinRichMediaDownloadComplete(...args: unknown[]): void;
|
||||
onGroupConfMemberChange(...args: unknown[]): void;
|
||||
onGroupDetailInfoChange(...args: unknown[]): void;
|
||||
onGroupExtListUpdate(...args: unknown[]): void;
|
||||
onGroupFirstBulletinNotify(...args: unknown[]): void;
|
||||
onGroupListUpdate(...args: unknown[]): void;
|
||||
onGroupNotifiesUpdated(...args: unknown[]): void;
|
||||
onGroupBulletinRichMediaProgressUpdate(...args: unknown[]): void;
|
||||
onGroupNotifiesUnreadCountUpdated(...args: unknown[]): void;
|
||||
onGroupSingleScreenNotifies(doubt: boolean, seq: string, notifies: GroupNotify[]): void;
|
||||
onGroupsMsgMaskResult(...args: unknown[]): void;
|
||||
onGroupStatisticInfoChange(...args: unknown[]): void;
|
||||
onJoinGroupNotify(...args: unknown[]): void;
|
||||
onJoinGroupNoVerifyFlag(...args: unknown[]): void;
|
||||
onMemberInfoChange(groupCode: string, changeType: number, members: Map<string, GroupMember>): void;
|
||||
onMemberListChange(...args: unknown[]): void;
|
||||
onSearchMemberChange(...args: unknown[]): void;
|
||||
onShutUpMemberListChanged(...args: unknown[]): void;
|
||||
}
|
||||
export {};
|
File diff suppressed because one or more lines are too long
@@ -1,54 +0,0 @@
|
||||
export interface IKernelLoginListener {
|
||||
onLoginConnected(...args: any[]): void;
|
||||
onLoginDisConnected(...args: any[]): void;
|
||||
onLoginConnecting(...args: any[]): void;
|
||||
onQRCodeGetPicture(...args: any[]): void;
|
||||
onQRCodeLoginPollingStarted(...args: any[]): void;
|
||||
onQRCodeSessionUserScaned(...args: any[]): void;
|
||||
onQRCodeLoginSucceed(...args: any[]): void;
|
||||
onQRCodeSessionFailed(...args: any[]): void;
|
||||
onLoginFailed(...args: any[]): void;
|
||||
onLogoutSucceed(...args: any[]): void;
|
||||
onLogoutFailed(...args: any[]): void;
|
||||
onUserLoggedIn(...args: any[]): void;
|
||||
onQRCodeSessionQuickLoginFailed(...args: any[]): void;
|
||||
onPasswordLoginFailed(...args: any[]): void;
|
||||
OnConfirmUnusualDeviceFailed(...args: any[]): void;
|
||||
onQQLoginNumLimited(...args: any[]): void;
|
||||
onLoginState(...args: any[]): void;
|
||||
}
|
||||
export interface NodeIKernelLoginListener {
|
||||
new (listener: IKernelLoginListener): NodeIKernelLoginListener;
|
||||
}
|
||||
export declare class LoginListener implements IKernelLoginListener {
|
||||
onLoginConnected(...args: any[]): void;
|
||||
onLoginDisConnected(...args: any[]): void;
|
||||
onLoginConnecting(...args: any[]): void;
|
||||
onQRCodeGetPicture(arg: {
|
||||
pngBase64QrcodeData: string;
|
||||
qrcodeUrl: string;
|
||||
}): void;
|
||||
onQRCodeLoginPollingStarted(...args: any[]): void;
|
||||
onQRCodeSessionUserScaned(...args: any[]): void;
|
||||
onQRCodeLoginSucceed(arg: QRCodeLoginSucceedResult): void;
|
||||
onQRCodeSessionFailed(...args: any[]): void;
|
||||
onLoginFailed(...args: any[]): void;
|
||||
onLogoutSucceed(...args: any[]): void;
|
||||
onLogoutFailed(...args: any[]): void;
|
||||
onUserLoggedIn(...args: any[]): void;
|
||||
onQRCodeSessionQuickLoginFailed(...args: any[]): void;
|
||||
onPasswordLoginFailed(...args: any[]): void;
|
||||
OnConfirmUnusualDeviceFailed(...args: any[]): void;
|
||||
onQQLoginNumLimited(...args: any[]): void;
|
||||
onLoginState(...args: any[]): void;
|
||||
}
|
||||
export interface QRCodeLoginSucceedResult {
|
||||
account: string;
|
||||
mainAccount: string;
|
||||
uin: string;
|
||||
uid: string;
|
||||
nickName: string;
|
||||
gender: number;
|
||||
age: number;
|
||||
faceUrl: string;
|
||||
}
|
@@ -1 +0,0 @@
|
||||
var _0x526331=_0x48cf;function _0x4366(){var _0x31351d=['onQRCodeSessionUserScaned','2645536nwiURv','4333206PfFywY','onPasswordLoginFailed','OnConfirmUnusualDeviceFailed','3676xSpMzc','25104LqyBpc','onQRCodeLoginPollingStarted','onUserLoggedIn','7765mKaKOu','3fOhoXr','onLoginDisConnected','26956470rjzVNk','onQRCodeSessionQuickLoginFailed','onLoginFailed','onLoginConnecting','1766071BcDeaG','onQRCodeLoginSucceed','onQQLoginNumLimited','721JbzPUH','6479766xeuNsb','onLoginState','onLoginConnected'];_0x4366=function(){return _0x31351d;};return _0x4366();}function _0x48cf(_0x294bd9,_0xf7b11){var _0x4366ba=_0x4366();return _0x48cf=function(_0x48cfbc,_0x36351c){_0x48cfbc=_0x48cfbc-0x166;var _0x39acfc=_0x4366ba[_0x48cfbc];return _0x39acfc;},_0x48cf(_0x294bd9,_0xf7b11);}(function(_0x2b8fc5,_0x4f9216){var _0x599249=_0x48cf,_0x30a1ef=_0x2b8fc5();while(!![]){try{var _0x94f3c6=parseInt(_0x599249(0x173))/0x1+parseInt(_0x599249(0x17b))/0x2*(-parseInt(_0x599249(0x16d))/0x3)+parseInt(_0x599249(0x168))/0x4*(parseInt(_0x599249(0x16c))/0x5)+parseInt(_0x599249(0x17c))/0x6+parseInt(_0x599249(0x176))/0x7*(parseInt(_0x599249(0x169))/0x8)+parseInt(_0x599249(0x177))/0x9+-parseInt(_0x599249(0x16f))/0xa;if(_0x94f3c6===_0x4f9216)break;else _0x30a1ef['push'](_0x30a1ef['shift']());}catch(_0x49d9f0){_0x30a1ef['push'](_0x30a1ef['shift']());}}}(_0x4366,0xe58dc));export class LoginListener{[_0x526331(0x179)](..._0x4c3581){}[_0x526331(0x16e)](..._0x1821f6){}[_0x526331(0x172)](..._0x328165){}['onQRCodeGetPicture'](_0x1a3a16){}[_0x526331(0x16a)](..._0x528305){}[_0x526331(0x17a)](..._0x5383b2){}[_0x526331(0x174)](_0x3d820e){}['onQRCodeSessionFailed'](..._0x5b74b6){}[_0x526331(0x171)](..._0x82ffb3){}['onLogoutSucceed'](..._0x178d23){}['onLogoutFailed'](..._0xc0a9bf){}[_0x526331(0x16b)](..._0x12b31b){}[_0x526331(0x170)](..._0x367aa7){}[_0x526331(0x166)](..._0x28a95f){}[_0x526331(0x167)](..._0x129b85){}[_0x526331(0x175)](..._0x5f5a3b){}[_0x526331(0x178)](..._0x29cc69){}}
|
@@ -1,186 +0,0 @@
|
||||
import { ChatType, RawMessage } from '@/core/entities';
|
||||
export interface OnRichMediaDownloadCompleteParams {
|
||||
fileModelId: string;
|
||||
msgElementId: string;
|
||||
msgId: string;
|
||||
fileId: string;
|
||||
fileProgress: string;
|
||||
fileSpeed: string;
|
||||
fileErrCode: string;
|
||||
fileErrMsg: string;
|
||||
fileDownType: number;
|
||||
thumbSize: number;
|
||||
filePath: string;
|
||||
totalSize: string;
|
||||
trasferStatus: number;
|
||||
step: number;
|
||||
commonFileInfo: unknown | null;
|
||||
fileSrvErrCode: string;
|
||||
clientMsg: string;
|
||||
businessId: number;
|
||||
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 TempOnRecvParams {
|
||||
sessionType: number;
|
||||
chatType: ChatType;
|
||||
peerUid: string;
|
||||
groupCode: string;
|
||||
fromNick: string;
|
||||
sig: string;
|
||||
}
|
||||
export interface IKernelMsgListener {
|
||||
onAddSendMsg(msgRecord: RawMessage): void;
|
||||
onBroadcastHelperDownloadComplete(broadcastHelperTransNotifyInfo: unknown): void;
|
||||
onBroadcastHelperProgressUpdate(broadcastHelperTransNotifyInfo: unknown): void;
|
||||
onChannelFreqLimitInfoUpdate(contact: unknown, z: unknown, freqLimitInfo: unknown): void;
|
||||
onContactUnreadCntUpdate(hashMap: unknown): void;
|
||||
onCustomWithdrawConfigUpdate(customWithdrawConfig: unknown): void;
|
||||
onDraftUpdate(contact: unknown, arrayList: unknown, j2: unknown): void;
|
||||
onEmojiDownloadComplete(emojiNotifyInfo: unknown): void;
|
||||
onEmojiResourceUpdate(emojiResourceInfo: unknown): void;
|
||||
onFeedEventUpdate(firstViewDirectMsgNotifyInfo: unknown): void;
|
||||
onFileMsgCome(arrayList: unknown): void;
|
||||
onFirstViewDirectMsgUpdate(firstViewDirectMsgNotifyInfo: unknown): void;
|
||||
onFirstViewGroupGuildMapping(arrayList: unknown): void;
|
||||
onGrabPasswordRedBag(i2: unknown, str: unknown, i3: unknown, recvdOrder: unknown, msgRecord: unknown): void;
|
||||
onGroupFileInfoAdd(groupItem: unknown): void;
|
||||
onGroupFileInfoUpdate(groupFileListResult: onGroupFileInfoUpdateParamType): void;
|
||||
onGroupGuildUpdate(groupGuildNotifyInfo: unknown): void;
|
||||
onGroupTransferInfoAdd(groupItem: unknown): void;
|
||||
onGroupTransferInfoUpdate(groupFileListResult: unknown): void;
|
||||
onGuildInteractiveUpdate(guildInteractiveNotificationItem: unknown): void;
|
||||
onGuildMsgAbFlagChanged(guildMsgAbFlag: unknown): void;
|
||||
onGuildNotificationAbstractUpdate(guildNotificationAbstractInfo: unknown): void;
|
||||
onHitCsRelatedEmojiResult(downloadRelateEmojiResultInfo: unknown): void;
|
||||
onHitEmojiKeywordResult(hitRelatedEmojiWordsResult: unknown): void;
|
||||
onHitRelatedEmojiResult(relatedWordEmojiInfo: unknown): void;
|
||||
onImportOldDbProgressUpdate(importOldDbMsgNotifyInfo: unknown): void;
|
||||
onInputStatusPush(inputStatusInfo: unknown): void;
|
||||
onKickedOffLine(kickedInfo: unknown): void;
|
||||
onLineDev(arrayList: unknown): void;
|
||||
onLogLevelChanged(j2: unknown): void;
|
||||
onMsgAbstractUpdate(arrayList: unknown): void;
|
||||
onMsgBoxChanged(arrayList: unknown): void;
|
||||
onMsgDelete(contact: unknown, arrayList: unknown): void;
|
||||
onMsgEventListUpdate(hashMap: unknown): void;
|
||||
onMsgInfoListAdd(arrayList: unknown): void;
|
||||
onMsgInfoListUpdate(msgList: RawMessage[]): void;
|
||||
onMsgQRCodeStatusChanged(i2: unknown): void;
|
||||
onMsgRecall(i2: unknown, str: unknown, j2: unknown): void;
|
||||
onMsgSecurityNotify(msgRecord: unknown): void;
|
||||
onMsgSettingUpdate(msgSetting: unknown): void;
|
||||
onNtFirstViewMsgSyncEnd(): void;
|
||||
onNtMsgSyncEnd(): void;
|
||||
onNtMsgSyncStart(): void;
|
||||
onReadFeedEventUpdate(firstViewDirectMsgNotifyInfo: unknown): void;
|
||||
onRecvGroupGuildFlag(i2: unknown): void;
|
||||
onRecvMsg(...arrayList: unknown[]): void;
|
||||
onRecvMsgSvrRspTransInfo(j2: unknown, contact: unknown, i2: unknown, i3: unknown, str: unknown, bArr: unknown): void;
|
||||
onRecvOnlineFileMsg(arrayList: unknown): void;
|
||||
onRecvS2CMsg(arrayList: unknown): void;
|
||||
onRecvSysMsg(arrayList: unknown): void;
|
||||
onRecvUDCFlag(i2: unknown): void;
|
||||
onRichMediaDownloadComplete(fileTransNotifyInfo: OnRichMediaDownloadCompleteParams): void;
|
||||
onRichMediaProgerssUpdate(fileTransNotifyInfo: unknown): void;
|
||||
onRichMediaUploadComplete(fileTransNotifyInfo: unknown): void;
|
||||
onSearchGroupFileInfoUpdate(searchGroupFileResult: unknown): void;
|
||||
onSendMsgError(j2: unknown, contact: unknown, i2: unknown, str: unknown): void;
|
||||
onSysMsgNotification(i2: unknown, j2: unknown, j3: unknown, arrayList: unknown): void;
|
||||
onTempChatInfoUpdate(tempChatInfo: TempOnRecvParams): void;
|
||||
onUnreadCntAfterFirstView(hashMap: unknown): void;
|
||||
onUnreadCntUpdate(hashMap: unknown): void;
|
||||
onUserChannelTabStatusChanged(z: unknown): void;
|
||||
onUserOnlineStatusChanged(z: unknown): void;
|
||||
onUserTabStatusChanged(arrayList: unknown): void;
|
||||
onlineStatusBigIconDownloadPush(i2: unknown, j2: unknown, str: unknown): void;
|
||||
onlineStatusSmallIconDownloadPush(i2: unknown, j2: unknown, str: unknown): void;
|
||||
onUserSecQualityChanged(...args: unknown[]): void;
|
||||
onMsgWithRichLinkInfoUpdate(...args: unknown[]): void;
|
||||
onRedTouchChanged(...args: unknown[]): void;
|
||||
onBroadcastHelperProgerssUpdate(...args: unknown[]): void;
|
||||
}
|
||||
export interface NodeIKernelMsgListener {
|
||||
new (listener: IKernelMsgListener): NodeIKernelMsgListener;
|
||||
}
|
||||
export declare class MsgListener implements IKernelMsgListener {
|
||||
onAddSendMsg(msgRecord: RawMessage): void;
|
||||
onBroadcastHelperDownloadComplete(broadcastHelperTransNotifyInfo: unknown): void;
|
||||
onBroadcastHelperProgressUpdate(broadcastHelperTransNotifyInfo: unknown): void;
|
||||
onChannelFreqLimitInfoUpdate(contact: unknown, z: unknown, freqLimitInfo: unknown): void;
|
||||
onContactUnreadCntUpdate(hashMap: unknown): void;
|
||||
onCustomWithdrawConfigUpdate(customWithdrawConfig: unknown): void;
|
||||
onDraftUpdate(contact: unknown, arrayList: unknown, j2: unknown): void;
|
||||
onEmojiDownloadComplete(emojiNotifyInfo: unknown): void;
|
||||
onEmojiResourceUpdate(emojiResourceInfo: unknown): void;
|
||||
onFeedEventUpdate(firstViewDirectMsgNotifyInfo: unknown): void;
|
||||
onFileMsgCome(arrayList: unknown): void;
|
||||
onFirstViewDirectMsgUpdate(firstViewDirectMsgNotifyInfo: unknown): void;
|
||||
onFirstViewGroupGuildMapping(arrayList: unknown): void;
|
||||
onGrabPasswordRedBag(i2: unknown, str: unknown, i3: unknown, recvdOrder: unknown, msgRecord: unknown): void;
|
||||
onGroupFileInfoAdd(groupItem: unknown): void;
|
||||
onGroupFileInfoUpdate(groupFileListResult: onGroupFileInfoUpdateParamType): void;
|
||||
onGroupGuildUpdate(groupGuildNotifyInfo: unknown): void;
|
||||
onGroupTransferInfoAdd(groupItem: unknown): void;
|
||||
onGroupTransferInfoUpdate(groupFileListResult: unknown): void;
|
||||
onGuildInteractiveUpdate(guildInteractiveNotificationItem: unknown): void;
|
||||
onGuildMsgAbFlagChanged(guildMsgAbFlag: unknown): void;
|
||||
onGuildNotificationAbstractUpdate(guildNotificationAbstractInfo: unknown): void;
|
||||
onHitCsRelatedEmojiResult(downloadRelateEmojiResultInfo: unknown): void;
|
||||
onHitEmojiKeywordResult(hitRelatedEmojiWordsResult: unknown): void;
|
||||
onHitRelatedEmojiResult(relatedWordEmojiInfo: unknown): void;
|
||||
onImportOldDbProgressUpdate(importOldDbMsgNotifyInfo: unknown): void;
|
||||
onInputStatusPush(inputStatusInfo: unknown): void;
|
||||
onKickedOffLine(kickedInfo: unknown): void;
|
||||
onLineDev(arrayList: unknown): void;
|
||||
onLogLevelChanged(j2: unknown): void;
|
||||
onMsgAbstractUpdate(arrayList: unknown): void;
|
||||
onMsgBoxChanged(arrayList: unknown): void;
|
||||
onMsgDelete(contact: unknown, arrayList: unknown): void;
|
||||
onMsgEventListUpdate(hashMap: unknown): void;
|
||||
onMsgInfoListAdd(arrayList: unknown): void;
|
||||
onMsgInfoListUpdate(msgList: RawMessage[]): void;
|
||||
onMsgQRCodeStatusChanged(i2: unknown): void;
|
||||
onMsgRecall(i2: unknown, str: unknown, j2: unknown): void;
|
||||
onMsgSecurityNotify(msgRecord: unknown): void;
|
||||
onMsgSettingUpdate(msgSetting: unknown): void;
|
||||
onNtFirstViewMsgSyncEnd(): void;
|
||||
onNtMsgSyncEnd(): void;
|
||||
onNtMsgSyncStart(): void;
|
||||
onReadFeedEventUpdate(firstViewDirectMsgNotifyInfo: unknown): void;
|
||||
onRecvGroupGuildFlag(i2: unknown): void;
|
||||
onRecvMsg(arrayList: RawMessage[]): void;
|
||||
onRecvMsgSvrRspTransInfo(j2: unknown, contact: unknown, i2: unknown, i3: unknown, str: unknown, bArr: unknown): void;
|
||||
onRecvOnlineFileMsg(arrayList: unknown): void;
|
||||
onRecvS2CMsg(arrayList: unknown): void;
|
||||
onRecvSysMsg(arrayList: unknown): void;
|
||||
onRecvUDCFlag(i2: unknown): void;
|
||||
onRichMediaDownloadComplete(fileTransNotifyInfo: OnRichMediaDownloadCompleteParams): void;
|
||||
onRichMediaProgerssUpdate(fileTransNotifyInfo: unknown): void;
|
||||
onRichMediaUploadComplete(fileTransNotifyInfo: unknown): void;
|
||||
onSearchGroupFileInfoUpdate(searchGroupFileResult: unknown): void;
|
||||
onSendMsgError(j2: unknown, contact: unknown, i2: unknown, str: unknown): void;
|
||||
onSysMsgNotification(i2: unknown, j2: unknown, j3: unknown, arrayList: unknown): void;
|
||||
onTempChatInfoUpdate(tempChatInfo: TempOnRecvParams): void;
|
||||
onUnreadCntAfterFirstView(hashMap: unknown): void;
|
||||
onUnreadCntUpdate(hashMap: unknown): void;
|
||||
onUserChannelTabStatusChanged(z: unknown): void;
|
||||
onUserOnlineStatusChanged(z: unknown): void;
|
||||
onUserTabStatusChanged(arrayList: unknown): void;
|
||||
onlineStatusBigIconDownloadPush(i2: unknown, j2: unknown, str: unknown): void;
|
||||
onlineStatusSmallIconDownloadPush(i2: unknown, j2: unknown, str: unknown): void;
|
||||
onUserSecQualityChanged(...args: unknown[]): void;
|
||||
onMsgWithRichLinkInfoUpdate(...args: unknown[]): void;
|
||||
onRedTouchChanged(...args: unknown[]): void;
|
||||
onBroadcastHelperProgerssUpdate(...args: unknown[]): void;
|
||||
}
|
@@ -1 +0,0 @@
|
||||
var _0x21255e=_0x30d1;(function(_0x59a79d,_0x571cd9){var _0x5a1aa6=_0x30d1,_0x33b426=_0x59a79d();while(!![]){try{var _0x2e4842=parseInt(_0x5a1aa6(0x135))/0x1*(parseInt(_0x5a1aa6(0x156))/0x2)+-parseInt(_0x5a1aa6(0x14c))/0x3+parseInt(_0x5a1aa6(0x164))/0x4*(parseInt(_0x5a1aa6(0x138))/0x5)+parseInt(_0x5a1aa6(0x169))/0x6+parseInt(_0x5a1aa6(0x146))/0x7*(parseInt(_0x5a1aa6(0x145))/0x8)+-parseInt(_0x5a1aa6(0x150))/0x9*(-parseInt(_0x5a1aa6(0x132))/0xa)+parseInt(_0x5a1aa6(0x142))/0xb*(-parseInt(_0x5a1aa6(0x15a))/0xc);if(_0x2e4842===_0x571cd9)break;else _0x33b426['push'](_0x33b426['shift']());}catch(_0x2a51bb){_0x33b426['push'](_0x33b426['shift']());}}}(_0x175c,0xcc5de));function _0x30d1(_0x3bedf3,_0x3d4d72){var _0x175c14=_0x175c();return _0x30d1=function(_0x30d15f,_0x7edf30){_0x30d15f=_0x30d15f-0x132;var _0x3ddc2f=_0x175c14[_0x30d15f];return _0x3ddc2f;},_0x30d1(_0x3bedf3,_0x3d4d72);}function _0x175c(){var _0x367472=['onGroupFileInfoUpdate','onBroadcastHelperProgressUpdate','onGroupTransferInfoUpdate','onFirstViewGroupGuildMapping','onKickedOffLine','50gCCqMl','onHitRelatedEmojiResult','onContactUnreadCntUpdate','onHitCsRelatedEmojiResult','272376SDgyzZ','onGroupFileInfoAdd','onMsgQRCodeStatusChanged','onSysMsgNotification','onMsgRecall','onRichMediaUploadComplete','onNtMsgSyncEnd','onUserTabStatusChanged','onAddSendMsg','onBroadcastHelperDownloadComplete','4340BnOsvo','onNtMsgSyncStart','onMsgInfoListAdd','onEmojiDownloadComplete','onMsgBoxChanged','1588962guQesa','onLineDev','onImportOldDbProgressUpdate','onSendMsgError','onMsgDelete','onMsgSecurityNotify','onMsgWithRichLinkInfoUpdate','onLogLevelChanged','onlineStatusSmallIconDownloadPush','onDraftUpdate','1461540FidovA','onChannelFreqLimitInfoUpdate','onCustomWithdrawConfigUpdate','37873UaOCUb','onGuildNotificationAbstractUpdate','onUserSecQualityChanged','2245YxUFwH','onGroupGuildUpdate','onRecvGroupGuildFlag','onTempChatInfoUpdate','onlineStatusBigIconDownloadPush','onGrabPasswordRedBag','onFirstViewDirectMsgUpdate','onSearchGroupFileInfoUpdate','onReadFeedEventUpdate','onRecvMsg','572TuOXFZ','onUserOnlineStatusChanged','onRichMediaDownloadComplete','8thbYdy','2827034geYcfN','onGuildMsgAbFlagChanged','onHitEmojiKeywordResult','onMsgEventListUpdate','onUnreadCntAfterFirstView','onRecvMsgSvrRspTransInfo','3325125HahkRg','onUnreadCntUpdate','onMsgAbstractUpdate','onUserChannelTabStatusChanged','63ErZRMB'];_0x175c=function(){return _0x367472;};return _0x175c();}export class MsgListener{[_0x21255e(0x162)](_0x3d50d5){}[_0x21255e(0x163)](_0x416aa9){}[_0x21255e(0x152)](_0x21aa64){}[_0x21255e(0x133)](_0x19730a,_0xb51ad6,_0x5c0c75){}[_0x21255e(0x158)](_0x126d39){}[_0x21255e(0x134)](_0x2e406b){}[_0x21255e(0x172)](_0x3698fa,_0x5a26a0,_0x382537){}[_0x21255e(0x167)](_0x499be6){}['onEmojiResourceUpdate'](_0x503324){}['onFeedEventUpdate'](_0x3070be){}['onFileMsgCome'](_0x5b298b){}[_0x21255e(0x13e)](_0x2390f5){}[_0x21255e(0x154)](_0x13953c){}[_0x21255e(0x13d)](_0x1b13f3,_0x29a0d5,_0x250a09,_0xf5c4a0,_0xeaefa7){}[_0x21255e(0x15b)](_0x1bcde2){}[_0x21255e(0x151)](_0x48465c){}[_0x21255e(0x139)](_0x6d9141){}['onGroupTransferInfoAdd'](_0x3cd6e2){}[_0x21255e(0x153)](_0x440494){}['onGuildInteractiveUpdate'](_0x3ac87b){}[_0x21255e(0x147)](_0x998c01){}[_0x21255e(0x136)](_0x4b4bab){}[_0x21255e(0x159)](_0x4c781f){}[_0x21255e(0x148)](_0x50fef1){}[_0x21255e(0x157)](_0x55eefc){}[_0x21255e(0x16b)](_0x2764ca){}['onInputStatusPush'](_0x45bef5){}[_0x21255e(0x155)](_0x35c209){}[_0x21255e(0x16a)](_0x10f1b0){}[_0x21255e(0x170)](_0x42b5c2){}[_0x21255e(0x14e)](_0x2c7e1f){}[_0x21255e(0x168)](_0x3ecb99){}[_0x21255e(0x16d)](_0x37e8ce,_0x312fdc){}[_0x21255e(0x149)](_0x253c04){}[_0x21255e(0x166)](_0x3f7ecc){}['onMsgInfoListUpdate'](_0x48ff13){}[_0x21255e(0x15c)](_0x1cafe7){}[_0x21255e(0x15e)](_0x24ed23,_0x27184c,_0x22f5e3){}[_0x21255e(0x16e)](_0x36a8e7){}['onMsgSettingUpdate'](_0x1bc59e){}['onNtFirstViewMsgSyncEnd'](){}[_0x21255e(0x160)](){}[_0x21255e(0x165)](){}[_0x21255e(0x140)](_0x4e7a93){}[_0x21255e(0x13a)](_0x2cf2b9){}[_0x21255e(0x141)](_0x2f3e29){}[_0x21255e(0x14b)](_0x3dfbcc,_0xe19862,_0x296b5a,_0x1029ef,_0x47ee94,_0x1fb5b8){}['onRecvOnlineFileMsg'](_0x25564f){}['onRecvS2CMsg'](_0x42fbb4){}['onRecvSysMsg'](_0x5aed40){}['onRecvUDCFlag'](_0x3d9f4b){}[_0x21255e(0x144)](_0x15e17d){}['onRichMediaProgerssUpdate'](_0x508fef){}[_0x21255e(0x15f)](_0x1b7e7a){}[_0x21255e(0x13f)](_0x313088){}[_0x21255e(0x16c)](_0x53db97,_0x1136ec,_0x38b6ff,_0x4b9841){}[_0x21255e(0x15d)](_0xb4e8dd,_0x195cd1,_0x216fab,_0x233eec){}[_0x21255e(0x13b)](_0x2e9974){}[_0x21255e(0x14a)](_0x49c8b7){}[_0x21255e(0x14d)](_0x4d24bf){}[_0x21255e(0x14f)](_0x35f0e5){}[_0x21255e(0x143)](_0x45dc08){}[_0x21255e(0x161)](_0x230374){}[_0x21255e(0x13c)](_0x553bcc,_0x27bd33,_0x1f1cdd){}[_0x21255e(0x171)](_0x1e52c7,_0x48a123,_0x247d63){}[_0x21255e(0x137)](..._0x4a7cca){}[_0x21255e(0x16f)](..._0xfd2679){}['onRedTouchChanged'](..._0x55bffc){}['onBroadcastHelperProgerssUpdate'](..._0x52c509){}}
|
@@ -1,19 +0,0 @@
|
||||
import { User } from '@/core/entities';
|
||||
interface IProfileListener {
|
||||
onProfileSimpleChanged(...args: unknown[]): void;
|
||||
onProfileDetailInfoChanged(profile: User): void;
|
||||
onStatusUpdate(...args: unknown[]): void;
|
||||
onSelfStatusChanged(...args: unknown[]): void;
|
||||
onStrangerRemarkChanged(...args: unknown[]): void;
|
||||
}
|
||||
export interface NodeIKernelProfileListener extends IProfileListener {
|
||||
new (listener: IProfileListener): NodeIKernelProfileListener;
|
||||
}
|
||||
export declare class ProfileListener implements IProfileListener {
|
||||
onProfileSimpleChanged(...args: unknown[]): void;
|
||||
onProfileDetailInfoChanged(profile: User): void;
|
||||
onStatusUpdate(...args: unknown[]): void;
|
||||
onSelfStatusChanged(...args: unknown[]): void;
|
||||
onStrangerRemarkChanged(...args: unknown[]): void;
|
||||
}
|
||||
export {};
|
@@ -1 +0,0 @@
|
||||
var _0x52a86e=_0x3a24;function _0x5859(){var _0x187b4a=['552951izkIIU','302KTTKop','3361407bgfOrT','onStatusUpdate','14037AEXuDX','26680760qWvTXa','onProfileSimpleChanged','9wiVvAa','onProfileDetailInfoChanged','3317202XuoRDq','143064dBKhQa','onStrangerRemarkChanged','onSelfStatusChanged','2529700rBrXpY'];_0x5859=function(){return _0x187b4a;};return _0x5859();}function _0x3a24(_0x10a6ed,_0x5373f0){var _0x585933=_0x5859();return _0x3a24=function(_0x3a24e6,_0x5f38b6){_0x3a24e6=_0x3a24e6-0x109;var _0x33def0=_0x585933[_0x3a24e6];return _0x33def0;},_0x3a24(_0x10a6ed,_0x5373f0);}(function(_0x1325fd,_0x33e1d6){var _0x198453=_0x3a24,_0x1725fc=_0x1325fd();while(!![]){try{var _0x9de9a3=-parseInt(_0x198453(0x10b))/0x1+-parseInt(_0x198453(0x10c))/0x2*(parseInt(_0x198453(0x10f))/0x3)+-parseInt(_0x198453(0x115))/0x4+-parseInt(_0x198453(0x10a))/0x5+-parseInt(_0x198453(0x114))/0x6+-parseInt(_0x198453(0x10d))/0x7+-parseInt(_0x198453(0x110))/0x8*(-parseInt(_0x198453(0x112))/0x9);if(_0x9de9a3===_0x33e1d6)break;else _0x1725fc['push'](_0x1725fc['shift']());}catch(_0xb8c588){_0x1725fc['push'](_0x1725fc['shift']());}}}(_0x5859,0x7a469));export class ProfileListener{[_0x52a86e(0x111)](..._0x1cfbf4){}[_0x52a86e(0x113)](_0x35e246){}[_0x52a86e(0x10e)](..._0x522d3c){}[_0x52a86e(0x109)](..._0x55f3aa){}[_0x52a86e(0x116)](..._0x28f2b9){}}
|
@@ -1,13 +0,0 @@
|
||||
export interface IKernelRobotListener {
|
||||
onRobotFriendListChanged(...args: unknown[]): void;
|
||||
onRobotListChanged(...args: unknown[]): void;
|
||||
onRobotProfileChanged(...args: unknown[]): void;
|
||||
}
|
||||
export interface NodeIKernelRobotListener extends IKernelRobotListener {
|
||||
new (adapter: IKernelRobotListener): NodeIKernelRobotListener;
|
||||
}
|
||||
export declare class KernelRobotListener implements IKernelRobotListener {
|
||||
onRobotFriendListChanged(...args: unknown[]): void;
|
||||
onRobotListChanged(...args: unknown[]): void;
|
||||
onRobotProfileChanged(...args: unknown[]): void;
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user