Compare commits

...

74 Commits

Author SHA1 Message Date
手瓜一十雪
b9d1d84716 release: v1.5.4 2024-06-11 15:20:11 +08:00
手瓜一十雪
64b2d547ce refactor: friend 2024-06-11 12:34:04 +08:00
手瓜一十雪
d8d2ff7e4e chore:appid 2024-06-10 19:00:05 +08:00
手瓜一十雪
8aa5dc6482 Merge pull request #62 from NapNeko/dependabot/npm_and_yarn/uuid-10.0.0
build(deps): bump uuid from 9.0.1 to 10.0.0
2024-06-10 16:46:05 +08:00
dependabot[bot]
474ba20e61 build(deps): bump uuid from 9.0.1 to 10.0.0
Bumps [uuid](https://github.com/uuidjs/uuid) from 9.0.1 to 10.0.0.
- [Changelog](https://github.com/uuidjs/uuid/blob/main/CHANGELOG.md)
- [Commits](https://github.com/uuidjs/uuid/compare/v9.0.1...v10.0.0)

---
updated-dependencies:
- dependency-name: uuid
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-10 08:12:09 +00:00
手瓜一十雪
bdea2d02a9 release: v1.5.3 2024-06-09 20:09:14 +08:00
手瓜一十雪
c4307481f1 build: 1.5.3-beta4 2024-06-09 19:47:16 +08:00
手瓜一十雪
b8ac1b28bd build: v1.5.3-beta3 2024-06-09 19:41:27 +08:00
手瓜一十雪
24038cda95 refactor: video url 2024-06-09 19:40:34 +08:00
手瓜一十雪
86c82e9608 build: 1.5.3-beta2 2024-06-09 19:14:27 +08:00
手瓜一十雪
daab5d150b refactor: friend add 2024-06-09 19:13:49 +08:00
手瓜一十雪
9ff82bdb90 feat: support SetLongNick 2024-06-09 18:28:09 +08:00
手瓜一十雪
c6d70ef1cf build: 1.5.3-beta1 2024-06-09 17:46:32 +08:00
手瓜一十雪
15d4bb3c76 feat: new api 2024-06-09 17:30:30 +08:00
手瓜一十雪
3e698981fd chore: sync core 2024-06-09 14:26:02 +08:00
手瓜一十雪
9d45c934a5 chore: sync core 2024-06-08 22:13:05 +08:00
手瓜一十雪
c2bf9cf93e chore: sync core 2024-06-08 12:11:04 +08:00
手瓜一十雪
b3c6fd7f26 chore: sync core 2024-06-07 17:59:33 +08:00
手瓜一十雪
ccd155de71 feat: 推荐联系人ArkJson 2024-06-07 17:57:33 +08:00
手瓜一十雪
1f90d2e46b feat: 支持专属头衔获取 2024-06-07 17:26:00 +08:00
手瓜一十雪
4c5d974c22 feat: 支持专属头衔获取 2024-06-07 17:25:34 +08:00
手瓜一十雪
392eda1cbc fix: typo 2024-06-07 13:19:22 +08:00
手瓜一十雪
a9da3279e8 docs: change 2024-06-07 13:01:15 +08:00
手瓜一十雪
1ce8351180 docs: develop 2024-06-07 09:49:31 +08:00
手瓜一十雪
96c334478a docs: todo 2024-06-07 00:39:09 +08:00
手瓜一十雪
f1b0875b05 feat: ArkJsonGroupShare 2024-06-06 17:20:34 +08:00
手瓜一十雪
cea9e11c83 docs: add 2024-06-06 14:31:45 +08:00
手瓜一十雪
f098b39200 refactor: uins 2024-06-06 13:34:05 +08:00
手瓜一十雪
012d948b59 chore: sync 2024-06-06 13:23:15 +08:00
手瓜一十雪
3334cd0a71 docs: change 2024-06-06 12:18:17 +08:00
手瓜一十雪
d63d53fd88 docs: move 2024-06-06 11:05:30 +08:00
手瓜一十雪
a7fa39b2fd fix: message_id error 2024-06-06 11:03:29 +08:00
Version
40bb42e193 chore:version change 2024-06-05 10:30:26 +00:00
手瓜一十雪
9c382c639b build: v1.5.2-api兼容 2024-06-05 15:04:04 +08:00
手瓜一十雪
a43cde38f1 refactor: SetMsgEmojiLike 2024-06-05 15:03:14 +08:00
手瓜一十雪
c35d2e08cd refactor: reboot req params 2024-06-05 14:25:21 +08:00
手瓜一十雪
3377c383c1 build: v1.5.2 - GetMsg兼容 2024-06-05 12:14:41 +08:00
手瓜一十雪
c00e6d95cd build: v1.5.2-beta3 2024-06-05 11:23:42 +08:00
手瓜一十雪
725fccf4ed refactor: GoCQHTTP_GetStrangerInfo 2024-06-05 11:19:34 +08:00
手瓜一十雪
13129bd219 build: v1.5.2-beta2 2024-06-05 10:41:40 +08:00
手瓜一十雪
4561977bcf chore: sync core 2024-06-05 10:36:39 +08:00
手瓜一十雪
40be8a91f5 fix 2024-06-05 10:33:36 +08:00
手瓜一十雪
2a04d5830b fix: kick member 2024-06-04 23:52:46 +08:00
手瓜一十雪
82a38574f3 build: v1.5.2-beta 2024-06-04 23:16:33 +08:00
手瓜一十雪
fea3a33c2b refactor: Uid <-> Uin & Remove Cached 2024-06-04 23:13:18 +08:00
手瓜一十雪
9a502cdf6f refactor: uin - > uid 2024-06-04 23:06:53 +08:00
手瓜一十雪
4b616299cf refactor: uin -> uid 2024-06-04 22:50:16 +08:00
手瓜一十雪
102243e064 sync: core 2024-06-04 21:15:29 +08:00
手瓜一十雪
4b21ac5ebe fix: nt event 2024-06-04 21:09:19 +08:00
手瓜一十雪
4dd7363dd3 Merge branch 'main' of https://github.com/NapNeko/NapCatQQ 2024-06-04 12:39:08 +08:00
手瓜一十雪
3d5e5ab78f release: v1.5.1 2024-06-04 12:38:54 +08:00
手瓜一十雪
73045a1b21 Merge pull request #57 from Icexbb/main
fix: 整理日志、添加颜色、使用统一的日志函数以提高日志可读性
2024-06-04 12:37:54 +08:00
手瓜一十雪
871173a7cf fix: 二维码显示 2024-06-04 12:37:35 +08:00
手瓜一十雪
0002313093 Merge branch 'main' into pr/57 2024-06-04 12:31:43 +08:00
手瓜一十雪
948cf5cca6 refactror: cpmoudle
此处非NC运行时的代码 用于打包时运行
2024-06-04 12:26:19 +08:00
手瓜一十雪
d40230879c fix: 玄学的问题 2024-06-04 12:20:42 +08:00
XBB
ab22b775f1 fix: 整理日志、添加颜色、使用统一的日志函数以提高日志可读性 2024-06-04 02:59:35 +08:00
手瓜一十雪
42c85224ba build: v1.5.1-beta1 2024-06-03 21:18:24 +08:00
手瓜一十雪
e57444a353 sync: core 2024-06-03 21:11:21 +08:00
手瓜一十雪
3c6503d495 feat: support SetSelfProfile 2024-06-03 21:02:43 +08:00
手瓜一十雪
149b518f48 release: v1.5.0 2024-06-03 17:15:43 +08:00
手瓜一十雪
74621447ff fix: 提高兼容性 2024-06-03 17:12:53 +08:00
手瓜一十雪
3280952931 fix: 提高Api兼容性 2024-06-03 17:09:23 +08:00
手瓜一十雪
9e670e2736 Merge branch 'main' of https://github.com/NapNeko/NapCatQQ 2024-06-03 16:56:28 +08:00
手瓜一十雪
9fc6347a2f fix: 进一步标准化 2024-06-03 16:56:08 +08:00
Version
ec7a15a192 chore:version change 2024-06-03 08:50:25 +00:00
手瓜一十雪
7f99982810 release: v1.4.9 2024-06-03 16:49:08 +08:00
Version
935d83aaf8 chore:version change 2024-06-02 13:01:32 +00:00
手瓜一十雪
0ff6edd546 style: lint 2024-06-02 20:49:09 +08:00
手瓜一十雪
94f629585a build: v1.4.8-beta2 2024-06-02 20:40:41 +08:00
手瓜一十雪
89c04be02f fix 2024-06-02 13:58:51 +08:00
手瓜一十雪
3151965ea8 build: 1.3.8-beta1 2024-06-02 13:45:48 +08:00
手瓜一十雪
bdf5159be1 refactor: guid 2024-06-02 13:38:33 +08:00
手瓜一十雪
0499ebbea3 release: v1.4.7 2024-06-01 15:52:06 +08:00
175 changed files with 3562 additions and 2218 deletions

View 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)

View File

@@ -1,10 +1,10 @@
# v1.4.4
QQ Version: Windows 9.9.10-24108 / Linux 3.2.7-23361
## 更新
* **重大更新:**更新了版本号
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)
# v1.4.4
QQ Version: Windows 9.9.10-24108 / Linux 3.2.7-23361
## 更新
* **重大更新:**更新了版本号
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)

View File

@@ -1,12 +1,12 @@
# v1.4.5
QQ Version: Windows 9.9.10-24108 / Linux 3.2.7-23361
## 修复与优化
* 紧急修复二维扫码问题
## 新增与调整
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)
# v1.4.5
QQ Version: Windows 9.9.10-24108 / Linux 3.2.7-23361
## 修复与优化
* 紧急修复二维扫码问题
## 新增与调整
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)

View File

@@ -1,12 +1,12 @@
# v1.4.6
QQ Version: Windows 9.9.10-24108 / Linux 3.2.7-23361
## 修复与优化
* 优化整体稳定性
## 新增与调整
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)
# v1.4.6
QQ Version: Windows 9.9.10-24108 / Linux 3.2.7-23361
## 修复与优化
* 优化整体稳定性
## 新增与调整
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)

View File

@@ -0,0 +1,11 @@
# v1.4.7
QQ Version: Windows 9.9.10-24108 / Linux 3.2.7-23361
## 修复与优化
* 临时扩展 Api: GoCQHTTPUploadGroupFile folder_id字段 用于选择文件夹
## 新增与调整
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)

View File

@@ -0,0 +1,12 @@
# v1.4.8
QQ Version: Windows 9.9.10-24108 / Linux 3.2.7-23361
## 修复与优化
* 优化Guid的生成方式
* 支持临时消息获取群来源
## 新增与调整
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)

View File

@@ -0,0 +1,11 @@
# v1.4.9
QQ Version: Windows 9.9.10-24108 / Linux 3.2.7-23361
## 修复与优化
* 修复接口调用问题 接口标准化 APIset_group_add_request
## 新增与调整
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)

View File

@@ -0,0 +1,11 @@
# v1.5.0
QQ Version: Windows 9.9.10-24108 / Linux 3.2.7-23361
## 修复与优化
* 修正各Api默认值
## 新增与调整
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)

View File

@@ -0,0 +1,12 @@
# v1.5.1
QQ Version: Windows 9.9.10-24108 / Linux 3.2.7-23361
## 修复与优化
* 支持 新Api: set_self_profile 可设置个性签名
* 修复 Api: get_group_system_msg
* 整理日志、添加颜色、使用统一的日志函数以提高日志可读性
## 新增与调整
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)

View 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)

View 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)

2
docs/develop/Android.md Normal file
View File

@@ -0,0 +1,2 @@
# 开始
jadx 跳转于 `com.tencent.qqnt.kernel.*`

View 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
```

View 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";

View 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;
```

View 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调用流程

View File

@@ -2,7 +2,7 @@
"name": "napcat",
"private": true,
"type": "module",
"version": "1.4.6",
"version": "1.5.4",
"scripts": {
"watch:dev": "vite --mode development",
"watch:prod": "vite --mode production",
@@ -19,6 +19,7 @@
},
"devDependencies": {
"@log4js-node/log4js-api": "^1.0.2",
"@protobuf-ts/plugin": "^2.9.4",
"@rollup/plugin-node-resolve": "^15.2.3",
"@rollup/plugin-typescript": "^11.1.6",
"@types/cors": "^2.8.17",
@@ -43,11 +44,11 @@
"vite": "^5.2.6",
"vite-plugin-cp": "^4.0.8",
"vite-plugin-dts": "^3.8.2",
"vite-tsconfig-paths": "^4.3.2",
"@protobuf-ts/plugin": "^2.9.4"
"vite-tsconfig-paths": "^4.3.2"
},
"dependencies": {
"ajv": "^8.13.0",
"chalk": "^5.3.0",
"commander": "^12.0.0",
"cors": "^2.8.5",
"express": "^5.0.0-beta.2",
@@ -60,7 +61,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"
}
}

View File

@@ -1,5 +1,5 @@
import { sleep } from '@/common/utils/helper';
import { logError } from './log';
type AsyncQueueTask = (() => void) | (()=>Promise<void>);
@@ -26,7 +26,8 @@ export class AsyncQueue {
await taskRet;
}
} catch (e) {
console.error(e);
// console.error(e);
logError(e);
}
this.tasks.shift();
await sleep(100);

View File

@@ -1,181 +1,182 @@
import { NodeIKernelMsgListener } from "@/core";
import { NodeIQQNTWrapperSession } from "@/core/wrapper";
import { randomUUID } from "crypto";
interface Internal_MapKey {
timeout: number,
createtime: number,
func: Function
}
export class ListenerClassBase {
[key: string]: string;
}
export interface ListenerIBase {
// eslint-disable-next-line @typescript-eslint/no-misused-new
new(listener: any): ListenerClassBase;
}
export class NTEventWrapper {
private ListenerMap: { [key: string]: ListenerIBase } | undefined;//ListenerName-Unique -> Listener构造函数
private WrapperSession: NodeIQQNTWrapperSession | undefined;//WrapperSession
private ListenerManger: Map<string, ListenerClassBase> = new Map<string, ListenerClassBase>(); //ListenerName-Unique -> Listener实例
private EventTask = new Map<string, Map<string, Map<string, Internal_MapKey>>>();//tasks ListenerMainName -> ListenerSubName-> uuid -> {timeout,createtime,func}
constructor() {
}
createProxyDispatch(ListenerMainName: string) {
let current = this;
return new Proxy({}, {
get(target: any, prop: any, receiver: any) {
// console.log('get', prop, typeof target[prop]);
if (typeof target[prop] === 'undefined') {
// 如果方法不存在返回一个函数这个函数调用existentMethod
return (...args: any[]) => {
current.DispatcherListener.apply(current, [ListenerMainName, prop, ...args]).then();
};
}
// 如果方法存在,正常返回
return Reflect.get(target, prop, receiver);
}
});
}
init({ ListenerMap, WrapperSession }: { ListenerMap: { [key: string]: typeof ListenerClassBase }, WrapperSession: NodeIQQNTWrapperSession }) {
this.ListenerMap = ListenerMap;
this.WrapperSession = WrapperSession;
}
CreatEventFunction<T extends (...args: any) => any>(eventName: string): T | undefined {
let eventNameArr = eventName.split('/');
type eventType = {
[key: string]: () => { [key: string]: (...params: Parameters<T>) => Promise<ReturnType<T>> }
}
if (eventNameArr.length > 1) {
let serviceName = 'get' + eventNameArr[0].replace('NodeIKernel', '');
let eventName = eventNameArr[1];
//getNodeIKernelGroupListener,GroupService
//console.log('2', eventName);
let services = (this.WrapperSession as unknown as eventType)[serviceName]();
let event = services[eventName];
//重新绑定this
event = event.bind(services);
if (event) {
return event as T;
}
return undefined;
}
}
CreatListenerFunction<T>(listenerMainName: string, uniqueCode: string = ""): T {
let ListenerType = this.ListenerMap![listenerMainName];
let Listener = this.ListenerManger.get(listenerMainName + uniqueCode);
if (!Listener && ListenerType) {
Listener = new ListenerType(this.createProxyDispatch(listenerMainName));
let ServiceSubName = listenerMainName.match(/^NodeIKernel(.*?)Listener$/)![1];
let Service = "NodeIKernel" + ServiceSubName + "Service/addKernel" + ServiceSubName + "Listener";
let addfunc = this.CreatEventFunction<(listener: T) => number>(Service);
addfunc!(Listener as T);
//console.log(addfunc!(Listener as T));
this.ListenerManger.set(listenerMainName + uniqueCode, Listener);
}
return Listener as T;
}
//统一回调清理事件
async DispatcherListener(ListenerMainName: string, ListenerSubName: string, ...args: any[]) {
//console.log(ListenerMainName, this.EventTask.get(ListenerMainName), ListenerSubName, this.EventTask.get(ListenerMainName)?.get(ListenerSubName));
this.EventTask.get(ListenerMainName)?.get(ListenerSubName)?.forEach((task, uuid) => {
//console.log(task.func, uuid, task.createtime, task.timeout);
if (task.createtime + task.timeout < Date.now()) {
this.EventTask.get(ListenerMainName)?.get(ListenerSubName)?.delete(uuid);
return;
}
task.func(...args);
})
}
async CallNoListenerEvent<EventType extends (...args: any[]) => Promise<any>,>(EventName = '', timeout: number = 3000, ...args: Parameters<EventType>) {
return new Promise<ReturnType<EventType>>(async (resolve, reject) => {
let EventFunc = this.CreatEventFunction<EventType>(EventName);
let complete = false;
let Timeouter = setTimeout(() => {
if (!complete) {
reject(new Error('NTEvent EventName:' + EventName + ' timeout'));
}
}, timeout);
let retData = await EventFunc!(...args);
complete = true;
resolve(retData);
});
}
async CallNormalEvent<EventType extends (...args: any[]) => Promise<any>, ListenerType extends (...args: any[]) => void>(EventName = '', ListenerName = '', waitTimes = 1, timeout: number = 3000, ...args: Parameters<EventType>) {
return new Promise<[EventRet: Awaited<ReturnType<EventType>>, ...Parameters<ListenerType>]>(async (resolve, reject) => {
const id = randomUUID();
let complete = 0;
let retData: ArrayLike<Parameters<ListenerType>> | undefined = undefined;
let retEvent: any = {};
let databack = () => {
if (complete < waitTimes) {
reject(new Error('NTEvent EventName:' + EventName + ' ListenerName:' + ListenerName + ' timeout'));
} else {
resolve([retEvent as Awaited<ReturnType<EventType>>, ...(retData as Parameters<ListenerType>)]);
}
}
let Timeouter = setTimeout(databack, timeout);
let ListenerNameList = ListenerName.split('/');
let ListenerMainName = ListenerNameList[0];
let ListenerSubName = ListenerNameList[1];
let eventCallbak = {
timeout: timeout,
createtime: Date.now(),
func: (...args: any[]) => {
complete++;
//console.log('func', ...args);
retData = args as ArrayLike<Parameters<ListenerType>>;
if (complete >= waitTimes) {
clearTimeout(Timeouter);
databack();
}
}
}
if (!this.EventTask.get(ListenerMainName)) {
this.EventTask.set(ListenerMainName, new Map());
}
if (!(this.EventTask.get(ListenerMainName)?.get(ListenerSubName))) {
this.EventTask.get(ListenerMainName)?.set(ListenerSubName, new Map());
}
this.EventTask.get(ListenerMainName)?.get(ListenerSubName)?.set(id, eventCallbak);
this.CreatListenerFunction(ListenerMainName);
let EventFunc = this.CreatEventFunction<EventType>(EventName);
retEvent = await EventFunc!(...args);
});
}
}
export const NTEventDispatch = new NTEventWrapper();
// 示例代码 快速创建事件
// let NTEvent = new NTEventWrapper();
// let TestEvent = NTEvent.CreatEventFunction<(force: boolean) => Promise<Number>>('NodeIKernelProfileLikeService/GetTest');
// if (TestEvent) {
// TestEvent(true);
// }
// 示例代码 快速创建监听Listener类
// let NTEvent = new NTEventWrapper();
// NTEvent.CreatListenerFunction<NodeIKernelMsgListener>('NodeIKernelMsgListener', 'core')
// 调用接口
//let NTEvent = new NTEventWrapper();
//let ret = await NTEvent.CallNormalEvent<(force: boolean) => Promise<Number>, (data1: string, data2: number) => void>('NodeIKernelProfileLikeService/GetTest', 'NodeIKernelMsgListener/onAddSendMsg', 1, 3000, true);
// 注册监听 解除监听
// NTEventDispatch.RigisterListener('NodeIKernelMsgListener/onAddSendMsg','core',cb);
// NTEventDispatch.UnRigisterListener('NodeIKernelMsgListener/onAddSendMsg','core');
// let GetTest = NTEventDispatch.CreatEvent('NodeIKernelProfileLikeService/GetTest','NodeIKernelMsgListener/onAddSendMsg',Mode);
// GetTest('test');
// always模式
import { NodeIKernelMsgListener } from '@/core';
import { NodeIQQNTWrapperSession } from '@/core/wrapper';
import { randomUUID } from 'crypto';
interface Internal_MapKey {
timeout: number,
createtime: number,
func: (...arg: any[]) => any,
}
export class ListenerClassBase {
[key: string]: string;
}
export interface ListenerIBase {
// eslint-disable-next-line @typescript-eslint/no-misused-new
new(listener: any): ListenerClassBase;
}
export class NTEventWrapper {
private ListenerMap: { [key: string]: ListenerIBase } | undefined;//ListenerName-Unique -> Listener构造函数
private WrapperSession: NodeIQQNTWrapperSession | undefined;//WrapperSession
private ListenerManger: Map<string, ListenerClassBase> = new Map<string, ListenerClassBase>(); //ListenerName-Unique -> Listener实例
private EventTask = new Map<string, Map<string, Map<string, Internal_MapKey>>>();//tasks ListenerMainName -> ListenerSubName-> uuid -> {timeout,createtime,func}
constructor() {
}
createProxyDispatch(ListenerMainName: string) {
// eslint-disable-next-line @typescript-eslint/no-this-alias
const current = this;
return new Proxy({}, {
get(target: any, prop: any, receiver: any) {
// console.log('get', prop, typeof target[prop]);
if (typeof target[prop] === 'undefined') {
// 如果方法不存在返回一个函数这个函数调用existentMethod
return (...args: any[]) => {
current.DispatcherListener.apply(current, [ListenerMainName, prop, ...args]).then();
};
}
// 如果方法存在,正常返回
return Reflect.get(target, prop, receiver);
}
});
}
init({ ListenerMap, WrapperSession }: { ListenerMap: { [key: string]: typeof ListenerClassBase }, WrapperSession: NodeIQQNTWrapperSession }) {
this.ListenerMap = ListenerMap;
this.WrapperSession = WrapperSession;
}
CreatEventFunction<T extends (...args: any) => any>(eventName: string): T | undefined {
const eventNameArr = eventName.split('/');
type eventType = {
[key: string]: () => { [key: string]: (...params: Parameters<T>) => Promise<ReturnType<T>> }
}
if (eventNameArr.length > 1) {
const serviceName = 'get' + eventNameArr[0].replace('NodeIKernel', '');
const eventName = eventNameArr[1];
//getNodeIKernelGroupListener,GroupService
//console.log('2', eventName);
const services = (this.WrapperSession as unknown as eventType)[serviceName]();
let event = services[eventName];
//重新绑定this
event = event.bind(services);
if (event) {
return event as T;
}
return undefined;
}
}
CreatListenerFunction<T>(listenerMainName: string, uniqueCode: string = ''): T {
const ListenerType = this.ListenerMap![listenerMainName];
let Listener = this.ListenerManger.get(listenerMainName + uniqueCode);
if (!Listener && ListenerType) {
Listener = new ListenerType(this.createProxyDispatch(listenerMainName));
const ServiceSubName = listenerMainName.match(/^NodeIKernel(.*?)Listener$/)![1];
const Service = 'NodeIKernel' + ServiceSubName + 'Service/addKernel' + ServiceSubName + 'Listener';
const addfunc = this.CreatEventFunction<(listener: T) => number>(Service);
addfunc!(Listener as T);
//console.log(addfunc!(Listener as T));
this.ListenerManger.set(listenerMainName + uniqueCode, Listener);
}
return Listener as T;
}
//统一回调清理事件
async DispatcherListener(ListenerMainName: string, ListenerSubName: string, ...args: any[]) {
//console.log(ListenerMainName, this.EventTask.get(ListenerMainName), ListenerSubName, this.EventTask.get(ListenerMainName)?.get(ListenerSubName));
this.EventTask.get(ListenerMainName)?.get(ListenerSubName)?.forEach((task, uuid) => {
//console.log(task.func, uuid, task.createtime, task.timeout);
if (task.createtime + task.timeout < Date.now()) {
this.EventTask.get(ListenerMainName)?.get(ListenerSubName)?.delete(uuid);
return;
}
task.func(...args);
});
}
async CallNoListenerEvent<EventType extends (...args: any[]) => Promise<any>,>(EventName = '', timeout: number = 3000, ...args: Parameters<EventType>) {
return new Promise<Awaited<ReturnType<EventType>>>(async (resolve, reject) => {
const EventFunc = this.CreatEventFunction<EventType>(EventName);
let complete = false;
const Timeouter = setTimeout(() => {
if (!complete) {
reject(new Error('NTEvent EventName:' + EventName + ' timeout'));
}
}, timeout);
const retData = await EventFunc!(...args);
complete = true;
resolve(retData);
});
}
async CallNormalEvent<EventType extends (...args: any[]) => Promise<any>, ListenerType extends (...args: any[]) => void>(EventName = '', ListenerName = '', waitTimes = 1, timeout: number = 3000, ...args: Parameters<EventType>) {
return new Promise<[EventRet: Awaited<ReturnType<EventType>>, ...Parameters<ListenerType>]>(async (resolve, reject) => {
const id = randomUUID();
let complete = 0;
let retData: Parameters<ListenerType> | undefined = undefined;
let retEvent: any = {};
const databack = () => {
if (complete < waitTimes) {
reject(new Error('NTEvent EventName:' + EventName + ' ListenerName:' + ListenerName + ' timeout'));
} else {
resolve([retEvent as Awaited<ReturnType<EventType>>, ...retData!]);
}
};
const Timeouter = setTimeout(databack, timeout);
const ListenerNameList = ListenerName.split('/');
const ListenerMainName = ListenerNameList[0];
const ListenerSubName = ListenerNameList[1];
const eventCallbak = {
timeout: timeout,
createtime: Date.now(),
func: (...args: any[]) => {
complete++;
//console.log('func', ...args);
retData = args as Parameters<ListenerType>;
if (complete >= waitTimes) {
clearTimeout(Timeouter);
databack();
}
}
};
if (!this.EventTask.get(ListenerMainName)) {
this.EventTask.set(ListenerMainName, new Map());
}
if (!(this.EventTask.get(ListenerMainName)?.get(ListenerSubName))) {
this.EventTask.get(ListenerMainName)?.set(ListenerSubName, new Map());
}
this.EventTask.get(ListenerMainName)?.get(ListenerSubName)?.set(id, eventCallbak);
this.CreatListenerFunction(ListenerMainName);
const EventFunc = this.CreatEventFunction<EventType>(EventName);
//console.log("测试打点", args);
retEvent = await EventFunc!(...(args as any[]));
});
}
}
export const NTEventDispatch = new NTEventWrapper();
// 示例代码 快速创建事件
// let NTEvent = new NTEventWrapper();
// let TestEvent = NTEvent.CreatEventFunction<(force: boolean) => Promise<Number>>('NodeIKernelProfileLikeService/GetTest');
// if (TestEvent) {
// TestEvent(true);
// }
// 示例代码 快速创建监听Listener类
// let NTEvent = new NTEventWrapper();
// NTEvent.CreatListenerFunction<NodeIKernelMsgListener>('NodeIKernelMsgListener', 'core')
// 调用接口
//let NTEvent = new NTEventWrapper();
//let ret = await NTEvent.CallNormalEvent<(force: boolean) => Promise<Number>, (data1: string, data2: number) => void>('NodeIKernelProfileLikeService/GetTest', 'NodeIKernelMsgListener/onAddSendMsg', 1, 3000, true);
// 注册监听 解除监听
// NTEventDispatch.RigisterListener('NodeIKernelMsgListener/onAddSendMsg','core',cb);
// NTEventDispatch.UnRigisterListener('NodeIKernelMsgListener/onAddSendMsg','core');
// let GetTest = NTEventDispatch.CreatEvent('NodeIKernelProfileLikeService/GetTest','NodeIKernelMsgListener/onAddSendMsg',Mode);
// GetTest('test');
// always模式
// NTEventDispatch.CreatEvent('NodeIKernelProfileLikeService/GetTest','NodeIKernelMsgListener/onAddSendMsg',Mode,(...args:any[])=>{ console.log(args) });

View File

@@ -1,145 +1,145 @@
import { logError, logDebug } from "@/common/utils/log";
type group_id = number;
type user_id = number;
class cacheNode<T> {
value: T;
groupId: group_id;
userId: user_id;
prev: cacheNode<T> | null;
next: cacheNode<T> | null;
timestamp: number;
constructor(groupId: group_id, userId: user_id, value: T) {
this.groupId = groupId;
this.userId = userId;
this.value = value;
this.prev = null;
this.next = null;
this.timestamp = Date.now();
}
}
type cache<T> = { [key: group_id]: { [key: user_id]: cacheNode<T> } };
class LRU<T> {
private maxAge: number;
private maxSize: number;
private currentSize: number;
private cache: cache<T>;
private head: cacheNode<T> | null = null;
private tail: cacheNode<T> | null = null;
private onFuncs: ((node: cacheNode<T>) => void)[] = [];
constructor(maxAge: number = 2e4, maxSize: number = 5e3) {
this.maxAge = maxAge;
this.maxSize = maxSize;
this.cache = Object.create(null);
this.currentSize = 0;
if (maxSize == 0) return;
setInterval(() => this.removeExpired(), this.maxAge);
}
// 移除LRU节点
private removeLRUNode(node: cacheNode<T>) {
logDebug(
"removeLRUNode",
node.groupId,
node.userId,
node.value,
this.currentSize
);
node.prev = node.next = null;
delete this.cache[node.groupId][node.userId];
this.removeNode(node);
this.onFuncs.forEach((func) => func(node));
this.currentSize--;
}
public on(func: (node: cacheNode<T>) => void) {
this.onFuncs.push(func);
}
private removeExpired() {
const now = Date.now();
let current = this.tail;
const nodesToRemove: cacheNode<T>[] = [];
let removedCount = 0;
// 收集需要删除的节点
while (current && now - current.timestamp > this.maxAge) {
nodesToRemove.push(current);
current = current.prev;
removedCount++;
if (removedCount >= 100) break;
}
// 更新链表指向
if (nodesToRemove.length > 0) {
const newTail = nodesToRemove[nodesToRemove.length - 1].prev;
if (newTail) {
newTail.next = null;
} else {
this.head = null;
}
this.tail = newTail;
}
nodesToRemove.forEach((node) => {
node.prev = node.next = null;
delete this.cache[node.groupId][node.userId];
this.currentSize--;
this.onFuncs.forEach((func) => func(node));
});
}
private addNode(node: cacheNode<T>) {
node.next = this.head;
if (this.head) this.head.prev = node;
if (!this.tail) this.tail = node;
this.head = node;
}
private removeNode(node: cacheNode<T>) {
if (node.prev) node.prev.next = node.next;
if (node.next) node.next.prev = node.prev;
if (node === this.head) this.head = node.next;
if (node === this.tail) this.tail = node.prev;
}
private moveToHead(node: cacheNode<T>) {
if (this.head === node) return;
this.removeNode(node);
this.addNode(node);
node.prev = null;
}
public set(groupId: group_id, userId: user_id, value: T) {
if (!this.cache[groupId]) {
this.cache[groupId] = Object.create(null);
}
const groupObject = this.cache[groupId];
if (groupObject[userId]) {
const node = groupObject[userId];
node.value = value;
node.timestamp = Date.now();
this.moveToHead(node);
} else {
const node = new cacheNode(groupId, userId, value);
groupObject[userId] = node;
this.currentSize++;
this.addNode(node);
if (this.currentSize > this.maxSize) {
const tail = this.tail!;
this.removeLRUNode(tail);
}
}
}
}
export default LRU;
import { logError, logDebug } from '@/common/utils/log';
type group_id = number;
type user_id = number;
class cacheNode<T> {
value: T;
groupId: group_id;
userId: user_id;
prev: cacheNode<T> | null;
next: cacheNode<T> | null;
timestamp: number;
constructor(groupId: group_id, userId: user_id, value: T) {
this.groupId = groupId;
this.userId = userId;
this.value = value;
this.prev = null;
this.next = null;
this.timestamp = Date.now();
}
}
type cache<T> = { [key: group_id]: { [key: user_id]: cacheNode<T> } };
class LRU<T> {
private maxAge: number;
private maxSize: number;
private currentSize: number;
private cache: cache<T>;
private head: cacheNode<T> | null = null;
private tail: cacheNode<T> | null = null;
private onFuncs: ((node: cacheNode<T>) => void)[] = [];
constructor(maxAge: number = 2e4, maxSize: number = 5e3) {
this.maxAge = maxAge;
this.maxSize = maxSize;
this.cache = Object.create(null);
this.currentSize = 0;
if (maxSize == 0) return;
setInterval(() => this.removeExpired(), this.maxAge);
}
// 移除LRU节点
private removeLRUNode(node: cacheNode<T>) {
logDebug(
'removeLRUNode',
node.groupId,
node.userId,
node.value,
this.currentSize
);
node.prev = node.next = null;
delete this.cache[node.groupId][node.userId];
this.removeNode(node);
this.onFuncs.forEach((func) => func(node));
this.currentSize--;
}
public on(func: (node: cacheNode<T>) => void) {
this.onFuncs.push(func);
}
private removeExpired() {
const now = Date.now();
let current = this.tail;
const nodesToRemove: cacheNode<T>[] = [];
let removedCount = 0;
// 收集需要删除的节点
while (current && now - current.timestamp > this.maxAge) {
nodesToRemove.push(current);
current = current.prev;
removedCount++;
if (removedCount >= 100) break;
}
// 更新链表指向
if (nodesToRemove.length > 0) {
const newTail = nodesToRemove[nodesToRemove.length - 1].prev;
if (newTail) {
newTail.next = null;
} else {
this.head = null;
}
this.tail = newTail;
}
nodesToRemove.forEach((node) => {
node.prev = node.next = null;
delete this.cache[node.groupId][node.userId];
this.currentSize--;
this.onFuncs.forEach((func) => func(node));
});
}
private addNode(node: cacheNode<T>) {
node.next = this.head;
if (this.head) this.head.prev = node;
if (!this.tail) this.tail = node;
this.head = node;
}
private removeNode(node: cacheNode<T>) {
if (node.prev) node.prev.next = node.next;
if (node.next) node.next.prev = node.prev;
if (node === this.head) this.head = node.next;
if (node === this.tail) this.tail = node.prev;
}
private moveToHead(node: cacheNode<T>) {
if (this.head === node) return;
this.removeNode(node);
this.addNode(node);
node.prev = null;
}
public set(groupId: group_id, userId: user_id, value: T) {
if (!this.cache[groupId]) {
this.cache[groupId] = Object.create(null);
}
const groupObject = this.cache[groupId];
if (groupObject[userId]) {
const node = groupObject[userId];
node.value = value;
node.timestamp = Date.now();
this.moveToHead(node);
} else {
const node = new cacheNode(groupId, userId, value);
groupObject[userId] = node;
this.currentSize++;
this.addNode(node);
if (this.currentSize > this.maxSize) {
const tail = this.tail!;
this.removeLRUNode(tail);
}
}
}
}
export default LRU;

View 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) {
let 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();

View File

@@ -2,6 +2,7 @@ import path from 'node:path';
import fs from 'node:fs';
import os from 'node:os';
import { systemPlatform } from '@/common/utils/system';
import { logError } from '@/common/utils/log';
export const exePath = process.execPath;
@@ -49,7 +50,7 @@ if (fs.existsSync(configVersionInfoPath)) {
const _ =JSON.parse(fs.readFileSync(configVersionInfoPath).toString());
_qqVersionConfigInfo = Object.assign(_qqVersionConfigInfo, _);
} catch (e) {
console.error('Load QQ version config info failed, Use default version', e);
logError('Load QQ version config info failed, Use default version', e);
}
}
@@ -64,7 +65,7 @@ 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
let _appid: string = '537216417'; // 默认为 Windows 平台的 appid
if (systemPlatform === 'linux') {
_appid = '537213827';
}

View File

@@ -24,7 +24,7 @@ export async function encodeSilk(filePath: string) {
const fileHeader = buffer.toString('hex', 0, bytesToRead);
return fileHeader;
} catch (err) {
console.error('读取文件错误:', err);
logError('读取文件错误:', err);
return;
}
}

View File

@@ -4,7 +4,6 @@ import fs from 'fs';
import { dirname } from 'node:path';
import { fileURLToPath } from 'node:url';
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
export function getModuleWithArchName(moduleName: string) {

View File

@@ -1,509 +1,449 @@
import { ElementType, FileElement, PicElement, PttElement, RawMessage, VideoElement } from '../../core/src/entities';
import sqlite3 from 'sqlite3';
import { log, logDebug, logError } from '@/common/utils/log';
import { NTQQMsgApi } from '@/core';
import LRU from "@/common/utils/LRUCache";
export interface IRember {
last_sent_time: number;
join_time: number;
user_id: number;
}
type DBMsg = {
id: number,
shortId: number,
longId: string,
seq: number,
peerUid: string,
chatType: number,
}
type DBFile = {
name: string; // 文件名
path: string;
url: string;
size: number;
uuid: string;
msgId: string;
elementId: string;
element: PicElement | VideoElement | FileElement | PttElement;
elementType: ElementType.PIC | ElementType.VIDEO | ElementType.FILE | ElementType.PTT;
}
class DBUtilBase {
protected db: sqlite3.Database | undefined;
async init(dbPath: string) {
if (this.db) {
return;
}
return new Promise<void>((resolve, reject) => {
this.db = new sqlite3.Database(dbPath, sqlite3.OPEN_READWRITE | sqlite3.OPEN_CREATE, (err) => {
if (err) {
logError('Could not connect to database', err);
reject(err);
return;
}
this.createTable();
resolve();
});
});
}
protected createTable() {
throw new Error('Method not implemented.');
}
close() {
this.db?.close();
}
}
class DBUtil extends DBUtilBase {
private msgCache: Map<string | number, RawMessage> = new Map<string | number, RawMessage>();
private globalMsgShortId = -2147483640;
private groupIds: number[] = [];
private LURCache = new LRU<number>();
private LastSentCache = new (class {
private cache: { gid: number; uid: number }[] = [];
private maxSize: number;
constructor(maxSize: number = 5000) {
this.maxSize = maxSize;
}
get(gid: number, uid: number): boolean {
const exists = this.cache.some(
(entry) => entry.gid === gid && entry.uid === uid
);
if (!exists) {
this.cache.push({ gid, uid });
if (this.cache.length > this.maxSize) {
this.cache.shift();
}
}
return exists;
}
})();
constructor() {
super();
const interval = 1000 * 60 * 10; // 10分钟清理一次缓存
setInterval(() => {
logDebug('清理消息缓存');
this.msgCache.forEach((msg, key) => {
if ((Date.now() - parseInt(msg.msgTime) * 1000) > interval) {
this.msgCache.delete(key);
}
});
}, interval);
}
async init(dbPath: string) {
await super.init(dbPath);
this.globalMsgShortId = await this.getCurrentMaxShortId();
// 初始化群缓存列表
this.db!.serialize(() => {
const sql = `SELECT * FROM sqlite_master WHERE type='table'`;
this.db!.all(sql, [], (err, rows: { name: string }[]) => {
if (err) return logError(err);
rows.forEach((row) => this.groupIds.push(parseInt(row.name)));
//logDebug(`已加载 ${groupIds.length} 个群`);
});
});
this.LURCache.on(async (node) => {
const { value: time, groupId, userId } = node;
logDebug("插入发言时间", userId, groupId);
await this.createGroupInfoTimeTableIfNotExist(groupId);
const method = await this.getDataSetMethod(groupId, userId);
logDebug("插入发言时间方法判断", userId, groupId, method);
const sql =
method == "update"
? `UPDATE "${groupId}" SET last_sent_time = ? WHERE user_id = ?`
: `INSERT INTO "${groupId}" (last_sent_time, user_id) VALUES (?, ?)`;
this.db!.all(sql, [time, userId], (err) => {
if (err) {
return logError("插入/更新发言时间失败", userId, groupId);
}
logDebug("插入/更新发言时间成功", userId, groupId);
});
});
}
async getDataSetMethod(groupId: number, userId: number) {
// 缓存记录
if (this.LastSentCache.get(groupId, userId)) {
logDebug("缓存命中", userId, groupId);
return "update";
}
// 数据库判断
return new Promise<"insert" | "update">((resolve, reject) => {
this.db!.all(
`SELECT * FROM "${groupId}" WHERE user_id = ?`,
[userId],
(err, rows) => {
if (err) {
logError("查询发言时间存在失败", userId, groupId, err);
return logError("插入发言时间失败", userId, groupId, err);
}
if (rows.length === 0) {
logDebug("查询发言时间不存在", userId, groupId);
return resolve("insert");
}
logDebug("查询发言时间存在", userId, groupId);
resolve("update");
}
);
});
}
async createGroupInfoTimeTableIfNotExist(groupId: number) {
const createTableSQL = (groupId: number) =>
`CREATE TABLE IF NOT EXISTS "${groupId}" (
user_id INTEGER,
last_sent_time INTEGER,
join_time INTEGER,
PRIMARY KEY (user_id)
);`;
if (this.groupIds.includes(groupId)) {
return;
}
return new Promise((resolve, reject) => {
const sql = createTableSQL(groupId);
this.db!.all(sql, (err) => {
if (err) {
reject(err);
return;
}
this.groupIds.push(groupId);
resolve(true);
});
});
}
protected createTable() {
// 消息记录
const createTableSQL = `
CREATE TABLE IF NOT EXISTS msgs (
id INTEGER PRIMARY KEY AUTOINCREMENT,
shortId INTEGER NOT NULL UNIQUE,
longId TEXT NOT NULL UNIQUE,
seq INTEGER NOT NULL,
peerUid TEXT NOT NULL,
chatType INTEGER NOT NULL
)`;
this.db!.run(createTableSQL, function (err) {
if (err) {
logError('Could not create table msgs', err.stack);
}
});
// 文件缓存
const createFileTableSQL = `
CREATE TABLE IF NOT EXISTS files (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
path TEXT NOT NULL,
url TEXT,
size INTEGER NOT NULL,
uuid TEXT,
elementType INTEGER,
element TEXT NOT NULL,
elementId TEXT NOT NULL,
msgId TEXT NOT NULL
)`;
this.db!.run(createFileTableSQL, function (err) {
if (err) {
logError('Could not create table files', err);
}
});
// 接收到的临时会话消息uid
const createTempUinTableSQL = `
CREATE TABLE IF NOT EXISTS temp_uins (
id INTEGER PRIMARY KEY AUTOINCREMENT,
uid TEXT,
uin TEXT
)`;
this.db!.run(createTempUinTableSQL, function (err) {
if (err) {
logError('Could not create table temp_uins', err);
}
});
}
private async getCurrentMaxShortId() {
return new Promise<number>((resolve, reject) => {
this.db!.get('SELECT MAX(shortId) as maxId FROM msgs', (err, row: { maxId: number }) => {
if (err) {
logDebug('Could not get max short id, Use default -2147483640', err);
return resolve(-2147483640);
}
logDebug('数据库中消息最大短id', row?.maxId);
resolve(row?.maxId ?? -2147483640);
});
});
}
private async getMsg(query: string, params: any[]) {
const stmt = this.db!.prepare(query);
return new Promise<RawMessage | null>((resolve, reject) => {
stmt.get(...params, (err: any, row: DBMsg) => {
// log("getMsg", row, err);
if (err) {
logError('Could not get msg', err, query, params);
return resolve(null);
}
if (!row) {
// logDebug('不存在数据库中的消息,不进行处理', query, params);
resolve(null);
return;
}
const msgId = row.longId;
NTQQMsgApi.getMsgsByMsgId({ peerUid: row.peerUid, chatType: row.chatType }, [msgId]).then(res => {
const msg = res.msgList[0];
if (!msg) {
resolve(null);
return;
}
msg.id = row.shortId;
resolve(msg);
}).catch(e => {
resolve(null);
});
});
});
}
async getMsgByShortId(shortId: number): Promise<RawMessage | null> {
if (this.msgCache.has(shortId)) {
return this.msgCache.get(shortId)!;
}
const getStmt = 'SELECT * FROM msgs WHERE shortId = ?';
return this.getMsg(getStmt, [shortId]);
}
async getMsgByLongId(longId: string): Promise<RawMessage | null> {
if (this.msgCache.has(longId)) {
return this.msgCache.get(longId)!;
}
return this.getMsg('SELECT * FROM msgs WHERE longId = ?', [longId]);
}
async getMsgBySeq(peerUid: string, seq: string): Promise<RawMessage | null> {
const stmt = 'SELECT * FROM msgs WHERE peerUid = ? AND seq = ?';
return this.getMsg(stmt, [peerUid, seq]);
}
async addMsg(msg: RawMessage, update = true): Promise<number> {
const existMsg = await this.getMsgByLongId(msg.msgId);
if (existMsg) {
// logDebug('消息已存在,更新数据库', msg.msgId);
if (update) this.updateMsg(msg).then();
return existMsg.id!;
}
const stmt = this.db!.prepare('INSERT INTO msgs (shortId, longId, seq, peerUid, chatType) VALUES (?, ?, ?, ?, ?)');
// const runAsync = promisify(stmt.run.bind(stmt));
const shortId = ++this.globalMsgShortId;
msg.id = shortId;
//logDebug(`记录消息到数据库, 消息长id: ${msg.msgId}, 短id: ${msg.id}`);
this.msgCache.set(shortId, msg);
this.msgCache.set(msg.msgId, msg);
stmt.run(this.globalMsgShortId, msg.msgId, msg.msgSeq.toString(), msg.peerUid, msg.chatType, (err: any) => {
if (err) {
if (err.errno === 19) {
this.getMsgByLongId(msg.msgId).then((msg: RawMessage | null) => {
if (msg) {
this.msgCache.set(shortId, msg);
this.msgCache.set(msg.msgId, msg);
// logDebug('获取消息短id成功', msg.id);
} else {
logError('db could not get msg by long id', err);
}
}).catch(e => logError('db getMsgByLongId error', e));
} else {
logError('db could not add msg', err);
}
}
});
return shortId;
}
async updateMsg(msg: RawMessage) {
const existMsg = this.msgCache.get(msg.msgId);
if (existMsg) {
Object.assign(existMsg, msg);
}
//logDebug(`更新消息, shortId:${msg.id}, seq: ${msg.msgSeq}, msgId: ${msg.msgId}`);
const stmt = this.db!.prepare('UPDATE msgs SET seq=? WHERE longId=?');
stmt.run(msg.msgSeq, msg.msgId, (err: any) => {
if (err) {
logError('updateMsg db error', err);
}
});
}
async addFileCache(file: DBFile) {
const stmt = this.db!.prepare('INSERT INTO files (name, path, url, size, uuid, elementType ,element, elementId, msgId) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)');
return new Promise((resolve, reject) => {
stmt.run(file.name, file.path, file.url, file.size, file.uuid,
file.elementType,
JSON.stringify(file.element),
file.elementId,
file.msgId,
function (err: any) {
if (err) {
logError('db could not add file', err);
reject(err);
}
resolve(null);
});
});
}
private async getFileCache(query: string, params: any[]) {
const stmt = this.db!.prepare(query);
return new Promise<DBFile | null>((resolve, reject) => {
stmt.get(...params, (err: any, row: DBFile & { element: string }) => {
if (err) {
logError('db could not get file cache', err);
reject(err);
}
if (row) {
row.element = JSON.parse(row.element);
}
resolve(row);
});
});
}
async getFileCacheByName(name: string): Promise<DBFile | null> {
return this.getFileCache('SELECT * FROM files WHERE name = ?', [name]);
}
async getFileCacheByUuid(uuid: string): Promise<DBFile | null> {
return this.getFileCache('SELECT * FROM files WHERE uuid = ?', [uuid]);
}
// todo: 是否所有的文件都有uuid语音消息有没有uuid
async updateFileCache(file: DBFile) {
const stmt = this.db!.prepare('UPDATE files SET path = ?, url = ? WHERE uuid = ?');
return new Promise((resolve, reject) => {
stmt.run(file.path, file.url, file.uuid, function (err: any) {
if (err) {
logError('db could not update file cache', err);
reject(err);
}
resolve(null);
});
});
}
// 被动收到的临时会话消息uin->uid
async getReceivedTempUinMap() {
const stmt = 'SELECT * FROM temp_uins';
return new Promise<Record<string, string>>((resolve, reject) => {
this.db!.all(stmt, (err, rows: { uin: string, uid: string }[]) => {
if (err) {
logError('db could not get temp uin map', err);
reject(err);
}
const map: Record<string, string> = {};
rows.forEach(row => {
map[row.uin] = row.uid;
});
resolve(map);
});
});
}
// 通过uin获取临时会话消息uid
async getUidByTempUin(uid: string) {
const stmt = 'SELECT * FROM temp_uins WHERE uin = ?';
return new Promise<string>((resolve, reject) => {
this.db!.get(stmt, [uid], (err, row: { uin: string, uid: string }) => {
if (err) {
logError('db could not get temp uin map', err);
reject(err);
}
resolve(row?.uid);
});
});
}
async addTempUin(uin: string, uid: string) {
const existUid = await this.getUidByTempUin(uin);
if (!existUid) {
const stmt = this.db!.prepare('INSERT INTO temp_uins (uin, uid) VALUES (?, ?)');
return new Promise((resolve, reject) => {
stmt.run(uin, uid, function (err: any) {
if (err) {
logError('db could not add temp uin', err);
reject(err);
}
resolve(null);
});
});
}
}
async getLastSentTimeAndJoinTime(
groupId: number
): Promise<IRember[]> {
logDebug("读取发言时间", groupId);
return new Promise<IRember[]>((resolve, reject) => {
this.db!.all(`SELECT * FROM "${groupId}" `, (err, rows: IRember[]) => {
if (err) {
logError("查询发言时间失败", groupId);
return resolve([]);
}
logDebug("查询发言时间成功", groupId, rows);
resolve(rows);
});
});
}
insertLastSentTime(
groupId: number,
userId: number,
time: number
) {
this.LURCache.set(groupId, userId, time)
}
async insertJoinTime(
groupId: number,
userId: number,
time: number
) {
await this.createGroupInfoTimeTableIfNotExist(groupId);
this.db!.all(
`INSERT OR REPLACE INTO "${groupId}" (user_id, last_sent_time, join_time) VALUES (?,?,?)`,
[userId, time, time],
(err) => {
if (err)
logError(err),
Promise.reject(),
console.log("插入入群时间失败", userId, groupId);
}
);
}
}
export const dbUtil = new DBUtil();
import { ElementType, FileElement, PicElement, PttElement, RawMessage, VideoElement } from '../../core/src/entities';
import sqlite3 from 'sqlite3';
import { log, logDebug, logError } from '@/common/utils/log';
import { NTQQMsgApi } from '@/core';
import LRU from '@/common/utils/LRUCache';
export interface IRember {
last_sent_time: number;
join_time: number;
user_id: number;
}
type DBMsg = {
id: number,
shortId: number,
longId: string,
seq: number,
peerUid: string,
chatType: number,
}
type DBFile = {
name: string; // 文件名
path: string;
url: string;
size: number;
uuid: string;
msgId: string;
elementId: string;
element: PicElement | VideoElement | FileElement | PttElement;
elementType: ElementType.PIC | ElementType.VIDEO | ElementType.FILE | ElementType.PTT;
}
class DBUtilBase {
protected db: sqlite3.Database | undefined;
async init(dbPath: string) {
if (this.db) {
return;
}
return new Promise<void>((resolve, reject) => {
this.db = new sqlite3.Database(dbPath, sqlite3.OPEN_READWRITE | sqlite3.OPEN_CREATE, (err) => {
if (err) {
logError('Could not connect to database', err);
reject(err);
return;
}
this.createTable();
resolve();
});
});
}
protected createTable() {
throw new Error('Method not implemented.');
}
close() {
this.db?.close();
}
}
class DBUtil extends DBUtilBase {
private msgCache: Map<string | number, RawMessage> = new Map<string | number, RawMessage>();
private globalMsgShortId = -2147483640;
private groupIds: number[] = [];
private LURCache = new LRU<number>();
private LastSentCache = new (class {
private cache: { gid: number; uid: number }[] = [];
private maxSize: number;
constructor(maxSize: number = 5000) {
this.maxSize = maxSize;
}
get(gid: number, uid: number): boolean {
const exists = this.cache.some(
(entry) => entry.gid === gid && entry.uid === uid
);
if (!exists) {
this.cache.push({ gid, uid });
if (this.cache.length > this.maxSize) {
this.cache.shift();
}
}
return exists;
}
})();
constructor() {
super();
const interval = 1000 * 60 * 10; // 10分钟清理一次缓存
setInterval(() => {
logDebug('清理消息缓存');
this.msgCache.forEach((msg, key) => {
if ((Date.now() - parseInt(msg.msgTime) * 1000) > interval) {
this.msgCache.delete(key);
}
});
}, interval);
}
async init(dbPath: string) {
await super.init(dbPath);
this.globalMsgShortId = await this.getCurrentMaxShortId();
// 初始化群缓存列表
this.db!.serialize(() => {
const sql = 'SELECT * FROM sqlite_master WHERE type=\'table\'';
this.db!.all(sql, [], (err, rows: { name: string }[]) => {
if (err) return logError(err);
rows.forEach((row) => this.groupIds.push(parseInt(row.name)));
//logDebug(`已加载 ${groupIds.length} 个群`);
});
});
this.LURCache.on(async (node) => {
const { value: time, groupId, userId } = node;
logDebug('插入发言时间', userId, groupId);
await this.createGroupInfoTimeTableIfNotExist(groupId);
const method = await this.getDataSetMethod(groupId, userId);
logDebug('插入发言时间方法判断', userId, groupId, method);
const sql =
method == 'update'
? `UPDATE "${groupId}" SET last_sent_time = ? WHERE user_id = ?`
: `INSERT INTO "${groupId}" (last_sent_time, user_id) VALUES (?, ?)`;
this.db!.all(sql, [time, userId], (err) => {
if (err) {
return logError('插入/更新发言时间失败', userId, groupId);
}
logDebug('插入/更新发言时间成功', userId, groupId);
});
});
}
async getDataSetMethod(groupId: number, userId: number) {
// 缓存记录
if (this.LastSentCache.get(groupId, userId)) {
logDebug('缓存命中', userId, groupId);
return 'update';
}
// 数据库判断
return new Promise<'insert' | 'update'>((resolve, reject) => {
this.db!.all(
`SELECT * FROM "${groupId}" WHERE user_id = ?`,
[userId],
(err, rows) => {
if (err) {
logError('查询发言时间存在失败', userId, groupId, err);
return logError('插入发言时间失败', userId, groupId, err);
}
if (rows.length === 0) {
logDebug('查询发言时间不存在', userId, groupId);
return resolve('insert');
}
logDebug('查询发言时间存在', userId, groupId);
resolve('update');
}
);
});
}
async createGroupInfoTimeTableIfNotExist(groupId: number) {
const createTableSQL = (groupId: number) =>
`CREATE TABLE IF NOT EXISTS "${groupId}" (
user_id INTEGER,
last_sent_time INTEGER,
join_time INTEGER,
PRIMARY KEY (user_id)
);`;
if (this.groupIds.includes(groupId)) {
return;
}
return new Promise((resolve, reject) => {
const sql = createTableSQL(groupId);
this.db!.all(sql, (err) => {
if (err) {
reject(err);
return;
}
this.groupIds.push(groupId);
resolve(true);
});
});
}
protected createTable() {
// 消息记录
const createTableSQL = `
CREATE TABLE IF NOT EXISTS msgs (
id INTEGER PRIMARY KEY AUTOINCREMENT,
shortId INTEGER NOT NULL UNIQUE,
longId TEXT NOT NULL UNIQUE,
seq INTEGER NOT NULL,
peerUid TEXT NOT NULL,
chatType INTEGER NOT NULL
)`;
this.db!.run(createTableSQL, function (err) {
if (err) {
logError('Could not create table msgs', err.stack);
}
});
// 文件缓存
const createFileTableSQL = `
CREATE TABLE IF NOT EXISTS files (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
path TEXT NOT NULL,
url TEXT,
size INTEGER NOT NULL,
uuid TEXT,
elementType INTEGER,
element TEXT NOT NULL,
elementId TEXT NOT NULL,
msgId TEXT NOT NULL
)`;
this.db!.run(createFileTableSQL, function (err) {
if (err) {
logError('Could not create table files', err);
}
});
}
private async getCurrentMaxShortId() {
return new Promise<number>((resolve, reject) => {
this.db!.get('SELECT MAX(shortId) as maxId FROM msgs', (err, row: { maxId: number }) => {
if (err) {
logDebug('Could not get max short id, Use default -2147483640', err);
return resolve(-2147483640);
}
logDebug('数据库中消息最大短id', row?.maxId);
resolve(row?.maxId ?? -2147483640);
});
});
}
private async getMsg(query: string, params: any[]) {
const stmt = this.db!.prepare(query);
return new Promise<RawMessage | null>((resolve, reject) => {
stmt.get(...params, (err: any, row: DBMsg) => {
// log("getMsg", row, err);
if (err) {
logError('Could not get msg', err, query, params);
return resolve(null);
}
if (!row) {
// logDebug('不存在数据库中的消息,不进行处理', query, params);
resolve(null);
return;
}
const msgId = row.longId;
NTQQMsgApi.getMsgsByMsgId({ peerUid: row.peerUid, chatType: row.chatType }, [msgId]).then(res => {
const msg = res.msgList[0];
if (!msg) {
resolve(null);
return;
}
msg.id = row.shortId;
resolve(msg);
}).catch(e => {
resolve(null);
});
});
});
}
async getMsgByShortId(shortId: number): Promise<RawMessage | null> {
if (this.msgCache.has(shortId)) {
return this.msgCache.get(shortId)!;
}
const getStmt = 'SELECT * FROM msgs WHERE shortId = ?';
return this.getMsg(getStmt, [shortId]);
}
async getMsgByLongId(longId: string): Promise<RawMessage | null> {
if (this.msgCache.has(longId)) {
return this.msgCache.get(longId)!;
}
return this.getMsg('SELECT * FROM msgs WHERE longId = ?', [longId]);
}
async getMsgBySeq(peerUid: string, seq: string): Promise<RawMessage | null> {
const stmt = 'SELECT * FROM msgs WHERE peerUid = ? AND seq = ?';
return this.getMsg(stmt, [peerUid, seq]);
}
async addMsg(msg: RawMessage, update = true): Promise<number> {
const existMsg = await this.getMsgByLongId(msg.msgId);
if (existMsg) {
// logDebug('消息已存在,更新数据库', msg.msgId);
if (update) this.updateMsg(msg).then();
return existMsg.id!;
}
const stmt = this.db!.prepare('INSERT INTO msgs (shortId, longId, seq, peerUid, chatType) VALUES (?, ?, ?, ?, ?)');
// const runAsync = promisify(stmt.run.bind(stmt));
const shortId = ++this.globalMsgShortId;
msg.id = shortId;
//logDebug(`记录消息到数据库, 消息长id: ${msg.msgId}, 短id: ${msg.id}`);
this.msgCache.set(shortId, msg);
this.msgCache.set(msg.msgId, msg);
stmt.run(this.globalMsgShortId, msg.msgId, msg.msgSeq.toString(), msg.peerUid, msg.chatType, (err: any) => {
if (err) {
if (err.errno === 19) {
this.getMsgByLongId(msg.msgId).then((msg: RawMessage | null) => {
if (msg) {
this.msgCache.set(shortId, msg);
this.msgCache.set(msg.msgId, msg);
// logDebug('获取消息短id成功', msg.id);
} else {
logError('db could not get msg by long id', err);
}
}).catch(e => logError('db getMsgByLongId error', e));
} else {
logError('db could not add msg', err);
}
}
});
return shortId;
}
async updateMsg(msg: RawMessage) {
const existMsg = this.msgCache.get(msg.msgId);
if (existMsg) {
Object.assign(existMsg, msg);
}
//logDebug(`更新消息, shortId:${msg.id}, seq: ${msg.msgSeq}, msgId: ${msg.msgId}`);
const stmt = this.db!.prepare('UPDATE msgs SET seq=? WHERE longId=?');
stmt.run(msg.msgSeq, msg.msgId, (err: any) => {
if (err) {
logError('updateMsg db error', err);
}
});
}
async addFileCache(file: DBFile) {
const stmt = this.db!.prepare('INSERT INTO files (name, path, url, size, uuid, elementType ,element, elementId, msgId) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)');
return new Promise((resolve, reject) => {
stmt.run(file.name, file.path, file.url, file.size, file.uuid,
file.elementType,
JSON.stringify(file.element),
file.elementId,
file.msgId,
function (err: any) {
if (err) {
logError('db could not add file', err);
reject(err);
}
resolve(null);
});
});
}
private async getFileCache(query: string, params: any[]) {
const stmt = this.db!.prepare(query);
return new Promise<DBFile | null>((resolve, reject) => {
stmt.get(...params, (err: any, row: DBFile & { element: string }) => {
if (err) {
logError('db could not get file cache', err);
reject(err);
}
if (row) {
row.element = JSON.parse(row.element);
}
resolve(row);
});
});
}
async getFileCacheByName(name: string): Promise<DBFile | null> {
return this.getFileCache('SELECT * FROM files WHERE name = ?', [name]);
}
async getFileCacheByUuid(uuid: string): Promise<DBFile | null> {
return this.getFileCache('SELECT * FROM files WHERE uuid = ?', [uuid]);
}
// todo: 是否所有的文件都有uuid语音消息有没有uuid
async updateFileCache(file: DBFile) {
const stmt = this.db!.prepare('UPDATE files SET path = ?, url = ? WHERE uuid = ?');
return new Promise((resolve, reject) => {
stmt.run(file.path, file.url, file.uuid, function (err: any) {
if (err) {
logError('db could not update file cache', err);
reject(err);
}
resolve(null);
});
});
}
async getLastSentTimeAndJoinTime(
groupId: number
): Promise<IRember[]> {
logDebug('读取发言时间', groupId);
return new Promise<IRember[]>((resolve, reject) => {
this.db!.all(`SELECT * FROM "${groupId}" `, (err, rows: IRember[]) => {
if (err) {
logError('查询发言时间失败', groupId);
return resolve([]);
}
logDebug('查询发言时间成功', groupId, rows);
resolve(rows);
});
});
}
insertLastSentTime(
groupId: number,
userId: number,
time: number
) {
this.LURCache.set(groupId, userId, time);
}
async insertJoinTime(
groupId: number,
userId: number,
time: number
) {
await this.createGroupInfoTimeTableIfNotExist(groupId);
this.db!.all(
`INSERT OR REPLACE INTO "${groupId}" (user_id, last_sent_time, join_time) VALUES (?,?,?)`,
[userId, time, time],
(err) => {
if (err)
logError(err),
Promise.reject(),
logError('插入入群时间失败', userId, groupId);
}
);
}
}
export const dbUtil = new DBUtil();

View File

@@ -3,7 +3,7 @@ import fsPromise from 'fs/promises';
import crypto from 'crypto';
import util from 'util';
import path from 'node:path';
import { log } from './log';
import { log, logError } from './log';
import { dbUtil } from '@/common/utils/db';
import * as fileType from 'file-type';
import { v4 as uuidv4 } from 'uuid';
@@ -262,12 +262,12 @@ export async function copyFolder(sourcePath: string, destPath: string) {
try {
await fsPromise.copyFile(srcPath, dstPath);
} catch (error) {
console.error(`无法复制文件 '${srcPath}' 到 '${dstPath}': ${error}`);
logError(`无法复制文件 '${srcPath}' 到 '${dstPath}': ${error}`);
// 这里可以决定是否要继续复制其他文件
}
}
}
} catch (error) {
console.error('复制文件夹时出错:', error);
logError('复制文件夹时出错:', error);
}
}

View File

@@ -4,7 +4,7 @@ import path from 'node:path';
import { SelfInfo } from '@/core';
import { dirname } from 'node:path';
import { fileURLToPath } from 'node:url';
import chalk from 'chalk';
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
@@ -42,14 +42,14 @@ const logConfig: Configuration = {
maxLoogSize: 10485760, // 日志文件的最大大小单位字节这里设置为10MB
layout: {
type: 'pattern',
pattern: '%d{yyyy-MM-dd hh:mm:ss} [%p] - %m'
pattern: '%d{yyyy-MM-dd hh:mm:ss} [%p] %X{userInfo} | %m'
}
},
ConsoleAppender: { // 输出到控制台的appender
type: 'console',
layout: {
type: 'pattern',
pattern: '%d{yyyy-MM-dd hh:mm:ss} [%p] - %m'
pattern: `%d{yyyy-MM-dd hh:mm:ss} [%[%p%]] ${chalk.magenta('%X{userInfo}')} | %m`
}
}
},
@@ -61,7 +61,9 @@ const logConfig: Configuration = {
};
log4js.configure(logConfig);
const loggerConsole = log4js.getLogger('console');
const loggerFile = log4js.getLogger('file');
const loggerDefault = log4js.getLogger('default');
export function setLogLevel(fileLogLevel: LogLevel, consoleLogLevel: LogLevel) {
logConfig.categories.file.level = fileLogLevel;
@@ -70,12 +72,12 @@ export function setLogLevel(fileLogLevel: LogLevel, consoleLogLevel: LogLevel) {
}
export function setLogSelfInfo(selfInfo: SelfInfo) {
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-expect-error
logConfig.appenders.FileAppender.layout.pattern = logConfig.appenders.ConsoleAppender.layout.pattern =
`%d{yyyy-MM-dd hh:mm:ss} [%p] ${selfInfo.nick}(${selfInfo.uin}) %m`;
log4js.configure(logConfig);
const userInfo = `${selfInfo.nick}(${selfInfo.uin})`;
loggerConsole.addContext('userInfo', userInfo);
loggerFile.addContext('userInfo', userInfo);
loggerDefault.addContext('userInfo', userInfo);
}
setLogSelfInfo({ nick: '', uin: '', uid: '' });
let fileLogEnabled = true;
let consoleLogEnabled = true;
@@ -86,7 +88,7 @@ export function enableConsoleLog(enable: boolean) {
consoleLogEnabled = enable;
}
function formatMsg(msg: any[]){
function formatMsg(msg: any[]) {
let logMsg = '';
for (const msgItem of msg) {
// 判断是否是对象
@@ -97,15 +99,18 @@ function formatMsg(msg: any[]){
}
logMsg += msgItem + ' ';
}
return '\n' + logMsg + '\n';
return logMsg;
}
function _log(level: LogLevel, ...args: any[]){
if (consoleLogEnabled){
log4js.getLogger('console')[level](formatMsg(args));
// eslint-disable-next-line no-control-regex
const colorEscape = /\x1B[@-_][0-?]*[ -/]*[@-~]/g;
function _log(level: LogLevel, ...args: any[]) {
if (consoleLogEnabled) {
loggerConsole[level](formatMsg(args));
}
if (fileLogEnabled){
log4js.getLogger('file')[level](formatMsg(args));
if (fileLogEnabled) {
loggerFile[level](formatMsg(args).replace(colorEscape, ''));
}
}
@@ -121,3 +126,11 @@ export function logDebug(...args: any[]) {
export function logError(...args: any[]) {
_log(LogLevel.ERROR, ...args);
}
export function logWarn(...args: any[]) {
_log(LogLevel.WARN, ...args);
}
export function logFatal(...args: any[]) {
_log(LogLevel.FATAL, ...args);
}

View File

@@ -1,17 +1,74 @@
import os from 'node:os';
import path from 'node:path';
import { networkInterfaces } from 'os';
import { v4 as uuidv4 } from 'uuid';
// 缓解Win7设备兼容性问题
let osName: string;
// 设备ID
let machineId: Promise<string>;
try {
osName = os.hostname();
} catch (e) {
osName = 'NapCat'; // + crypto.randomUUID().substring(0, 4);
}
const invalidMacAddresses = new Set([
'00:00:00:00:00:00',
'ff:ff:ff:ff:ff:ff',
'ac:de:48:00:11:22'
]);
function validateMacAddress(candidate: string): boolean {
// eslint-disable-next-line no-useless-escape
const tempCandidate = candidate.replace(/\-/g, ':').toLowerCase();
return !invalidMacAddresses.has(tempCandidate);
}
export async function getMachineId(): Promise<string> {
if (!machineId) {
machineId = (async () => {
const id = await getMacMachineId();
return id || uuidv4(); // fallback, generate a UUID
})();
}
return machineId;
}
export function getMac(): string {
const ifaces = networkInterfaces();
for (const name in ifaces) {
const networkInterface = ifaces[name];
if (networkInterface) {
for (const { mac } of networkInterface) {
if (validateMacAddress(mac)) {
return mac;
}
}
}
}
throw new Error('Unable to retrieve mac address (unexpected format)');
}
async function getMacMachineId(): Promise<string | undefined> {
try {
const crypto = await import('crypto');
const macAddress = getMac();
return crypto.createHash('sha256').update(macAddress, 'utf8').digest('hex');
} catch (err) {
return undefined;
}
}
const homeDir = os.homedir();
export const systemPlatform = os.platform();
export const cpuArch = os.arch();
export const systemVersion = os.release();
export const hostname = osName;
const homeDir = os.homedir();
export const downloadsPath = path.join(homeDir, 'Downloads');
export const systemName = os.type();
export const systemName = os.type();

View File

@@ -14,7 +14,7 @@ export async function checkVersion(): Promise<string> {
try {
version = (await RequestUtil.HttpGetJson<{ version: string }>(url)).version;
} catch (e) {
logDebug("检测更新异常",e);
logDebug('检测更新异常',e);
}
if (version) {
resolve(version);

View File

@@ -24,7 +24,7 @@ export async function getVideoInfo(filePath: string) {
} else {
const videoStream = metadata.streams.find((s: { codec_type: string; }) => s.codec_type === 'video');
if (videoStream) {
console.log(`视频尺寸: ${videoStream.width}x${videoStream.height}`);
log(`视频尺寸: ${videoStream.width}x${videoStream.height}`);
} else {
return reject('未找到视频流信息。');
}

View File

@@ -1 +1 @@
function _0x5222(){var _0x3091f8=['6273aTfWba','9981447HMXcwA','2890585oSjsvJ','8TdYIWz','3243588DGNCtB','getGroupCode','43803705QezSUk','1200309ykLrjF','1770620oiFLFj','6070xVmufr','18IROTnB','4AICfZO'];_0x5222=function(){return _0x3091f8;};return _0x5222();}var _0x5fba51=_0x5d34;(function(_0x4bf11c,_0x14198d){var _0x2fd03f=_0x5d34,_0x4d6419=_0x4bf11c();while(!![]){try{var _0x4850c9=parseInt(_0x2fd03f(0xf8))/0x1+-parseInt(_0x2fd03f(0xed))/0x2+-parseInt(_0x2fd03f(0xf5))/0x3*(-parseInt(_0x2fd03f(0xf0))/0x4)+-parseInt(_0x2fd03f(0xf3))/0x5*(-parseInt(_0x2fd03f(0xef))/0x6)+-parseInt(_0x2fd03f(0xf2))/0x7*(-parseInt(_0x2fd03f(0xf4))/0x8)+-parseInt(_0x2fd03f(0xf1))/0x9*(-parseInt(_0x2fd03f(0xee))/0xa)+-parseInt(_0x2fd03f(0xf7))/0xb;if(_0x4850c9===_0x14198d)break;else _0x4d6419['push'](_0x4d6419['shift']());}catch(_0xba978e){_0x4d6419['push'](_0x4d6419['shift']());}}}(_0x5222,0xf380f));function _0x5d34(_0x5ef46e,_0x5e79b3){var _0x522282=_0x5222();return _0x5d34=function(_0x5d3489,_0x588abc){_0x5d3489=_0x5d3489-0xed;var _0x48f8f8=_0x522282[_0x5d3489];return _0x48f8f8;},_0x5d34(_0x5ef46e,_0x5e79b3);}export class DependsAdapter{['onMSFStatusChange'](_0x358442,_0x58882d){}['onMSFSsoError'](_0xfb5a9){}[_0x5fba51(0xf6)](_0x260bf6){}}
function _0x3c8f(_0x2ecaae,_0x2ceb4c){var _0x588542=_0x5885();return _0x3c8f=function(_0x3c8f3f,_0x2d929c){_0x3c8f3f=_0x3c8f3f-0x19a;var _0x414c8e=_0x588542[_0x3c8f3f];return _0x414c8e;},_0x3c8f(_0x2ecaae,_0x2ceb4c);}function _0x5885(){var _0x2a1712=['305850yFDSJe','59596muzjSp','1431282AwrmBO','1190cCqUWG','186LEPYUp','4JUUycs','79981tGNsYY','168KYSunN','168763AyGbhS','onMSFSsoError','12734696mYoCeZ','84591jjpZge','60vDiNGE','onMSFStatusChange','60XTBoAG'];_0x5885=function(){return _0x2a1712;};return _0x5885();}var _0x44d240=_0x3c8f;(function(_0x5d80a2,_0x55dfc3){var _0x1c6158=_0x3c8f,_0x4ccedd=_0x5d80a2();while(!![]){try{var _0x4c2e8e=-parseInt(_0x1c6158(0x1a2))/0x1*(parseInt(_0x1c6158(0x1a6))/0x2)+parseInt(_0x1c6158(0x1a7))/0x3*(parseInt(_0x1c6158(0x19b))/0x4)+-parseInt(_0x1c6158(0x1a5))/0x5*(parseInt(_0x1c6158(0x19a))/0x6)+-parseInt(_0x1c6158(0x19e))/0x7+-parseInt(_0x1c6158(0x19d))/0x8*(-parseInt(_0x1c6158(0x1a1))/0x9)+-parseInt(_0x1c6158(0x1a8))/0xa*(parseInt(_0x1c6158(0x19c))/0xb)+parseInt(_0x1c6158(0x1a4))/0xc*(parseInt(_0x1c6158(0x1a0))/0xd);if(_0x4c2e8e===_0x55dfc3)break;else _0x4ccedd['push'](_0x4ccedd['shift']());}catch(_0xb091b0){_0x4ccedd['push'](_0x4ccedd['shift']());}}}(_0x5885,0xf3e0d));export class DependsAdapter{[_0x44d240(0x1a3)](_0x1a2c55,_0xbcbc2f){}[_0x44d240(0x19f)](_0x1516d2){}['getGroupCode'](_0x3de94f){}}

View File

@@ -1 +1 @@
var _0x446bc4=_0x23d3;(function(_0x29f86c,_0x5c4b14){var _0x248c41=_0x23d3,_0x2d6705=_0x29f86c();while(!![]){try{var _0x492b46=-parseInt(_0x248c41(0x1e6))/0x1*(parseInt(_0x248c41(0x1f1))/0x2)+parseInt(_0x248c41(0x1ea))/0x3*(-parseInt(_0x248c41(0x1e5))/0x4)+parseInt(_0x248c41(0x1e7))/0x5*(-parseInt(_0x248c41(0x1e4))/0x6)+parseInt(_0x248c41(0x1ee))/0x7*(-parseInt(_0x248c41(0x1e8))/0x8)+-parseInt(_0x248c41(0x1ef))/0x9*(-parseInt(_0x248c41(0x1ec))/0xa)+parseInt(_0x248c41(0x1eb))/0xb+parseInt(_0x248c41(0x1ed))/0xc;if(_0x492b46===_0x5c4b14)break;else _0x2d6705['push'](_0x2d6705['shift']());}catch(_0x19c0ed){_0x2d6705['push'](_0x2d6705['shift']());}}}(_0x31c0,0x869c3));function _0x23d3(_0x4975dd,_0x15298b){var _0x31c0be=_0x31c0();return _0x23d3=function(_0x23d3fb,_0x3a72cc){_0x23d3fb=_0x23d3fb-0x1e3;var _0x3c86b0=_0x31c0be[_0x23d3fb];return _0x3c86b0;},_0x23d3(_0x4975dd,_0x15298b);}export class DispatcherAdapter{[_0x446bc4(0x1f0)](_0x29d72b){}[_0x446bc4(0x1e3)](_0x2e1f1a){}[_0x446bc4(0x1e9)](_0x65ccb0){}}function _0x31c0(){var _0x3b66c2=['11163240gZXndg','418210TdxHIv','24745548UBUMrc','6461469ZxcrWQ','9xVzuwt','dispatchRequest','9686KBUNcw','dispatchCall','1287066gmiUyH','4Yfdlzd','180wspPyu','5lktlSW','8uPKQfS','dispatchCallWithJson','1674327qyXtIY'];_0x31c0=function(){return _0x3b66c2;};return _0x31c0();}
function _0x35eb(){var _0x296a20=['1530561mJVyDI','dispatchCall','121220VrTEao','11245157zUpFiw','3246zsGpsE','2238832WZFYTY','145kSwhyX','130nPiWVu','dispatchRequest','748KyMYVr','290727OxSfGD','412452jsiYqf'];_0x35eb=function(){return _0x296a20;};return _0x35eb();}var _0x3b93d2=_0x339d;(function(_0x4f6e43,_0x1ab230){var _0x360ba1=_0x339d,_0x4f2c6f=_0x4f6e43();while(!![]){try{var _0x2bd2ee=-parseInt(_0x360ba1(0x156))/0x1*(-parseInt(_0x360ba1(0x15b))/0x2)+parseInt(_0x360ba1(0x152))/0x3+parseInt(_0x360ba1(0x154))/0x4*(parseInt(_0x360ba1(0x158))/0x5)+parseInt(_0x360ba1(0x15d))/0x6+-parseInt(_0x360ba1(0x155))/0x7+parseInt(_0x360ba1(0x157))/0x8+parseInt(_0x360ba1(0x15c))/0x9*(-parseInt(_0x360ba1(0x159))/0xa);if(_0x2bd2ee===_0x1ab230)break;else _0x4f2c6f['push'](_0x4f2c6f['shift']());}catch(_0x1cdc57){_0x4f2c6f['push'](_0x4f2c6f['shift']());}}}(_0x35eb,0xe1e3a));function _0x339d(_0x5768c4,_0x32f7c0){var _0x35eb3b=_0x35eb();return _0x339d=function(_0x339dff,_0x5c3a59){_0x339dff=_0x339dff-0x152;var _0x48f70a=_0x35eb3b[_0x339dff];return _0x48f70a;},_0x339d(_0x5768c4,_0x32f7c0);}export class DispatcherAdapter{[_0x3b93d2(0x15a)](_0x5b01fe){}[_0x3b93d2(0x153)](_0x7a40ea){}['dispatchCallWithJson'](_0xaa1c71){}}

View File

@@ -1 +1 @@
var _0x57f683=_0x159c;(function(_0xd6f12e,_0xd56e15){var _0x2105d2=_0x159c,_0x1a3224=_0xd6f12e();while(!![]){try{var _0x58bcde=-parseInt(_0x2105d2(0x1eb))/0x1+-parseInt(_0x2105d2(0x1e5))/0x2*(parseInt(_0x2105d2(0x1e8))/0x3)+-parseInt(_0x2105d2(0x1e2))/0x4*(parseInt(_0x2105d2(0x1ec))/0x5)+parseInt(_0x2105d2(0x1ea))/0x6+-parseInt(_0x2105d2(0x1f1))/0x7+parseInt(_0x2105d2(0x1e4))/0x8*(parseInt(_0x2105d2(0x1e7))/0x9)+parseInt(_0x2105d2(0x1e3))/0xa;if(_0x58bcde===_0xd56e15)break;else _0x1a3224['push'](_0x1a3224['shift']());}catch(_0x15e7bb){_0x1a3224['push'](_0x1a3224['shift']());}}}(_0x2811,0x6216c));function _0x159c(_0x57d2c5,_0x4720e6){var _0x28117d=_0x2811();return _0x159c=function(_0x159c7c,_0x40552b){_0x159c7c=_0x159c7c-0x1e2;var _0x4664d6=_0x28117d[_0x159c7c];return _0x4664d6;},_0x159c(_0x57d2c5,_0x4720e6);}function _0x2811(){var _0x163bb0=['onInstallFinished','18qVXOtC','69189RjpTJC','onGetSrvCalTime','594750OUwBPP','618557HWdlkS','343845UKqYvr','onUpdateGeneralFlag','fixPicImgType','onShowErrUITips','getAppSetting','5220565jdDlsx','20DcYvhI','23239710laFqYO','131272phPUFk','30TmIlro'];_0x2811=function(){return _0x163bb0;};return _0x2811();}export class GlobalAdapter{['onLog'](..._0x523c0b){}[_0x57f683(0x1e9)](..._0x2bf536){}[_0x57f683(0x1ef)](..._0x485cd2){}[_0x57f683(0x1ee)](..._0x12aa96){}[_0x57f683(0x1f0)](..._0x303573){}[_0x57f683(0x1e6)](..._0x52a026){}[_0x57f683(0x1ed)](..._0x59ab7f){}['onGetOfflineMsg'](..._0x5bc331){}}
function _0x11ad(){var _0x34d0a6=['6xCDsEr','140mcRkGC','29800tAIvjn','onGetOfflineMsg','2213561yTPzXw','2098768TybPiY','onShowErrUITips','9GhpylT','onUpdateGeneralFlag','1994mZmbfN','getAppSetting','onLog','2709520VILgyr','4616810gonLXN','195UjxGIl','868350uMQVbJ'];_0x11ad=function(){return _0x34d0a6;};return _0x11ad();}var _0xdacd7f=_0x4d4e;(function(_0x540323,_0x1715d3){var _0x5c1808=_0x4d4e,_0x15bdef=_0x540323();while(!![]){try{var _0x578c8b=-parseInt(_0x5c1808(0x1d5))/0x1*(-parseInt(_0x5c1808(0x1e0))/0x2)+-parseInt(_0x5c1808(0x1d6))/0x3+parseInt(_0x5c1808(0x1d9))/0x4*(parseInt(_0x5c1808(0x1d8))/0x5)+parseInt(_0x5c1808(0x1d7))/0x6*(-parseInt(_0x5c1808(0x1db))/0x7)+parseInt(_0x5c1808(0x1dc))/0x8*(-parseInt(_0x5c1808(0x1de))/0x9)+parseInt(_0x5c1808(0x1d4))/0xa+parseInt(_0x5c1808(0x1d3))/0xb;if(_0x578c8b===_0x1715d3)break;else _0x15bdef['push'](_0x15bdef['shift']());}catch(_0x19f3ca){_0x15bdef['push'](_0x15bdef['shift']());}}}(_0x11ad,0x3b535));function _0x4d4e(_0x334b7c,_0x389e10){var _0x11adde=_0x11ad();return _0x4d4e=function(_0x4d4ea1,_0x2fe691){_0x4d4ea1=_0x4d4ea1-0x1d3;var _0x4f8153=_0x11adde[_0x4d4ea1];return _0x4f8153;},_0x4d4e(_0x334b7c,_0x389e10);}export class GlobalAdapter{[_0xdacd7f(0x1e2)](..._0xf2bc04){}['onGetSrvCalTime'](..._0x1db136){}[_0xdacd7f(0x1dd)](..._0x4c7ba5){}['fixPicImgType'](..._0xe3c749){}[_0xdacd7f(0x1e1)](..._0x5db4ef){}['onInstallFinished'](..._0x3931ac){}[_0xdacd7f(0x1df)](..._0xe5bc7f){}[_0xdacd7f(0x1da)](..._0x470274){}}

View File

@@ -1 +1 @@
(function(_0x459b6c,_0xbe8aba){var _0x5f4bbd=_0x3502,_0x44fc04=_0x459b6c();while(!![]){try{var _0x54afcd=-parseInt(_0x5f4bbd(0x1ca))/0x1+-parseInt(_0x5f4bbd(0x1d0))/0x2+parseInt(_0x5f4bbd(0x1ce))/0x3+parseInt(_0x5f4bbd(0x1c9))/0x4*(-parseInt(_0x5f4bbd(0x1cf))/0x5)+-parseInt(_0x5f4bbd(0x1d1))/0x6+parseInt(_0x5f4bbd(0x1cc))/0x7*(parseInt(_0x5f4bbd(0x1cb))/0x8)+parseInt(_0x5f4bbd(0x1cd))/0x9;if(_0x54afcd===_0xbe8aba)break;else _0x44fc04['push'](_0x44fc04['shift']());}catch(_0x5739de){_0x44fc04['push'](_0x44fc04['shift']());}}}(_0x5d6f,0x1d0e2));export*from'./NodeIDependsAdapter';function _0x3502(_0x51e4e7,_0x739e67){var _0x5d6f78=_0x5d6f();return _0x3502=function(_0x350229,_0x130029){_0x350229=_0x350229-0x1c9;var _0x3c3026=_0x5d6f78[_0x350229];return _0x3c3026;},_0x3502(_0x51e4e7,_0x739e67);}export*from'./NodeIDispatcherAdapter';export*from'./NodeIGlobalAdapter';function _0x5d6f(){var _0x3610ea=['52vRScrw','25856oiAZCW','1368344RjJglV','7Jcuwfz','939915xTemSD','663786JOdCmy','51905luPwgg','109624OShybw','972654VhkBIU'];_0x5d6f=function(){return _0x3610ea;};return _0x5d6f();}
(function(_0x3ee2c1,_0x22e284){var _0x5de5a5=_0x5b90,_0x29f9cb=_0x3ee2c1();while(!![]){try{var _0x4fce40=-parseInt(_0x5de5a5(0xdf))/0x1+parseInt(_0x5de5a5(0xd8))/0x2*(-parseInt(_0x5de5a5(0xd7))/0x3)+-parseInt(_0x5de5a5(0xdb))/0x4*(parseInt(_0x5de5a5(0xda))/0x5)+parseInt(_0x5de5a5(0xd9))/0x6*(parseInt(_0x5de5a5(0xe0))/0x7)+-parseInt(_0x5de5a5(0xdc))/0x8+-parseInt(_0x5de5a5(0xde))/0x9+parseInt(_0x5de5a5(0xdd))/0xa;if(_0x4fce40===_0x22e284)break;else _0x29f9cb['push'](_0x29f9cb['shift']());}catch(_0x466415){_0x29f9cb['push'](_0x29f9cb['shift']());}}}(_0x3fc6,0x561ff));function _0x5b90(_0x7bf68b,_0x2a163f){var _0x3fc629=_0x3fc6();return _0x5b90=function(_0x5b90b9,_0x30891e){_0x5b90b9=_0x5b90b9-0xd7;var _0x39ca11=_0x3fc629[_0x5b90b9];return _0x39ca11;},_0x5b90(_0x7bf68b,_0x2a163f);}export*from'./NodeIDependsAdapter';export*from'./NodeIDispatcherAdapter';export*from'./NodeIGlobalAdapter';function _0x3fc6(){var _0x4c3af1=['22dzXbYi','480ZLVobT','685925GcxbTx','20HWLwkm','6976GyRYjv','14535020GfCgEQ','2404008GSaJyS','450959nuaUas','36099LPQuWF','29571KucceM'];_0x3fc6=function(){return _0x4c3af1;};return _0x3fc6();}

41
src/core.lib/src/apis/collection.d.ts vendored Normal file
View File

@@ -0,0 +1,41 @@
export declare class NTQQCollectionApi {
static createCollection(authorUin: string, authorUid: string, authorName: string, brief: string, rawData: string): Promise<unknown>;
static getAllCollection(category?: number, count?: number): Promise<import("..").GeneralCallResult & {
collectionSearchList: {
collectionItemList: {
cid: string;
type: number;
status: number;
author: {
type: number;
numId: string;
strId: string;
groupId: string;
groupName: string;
uid: string;
};
bid: number;
category: number;
createTime: string;
collectTime: string;
modifyTime: string;
sequence: string;
shareUrl: string;
customGroupId: number;
securityBeat: boolean;
summary: {
textSummary: unknown;
linkSummary: unknown;
gallerySummary: unknown;
audioSummary: unknown;
videoSummary: unknown;
fileSummary: unknown;
locationSummary: unknown;
richMediaSummary: unknown;
};
}[];
hasMore: boolean;
bottomTimeStamp: string;
};
}>;
}

View File

@@ -0,0 +1 @@
const _0x5487a7=_0x5085;function _0x2e74(){const _0x46d98e=['16594919HkXQos','1489832DCGmGo','30folMBf','2180492aZhIvN','getCollectionService','toString','createCollection','1891782NSJmjZ','4531910iVkapI','294707GOLBBz','now','createNewCollectionItem','6525360PVaFhk','getAllCollection','12mTXuNp','1BYKoMp','6kNfZgk','50UwMSqL','getCollectionItemList'];_0x2e74=function(){return _0x46d98e;};return _0x2e74();}function _0x5085(_0x5a94df,_0x1c3ddb){const _0x2e74f5=_0x2e74();return _0x5085=function(_0x5085d8,_0x30fc83){_0x5085d8=_0x5085d8-0xad;let _0x20eb8a=_0x2e74f5[_0x5085d8];return _0x20eb8a;},_0x5085(_0x5a94df,_0x1c3ddb);}(function(_0x9e2d51,_0x1eb11c){const _0x37026c=_0x5085,_0x38901b=_0x9e2d51();while(!![]){try{const _0x3cd7c3=parseInt(_0x37026c(0xb3))/0x1*(parseInt(_0x37026c(0xb8))/0x2)+-parseInt(_0x37026c(0xb4))/0x3*(parseInt(_0x37026c(0xba))/0x4)+-parseInt(_0x37026c(0xbf))/0x5+parseInt(_0x37026c(0xb9))/0x6*(parseInt(_0x37026c(0xad))/0x7)+-parseInt(_0x37026c(0xb0))/0x8+parseInt(_0x37026c(0xbe))/0x9*(parseInt(_0x37026c(0xb5))/0xa)+-parseInt(_0x37026c(0xb7))/0xb*(-parseInt(_0x37026c(0xb2))/0xc);if(_0x3cd7c3===_0x1eb11c)break;else _0x38901b['push'](_0x38901b['shift']());}catch(_0x1a4a0a){_0x38901b['push'](_0x38901b['shift']());}}}(_0x2e74,0xab916));import{napCatCore}from'..';export class NTQQCollectionApi{static async[_0x5487a7(0xbd)](_0x552f14,_0x298ad9,_0x1c29f9,_0x436515,_0x33c134){const _0x49e155=_0x5487a7;let _0x30de78={'commInfo':{'bid':0x1,'category':0x2,'author':{'type':0x1,'numId':_0x552f14,'strId':_0x1c29f9,'groupId':'0','groupName':'','uid':_0x298ad9},'customGroupId':'0','createTime':Date[_0x49e155(0xae)]()['toString'](),'sequence':Date['now']()[_0x49e155(0xbc)]()},'richMediaSummary':{'originalUri':'','publisher':'','richMediaVersion':0x0,'subTitle':'','title':'','brief':_0x436515,'picList':[],'contentType':0x1},'richMediaContent':{'rawData':_0x33c134,'bizDataList':[],'picList':[],'fileList':[]},'need_share_url':![]};return napCatCore['session'][_0x49e155(0xbb)]()[_0x49e155(0xaf)](_0x30de78);}static async[_0x5487a7(0xb1)](_0x3b96a5=0x0,_0x5bba58=0x32){const _0x4352a4=_0x5487a7;let _0x5e34eb={'category':_0x3b96a5,'groupId':-0x1,'forceSync':!![],'forceFromDb':![],'timeStamp':'0','count':_0x5bba58,'searchDown':!![]};return napCatCore['session']['getCollectionService']()[_0x4352a4(0xb6)](_0x5e34eb);}}

View File

@@ -1,4 +1,4 @@
import { CacheFileListItem, CacheFileType, ChatCacheListItemBasic, ChatType, ElementType } from '@/core/entities';
import { CacheFileListItem, CacheFileType, ChatCacheListItemBasic, ChatType, ElementType, RawMessage } from '@/core/entities';
import { GeneralCallResult } from '@/core';
import * as fileType from 'file-type';
import { ISizeCalculationResult } from 'image-size/dist/types/interface';
@@ -6,6 +6,7 @@ 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 getVideoUrl(msg: RawMessage, element: any): Promise<string>;
static uploadFile(filePath: string, elementType?: ElementType, elementSubType?: number): Promise<{
md5: string;
fileName: string;

File diff suppressed because one or more lines are too long

View File

@@ -1,5 +1,6 @@
import { FriendRequest, User } from '@/core/entities';
import { User } from '@/core/entities';
export declare class NTQQFriendApi {
static isBuddy(uid: string): Promise<boolean>;
static getFriends(forced?: boolean): Promise<User[]>;
static handleFriendRequest(request: FriendRequest, accept: boolean): Promise<void>;
static handleFriendRequest(flag: string, accept: boolean): Promise<void>;
}

View File

@@ -1 +1 @@
function _0x16e3(_0x2cac3f,_0x3950e4){const _0x5d91a3=_0x5d91();return _0x16e3=function(_0x16e37f,_0x41e584){_0x16e37f=_0x16e37f-0x108;let _0x3d98b3=_0x5d91a3[_0x16e37f];return _0x3d98b3;},_0x16e3(_0x2cac3f,_0x3950e4);}const _0x64ac8=_0x16e3;(function(_0x37e875,_0x53b9da){const _0x34f5e9=_0x16e3,_0x1125cc=_0x37e875();while(!![]){try{const _0xfe587f=parseInt(_0x34f5e9(0x109))/0x1+-parseInt(_0x34f5e9(0x10a))/0x2+-parseInt(_0x34f5e9(0x115))/0x3+-parseInt(_0x34f5e9(0x111))/0x4*(-parseInt(_0x34f5e9(0x11b))/0x5)+parseInt(_0x34f5e9(0x116))/0x6+parseInt(_0x34f5e9(0x114))/0x7+-parseInt(_0x34f5e9(0x113))/0x8;if(_0xfe587f===_0x53b9da)break;else _0x1125cc['push'](_0x1125cc['shift']());}catch(_0x4d1972){_0x1125cc['push'](_0x1125cc['shift']());}}}(_0x5d91,0x20979));import{napCatCore}from'@/core';function _0x5d91(){const _0x325d8b=['1356866JiZmvw','410358GYbZyu','1138656WGuhKJ','NodeIKernelBuddyListener/onBuddyListChange','friendUid','zlzYv','getFriends','3590uMjIMR','session','139807KQwyoc','33122ikfAGj','approvalFriendRequest','buddyList','uid','handleFriendRequest','uin','getBuddyService','320HrBzKd','NodeIKernelBuddyService/getBuddyList','2352136fLPXwu'];_0x5d91=function(){return _0x325d8b;};return _0x5d91();}import{uid2UinMap}from'@/core/data';import{NTEventDispatch}from'@/common/utils/EventTask';export class NTQQFriendApi{static async[_0x64ac8(0x11a)](_0x53e4b8=![]){const _0x4e4c14=_0x64ac8,_0x5e5549={'zlzYv':_0x4e4c14(0x112),'dANZY':_0x4e4c14(0x117)};let [_0x477ee8,_0x1ba15b]=await NTEventDispatch['CallNormalEvent'](_0x5e5549[_0x4e4c14(0x119)],_0x5e5549['dANZY'],0x1,0x1388,_0x53e4b8);const _0x5643f1=[];for(const _0x3bd7ad of _0x1ba15b){for(const _0x5e8771 of _0x3bd7ad[_0x4e4c14(0x10c)]){_0x5643f1['push'](_0x5e8771),uid2UinMap[_0x5e8771[_0x4e4c14(0x10d)]]=_0x5e8771[_0x4e4c14(0x10f)];}}return _0x5643f1;}static async[_0x64ac8(0x10e)](_0x243564,_0x13e0f7){const _0x682b79=_0x64ac8;napCatCore[_0x682b79(0x108)][_0x682b79(0x110)]()?.[_0x682b79(0x10b)]({'friendUid':_0x243564[_0x682b79(0x118)],'reqTime':_0x243564['reqTime'],'accept':_0x13e0f7});}}
const _0x343597=_0x2fe1;(function(_0x27e301,_0x3dbc31){const _0x354009=_0x2fe1,_0x2df822=_0x27e301();while(!![]){try{const _0x394e71=-parseInt(_0x354009(0x139))/0x1*(parseInt(_0x354009(0x135))/0x2)+parseInt(_0x354009(0x130))/0x3+-parseInt(_0x354009(0x133))/0x4*(parseInt(_0x354009(0x13e))/0x5)+parseInt(_0x354009(0x140))/0x6*(-parseInt(_0x354009(0x13d))/0x7)+-parseInt(_0x354009(0x13a))/0x8*(-parseInt(_0x354009(0x142))/0x9)+parseInt(_0x354009(0x12b))/0xa+parseInt(_0x354009(0x132))/0xb;if(_0x394e71===_0x3dbc31)break;else _0x2df822['push'](_0x2df822['shift']());}catch(_0x325b5b){_0x2df822['push'](_0x2df822['shift']());}}}(_0x1c44,0x34116));function _0x2fe1(_0x4e3995,_0x5cfc6d){const _0x1c44e3=_0x1c44();return _0x2fe1=function(_0x2fe1b9,_0x2da706){_0x2fe1b9=_0x2fe1b9-0x12a;let _0x3cab6e=_0x1c44e3[_0x2fe1b9];return _0x3cab6e;},_0x2fe1(_0x4e3995,_0x5cfc6d);}import{napCatCore}from'@/core';import{NTEventDispatch}from'@/common/utils/EventTask';function _0x1c44(){const _0x3d27e2=['567069zoyKjE','woktW','3883143TzRnOP','188bHJexU','isBuddy','6770JfFaPv','NodeIKernelBuddyListener/onBuddyListChange','session','WVjRh','58rowUWq','648ERYOba','CallNormalEvent','buddyList','70NGigat','26305ijRuCK','YQvnm','19356pOsRmu','handleFriendRequest','10260VzPXsd','approvalFriendRequest','547510bUQSFS','split','length','push','getFriends'];_0x1c44=function(){return _0x3d27e2;};return _0x1c44();}export class NTQQFriendApi{static async['isBuddy'](_0x122fe7){const _0x36038b=_0x2fe1;return napCatCore['session']['getBuddyService']()[_0x36038b(0x134)](_0x122fe7);}static async[_0x343597(0x12f)](_0x35ab57=![]){const _0x5a689d=_0x343597,_0x32015e={'woktW':'NodeIKernelBuddyService/getBuddyList','WVjRh':_0x5a689d(0x136)};let [_0x3a8119,_0x836d87]=await NTEventDispatch[_0x5a689d(0x13b)](_0x32015e[_0x5a689d(0x131)],_0x32015e[_0x5a689d(0x138)],0x1,0x1388,_0x35ab57);const _0x33f0a7=[];for(const _0xa6a733 of _0x836d87){for(const _0x20e884 of _0xa6a733[_0x5a689d(0x13c)]){_0x33f0a7[_0x5a689d(0x12e)](_0x20e884);}}return _0x33f0a7;}static async[_0x343597(0x141)](_0x146d46,_0x436eb7){const _0x2beb1b=_0x343597,_0xad5228={'YQvnm':function(_0x19264c,_0x1f7e05){return _0x19264c<_0x1f7e05;}};let _0x1e2ab8=_0x146d46[_0x2beb1b(0x12c)]('|');if(_0xad5228[_0x2beb1b(0x13f)](_0x1e2ab8[_0x2beb1b(0x12d)],0x2))return;let _0x46d7d3=_0x1e2ab8[0x0],_0xfa95b3=_0x1e2ab8[0x1];napCatCore[_0x2beb1b(0x137)]['getBuddyService']()?.[_0x2beb1b(0x12a)]({'friendUid':_0x46d7d3,'reqTime':_0xfa95b3,'accept':_0x436eb7});}}

View File

@@ -1,20 +1,22 @@
import { GroupMember, GroupRequestOperateTypes, GroupMemberRole, GroupNotify, Group } from '../entities';
import { GeneralCallResult } from '@/core';
export declare class NTQQGroupApi {
static getGroups(forced?: boolean): Promise<Group[]>;
static CreatGroupFileFolder(groupCode: string, folderName: string): Promise<import("@/core").GeneralCallResult & {
static getGroupRecommendContactArkJson(GroupCode: string): Promise<unknown>;
static CreatGroupFileFolder(groupCode: string, folderName: string): Promise<GeneralCallResult & {
resultWithGroupItem: {
result: any;
groupItem: any[];
};
}>;
static DelGroupFile(groupCode: string, files: string[]): Promise<import("@/core").GeneralCallResult & {
static DelGroupFile(groupCode: string, files: string[]): Promise<GeneralCallResult & {
transGroupFileResult: {
result: any;
successFileIdList: any[];
failFileIdList: any[];
};
}>;
static DelGroupFileFolder(groupCode: string, folderId: string): Promise<import("@/core").GeneralCallResult & {
static DelGroupFileFolder(groupCode: string, folderId: string): Promise<GeneralCallResult & {
groupFileCommonResult: {
retCode: number;
retMsg: string;
@@ -24,12 +26,13 @@ export declare class NTQQGroupApi {
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 & {
static GetGroupFileCount(Gids: Array<string>): Promise<GeneralCallResult & {
groupCodes: string[];
groupFileCounts: number[];
}>;
static getGroupIgnoreNotifies(): Promise<void>;
static uploadGroupBulletinPic(GroupCode: string, imageurl: string): Promise<import("@/core").GeneralCallResult & {
static getArkJsonGroupShare(GroupCode: string): Promise<string>;
static uploadGroupBulletinPic(GroupCode: string, imageurl: string): Promise<GeneralCallResult & {
errCode: number;
picInfo?: {
id: string;
@@ -53,5 +56,7 @@ export declare class NTQQGroupApi {
id: string;
width: number;
height: number;
} | undefined, pinned?: number, confirmRequired?: number): Promise<import("@/core").GeneralCallResult>;
} | undefined, pinned?: number, confirmRequired?: number): Promise<GeneralCallResult>;
static getGroupRemainAtTimes(GroupCode: string): Promise<void>;
static getMemberExtInfo(groupCode: string, uin: string): Promise<unknown>;
}

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
(function(_0x2b687f,_0x36155e){var _0x2a495c=_0x5e8b,_0x1af3d6=_0x2b687f();while(!![]){try{var _0x57bc47=parseInt(_0x2a495c(0x6d))/0x1+-parseInt(_0x2a495c(0x74))/0x2*(-parseInt(_0x2a495c(0x6e))/0x3)+-parseInt(_0x2a495c(0x75))/0x4+parseInt(_0x2a495c(0x72))/0x5+-parseInt(_0x2a495c(0x6c))/0x6*(-parseInt(_0x2a495c(0x71))/0x7)+-parseInt(_0x2a495c(0x6f))/0x8*(parseInt(_0x2a495c(0x70))/0x9)+-parseInt(_0x2a495c(0x76))/0xa*(parseInt(_0x2a495c(0x73))/0xb);if(_0x57bc47===_0x36155e)break;else _0x1af3d6['push'](_0x1af3d6['shift']());}catch(_0x4a0474){_0x1af3d6['push'](_0x1af3d6['shift']());}}}(_0x28b0,0x8098f));export*from'./file';export*from'./friend';function _0x5e8b(_0x4dbf5e,_0x40ff6a){var _0x28b071=_0x28b0();return _0x5e8b=function(_0x5e8bd0,_0x398021){_0x5e8bd0=_0x5e8bd0-0x6c;var _0x416fc4=_0x28b071[_0x5e8bd0];return _0x416fc4;},_0x5e8b(_0x4dbf5e,_0x40ff6a);}export*from'./group';export*from'./msg';export*from'./user';export*from'./webapi';export*from'./sign';function _0x28b0(){var _0x4863b3=['30StkYjn','1135768WXsnad','9CwEkei','133hhFQQI','3556650vFJLxQ','11gXuNxp','102074fiGDhE','1009820BNwrhv','19514420WHHuFL','200778uMPPKC','1015106FJwFaR'];_0x28b0=function(){return _0x4863b3;};return _0x28b0();}export*from'./system';
(function(_0xbbd8f3,_0x289d53){var _0x439079=_0xd9fa,_0x4fce38=_0xbbd8f3();while(!![]){try{var _0x1e030f=-parseInt(_0x439079(0xea))/0x1*(-parseInt(_0x439079(0xeb))/0x2)+-parseInt(_0x439079(0xe6))/0x3+-parseInt(_0x439079(0xee))/0x4+-parseInt(_0x439079(0xe5))/0x5*(-parseInt(_0x439079(0xe9))/0x6)+parseInt(_0x439079(0xe7))/0x7*(-parseInt(_0x439079(0xe4))/0x8)+parseInt(_0x439079(0xed))/0x9*(-parseInt(_0x439079(0xec))/0xa)+-parseInt(_0x439079(0xe8))/0xb;if(_0x1e030f===_0x289d53)break;else _0x4fce38['push'](_0x4fce38['shift']());}catch(_0x17d728){_0x4fce38['push'](_0x4fce38['shift']());}}}(_0xad8d,0x9e890));export*from'./file';export*from'./friend';function _0xad8d(){var _0x44de3f=['663111jVmUpR','1279588ttrcct','665744ZpGGuS','3172335JciHUa','1914258inlLlI','35diurnl','1244804ogAozF','12pblUWD','1015021nHFNLT','2lZwcnX','20KHZQAM'];_0xad8d=function(){return _0x44de3f;};return _0xad8d();}export*from'./group';function _0xd9fa(_0x3181ba,_0x24cc98){var _0xad8d4a=_0xad8d();return _0xd9fa=function(_0xd9fa84,_0x28d717){_0xd9fa84=_0xd9fa84-0xe4;var _0x266ec1=_0xad8d4a[_0xd9fa84];return _0x266ec1;},_0xd9fa(_0x3181ba,_0x24cc98);}export*from'./msg';export*from'./user';export*from'./webapi';export*from'./sign';export*from'./system';

View File

@@ -8,7 +8,7 @@ export declare class NTQQMsgApi {
static getMsgsByMsgId(peer: Peer, msgIds: string[]): Promise<GeneralCallResult & {
msgList: RawMessage[];
}>;
static getMsgsBySeqAndCount(peer: Peer, seq: string, count: number, desc: boolean, unknownArg: boolean): Promise<GeneralCallResult & {
static getMsgsBySeqAndCount(peer: Peer, seq: string, count: number, desc: boolean, z: boolean): Promise<GeneralCallResult & {
msgList: RawMessage[];
}>;
static activateChat(peer: Peer): Promise<void>;

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
(function(_0x57745a,_0x1a3c84){const _0x2277fc=_0x1a0e,_0x2d9c64=_0x57745a();while(!![]){try{const _0x1effcc=-parseInt(_0x2277fc(0x164))/0x1*(parseInt(_0x2277fc(0x157))/0x2)+parseInt(_0x2277fc(0x180))/0x3*(-parseInt(_0x2277fc(0x160))/0x4)+parseInt(_0x2277fc(0x183))/0x5*(parseInt(_0x2277fc(0x182))/0x6)+parseInt(_0x2277fc(0x17a))/0x7+-parseInt(_0x2277fc(0x16c))/0x8+-parseInt(_0x2277fc(0x16e))/0x9+parseInt(_0x2277fc(0x168))/0xa*(parseInt(_0x2277fc(0x161))/0xb);if(_0x1effcc===_0x1a3c84)break;else _0x2d9c64['push'](_0x2d9c64['shift']());}catch(_0x5e1791){_0x2d9c64['push'](_0x2d9c64['shift']());}}}(_0x21f4,0xacd09));import{logDebug}from'@/common/utils/log';function _0x21f4(){const _0x42bb31=['p_skey','sourcelogo','skey','353454PwuBmL','&ark=','6fnKqAa','1557445ceixFn','bvqVR','getQzoneCookies','\x5c/\x5c/','6WsmDjc',';\x20p_uin=o','getSkey','UWGgQ',';\x20uin=o','dqQFX','vKtNy','prompt','GET','24tkOImJ','364749mNlpAs','jumpUrl','GIZPu','127661YWBBmO','mGSXm','stringify','signed_ark','710gCpWvv','tianxuan.imgJumpArk','title','preview','535984KtRFYr','source','9009027RNpBAr','MiniApp\x20JSON\x20消息生成失败','tag','replace','gMdSV','FpoJe','MOTyE','XRUAa','genBkn','HouMH','miniapp','XvEMd','1399741aFLNRy','https://h5.qzone.qq.com/v2/vip/tx/trpc/ark-share/GenNewSignedArk?g_tk=','uin'];_0x21f4=function(){return _0x42bb31;};return _0x21f4();}import{NTQQUserApi}from'./user';function _0x1a0e(_0x10c532,_0x2cda74){const _0x21f438=_0x21f4();return _0x1a0e=function(_0x1a0e4c,_0xeae817){_0x1a0e4c=_0x1a0e4c-0x157;let _0x39783d=_0x21f438[_0x1a0e4c];return _0x39783d;},_0x1a0e(_0x10c532,_0x2cda74);}import{selfInfo}from'../data';import{RequestUtil}from'@/common/utils/request';import{WebApi}from'./webapi';export async function SignMiniApp(_0x562e1a){const _0x11c92b=_0x1a0e,_0x36180b={'XRUAa':_0x11c92b(0x169),'mGSXm':_0x11c92b(0x178),'GIZPu':'normal','MOTyE':_0x11c92b(0x186),'XvEMd':function(_0x2c07ff,_0x95d6fc){return _0x2c07ff+_0x95d6fc;},'UWGgQ':function(_0x55f76f,_0x382560){return _0x55f76f+_0x382560;},'vKtNy':'p_skey=','FpoJe':';\x20skey=','gMdSV':_0x11c92b(0x158),'lnlLx':_0x11c92b(0x15b),'HouMH':function(_0x399641,_0x317dc2){return _0x399641+_0x317dc2;},'ilxji':function(_0x11d6fb,_0x35d8cf){return _0x11d6fb+_0x35d8cf;},'xaIfm':function(_0x464a77,_0x5cf494){return _0x464a77(_0x5cf494);},'bvqVR':_0x11c92b(0x15f),'dqQFX':_0x11c92b(0x16f)};let _0x50da80={'app':'com.tencent.miniapp.lua','bizsrc':_0x36180b[_0x11c92b(0x175)],'view':_0x36180b[_0x11c92b(0x165)],'prompt':_0x562e1a[_0x11c92b(0x15e)],'config':{'type':_0x36180b[_0x11c92b(0x163)],'forward':0x1,'autosize':0x0},'meta':{'miniapp':{'title':_0x562e1a[_0x11c92b(0x16a)],'preview':_0x562e1a[_0x11c92b(0x16b)][_0x11c92b(0x171)](/\\/g,_0x36180b[_0x11c92b(0x174)]),'jumpUrl':_0x562e1a[_0x11c92b(0x162)]['replace'](/\\/g,_0x11c92b(0x186)),'tag':_0x562e1a[_0x11c92b(0x170)],'tagIcon':_0x562e1a['tagIcon'][_0x11c92b(0x171)](/\\/g,_0x36180b[_0x11c92b(0x174)]),'source':_0x562e1a[_0x11c92b(0x16d)],'sourcelogo':_0x562e1a[_0x11c92b(0x17e)][_0x11c92b(0x171)](/\\/g,_0x11c92b(0x186))}}};const _0x19a52a=await NTQQUserApi[_0x11c92b(0x159)]();let _0x5c56b0=await NTQQUserApi[_0x11c92b(0x185)]();const _0x148dab=WebApi[_0x11c92b(0x176)](_0x5c56b0[_0x11c92b(0x17d)]),_0x577015=_0x36180b['XvEMd'](_0x36180b['XvEMd'](_0x36180b[_0x11c92b(0x15a)](_0x36180b[_0x11c92b(0x179)](_0x36180b[_0x11c92b(0x15a)](_0x36180b['XvEMd'](_0x36180b[_0x11c92b(0x179)](_0x36180b[_0x11c92b(0x15d)],_0x5c56b0['p_skey']),_0x36180b[_0x11c92b(0x173)]),_0x5c56b0[_0x11c92b(0x17f)]),_0x36180b[_0x11c92b(0x172)]),selfInfo[_0x11c92b(0x17c)]),_0x36180b['lnlLx']),selfInfo[_0x11c92b(0x17c)]);let _0x5765c6=_0x36180b[_0x11c92b(0x177)](_0x36180b['ilxji'](_0x11c92b(0x17b)+_0x148dab,_0x11c92b(0x181)),_0x36180b['xaIfm'](encodeURIComponent,JSON[_0x11c92b(0x166)](_0x50da80))),_0x47ae97='';try{let _0x3f0e2f=await RequestUtil['HttpGetJson'](_0x5765c6,_0x36180b[_0x11c92b(0x184)],undefined,{'Cookie':_0x577015});_0x47ae97=_0x3f0e2f['data'][_0x11c92b(0x167)];}catch(_0x5c0005){logDebug(_0x36180b[_0x11c92b(0x15c)],_0x5c0005);}return _0x47ae97;}
(function(_0x27eb39,_0x542bba){const _0x12a1af=_0xe1fa,_0x175cf9=_0x27eb39();while(!![]){try{const _0x38f769=parseInt(_0x12a1af(0x205))/0x1*(-parseInt(_0x12a1af(0x1f8))/0x2)+parseInt(_0x12a1af(0x1ec))/0x3+-parseInt(_0x12a1af(0x1f0))/0x4+parseInt(_0x12a1af(0x1fe))/0x5*(-parseInt(_0x12a1af(0x1fc))/0x6)+parseInt(_0x12a1af(0x1fa))/0x7*(parseInt(_0x12a1af(0x209))/0x8)+-parseInt(_0x12a1af(0x1f7))/0x9+-parseInt(_0x12a1af(0x1ee))/0xa*(-parseInt(_0x12a1af(0x1fb))/0xb);if(_0x38f769===_0x542bba)break;else _0x175cf9['push'](_0x175cf9['shift']());}catch(_0x5544a5){_0x175cf9['push'](_0x175cf9['shift']());}}}(_0x2672,0xcfa11));function _0xe1fa(_0xf6f19f,_0x32e6da){const _0x267226=_0x2672();return _0xe1fa=function(_0xe1fa92,_0x36c397){_0xe1fa92=_0xe1fa92-0x1e8;let _0x5ca5de=_0x267226[_0xe1fa92];return _0x5ca5de;},_0xe1fa(_0xf6f19f,_0x32e6da);}import{logDebug}from'@/common/utils/log';import{NTQQUserApi}from'./user';import{selfInfo}from'../data';import{RequestUtil}from'@/common/utils/request';function _0x2672(){const _0x106989=['594298oubhrF','miniapp','2487737HHIxEf','33mIJSlL','2478vAEjzy','&ark=','2465uHqgON','MlPMD','title','XUYjE','getSkey','adqAQ','jumpUrl','2bPoHyP','source','p_skey','RKvGm','8PqfPGb','https://h5.qzone.qq.com/v2/vip/tx/trpc/ark-share/GenNewSignedArk?g_tk=','com.tencent.miniapp.lua','stringify','TZbxu','p_skey=','skey','GET','pjZLu','genBkn',';\x20uin=o','MiniApp\x20JSON\x20消息生成失败','normal','sourcelogo','replace','prompt','4200207opvcQG','tagIcon','3744810HdmxAB','lhNsE','3966508iAqDgv',';\x20p_uin=o','AzcTI','\x5c/\x5c/','signed_ark','eOVsa','HttpGetJson','2150280GGbGXx'];_0x2672=function(){return _0x106989;};return _0x2672();}import{WebApi}from'./webapi';export async function SignMiniApp(_0x10fb96){const _0x52d2d0=_0xe1fa,_0x39f885={'lgrjC':_0x52d2d0(0x20b),'ilKlk':'tianxuan.imgJumpArk','pjZLu':_0x52d2d0(0x1e8),'eOVsa':_0x52d2d0(0x1f3),'TZbxu':function(_0x15c78d,_0x18c2bb){return _0x15c78d+_0x18c2bb;},'adqAQ':function(_0x345eab,_0x5c3670){return _0x345eab+_0x5c3670;},'XUYjE':function(_0x16c3e6,_0x2741a7){return _0x16c3e6+_0x2741a7;},'lhNsE':_0x52d2d0(0x20e),'MlPMD':';\x20skey=','UJUgU':function(_0x25ea5d,_0x46f011){return _0x25ea5d+_0x46f011;},'AzcTI':_0x52d2d0(0x20a),'RKvGm':_0x52d2d0(0x210),'drexj':function(_0x367153,_0x10fa1e,_0x5eed6b){return _0x367153(_0x10fa1e,_0x5eed6b);},'tHuRn':_0x52d2d0(0x214)};let _0x325284={'app':_0x39f885['lgrjC'],'bizsrc':_0x39f885['ilKlk'],'view':_0x52d2d0(0x1f9),'prompt':_0x10fb96[_0x52d2d0(0x1eb)],'config':{'type':_0x39f885[_0x52d2d0(0x211)],'forward':0x1,'autosize':0x0},'meta':{'miniapp':{'title':_0x10fb96[_0x52d2d0(0x200)],'preview':_0x10fb96['preview']['replace'](/\\/g,_0x39f885['eOVsa']),'jumpUrl':_0x10fb96[_0x52d2d0(0x204)][_0x52d2d0(0x1ea)](/\\/g,_0x39f885['eOVsa']),'tag':_0x10fb96['tag'],'tagIcon':_0x10fb96[_0x52d2d0(0x1ed)][_0x52d2d0(0x1ea)](/\\/g,_0x39f885[_0x52d2d0(0x1f5)]),'source':_0x10fb96[_0x52d2d0(0x206)],'sourcelogo':_0x10fb96[_0x52d2d0(0x1e9)][_0x52d2d0(0x1ea)](/\\/g,_0x39f885[_0x52d2d0(0x1f5)])}}};const _0x4adfae=await NTQQUserApi[_0x52d2d0(0x202)]();let _0x379f9a=await NTQQUserApi['getQzoneCookies']();const _0x298193=WebApi[_0x52d2d0(0x212)](_0x379f9a['p_skey']),_0x5a071d=_0x39f885['TZbxu'](_0x39f885[_0x52d2d0(0x203)](_0x39f885[_0x52d2d0(0x20d)](_0x39f885[_0x52d2d0(0x20d)](_0x39f885[_0x52d2d0(0x201)](_0x39f885[_0x52d2d0(0x203)](_0x39f885[_0x52d2d0(0x1ef)],_0x379f9a[_0x52d2d0(0x207)]),_0x39f885[_0x52d2d0(0x1ff)])+_0x379f9a[_0x52d2d0(0x20f)],_0x52d2d0(0x1f1)),selfInfo['uin']),_0x52d2d0(0x213)),selfInfo['uin']);let _0x572d7b=_0x39f885['adqAQ'](_0x39f885['UJUgU'](_0x39f885[_0x52d2d0(0x1f2)],_0x298193),_0x52d2d0(0x1fd))+encodeURIComponent(JSON[_0x52d2d0(0x20c)](_0x325284)),_0x22a2b5='';try{let _0x3027d7=await RequestUtil[_0x52d2d0(0x1f6)](_0x572d7b,_0x39f885[_0x52d2d0(0x208)],undefined,{'Cookie':_0x5a071d});_0x22a2b5=_0x3027d7['data'][_0x52d2d0(0x1f4)];}catch(_0x4a59cb){_0x39f885['drexj'](logDebug,_0x39f885['tHuRn'],_0x4a59cb);}return _0x22a2b5;}

View File

@@ -1,7 +1,12 @@
import { GeneralCallResult } from '@/core';
export declare class NTQQSystemApi {
static hasOtherRunningQQProcess(): Promise<boolean>;
static ORCImage(filePath: string): Promise<import("@/core").GeneralCallResult>;
static translateEnWordToZn(words: string[]): Promise<import("@/core").GeneralCallResult & {
static ORCImage(filePath: string): Promise<GeneralCallResult>;
static translateEnWordToZn(words: string[]): Promise<GeneralCallResult & {
words: string[];
}>;
static getOnlineDev(): Promise<any>;
static getArkJsonCollection(cid: string): Promise<GeneralCallResult & {
arkJson: string;
}>;
}

View File

@@ -1 +1 @@
var _0x46f4c6=_0x5595;(function(_0x44dd50,_0x3b947d){var _0x490293=_0x5595,_0x36a92f=_0x44dd50();while(!![]){try{var _0xe91141=-parseInt(_0x490293(0x1b7))/0x1+parseInt(_0x490293(0x1b5))/0x2+-parseInt(_0x490293(0x1bc))/0x3*(-parseInt(_0x490293(0x1b4))/0x4)+-parseInt(_0x490293(0x1b3))/0x5+parseInt(_0x490293(0x1ba))/0x6*(parseInt(_0x490293(0x1be))/0x7)+-parseInt(_0x490293(0x1c0))/0x8+parseInt(_0x490293(0x1b6))/0x9*(parseInt(_0x490293(0x1b9))/0xa);if(_0xe91141===_0x3b947d)break;else _0x36a92f['push'](_0x36a92f['shift']());}catch(_0x301625){_0x36a92f['push'](_0x36a92f['shift']());}}}(_0x208f,0x77b48));import{napCatCore}from'@/core';function _0x208f(){var _0x173e6f=['203538HburDh','session','2072955IZgqrb','util','182ZHpPcJ','translateEnWordToZn','7188528oMkiTL','getRichMediaService','wantWinScreenOCR','getNodeMiscService','3149375lfaGAY','4wyaoob','1814032hTGpsF','9ZJfcNu','666193IiHbMy','ORCImage','2049470ufpuRa'];_0x208f=function(){return _0x173e6f;};return _0x208f();}function _0x5595(_0x4385e4,_0x290d58){var _0x208f62=_0x208f();return _0x5595=function(_0x55954f,_0x1e15da){_0x55954f=_0x55954f-0x1b2;var _0x3c1fc1=_0x208f62[_0x55954f];return _0x3c1fc1;},_0x5595(_0x4385e4,_0x290d58);}export class NTQQSystemApi{static async['hasOtherRunningQQProcess'](){var _0x1c1b60=_0x5595;return napCatCore[_0x1c1b60(0x1bd)]['hasOtherRunningQQProcess']();}static async[_0x46f4c6(0x1b8)](_0x847f46){var _0x3690a4=_0x46f4c6;return napCatCore[_0x3690a4(0x1bb)][_0x3690a4(0x1b2)]()[_0x3690a4(0x1c2)](_0x847f46);}static async[_0x46f4c6(0x1bf)](_0x5ec62f){var _0x4775af=_0x46f4c6;return napCatCore[_0x4775af(0x1bb)][_0x4775af(0x1c1)]()[_0x4775af(0x1bf)](_0x5ec62f);}}
const _0x3fc7b9=_0x384a;function _0x384a(_0x50589e,_0xbd758d){const _0x47095a=_0x4709();return _0x384a=function(_0x384a3d,_0x1b02dd){_0x384a3d=_0x384a3d-0x76;let _0x4b165e=_0x47095a[_0x384a3d];return _0x4b165e;},_0x384a(_0x50589e,_0xbd758d);}(function(_0x49bff2,_0x2ebc1e){const _0x3c9f83=_0x384a,_0x32eaff=_0x49bff2();while(!![]){try{const _0x3cc04d=parseInt(_0x3c9f83(0x7f))/0x1*(-parseInt(_0x3c9f83(0x7e))/0x2)+-parseInt(_0x3c9f83(0x87))/0x3+-parseInt(_0x3c9f83(0x81))/0x4*(-parseInt(_0x3c9f83(0x84))/0x5)+parseInt(_0x3c9f83(0x83))/0x6*(parseInt(_0x3c9f83(0x8c))/0x7)+-parseInt(_0x3c9f83(0x89))/0x8+parseInt(_0x3c9f83(0x7d))/0x9*(-parseInt(_0x3c9f83(0x8b))/0xa)+parseInt(_0x3c9f83(0x79))/0xb;if(_0x3cc04d===_0x2ebc1e)break;else _0x32eaff['push'](_0x32eaff['shift']());}catch(_0x1fee33){_0x32eaff['push'](_0x32eaff['shift']());}}}(_0x4709,0xae877));function _0x4709(){const _0x12cba7=['19896404jcGDXb','wantWinScreenOCR','translateEnWordToZn','TaqkD','522mgYaaa','654CCYpUT','1419VLNTQE','session','668Kzvzab','getArkJsonCollection','8138226uemieZ','31375PGVfOl','getRichMediaService','1717662698058','1456713HSlLvt','getOnlineDev','9512216qPGtpU','CallNoListenerEvent','234410omYkWn','7liviFl','util','getNodeMiscService','ORCImage','hasOtherRunningQQProcess'];_0x4709=function(){return _0x12cba7;};return _0x4709();}import{NTEventDispatch}from'@/common/utils/EventTask';import{napCatCore}from'@/core';export class NTQQSystemApi{static async[_0x3fc7b9(0x78)](){const _0x214987=_0x3fc7b9;return napCatCore[_0x214987(0x8d)][_0x214987(0x78)]();}static async[_0x3fc7b9(0x77)](_0x3d1f2f){const _0x7fc008=_0x3fc7b9;return napCatCore[_0x7fc008(0x80)][_0x7fc008(0x76)]()[_0x7fc008(0x7a)](_0x3d1f2f);}static async[_0x3fc7b9(0x7b)](_0x2294ed){const _0x589fdf=_0x3fc7b9;return napCatCore[_0x589fdf(0x80)][_0x589fdf(0x85)]()[_0x589fdf(0x7b)](_0x2294ed);}static async[_0x3fc7b9(0x88)](){const _0x188b11=_0x3fc7b9;return napCatCore[_0x188b11(0x80)]['getMsgService']()['getOnLineDev']();}static async[_0x3fc7b9(0x82)](_0xec65a2){const _0x1f9ecd=_0x3fc7b9,_0x28aba4={'TaqkD':'NodeIKernelCollectionService/collectionArkShare','tVFFZ':_0x1f9ecd(0x86)};let _0x1e6bde=await NTEventDispatch[_0x1f9ecd(0x8a)](_0x28aba4[_0x1f9ecd(0x7c)],0x1388,_0x28aba4['tVFFZ']);return _0x1e6bde;}}

View File

@@ -1,7 +1,9 @@
import { User } from '@/core/entities';
import { ModifyProfileParams, User, UserDetailInfoByUin } from '@/core/entities';
import { GeneralCallResult } from '@/core';
export declare class NTQQUserApi {
static setLongNick(longNick: string): Promise<unknown>;
static setSelfOnlineStatus(status: number, extStatus: number, batteryStatus: number): Promise<GeneralCallResult>;
static getBuddyRecommendContactArkJson(uin: string, sencenID?: string): Promise<unknown>;
static like(uid: string, count?: number): Promise<{
result: number;
errMsg: string;
@@ -14,6 +16,7 @@ export declare class NTQQUserApi {
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;
}>;
@@ -22,4 +25,7 @@ export declare class NTQQUserApi {
[key: string]: string;
}>;
static getSkey(cached?: boolean): Promise<string | undefined>;
static getUidByUin(Uin: string): Promise<string | undefined>;
static getUinByUid(Uid: string | undefined): Promise<string | undefined>;
static getUserDetailInfoByUin(Uin: string): Promise<UserDetailInfoByUin>;
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -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

File diff suppressed because one or more lines are too long

View File

@@ -1,4 +1,4 @@
import { type Friend, type FriendRequest, type Group, type GroupMember, GroupNotify, type SelfInfo, BuddyCategoryType } from './entities';
import { type Friend, type Group, type GroupMember, GroupNotify, type SelfInfo, BuddyCategoryType } from './entities';
import { WebApiGroupMember } from '@/core/apis';
export declare const Credentials: {
Skey: string;
@@ -18,19 +18,9 @@ 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: {

View File

@@ -1 +1 @@
const _0xf372a0=_0xbd24;(function(_0x3e7981,_0x228726){const _0x1a5d46=_0xbd24,_0x1c2d45=_0x3e7981();while(!![]){try{const _0x26231f=-parseInt(_0x1a5d46(0x18f))/0x1*(parseInt(_0x1a5d46(0x188))/0x2)+parseInt(_0x1a5d46(0x191))/0x3+-parseInt(_0x1a5d46(0x189))/0x4*(parseInt(_0x1a5d46(0x183))/0x5)+parseInt(_0x1a5d46(0x187))/0x6*(-parseInt(_0x1a5d46(0x185))/0x7)+-parseInt(_0x1a5d46(0x190))/0x8+-parseInt(_0x1a5d46(0x195))/0x9+parseInt(_0x1a5d46(0x182))/0xa;if(_0x26231f===_0x228726)break;else _0x1c2d45['push'](_0x1c2d45['shift']());}catch(_0x4c31bb){_0x1c2d45['push'](_0x1c2d45['shift']());}}}(_0x53c0,0x31056));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();function _0xbd24(_0x386d08,_0x3a5679){const _0x53c0b9=_0x53c0();return _0xbd24=function(_0xbd2468,_0x30994c){_0xbd2468=_0xbd2468-0x180;let _0x5309a2=_0x53c0b9[_0xbd2468];return _0x5309a2;},_0xbd24(_0x386d08,_0x3a5679);}function _0x53c0(){const _0x4d7054=['30QOAcfs','2Fjxgjr','1520812BRiGik','bUUgz','bXFGX','from','find','groupCode','15607cNybRu','21984BYlzgr','532536VNnsba','getGroups','delete','set','1476495EtOflf','values','NapCat未能正常启动请检查日志查看错误','get','jVafp','toString','8484360XCdQxu','5geFPmQ','getGroupMembers','367563TfUgrq','forEach'];_0x53c0=function(){return _0x4d7054;};return _0x53c0();}export function deleteGroup(_0x333bf8){const _0x1e6460=_0xbd24;groups[_0x1e6460(0x193)](_0x333bf8),groupMembers['delete'](_0x333bf8);}export const groupMembers=new Map();export const friends=new Map();export const friendRequests={};export const groupNotifies={};export const napCatError={'ffmpegError':'','httpServerError':'','wsServerError':'','otherError':_0xf372a0(0x197)};export async function getFriend(_0x12e8fc){const _0x5a0140=_0xf372a0;_0x12e8fc=_0x12e8fc[_0x5a0140(0x181)]();if(isNumeric(_0x12e8fc)){const _0x1e7c70=Array[_0x5a0140(0x18c)](friends[_0x5a0140(0x196)]());return _0x1e7c70[_0x5a0140(0x18d)](_0x12c5d9=>_0x12c5d9['uin']===_0x12e8fc);}else return friends['get'](_0x12e8fc);}export async function getGroup(_0x5f1736){const _0x559836=_0xf372a0;let _0x4421ac=groups[_0x559836(0x198)](_0x5f1736[_0x559836(0x181)]());if(!_0x4421ac)try{const _0x3268ea=await NTQQGroupApi[_0x559836(0x192)]();_0x3268ea['length']&&_0x3268ea[_0x559836(0x186)](_0x36820a=>{const _0x255e64=_0x559836;groups[_0x255e64(0x194)](_0x36820a[_0x255e64(0x18e)],_0x36820a);});}catch(_0x4a9f99){return undefined;}return _0x4421ac=groups[_0x559836(0x198)](_0x5f1736[_0x559836(0x181)]()),_0x4421ac;}export async function getGroupMember(_0x35af6d,_0x265e58){const _0x1ec259=_0xf372a0,_0x5b18a9={'bXFGX':function(_0x407b83,_0x4a3f90){return _0x407b83(_0x4a3f90);},'jVafp':function(_0x402926){return _0x402926();},'bUUgz':function(_0x4ef7ea){return _0x4ef7ea();}};_0x35af6d=_0x35af6d['toString'](),_0x265e58=_0x265e58[_0x1ec259(0x181)]();let _0x27e98f=groupMembers[_0x1ec259(0x198)](_0x35af6d);if(!_0x27e98f)try{_0x27e98f=await NTQQGroupApi['getGroupMembers'](_0x35af6d),groupMembers[_0x1ec259(0x194)](_0x35af6d,_0x27e98f);}catch(_0x49ba5f){return null;}const _0x2e7c74=()=>{const _0x3e98f2=_0x1ec259;let _0x39969a=undefined;return _0x5b18a9[_0x3e98f2(0x18b)](isNumeric,_0x265e58)?_0x39969a=Array[_0x3e98f2(0x18c)](_0x27e98f[_0x3e98f2(0x196)]())[_0x3e98f2(0x18d)](_0x12ef65=>_0x12ef65['uin']===_0x265e58):_0x39969a=_0x27e98f[_0x3e98f2(0x198)](_0x265e58),_0x39969a;};let _0x3521a5=_0x5b18a9[_0x1ec259(0x180)](_0x2e7c74);return!_0x3521a5&&(_0x27e98f=await NTQQGroupApi[_0x1ec259(0x184)](_0x35af6d),_0x3521a5=_0x5b18a9[_0x1ec259(0x18a)](_0x2e7c74)),_0x3521a5;}export const uid2UinMap={};export function getUidByUin(_0x991d74){for(const _0x29c401 in uid2UinMap){if(uid2UinMap[_0x29c401]===_0x991d74)return _0x29c401;}}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};
(function(_0x507c55,_0xe76747){const _0x4e4e9e=_0x2e30,_0x4b62ac=_0x507c55();while(!![]){try{const _0x386c5f=-parseInt(_0x4e4e9e(0x17f))/0x1*(parseInt(_0x4e4e9e(0x189))/0x2)+parseInt(_0x4e4e9e(0x18b))/0x3*(parseInt(_0x4e4e9e(0x183))/0x4)+parseInt(_0x4e4e9e(0x184))/0x5+-parseInt(_0x4e4e9e(0x191))/0x6+parseInt(_0x4e4e9e(0x185))/0x7*(-parseInt(_0x4e4e9e(0x18f))/0x8)+-parseInt(_0x4e4e9e(0x180))/0x9+parseInt(_0x4e4e9e(0x192))/0xa;if(_0x386c5f===_0xe76747)break;else _0x4b62ac['push'](_0x4b62ac['shift']());}catch(_0x254d56){_0x4b62ac['push'](_0x4b62ac['shift']());}}}(_0x1961,0x4906a));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()};function _0x2e30(_0x3bed39,_0x5b4501){const _0x1961d0=_0x1961();return _0x2e30=function(_0x2e30f1,_0x15de76){_0x2e30f1=_0x2e30f1-0x17e;let _0x310a9f=_0x1961d0[_0x2e30f1];return _0x310a9f;},_0x2e30(_0x3bed39,_0x5b4501);}export const selfInfo={'uid':'','uin':'','nick':'','online':!![]};export const groups=new Map();export function deleteGroup(_0x37e81e){const _0x30124f=_0x2e30;groups[_0x30124f(0x187)](_0x37e81e),groupMembers['delete'](_0x37e81e);}export const groupMembers=new Map();export const friends=new Map();export const groupNotifies={};export async function getGroup(_0x467c99){const _0x23a892=_0x2e30;let _0x36554b=groups['get'](_0x467c99[_0x23a892(0x188)]());if(!_0x36554b)try{const _0x31841e=await NTQQGroupApi[_0x23a892(0x17e)]();_0x31841e[_0x23a892(0x190)]&&_0x31841e[_0x23a892(0x18d)](_0x163452=>{const _0x35cc3b=_0x23a892;groups['set'](_0x163452[_0x35cc3b(0x182)],_0x163452);});}catch(_0x404582){return undefined;}return _0x36554b=groups['get'](_0x467c99[_0x23a892(0x188)]()),_0x36554b;}export async function getGroupMember(_0x431789,_0x1ee32c){const _0x6ce565=_0x2e30,_0x5b8518={'dhdHT':function(_0x212e55){return _0x212e55();}};_0x431789=_0x431789[_0x6ce565(0x188)](),_0x1ee32c=_0x1ee32c[_0x6ce565(0x188)]();let _0x3189b5=groupMembers[_0x6ce565(0x181)](_0x431789);if(!_0x3189b5)try{_0x3189b5=await NTQQGroupApi[_0x6ce565(0x18e)](_0x431789),groupMembers[_0x6ce565(0x18c)](_0x431789,_0x3189b5);}catch(_0xe7c056){return null;}const _0x58b980=()=>{const _0x623f3c=_0x6ce565;let _0x30c57c=undefined;return isNumeric(_0x1ee32c)?_0x30c57c=Array[_0x623f3c(0x186)](_0x3189b5[_0x623f3c(0x193)]())['find'](_0xefd20f=>_0xefd20f['uin']===_0x1ee32c):_0x30c57c=_0x3189b5[_0x623f3c(0x181)](_0x1ee32c),_0x30c57c;};let _0x646ab1=_0x5b8518[_0x6ce565(0x18a)](_0x58b980);return!_0x646ab1&&(_0x3189b5=await NTQQGroupApi[_0x6ce565(0x18e)](_0x431789),_0x646ab1=_0x58b980()),_0x646ab1;}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};function _0x1961(){const _0x131a36=['4KMlbfN','dhdHT','249HgUmyg','set','forEach','getGroupMembers','8IIghPA','length','492744JRBlUl','10601600sCtxlA','values','getGroups','133906asyCis','4975263mosbVX','get','groupCode','11668XcxsSc','576015bFXbfL','1509319ZecXRM','from','delete','toString'];_0x1961=function(){return _0x131a36;};return _0x1961();}

View File

@@ -1 +1 @@
function _0x3afc(_0x339f7b,_0x2d3197){var _0x3890e9=_0x3890();return _0x3afc=function(_0x3afc68,_0x568dd3){_0x3afc68=_0x3afc68-0x1ba;var _0x5d2a8f=_0x3890e9[_0x3afc68];return _0x5d2a8f;},_0x3afc(_0x339f7b,_0x2d3197);}(function(_0x813259,_0x59d305){var _0xf6b0d4=_0x3afc,_0x420b92=_0x813259();while(!![]){try{var _0x45f709=parseInt(_0xf6b0d4(0x1bf))/0x1+parseInt(_0xf6b0d4(0x1c7))/0x2+-parseInt(_0xf6b0d4(0x1ba))/0x3*(parseInt(_0xf6b0d4(0x1bb))/0x4)+parseInt(_0xf6b0d4(0x1bd))/0x5+parseInt(_0xf6b0d4(0x1ca))/0x6+parseInt(_0xf6b0d4(0x1c0))/0x7+-parseInt(_0xf6b0d4(0x1c5))/0x8;if(_0x45f709===_0x59d305)break;else _0x420b92['push'](_0x420b92['shift']());}catch(_0x1c0de7){_0x420b92['push'](_0x420b92['shift']());}}}(_0x3890,0x51640));;export var CacheFileType;function _0x3890(){var _0x5667bc=['AUDIO','VIDEO','VNAOd','3EFXDUt','819440dYOngK','RRJLQ','3304360WpQtDY','pJUfq','643732YtJvcM','1292914DfkATi','split','kVROy','aYbVD','4|3|1|2|0','11147064wIOeLU','IMAGE','558050ToVTct','PvwdK','DOCUMENT','979728KIcJDF'];_0x3890=function(){return _0x5667bc;};return _0x3890();}(function(_0xc8c05a){var _0x36b80d=_0x3afc,_0xbf6ae0={'kVROy':_0x36b80d(0x1c4),'VNAOd':'OTHER','RRJLQ':_0x36b80d(0x1cb),'aYbVD':_0x36b80d(0x1c9),'PvwdK':_0x36b80d(0x1cc),'pJUfq':_0x36b80d(0x1c6)},_0x2986fe=_0xbf6ae0[_0x36b80d(0x1c2)][_0x36b80d(0x1c1)]('|'),_0x493d32=0x0;while(!![]){switch(_0x2986fe[_0x493d32++]){case'0':_0xc8c05a[_0xc8c05a[_0xbf6ae0[_0x36b80d(0x1cd)]]=0x4]=_0xbf6ae0[_0x36b80d(0x1cd)];continue;case'1':_0xc8c05a[_0xc8c05a[_0xbf6ae0[_0x36b80d(0x1bc)]]=0x2]=_0xbf6ae0[_0x36b80d(0x1bc)];continue;case'2':_0xc8c05a[_0xc8c05a[_0xbf6ae0[_0x36b80d(0x1c3)]]=0x3]=_0xbf6ae0[_0x36b80d(0x1c3)];continue;case'3':_0xc8c05a[_0xc8c05a[_0xbf6ae0[_0x36b80d(0x1c8)]]=0x1]=_0xbf6ae0[_0x36b80d(0x1c8)];continue;case'4':_0xc8c05a[_0xc8c05a[_0xbf6ae0[_0x36b80d(0x1be)]]=0x0]=_0xbf6ae0[_0x36b80d(0x1be)];continue;}break;}}(CacheFileType||(CacheFileType={})));
(function(_0x3f1f62,_0x2ee11c){var _0x4f4168=_0x1a36,_0x13f90b=_0x3f1f62();while(!![]){try{var _0x2671fe=-parseInt(_0x4f4168(0x18f))/0x1+-parseInt(_0x4f4168(0x19b))/0x2+parseInt(_0x4f4168(0x191))/0x3*(-parseInt(_0x4f4168(0x195))/0x4)+parseInt(_0x4f4168(0x190))/0x5*(-parseInt(_0x4f4168(0x19d))/0x6)+-parseInt(_0x4f4168(0x18d))/0x7*(parseInt(_0x4f4168(0x197))/0x8)+parseInt(_0x4f4168(0x196))/0x9+parseInt(_0x4f4168(0x18e))/0xa;if(_0x2671fe===_0x2ee11c)break;else _0x13f90b['push'](_0x13f90b['shift']());}catch(_0x3dff2d){_0x13f90b['push'](_0x13f90b['shift']());}}}(_0x1645,0x957be));function _0x1645(){var _0x474b8a=['5769VVKndC','4|2|3|1|0','BgcgY','IMAGE','1652VUUNFo','9129204TwgQGp','264200vEySjN','split','vUSKZ','GltZX','441688MlxfaN','VIDEO','66dXPnvb','AUDIO','OTHER','119YQvYnT','21765840vhRuVh','696529ktOaZd','138935zZMdZa'];_0x1645=function(){return _0x474b8a;};return _0x1645();};export var CacheFileType;function _0x1a36(_0x50e87d,_0x5dac65){var _0x164580=_0x1645();return _0x1a36=function(_0x1a3616,_0x3ccc21){_0x1a3616=_0x1a3616-0x18c;var _0x54aac9=_0x164580[_0x1a3616];return _0x54aac9;},_0x1a36(_0x50e87d,_0x5dac65);}(function(_0x1145cd){var _0x820379=_0x1a36,_0x25420a={'ANFeE':_0x820379(0x192),'BgcgY':'DOCUMENT','vUSKZ':_0x820379(0x19e),'GltZX':_0x820379(0x194)},_0x3fc4af=_0x25420a['ANFeE'][_0x820379(0x198)]('|'),_0x257f09=0x0;while(!![]){switch(_0x3fc4af[_0x257f09++]){case'0':_0x1145cd[_0x1145cd[_0x820379(0x18c)]=0x4]=_0x820379(0x18c);continue;case'1':_0x1145cd[_0x1145cd['DOCUMENT']=0x3]=_0x25420a[_0x820379(0x193)];continue;case'2':_0x1145cd[_0x1145cd[_0x820379(0x19c)]=0x1]=_0x820379(0x19c);continue;case'3':_0x1145cd[_0x1145cd[_0x25420a[_0x820379(0x199)]]=0x2]=_0x25420a['vUSKZ'];continue;case'4':_0x1145cd[_0x1145cd[_0x25420a[_0x820379(0x19a)]]=0x0]=_0x820379(0x194);continue;}break;}}(CacheFileType||(CacheFileType={})));

View File

@@ -5,7 +5,7 @@ export declare class SendMsgElementConstructor {
static at(atUid: string, atNtUid: string, atType: AtType, atName: string): SendTextElement;
static reply(msgSeq: string, msgId: string, senderUin: string, senderUinStr: string): SendReplyElement;
static pic(picPath: string, summary?: string, subType?: 0 | 1): Promise<SendPicElement>;
static file(filePath: string, fileName?: string): Promise<SendFileElement>;
static file(filePath: string, fileName?: string, folderId?: string): Promise<SendFileElement>;
static video(filePath: string, fileName?: string, diyThumbPath?: string): Promise<SendVideoElement>;
static ptt(pttPath: string): Promise<SendPttElement>;
static face(faceId: number): SendFaceElement;

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
(function(_0x2034f9,_0x19274f){var _0x3d35c6=_0x3722,_0x293d42=_0x2034f9();while(!![]){try{var _0x53324d=parseInt(_0x3d35c6(0x80))/0x1*(parseInt(_0x3d35c6(0x83))/0x2)+parseInt(_0x3d35c6(0x81))/0x3*(-parseInt(_0x3d35c6(0x8c))/0x4)+-parseInt(_0x3d35c6(0x89))/0x5+parseInt(_0x3d35c6(0x8b))/0x6+parseInt(_0x3d35c6(0x7e))/0x7*(parseInt(_0x3d35c6(0x84))/0x8)+parseInt(_0x3d35c6(0x85))/0x9*(parseInt(_0x3d35c6(0x86))/0xa)+-parseInt(_0x3d35c6(0x8a))/0xb;if(_0x53324d===_0x19274f)break;else _0x293d42['push'](_0x293d42['shift']());}catch(_0x3067f9){_0x293d42['push'](_0x293d42['shift']());}}}(_0x4bd8,0xbe31d));function _0x3722(_0x1ee33e,_0x1c8d2f){var _0x4bd832=_0x4bd8();return _0x3722=function(_0x3722de,_0xbfb13f){_0x3722de=_0x3722de-0x7e;var _0x4c7f92=_0x4bd832[_0x3722de];return _0x4c7f92;},_0x3722(_0x1ee33e,_0x1c8d2f);}function _0x4bd8(){var _0x499e08=['557916UncWRI','msPnC','566034ETvbhF','1068920QuxjKp','9DFTrey','6600010tiUMaF','admin','owner','2810670XsVxro','1191564SPXqPw','2770734abvjpP','8aFuyJZ','normal','7IZobXp','ZOLRT','2NUIJnd'];_0x4bd8=function(){return _0x499e08;};return _0x4bd8();}export var GroupMemberRole;(function(_0x1d3ac7){var _0x2e2fa0=_0x3722,_0x2ee60c={'msPnC':_0x2e2fa0(0x8d),'ZOLRT':_0x2e2fa0(0x87)};_0x1d3ac7[_0x1d3ac7[_0x2ee60c[_0x2e2fa0(0x82)]]=0x2]=_0x2ee60c[_0x2e2fa0(0x82)],_0x1d3ac7[_0x1d3ac7[_0x2ee60c[_0x2e2fa0(0x7f)]]=0x3]=_0x2ee60c[_0x2e2fa0(0x7f)],_0x1d3ac7[_0x1d3ac7[_0x2e2fa0(0x88)]=0x4]=_0x2e2fa0(0x88);}(GroupMemberRole||(GroupMemberRole={})));
function _0x4fa9(_0x1b8aa4,_0xe764b9){var _0x574dc5=_0x574d();return _0x4fa9=function(_0x4fa96d,_0xa41fd1){_0x4fa96d=_0x4fa96d-0x18d;var _0x1e1e67=_0x574dc5[_0x4fa96d];return _0x1e1e67;},_0x4fa9(_0x1b8aa4,_0xe764b9);}(function(_0x27cc84,_0x27d8d5){var _0x42e11a=_0x4fa9,_0x310382=_0x27cc84();while(!![]){try{var _0x1ebcec=-parseInt(_0x42e11a(0x192))/0x1*(-parseInt(_0x42e11a(0x198))/0x2)+-parseInt(_0x42e11a(0x191))/0x3+parseInt(_0x42e11a(0x19a))/0x4*(parseInt(_0x42e11a(0x18e))/0x5)+parseInt(_0x42e11a(0x18f))/0x6+-parseInt(_0x42e11a(0x197))/0x7+parseInt(_0x42e11a(0x18d))/0x8+parseInt(_0x42e11a(0x193))/0x9;if(_0x1ebcec===_0x27d8d5)break;else _0x310382['push'](_0x310382['shift']());}catch(_0x222867){_0x310382['push'](_0x310382['shift']());}}}(_0x574d,0x74020));export var GroupMemberRole;(function(_0x437fbe){var _0x3fd34e=_0x4fa9,_0x419352={'qinqD':_0x3fd34e(0x199),'TRIDz':_0x3fd34e(0x190),'fjWzM':_0x3fd34e(0x19b)};_0x437fbe[_0x437fbe[_0x419352[_0x3fd34e(0x194)]]=0x2]=_0x419352[_0x3fd34e(0x194)],_0x437fbe[_0x437fbe[_0x419352[_0x3fd34e(0x195)]]=0x3]=_0x419352[_0x3fd34e(0x195)],_0x437fbe[_0x437fbe['owner']=0x4]=_0x419352[_0x3fd34e(0x196)];}(GroupMemberRole||(GroupMemberRole={})));function _0x574d(){var _0x5ab7f4=['1277586OHOfft','admin','2027889ZIVNBv','19993BIGMwG','2169621YDVhPi','qinqD','TRIDz','fjWzM','3525746GeiZUe','44VqhrQR','normal','1802172GkXOoH','owner','2483360aEVIHp','5ttzTHk'];_0x574d=function(){return _0x5ab7f4;};return _0x574d();}

View File

@@ -1 +1 @@
(function(_0x31c8d5,_0x20b270){var _0x1bd470=_0x5704,_0x12e48a=_0x31c8d5();while(!![]){try{var _0x52ebf4=parseInt(_0x1bd470(0xf9))/0x1+-parseInt(_0x1bd470(0xf8))/0x2*(parseInt(_0x1bd470(0xf2))/0x3)+parseInt(_0x1bd470(0xf6))/0x4+parseInt(_0x1bd470(0xfc))/0x5*(parseInt(_0x1bd470(0xf5))/0x6)+parseInt(_0x1bd470(0xf4))/0x7+parseInt(_0x1bd470(0xf3))/0x8*(-parseInt(_0x1bd470(0xfb))/0x9)+parseInt(_0x1bd470(0xf7))/0xa*(parseInt(_0x1bd470(0xfa))/0xb);if(_0x52ebf4===_0x20b270)break;else _0x12e48a['push'](_0x12e48a['shift']());}catch(_0x5c08e6){_0x12e48a['push'](_0x12e48a['shift']());}}}(_0x153a,0xb9dbd));function _0x5704(_0x36b321,_0x596c16){var _0x153a10=_0x153a();return _0x5704=function(_0x570489,_0x2da390){_0x570489=_0x570489-0xf2;var _0x1c99e4=_0x153a10[_0x570489];return _0x1c99e4;},_0x5704(_0x36b321,_0x596c16);}export*from'./user';export*from'./group';export*from'./msg';function _0x153a(){var _0x56ca13=['44YkNSWR','9eCozhL','20zOAQno','3sCByOi','9783536BAXjdW','5570236WYZLPC','518490nctbWJ','1439224evHEdt','977770UAzBYM','2089744gePXAM','1136769hGmpbd'];_0x153a=function(){return _0x56ca13;};return _0x153a();}export*from'./notify';export*from'./cache';export*from'./constructor';
(function(_0x398a76,_0x4edc0d){var _0x1febae=_0x15a8,_0x7ccf83=_0x398a76();while(!![]){try{var _0x288ef6=-parseInt(_0x1febae(0xfe))/0x1*(parseInt(_0x1febae(0xf8))/0x2)+parseInt(_0x1febae(0xfa))/0x3+parseInt(_0x1febae(0xfd))/0x4*(-parseInt(_0x1febae(0xfc))/0x5)+-parseInt(_0x1febae(0xf9))/0x6+-parseInt(_0x1febae(0x100))/0x7+-parseInt(_0x1febae(0xff))/0x8+-parseInt(_0x1febae(0xf7))/0x9*(-parseInt(_0x1febae(0xfb))/0xa);if(_0x288ef6===_0x4edc0d)break;else _0x7ccf83['push'](_0x7ccf83['shift']());}catch(_0xe88819){_0x7ccf83['push'](_0x7ccf83['shift']());}}}(_0x4607,0x45a64));function _0x15a8(_0x543c74,_0x494cdd){var _0x460773=_0x4607();return _0x15a8=function(_0x15a843,_0x34a8bd){_0x15a843=_0x15a843-0xf7;var _0x23446a=_0x460773[_0x15a843];return _0x23446a;},_0x15a8(_0x543c74,_0x494cdd);}function _0x4607(){var _0x1d7141=['550EjbNQG','63435lAeZpw','24wNkwXj','563147CknCoR','3543824KPiNeO','1742727PvunvK','257625HjFBnz','2GSqeQw','758706HCAzzU','505704CasaQC'];_0x4607=function(){return _0x1d7141;};return _0x4607();}export*from'./user';export*from'./group';export*from'./msg';export*from'./notify';export*from'./cache';export*from'./constructor';

View File

@@ -115,6 +115,7 @@ export interface FileElement {
fileSize: string;
picHeight?: number;
picWidth?: number;
folderId?: string;
picThumbPath?: Map<number, string>;
file10MMd5?: string;
fileSha?: string;
@@ -156,6 +157,48 @@ export declare enum ChatType {
chatDevice = 8,//移动设备?
temp = 100
}
export declare enum ChatType2 {
KCHATTYPEADELIE = 42,
KCHATTYPEBUDDYNOTIFY = 5,
KCHATTYPEC2C = 1,
KCHATTYPECIRCLE = 113,
KCHATTYPEDATALINE = 8,
KCHATTYPEDATALINEMQQ = 134,
KCHATTYPEDISC = 3,
KCHATTYPEFAV = 41,
KCHATTYPEGAMEMESSAGE = 105,
KCHATTYPEGAMEMESSAGEFOLDER = 116,
KCHATTYPEGROUP = 2,
KCHATTYPEGROUPBLESS = 133,
KCHATTYPEGROUPGUILD = 9,
KCHATTYPEGROUPHELPER = 7,
KCHATTYPEGROUPNOTIFY = 6,
KCHATTYPEGUILD = 4,
KCHATTYPEGUILDMETA = 16,
KCHATTYPEMATCHFRIEND = 104,
KCHATTYPEMATCHFRIENDFOLDER = 109,
KCHATTYPENEARBY = 106,
KCHATTYPENEARBYASSISTANT = 107,
KCHATTYPENEARBYFOLDER = 110,
KCHATTYPENEARBYHELLOFOLDER = 112,
KCHATTYPENEARBYINTERACT = 108,
KCHATTYPEQQNOTIFY = 132,
KCHATTYPERELATEACCOUNT = 131,
KCHATTYPESERVICEASSISTANT = 118,
KCHATTYPESERVICEASSISTANTSUB = 201,
KCHATTYPESQUAREPUBLIC = 115,
KCHATTYPESUBSCRIBEFOLDER = 30,
KCHATTYPETEMPADDRESSBOOK = 111,
KCHATTYPETEMPBUSSINESSCRM = 102,
KCHATTYPETEMPC2CFROMGROUP = 100,
KCHATTYPETEMPC2CFROMUNKNOWN = 99,
KCHATTYPETEMPFRIENDVERIFY = 101,
KCHATTYPETEMPNEARBYPRO = 119,
KCHATTYPETEMPPUBLICACCOUNT = 103,
KCHATTYPETEMPWPA = 117,
KCHATTYPEUNKNOWN = 0,
KCHATTYPEWEIYUN = 40
}
export interface PttElement {
canConvert2Text: boolean;
duration: number;
@@ -272,6 +315,19 @@ export interface VideoElement {
import_rich_media_context?: null;
sourceVideoCodecFormat?: number;
}
export declare enum viedo_type {
VIDEO_FORMAT_AFS = 7,
VIDEO_FORMAT_AVI = 1,
VIDEO_FORMAT_MKV = 4,
VIDEO_FORMAT_MOD = 9,
VIDEO_FORMAT_MOV = 8,
VIDEO_FORMAT_MP4 = 2,
VIDEO_FORMAT_MTS = 11,
VIDEO_FORMAT_RM = 6,
VIDEO_FORMAT_RMVB = 5,
VIDEO_FORMAT_TS = 10,
VIDEO_FORMAT_WMV = 3
}
export interface MarkdownElement {
content: string;
}

File diff suppressed because one or more lines are too long

View File

@@ -54,8 +54,26 @@ export declare enum GroupRequestOperateTypes {
approve = 1,
reject = 2
}
export declare enum BuddyReqType {
KMEINITIATOR = 0,
KPEERINITIATOR = 1,
KMEAGREED = 2,
KMEAGREEDANDADDED = 3,
KPEERAGREED = 4,
KPEERAGREEDANDADDED = 5,
KPEERREFUSED = 6,
KMEREFUSED = 7,
KMEIGNORED = 8,
KMEAGREEANYONE = 9,
KMESETQUESTION = 10,
KMEAGREEANDADDFAILED = 11,
KMSGINFO = 12,
KMEINITIATORWAITPEERCONFIRM = 13
}
export interface FriendRequest {
isDecide: boolean;
friendUid: string;
reqType: BuddyReqType;
reqTime: string;
extWords: string;
isUnread: boolean;
@@ -67,3 +85,39 @@ export interface FriendRequestNotify {
unreadNums: number;
buddyReqs: FriendRequest[];
}
export declare enum MemberExtSourceType {
DEFAULTTYPE = 0,
TITLETYPE = 1,
NEWGROUPTYPE = 2
}
export interface GroupExtParam {
groupCode: string;
seq: string;
beginUin: string;
dataTime: string;
uinList: Array<string>;
uinNum: string;
groupType: string;
richCardNameVer: string;
sourceType: MemberExtSourceType;
memberExtFilter: {
memberLevelInfoUin: number;
memberLevelInfoPoint: number;
memberLevelInfoActiveDay: number;
memberLevelInfoLevel: number;
memberLevelInfoName: number;
levelName: number;
dataTime: number;
userShowFlag: number;
sysShowFlag: number;
timeToUpdate: number;
nickName: number;
specialTitle: number;
levelNameNew: number;
userShowFlagNew: number;
msgNeedField: number;
cmdUinFlagExt3Grocery: number;
memberIcon: number;
memberInfoSeq: number;
};
}

File diff suppressed because one or more lines are too long

View File

@@ -9,6 +9,17 @@ export interface BuddyCategoryType {
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;
@@ -87,3 +98,76 @@ export interface SelfInfo extends User {
}
export interface Friend extends User {
}
export declare enum BizKey {
KPRIVILEGEICON = 0,
KPHOTOWALL = 1
}
export interface UserDetailInfoByUin {
result: number;
errMsg: string;
info: {
uid: string;
qid: string;
uin: string;
nick: string;
remark: string;
longNick: string;
avatarUrl: string;
birthday_year: number;
birthday_month: number;
birthday_day: number;
sex: 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;
termType: number;
labels: any[];
qqLevel: {
crownNum: number;
sunNum: number;
moonNum: number;
starNum: number;
};
isHideQQLevel: number;
privilegeIcon: {
jumpUrl: string;
openIconList: any[];
closeIconList: any[];
};
isHidePrivilegeIcon: number;
photoWall: {
picList: any[];
};
vipFlag: boolean;
yearVipFlag: boolean;
svipFlag: boolean;
vipLevel: number;
status: number;
qidianMasterFlag: number;
qidianCrewFlag: number;
qidianCrewFlag2: number;
extStatus: number;
recommendImgFlag: number;
disableEmojiShortCuts: number;
pendantId: string;
vipNameColorId: string;
};
}

View File

@@ -1 +1 @@
(function(_0x3ee976,_0xa64d14){var _0xec1edf=_0x25c0,_0x2bd8fa=_0x3ee976();while(!![]){try{var _0x5705=-parseInt(_0xec1edf(0xc7))/0x1+parseInt(_0xec1edf(0xcd))/0x2+parseInt(_0xec1edf(0xce))/0x3*(-parseInt(_0xec1edf(0xc6))/0x4)+parseInt(_0xec1edf(0xc2))/0x5+-parseInt(_0xec1edf(0xcb))/0x6*(-parseInt(_0xec1edf(0xc3))/0x7)+-parseInt(_0xec1edf(0xc9))/0x8*(-parseInt(_0xec1edf(0xc5))/0x9)+-parseInt(_0xec1edf(0xcc))/0xa;if(_0x5705===_0xa64d14)break;else _0x2bd8fa['push'](_0x2bd8fa['shift']());}catch(_0x143f7d){_0x2bd8fa['push'](_0x2bd8fa['shift']());}}}(_0x2e55,0x6fb6c));export var Sex;function _0x25c0(_0x17fdd9,_0x2880bb){var _0x2e5508=_0x2e55();return _0x25c0=function(_0x25c032,_0x470880){_0x25c032=_0x25c032-0xc2;var _0x4f2ae6=_0x2e5508[_0x25c032];return _0x4f2ae6;},_0x25c0(_0x17fdd9,_0x2880bb);}function _0x2e55(){var _0x3be66c=['1260096VULntu','129HBtsVI','NFUlN','292765zAIUff','7WruVck','male','341973LBJSdT','76672ShnRlQ','127472rYNDnT','tucCh','104MsmiMj','unknown','1987314GIRmDo','1045050UDRkcl'];_0x2e55=function(){return _0x3be66c;};return _0x2e55();}(function(_0x2dd864){var _0x4790a8=_0x25c0,_0x36e2b1={'eSSAt':_0x4790a8(0xc4),'NFUlN':'female','tucCh':_0x4790a8(0xca)};_0x2dd864[_0x2dd864[_0x36e2b1['eSSAt']]=0x1]=_0x4790a8(0xc4),_0x2dd864[_0x2dd864[_0x36e2b1['NFUlN']]=0x2]=_0x36e2b1[_0x4790a8(0xcf)],_0x2dd864[_0x2dd864[_0x36e2b1[_0x4790a8(0xc8)]]=0xff]='unknown';}(Sex||(Sex={})));
(function(_0xcbb36a,_0x16d7e2){var _0x40581a=_0x384c,_0x36ae05=_0xcbb36a();while(!![]){try{var _0x351061=-parseInt(_0x40581a(0x7d))/0x1+parseInt(_0x40581a(0x75))/0x2*(parseInt(_0x40581a(0x84))/0x3)+-parseInt(_0x40581a(0x80))/0x4+parseInt(_0x40581a(0x77))/0x5*(-parseInt(_0x40581a(0x7a))/0x6)+-parseInt(_0x40581a(0x74))/0x7+parseInt(_0x40581a(0x78))/0x8+parseInt(_0x40581a(0x7b))/0x9;if(_0x351061===_0x16d7e2)break;else _0x36ae05['push'](_0x36ae05['shift']());}catch(_0x289261){_0x36ae05['push'](_0x36ae05['shift']());}}}(_0x4268,0xc904a));export var Sex;function _0x4268(){var _0x30bfec=['3824064FEUoER','KPHOTOWALL','Troww','urdzG','41706rouBmE','4941132nkRnkx','154ZsDGaP','mAzVH','15HGefOY','8965688nAXyYI','unknown','715014ouhrta','18962010cPnrzu','PcVvq','1455286yfVScl','KPRIVILEGEICON','male'];_0x4268=function(){return _0x30bfec;};return _0x4268();}function _0x384c(_0x4c016f,_0x4adf98){var _0x42683d=_0x4268();return _0x384c=function(_0x384c15,_0x1538af){_0x384c15=_0x384c15-0x74;var _0x49467c=_0x42683d[_0x384c15];return _0x49467c;},_0x384c(_0x4c016f,_0x4adf98);}(function(_0x3a1050){var _0x2b42c5=_0x384c,_0x39ecd8={'qjRxI':_0x2b42c5(0x7f),'PcVvq':'female','Troww':_0x2b42c5(0x79)};_0x3a1050[_0x3a1050['male']=0x1]=_0x39ecd8['qjRxI'],_0x3a1050[_0x3a1050[_0x39ecd8[_0x2b42c5(0x7c)]]=0x2]=_0x39ecd8[_0x2b42c5(0x7c)],_0x3a1050[_0x3a1050[_0x39ecd8[_0x2b42c5(0x82)]]=0xff]=_0x39ecd8['Troww'];}(Sex||(Sex={})));export var BizKey;(function(_0x13d00b){var _0x411529=_0x384c,_0x167647={'mAzVH':'KPRIVILEGEICON','urdzG':_0x411529(0x81)};_0x13d00b[_0x13d00b[_0x411529(0x7e)]=0x0]=_0x167647[_0x411529(0x76)],_0x13d00b[_0x13d00b[_0x167647[_0x411529(0x83)]]=0x1]=_0x167647[_0x411529(0x83)];}(BizKey||(BizKey={})));

View File

@@ -1,8 +0,0 @@
declare class HookApi {
private readonly moeHook;
constructor();
getRKey(): string;
isAvailable(): boolean;
}
export declare const hookApi: HookApi;
export {};

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
(function(_0x37e38c,_0x46b592){var _0x1ad48d=_0x1fc3,_0x3b8733=_0x37e38c();while(!![]){try{var _0x7c7bc0=parseInt(_0x1ad48d(0x1a9))/0x1*(parseInt(_0x1ad48d(0x1a4))/0x2)+-parseInt(_0x1ad48d(0x1a1))/0x3*(parseInt(_0x1ad48d(0x1a6))/0x4)+parseInt(_0x1ad48d(0x1a8))/0x5+-parseInt(_0x1ad48d(0x1a5))/0x6+parseInt(_0x1ad48d(0x1a7))/0x7*(parseInt(_0x1ad48d(0x1a2))/0x8)+parseInt(_0x1ad48d(0x1aa))/0x9*(-parseInt(_0x1ad48d(0x1a0))/0xa)+parseInt(_0x1ad48d(0x1a3))/0xb;if(_0x7c7bc0===_0x46b592)break;else _0x3b8733['push'](_0x3b8733['shift']());}catch(_0x237e37){_0x3b8733['push'](_0x3b8733['shift']());}}}(_0x26db,0x26046));import _0x1f10ff from'./wrapper';export*from'./adapters';function _0x1fc3(_0x516520,_0x465eaa){var _0x26db91=_0x26db();return _0x1fc3=function(_0x1fc324,_0xfeb36d){_0x1fc324=_0x1fc324-0x1a0;var _0x2fc4db=_0x26db91[_0x1fc324];return _0x2fc4db;},_0x1fc3(_0x516520,_0x465eaa);}function _0x26db(){var _0x21f0d7=['45ZpGKQN','466510yoNTNh','9GNsqeC','64PjrFGv','4209821sygikX','6AkkaNJ','1841946OcaNvT','192036YXZJBv','153643jhwZcT','1007925jClIza','26701CaIPmu'];_0x26db=function(){return _0x21f0d7;};return _0x26db();}export*from'./apis';export*from'./entities';export*from'./listeners';export*from'./services';export*as Adapters from'./adapters';export*as APIs from'./apis';export*as Entities from'./entities';export*as Listeners from'./listeners';export*as Services from'./services';export{_0x1f10ff as Wrapper};export*as WrapperInterface from'./wrapper';export*as SessionConfig from'./sessionConfig';export{napCatCore}from'./core';
(function(_0x26ee1c,_0x347a8a){var _0x3b74ce=_0x1c2c,_0x5f5006=_0x26ee1c();while(!![]){try{var _0x208979=-parseInt(_0x3b74ce(0x12c))/0x1+parseInt(_0x3b74ce(0x129))/0x2*(parseInt(_0x3b74ce(0x131))/0x3)+-parseInt(_0x3b74ce(0x132))/0x4+parseInt(_0x3b74ce(0x12b))/0x5*(-parseInt(_0x3b74ce(0x130))/0x6)+-parseInt(_0x3b74ce(0x12e))/0x7*(-parseInt(_0x3b74ce(0x12d))/0x8)+-parseInt(_0x3b74ce(0x133))/0x9*(-parseInt(_0x3b74ce(0x12f))/0xa)+parseInt(_0x3b74ce(0x12a))/0xb;if(_0x208979===_0x347a8a)break;else _0x5f5006['push'](_0x5f5006['shift']());}catch(_0x1154ac){_0x5f5006['push'](_0x5f5006['shift']());}}}(_0x2553,0x8aed2));import _0x5bdf5e from'./wrapper';function _0x2553(){var _0x1181a9=['65yTZpQk','1135849odFnGK','8nGmFrx','3470369ygdNlR','16070DGQfHZ','224154dGvkEW','6TStjKL','1572392GIeRbN','1089OjgKVt','93038vMiqFC','19804444KSxapC'];_0x2553=function(){return _0x1181a9;};return _0x2553();}function _0x1c2c(_0x4b199f,_0x2845be){var _0x25538a=_0x2553();return _0x1c2c=function(_0x1c2c2e,_0xd2814d){_0x1c2c2e=_0x1c2c2e-0x129;var _0x188a69=_0x25538a[_0x1c2c2e];return _0x188a69;},_0x1c2c(_0x4b199f,_0x2845be);}export*from'./adapters';export*from'./apis';export*from'./entities';export*from'./listeners';export*from'./services';export*as Adapters from'./adapters';export*as APIs from'./apis';export*as Entities from'./entities';export*as Listeners from'./listeners';export*as Services from'./services';export{_0x5bdf5e as Wrapper};export*as WrapperInterface from'./wrapper';export*as SessionConfig from'./sessionConfig';export{napCatCore}from'./core';

View File

@@ -1 +1 @@
var _0x292e66=_0x408c;(function(_0x5d01e5,_0x5b3407){var _0x5d9314=_0x408c,_0x5cbe11=_0x5d01e5();while(!![]){try{var _0x20fbf4=-parseInt(_0x5d9314(0x16b))/0x1+parseInt(_0x5d9314(0x158))/0x2+-parseInt(_0x5d9314(0x15d))/0x3+parseInt(_0x5d9314(0x161))/0x4+-parseInt(_0x5d9314(0x155))/0x5*(parseInt(_0x5d9314(0x167))/0x6)+parseInt(_0x5d9314(0x162))/0x7*(-parseInt(_0x5d9314(0x16a))/0x8)+parseInt(_0x5d9314(0x168))/0x9;if(_0x20fbf4===_0x5b3407)break;else _0x5cbe11['push'](_0x5cbe11['shift']());}catch(_0x44361e){_0x5cbe11['push'](_0x5cbe11['shift']());}}}(_0x9247,0x6796b));export class BuddyListener{[_0x292e66(0x157)](_0x410666){}['onAddMeSettingChanged'](_0x1ee735){}[_0x292e66(0x159)](_0x41a79d){}[_0x292e66(0x15e)](_0x4da590){}[_0x292e66(0x15c)](_0x5e88a5){}['onBuddyInfoChange'](_0x63ad24){}[_0x292e66(0x15a)](_0x1f487d){}[_0x292e66(0x165)](_0x1ade44){}['onBuddyReqChange'](_0x3da30d){}[_0x292e66(0x163)](_0x3ff216){}[_0x292e66(0x160)](_0x424323){}[_0x292e66(0x164)](_0x3640c1){}[_0x292e66(0x169)](_0x435444){}[_0x292e66(0x156)](_0x47c732){}[_0x292e66(0x15b)](_0x840f06){}[_0x292e66(0x15f)](_0x33e96d){}[_0x292e66(0x166)](_0x1f9127){}}function _0x408c(_0x2b4739,_0x21388f){var _0x92478b=_0x9247();return _0x408c=function(_0x408c30,_0x2a8add){_0x408c30=_0x408c30-0x155;var _0x451a53=_0x92478b[_0x408c30];return _0x451a53;},_0x408c(_0x2b4739,_0x21388f);}function _0x9247(){var _0x4d2755=['754527KgATFb','95dbDbOu','onDoubtBuddyReqUnreadNumChange','onAddBuddyNeedVerify','1663772CIeVOt','onAvatarUrlUpdated','onBuddyListChange','onNickUpdated','onBuddyDetailInfoChange','738636qYwbLb','onBlockChanged','onSmartInfos','onCheckBuddySettingResult','1362460vDnpGk','7kAhBlU','onBuddyReqUnreadCntChange','onDelBatchBuddyInfos','onBuddyRemarkUpdated','onSpacePermissionInfos','38478XIaISJ','5825007QVYHPs','onDoubtBuddyReqChange','2182712ELxQsd'];_0x9247=function(){return _0x4d2755;};return _0x9247();}
function _0x2bb7(_0x1ba2fb,_0x1fa335){var _0x5d051e=_0x5d05();return _0x2bb7=function(_0x2bb74a,_0x1eeb6d){_0x2bb74a=_0x2bb74a-0x9f;var _0x13da0f=_0x5d051e[_0x2bb74a];return _0x13da0f;},_0x2bb7(_0x1ba2fb,_0x1fa335);}var _0x55766b=_0x2bb7;(function(_0xed1e81,_0x58aa45){var _0x1ecd44=_0x2bb7,_0xed3926=_0xed1e81();while(!![]){try{var _0x50db8c=parseInt(_0x1ecd44(0xac))/0x1*(-parseInt(_0x1ecd44(0xa8))/0x2)+parseInt(_0x1ecd44(0xa2))/0x3+parseInt(_0x1ecd44(0xae))/0x4+parseInt(_0x1ecd44(0xa4))/0x5+parseInt(_0x1ecd44(0xaf))/0x6*(parseInt(_0x1ecd44(0xb1))/0x7)+-parseInt(_0x1ecd44(0x9f))/0x8+-parseInt(_0x1ecd44(0xad))/0x9;if(_0x50db8c===_0x58aa45)break;else _0xed3926['push'](_0xed3926['shift']());}catch(_0x50877c){_0xed3926['push'](_0xed3926['shift']());}}}(_0x5d05,0x6d31d));function _0x5d05(){var _0x1307df=['2541500wJBiMp','330LepRXY','onCheckBuddySettingResult','72898AXXYfE','onDoubtBuddyReqChange','onBlockChanged','6322944JLcTXf','onBuddyReqChange','onAddMeSettingChanged','1440495ACcsnc','onAddBuddyNeedVerify','3721535OvKkss','onBuddyRemarkUpdated','onDoubtBuddyReqUnreadNumChange','onDelBatchBuddyInfos','2316khtnfV','onAvatarUrlUpdated','onBuddyInfoChange','onBuddyListChange','578XvRoko','4730976cZSniZ'];_0x5d05=function(){return _0x1307df;};return _0x5d05();}export class BuddyListener{[_0x55766b(0xa3)](_0x352285){}[_0x55766b(0xa1)](_0x23e722){}[_0x55766b(0xa9)](_0x30aa2d){}[_0x55766b(0xb3)](_0x37955a){}['onBuddyDetailInfoChange'](_0x31fc44){}[_0x55766b(0xaa)](_0x193460){}[_0x55766b(0xab)](_0x11181b){}[_0x55766b(0xa5)](_0x225269){}[_0x55766b(0xa0)](_0x45dd04){}['onBuddyReqUnreadCntChange'](_0x2a878c){}[_0x55766b(0xb0)](_0x30b930){}[_0x55766b(0xa7)](_0x37a6df){}[_0x55766b(0xb2)](_0x124df8){}[_0x55766b(0xa6)](_0x4ca9b9){}['onNickUpdated'](_0x1065ff){}['onSmartInfos'](_0xb5497f){}['onSpacePermissionInfos'](_0x172c6a){}}

View File

@@ -1 +1 @@
var _0x1adcbf=_0x1b9b;(function(_0xca21c7,_0x160d92){var _0x19ced5=_0x1b9b,_0x9aa90a=_0xca21c7();while(!![]){try{var _0x1d5774=-parseInt(_0x19ced5(0x175))/0x1*(parseInt(_0x19ced5(0x17e))/0x2)+parseInt(_0x19ced5(0x178))/0x3*(parseInt(_0x19ced5(0x177))/0x4)+parseInt(_0x19ced5(0x17b))/0x5+parseInt(_0x19ced5(0x17f))/0x6*(parseInt(_0x19ced5(0x180))/0x7)+parseInt(_0x19ced5(0x176))/0x8+parseInt(_0x19ced5(0x179))/0x9+-parseInt(_0x19ced5(0x181))/0xa*(parseInt(_0x19ced5(0x17c))/0xb);if(_0x1d5774===_0x160d92)break;else _0x9aa90a['push'](_0x9aa90a['shift']());}catch(_0x47b6d9){_0x9aa90a['push'](_0x9aa90a['shift']());}}}(_0xe79e,0x933c4));function _0xe79e(){var _0x3e245d=['6139152QawvHJ','8516wmUcin','1287mBugaw','10121778FinZwJ','onSessionListChanged','1788210TLwlms','19420753DBHaDu','onFileSearch','2042442OcBbVA','1360806qxjsRO','7HHPthi','10UDEYho','1siONvR'];_0xe79e=function(){return _0x3e245d;};return _0xe79e();}function _0x1b9b(_0x11c4ac,_0x107115){var _0xe79e5f=_0xe79e();return _0x1b9b=function(_0x1b9b32,_0xb2be5a){_0x1b9b32=_0x1b9b32-0x175;var _0x445aab=_0xe79e5f[_0x1b9b32];return _0x445aab;},_0x1b9b(_0x11c4ac,_0x107115);}export class KernelFileAssistantListener{['onFileStatusChanged'](..._0x49cc07){}[_0x1adcbf(0x17a)](..._0x2f732c){}['onSessionChanged'](..._0x50aa79){}['onFileListChanged'](..._0x261e02){}[_0x1adcbf(0x17d)](..._0x2a3c4e){}}
var _0x2b51aa=_0x3208;(function(_0x486983,_0xeab1b7){var _0x23adb6=_0x3208,_0x278562=_0x486983();while(!![]){try{var _0x2ea51c=parseInt(_0x23adb6(0x135))/0x1*(parseInt(_0x23adb6(0x136))/0x2)+-parseInt(_0x23adb6(0x13b))/0x3*(-parseInt(_0x23adb6(0x133))/0x4)+-parseInt(_0x23adb6(0x138))/0x5*(-parseInt(_0x23adb6(0x13a))/0x6)+-parseInt(_0x23adb6(0x139))/0x7+-parseInt(_0x23adb6(0x134))/0x8+parseInt(_0x23adb6(0x132))/0x9*(parseInt(_0x23adb6(0x130))/0xa)+parseInt(_0x23adb6(0x131))/0xb*(-parseInt(_0x23adb6(0x12f))/0xc);if(_0x2ea51c===_0xeab1b7)break;else _0x278562['push'](_0x278562['shift']());}catch(_0x3899b4){_0x278562['push'](_0x278562['shift']());}}}(_0x5309,0x3cca8));function _0x5309(){var _0x85660b=['561216fkvvKE','9503SDyjiz','10nSdxKL','onFileListChanged','1055vaTWGm','663922CCCsjV','9510tTnHtN','194925oAkCgf','onFileStatusChanged','24UcblqO','60IDNWwd','2092794GmMzTv','423909awrtMO','8qZpgOG'];_0x5309=function(){return _0x85660b;};return _0x5309();}function _0x3208(_0x68db52,_0x5a2238){var _0x530974=_0x5309();return _0x3208=function(_0x320815,_0x449cfe){_0x320815=_0x320815-0x12e;var _0x4e4080=_0x530974[_0x320815];return _0x4e4080;},_0x3208(_0x68db52,_0x5a2238);}export class KernelFileAssistantListener{[_0x2b51aa(0x12e)](..._0x32460a){}['onSessionListChanged'](..._0x14a29d){}['onSessionChanged'](..._0x51d076){}[_0x2b51aa(0x137)](..._0x5c162b){}['onFileSearch'](..._0x3ce1b8){}}

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
var _0x2c9271=_0x2441;function _0x810d(){var _0x473b2d=['onQRCodeGetPicture','10068rgXaah','7HgAPvd','onQRCodeSessionFailed','onQRCodeLoginSucceed','onQRCodeSessionUserScaned','8657yleLIM','onLogoutFailed','onLoginState','onLoginConnected','onQRCodeLoginPollingStarted','7090ZAjOGf','308586YUcDTb','onLoginDisConnected','1kFcDHH','145QoEWJC','onQQLoginNumLimited','617538wbiYdZ','41181ZPGNke','onUserLoggedIn','2083815KKgubK','1611344GBgDjM','onQRCodeSessionQuickLoginFailed'];_0x810d=function(){return _0x473b2d;};return _0x810d();}function _0x2441(_0x57de59,_0x3c9504){var _0x810d97=_0x810d();return _0x2441=function(_0x2441c5,_0x2be93c){_0x2441c5=_0x2441c5-0xf4;var _0x172168=_0x810d97[_0x2441c5];return _0x172168;},_0x2441(_0x57de59,_0x3c9504);}(function(_0x5d2564,_0x3a6e7b){var _0x4ddbd6=_0x2441,_0x4f7c38=_0x5d2564();while(!![]){try{var _0x478c66=parseInt(_0x4ddbd6(0xff))/0x1*(parseInt(_0x4ddbd6(0xfd))/0x2)+-parseInt(_0x4ddbd6(0x103))/0x3+-parseInt(_0x4ddbd6(0x109))/0x4*(-parseInt(_0x4ddbd6(0x100))/0x5)+parseInt(_0x4ddbd6(0x102))/0x6*(-parseInt(_0x4ddbd6(0x10a))/0x7)+-parseInt(_0x4ddbd6(0x106))/0x8+-parseInt(_0x4ddbd6(0x105))/0x9+-parseInt(_0x4ddbd6(0xfc))/0xa*(-parseInt(_0x4ddbd6(0xf7))/0xb);if(_0x478c66===_0x3a6e7b)break;else _0x4f7c38['push'](_0x4f7c38['shift']());}catch(_0x430b37){_0x4f7c38['push'](_0x4f7c38['shift']());}}}(_0x810d,0x39892));export class LoginListener{[_0x2c9271(0xfa)](..._0x1f1596){}[_0x2c9271(0xfe)](..._0xd4f402){}['onLoginConnecting'](..._0x318d1f){}[_0x2c9271(0x108)](_0x45438e){}[_0x2c9271(0xfb)](..._0x42cefb){}[_0x2c9271(0xf6)](..._0x5bd745){}[_0x2c9271(0xf5)](_0x1aa59f){}[_0x2c9271(0xf4)](..._0x133a58){}['onLoginFailed'](..._0x179973){}['onLogoutSucceed'](..._0x427d4a){}[_0x2c9271(0xf8)](..._0x254160){}[_0x2c9271(0x104)](..._0x2aec2a){}[_0x2c9271(0x107)](..._0x1b9b75){}['onPasswordLoginFailed'](..._0x384c7a){}['OnConfirmUnusualDeviceFailed'](..._0x3f3b78){}[_0x2c9271(0x101)](..._0x5dfafe){}[_0x2c9271(0xf9)](..._0x31d398){}}
var _0x18d69d=_0x24e9;(function(_0x29c4c4,_0x534f03){var _0x4f7367=_0x24e9,_0x23a3e8=_0x29c4c4();while(!![]){try{var _0x3b8246=-parseInt(_0x4f7367(0x1e0))/0x1*(parseInt(_0x4f7367(0x1e1))/0x2)+parseInt(_0x4f7367(0x1e4))/0x3+parseInt(_0x4f7367(0x1e5))/0x4+parseInt(_0x4f7367(0x1eb))/0x5+-parseInt(_0x4f7367(0x1ec))/0x6+-parseInt(_0x4f7367(0x1d7))/0x7+-parseInt(_0x4f7367(0x1dc))/0x8*(-parseInt(_0x4f7367(0x1d5))/0x9);if(_0x3b8246===_0x534f03)break;else _0x23a3e8['push'](_0x23a3e8['shift']());}catch(_0x1da054){_0x23a3e8['push'](_0x23a3e8['shift']());}}}(_0x521d,0x1e837));function _0x521d(){var _0x572c3a=['849107DXyCgK','onLoginFailed','onLoginDisConnected','onQQLoginNumLimited','onUserLoggedIn','8HRvuyX','onQRCodeLoginSucceed','onQRCodeSessionUserScaned','onPasswordLoginFailed','1kZVXMk','270934tNqFAL','onQRCodeGetPicture','onLogoutSucceed','51873QXbpuL','968032WyItBB','onQRCodeSessionFailed','onLogoutFailed','onLoginConnecting','onQRCodeLoginPollingStarted','onQRCodeSessionQuickLoginFailed','529990mrseDO','132372MRWerd','346644DPDAbQ','onLoginState'];_0x521d=function(){return _0x572c3a;};return _0x521d();}function _0x24e9(_0x3d6ed7,_0x200ed9){var _0x521df5=_0x521d();return _0x24e9=function(_0x24e9d2,_0x4429b7){_0x24e9d2=_0x24e9d2-0x1d5;var _0x5ae2b3=_0x521df5[_0x24e9d2];return _0x5ae2b3;},_0x24e9(_0x3d6ed7,_0x200ed9);}export class LoginListener{['onLoginConnected'](..._0x3f5179){}[_0x18d69d(0x1d9)](..._0x199f1b){}[_0x18d69d(0x1e8)](..._0x35c381){}[_0x18d69d(0x1e2)](_0x7d452f){}[_0x18d69d(0x1e9)](..._0x393afb){}[_0x18d69d(0x1de)](..._0x13435f){}[_0x18d69d(0x1dd)](_0xedb6fa){}[_0x18d69d(0x1e6)](..._0x4cefa2){}[_0x18d69d(0x1d8)](..._0x380bd){}[_0x18d69d(0x1e3)](..._0x578b8b){}[_0x18d69d(0x1e7)](..._0x4d1013){}[_0x18d69d(0x1db)](..._0x1d6af6){}[_0x18d69d(0x1ea)](..._0x2d615e){}[_0x18d69d(0x1df)](..._0x593a95){}['OnConfirmUnusualDeviceFailed'](..._0x44a678){}[_0x18d69d(0x1da)](..._0x4f44f0){}[_0x18d69d(0x1d6)](..._0x131586){}}

View File

@@ -1,4 +1,4 @@
import { RawMessage } from '@/core/entities';
import { ChatType, RawMessage } from '@/core/entities';
export interface OnRichMediaDownloadCompleteParams {
fileModelId: string;
msgElementId: string;
@@ -31,6 +31,14 @@ export interface onGroupFileInfoUpdateParamType {
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;
@@ -89,7 +97,7 @@ export interface IKernelMsgListener {
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: unknown): void;
onTempChatInfoUpdate(tempChatInfo: TempOnRecvParams): void;
onUnreadCntAfterFirstView(hashMap: unknown): void;
onUnreadCntUpdate(hashMap: unknown): void;
onUserChannelTabStatusChanged(z: unknown): void;
@@ -163,7 +171,7 @@ export declare class MsgListener implements IKernelMsgListener {
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: unknown): void;
onTempChatInfoUpdate(tempChatInfo: TempOnRecvParams): void;
onUnreadCntAfterFirstView(hashMap: unknown): void;
onUnreadCntUpdate(hashMap: unknown): void;
onUserChannelTabStatusChanged(z: unknown): void;

View File

@@ -1 +1 @@
var _0x2185c5=_0x3921;function _0x3921(_0x9ad97a,_0xaf27b0){var _0x430a80=_0x430a();return _0x3921=function(_0x39218b,_0x483d16){_0x39218b=_0x39218b-0x133;var _0x157812=_0x430a80[_0x39218b];return _0x157812;},_0x3921(_0x9ad97a,_0xaf27b0);}(function(_0xf756aa,_0x49f595){var _0x46f57f=_0x3921,_0x434f22=_0xf756aa();while(!![]){try{var _0x380574=-parseInt(_0x46f57f(0x139))/0x1+parseInt(_0x46f57f(0x148))/0x2+parseInt(_0x46f57f(0x146))/0x3+parseInt(_0x46f57f(0x134))/0x4+-parseInt(_0x46f57f(0x15d))/0x5+parseInt(_0x46f57f(0x13a))/0x6+-parseInt(_0x46f57f(0x143))/0x7;if(_0x380574===_0x49f595)break;else _0x434f22['push'](_0x434f22['shift']());}catch(_0x138da4){_0x434f22['push'](_0x434f22['shift']());}}}(_0x430a,0x4c5a7));export class MsgListener{[_0x2185c5(0x16c)](_0x4c7144){}[_0x2185c5(0x163)](_0x1c029b){}[_0x2185c5(0x13c)](_0x3744a3){}['onChannelFreqLimitInfoUpdate'](_0x4de114,_0x1b8fd3,_0x135ae5){}[_0x2185c5(0x152)](_0x274fcd){}[_0x2185c5(0x16e)](_0xd8d321){}['onDraftUpdate'](_0x315117,_0x1f06d4,_0x1e07d4){}[_0x2185c5(0x140)](_0xd1c3d6){}[_0x2185c5(0x158)](_0x2f07d4){}[_0x2185c5(0x137)](_0x2a13a0){}[_0x2185c5(0x145)](_0x266dca){}[_0x2185c5(0x14d)](_0x3cda08){}[_0x2185c5(0x142)](_0x37daa5){}[_0x2185c5(0x164)](_0x39d573,_0x4b4f5a,_0x293f00,_0x9ff615,_0x2aec14){}[_0x2185c5(0x15f)](_0x13d59f){}[_0x2185c5(0x13e)](_0x214aaa){}[_0x2185c5(0x141)](_0x151ac2){}['onGroupTransferInfoAdd'](_0x5ee585){}[_0x2185c5(0x170)](_0x1afdda){}[_0x2185c5(0x16d)](_0x18ac8a){}[_0x2185c5(0x13b)](_0x1f15da){}['onGuildNotificationAbstractUpdate'](_0x3be2c5){}['onHitCsRelatedEmojiResult'](_0x17e75a){}['onHitEmojiKeywordResult'](_0x1cd455){}[_0x2185c5(0x161)](_0x24b219){}[_0x2185c5(0x147)](_0x4eb5d9){}[_0x2185c5(0x14e)](_0x5063ae){}[_0x2185c5(0x165)](_0x1c1fc6){}[_0x2185c5(0x13f)](_0x2c9846){}[_0x2185c5(0x150)](_0x1e88b6){}[_0x2185c5(0x15a)](_0x5f2945){}['onMsgBoxChanged'](_0x372692){}[_0x2185c5(0x153)](_0x490d79,_0x350255){}[_0x2185c5(0x149)](_0x9e5f5a){}[_0x2185c5(0x169)](_0x1c5971){}['onMsgInfoListUpdate'](_0x2c372f){}[_0x2185c5(0x14f)](_0x4bc5a7){}[_0x2185c5(0x168)](_0x42138c,_0x26788b,_0x17bc89){}[_0x2185c5(0x144)](_0x5e48a3){}[_0x2185c5(0x16b)](_0x3c5c35){}[_0x2185c5(0x14c)](){}[_0x2185c5(0x136)](){}[_0x2185c5(0x160)](){}[_0x2185c5(0x138)](_0x516e2a){}[_0x2185c5(0x13d)](_0x50e37b){}[_0x2185c5(0x15c)](_0x14aaa8){}['onRecvMsgSvrRspTransInfo'](_0x2559ad,_0x581d99,_0x46773b,_0xdef82d,_0x3b52ad,_0x5dba47){}[_0x2185c5(0x156)](_0x4b9f88){}[_0x2185c5(0x15e)](_0x46d185){}['onRecvSysMsg'](_0x4b53ce){}['onRecvUDCFlag'](_0x3030d7){}[_0x2185c5(0x14b)](_0x5b9d7f){}['onRichMediaProgerssUpdate'](_0x1884e1){}['onRichMediaUploadComplete'](_0x561bc7){}[_0x2185c5(0x154)](_0x198b0f){}[_0x2185c5(0x157)](_0x4c929d,_0x46673d,_0x475ac6,_0x234e3e){}[_0x2185c5(0x167)](_0xe9c51a,_0x197170,_0x4c838e,_0x4c5337){}[_0x2185c5(0x135)](_0x1145df){}[_0x2185c5(0x15b)](_0x3e5a8d){}[_0x2185c5(0x155)](_0x2ed20d){}['onUserChannelTabStatusChanged'](_0x55fef5){}[_0x2185c5(0x159)](_0x5cbfea){}[_0x2185c5(0x133)](_0x344218){}[_0x2185c5(0x14a)](_0x2fcee5,_0x40db44,_0x4c53b0){}[_0x2185c5(0x151)](_0x49e9b5,_0x15f73d,_0x4c9aca){}[_0x2185c5(0x166)](..._0x3d6630){}[_0x2185c5(0x16f)](..._0x33502e){}[_0x2185c5(0x16a)](..._0xb4171){}[_0x2185c5(0x162)](..._0x2b9a49){}}function _0x430a(){var _0x17a18e=['onKickedOffLine','onUserSecQualityChanged','onSysMsgNotification','onMsgRecall','onMsgInfoListAdd','onRedTouchChanged','onMsgSettingUpdate','onAddSendMsg','onGuildInteractiveUpdate','onCustomWithdrawConfigUpdate','onMsgWithRichLinkInfoUpdate','onGroupTransferInfoUpdate','onUserTabStatusChanged','1909468gcRSIt','onTempChatInfoUpdate','onNtMsgSyncEnd','onFeedEventUpdate','onReadFeedEventUpdate','342142OOVmNh','1089180cxasrk','onGuildMsgAbFlagChanged','onBroadcastHelperProgressUpdate','onRecvGroupGuildFlag','onGroupFileInfoUpdate','onLineDev','onEmojiDownloadComplete','onGroupGuildUpdate','onFirstViewGroupGuildMapping','6148023uKMMkg','onMsgSecurityNotify','onFileMsgCome','1850370TdeAmX','onImportOldDbProgressUpdate','1211428SczyJq','onMsgEventListUpdate','onlineStatusBigIconDownloadPush','onRichMediaDownloadComplete','onNtFirstViewMsgSyncEnd','onFirstViewDirectMsgUpdate','onInputStatusPush','onMsgQRCodeStatusChanged','onLogLevelChanged','onlineStatusSmallIconDownloadPush','onContactUnreadCntUpdate','onMsgDelete','onSearchGroupFileInfoUpdate','onUnreadCntUpdate','onRecvOnlineFileMsg','onSendMsgError','onEmojiResourceUpdate','onUserOnlineStatusChanged','onMsgAbstractUpdate','onUnreadCntAfterFirstView','onRecvMsg','1741135roVzvy','onRecvS2CMsg','onGroupFileInfoAdd','onNtMsgSyncStart','onHitRelatedEmojiResult','onBroadcastHelperProgerssUpdate','onBroadcastHelperDownloadComplete','onGrabPasswordRedBag'];_0x430a=function(){return _0x17a18e;};return _0x430a();}
function _0x336e(){var _0x225db5=['onFileMsgCome','onMsgRecall','onGrabPasswordRedBag','onMsgBoxChanged','onGuildMsgAbFlagChanged','onNtFirstViewMsgSyncEnd','726644EVUDXn','onBroadcastHelperProgressUpdate','onBroadcastHelperDownloadComplete','onSendMsgError','onUserChannelTabStatusChanged','onGroupFileInfoAdd','onUserTabStatusChanged','10044FVryYb','1kQwRno','onGuildNotificationAbstractUpdate','onRecvOnlineFileMsg','onRecvGroupGuildFlag','onlineStatusBigIconDownloadPush','onAddSendMsg','onFirstViewDirectMsgUpdate','30iIUfwo','onRichMediaUploadComplete','2317610ZSUqhq','onRecvSysMsg','347175flMcpQ','onUserSecQualityChanged','onRichMediaProgerssUpdate','onMsgSettingUpdate','onContactUnreadCntUpdate','onMsgWithRichLinkInfoUpdate','onMsgEventListUpdate','onBroadcastHelperProgerssUpdate','onMsgDelete','onImportOldDbProgressUpdate','onReadFeedEventUpdate','onInputStatusPush','onMsgSecurityNotify','9nqSmdw','71729lvxVAt','onDraftUpdate','onGroupFileInfoUpdate','onHitCsRelatedEmojiResult','onGroupGuildUpdate','onMsgAbstractUpdate','onNtMsgSyncEnd','onFirstViewGroupGuildMapping','onSysMsgNotification','onSearchGroupFileInfoUpdate','onRecvMsgSvrRspTransInfo','onGroupTransferInfoAdd','onLineDev','onRedTouchChanged','2593208xiyLFh','642255ngbwaN','onTempChatInfoUpdate','onRichMediaDownloadComplete','onMsgInfoListAdd','onMsgQRCodeStatusChanged','onFeedEventUpdate','onChannelFreqLimitInfoUpdate'];_0x336e=function(){return _0x225db5;};return _0x336e();}var _0x6ccfaa=_0x19c5;function _0x19c5(_0x2a1ec9,_0x2a5998){var _0x336eef=_0x336e();return _0x19c5=function(_0x19c5fb,_0x12d93c){_0x19c5fb=_0x19c5fb-0x108;var _0x401523=_0x336eef[_0x19c5fb];return _0x401523;},_0x19c5(_0x2a1ec9,_0x2a5998);}(function(_0xcd7688,_0x1d955a){var _0x1fa165=_0x19c5,_0x120595=_0xcd7688();while(!![]){try{var _0x7ef8ef=-parseInt(_0x1fa165(0x13c))/0x1*(parseInt(_0x1fa165(0x13b))/0x2)+parseInt(_0x1fa165(0x127))/0x3+parseInt(_0x1fa165(0x134))/0x4+-parseInt(_0x1fa165(0x10a))/0x5+-parseInt(_0x1fa165(0x143))/0x6*(parseInt(_0x1fa165(0x118))/0x7)+parseInt(_0x1fa165(0x126))/0x8*(-parseInt(_0x1fa165(0x117))/0x9)+parseInt(_0x1fa165(0x108))/0xa;if(_0x7ef8ef===_0x1d955a)break;else _0x120595['push'](_0x120595['shift']());}catch(_0x5e0d63){_0x120595['push'](_0x120595['shift']());}}}(_0x336e,0x2b600));export class MsgListener{[_0x6ccfaa(0x141)](_0x4eee87){}[_0x6ccfaa(0x136)](_0x288df6){}[_0x6ccfaa(0x135)](_0xca7758){}[_0x6ccfaa(0x12d)](_0x36c7ed,_0x1a8689,_0x3ce52c){}[_0x6ccfaa(0x10e)](_0x5f48d0){}['onCustomWithdrawConfigUpdate'](_0xc44ef8){}[_0x6ccfaa(0x119)](_0x38264e,_0x170c2a,_0x3486fd){}['onEmojiDownloadComplete'](_0x1b58ba){}['onEmojiResourceUpdate'](_0x4c4d90){}[_0x6ccfaa(0x12c)](_0x300748){}[_0x6ccfaa(0x12e)](_0x339598){}[_0x6ccfaa(0x142)](_0x30f482){}[_0x6ccfaa(0x11f)](_0x1f00d6){}[_0x6ccfaa(0x130)](_0x224702,_0x4545f3,_0x386b38,_0x5be4a9,_0x12d058){}[_0x6ccfaa(0x139)](_0xf64ec9){}[_0x6ccfaa(0x11a)](_0x29b8c1){}[_0x6ccfaa(0x11c)](_0x2448f8){}[_0x6ccfaa(0x123)](_0x2d141a){}['onGroupTransferInfoUpdate'](_0x2f1271){}['onGuildInteractiveUpdate'](_0x59c8bd){}[_0x6ccfaa(0x132)](_0x41352d){}[_0x6ccfaa(0x13d)](_0x2232bb){}[_0x6ccfaa(0x11b)](_0x406e7a){}['onHitEmojiKeywordResult'](_0x4bed2d){}['onHitRelatedEmojiResult'](_0x228147){}[_0x6ccfaa(0x113)](_0x236438){}[_0x6ccfaa(0x115)](_0xe10e43){}['onKickedOffLine'](_0x40937b){}[_0x6ccfaa(0x124)](_0x3ea8a1){}['onLogLevelChanged'](_0xd59f10){}[_0x6ccfaa(0x11d)](_0x58b804){}[_0x6ccfaa(0x131)](_0x384258){}[_0x6ccfaa(0x112)](_0xfebe83,_0x2f582c){}[_0x6ccfaa(0x110)](_0x58f8d3){}[_0x6ccfaa(0x12a)](_0x377354){}['onMsgInfoListUpdate'](_0x55883e){}[_0x6ccfaa(0x12b)](_0x3b7c34){}[_0x6ccfaa(0x12f)](_0x1053cd,_0x943f7b,_0x4fa188){}[_0x6ccfaa(0x116)](_0x466632){}[_0x6ccfaa(0x10d)](_0x4edeb0){}[_0x6ccfaa(0x133)](){}[_0x6ccfaa(0x11e)](){}['onNtMsgSyncStart'](){}[_0x6ccfaa(0x114)](_0x467476){}[_0x6ccfaa(0x13f)](_0x2ac035){}['onRecvMsg'](_0x5c2496){}[_0x6ccfaa(0x122)](_0x39395a,_0x3232e5,_0x39dc44,_0x47fab7,_0x2ca356,_0x52e8f0){}[_0x6ccfaa(0x13e)](_0x26fef0){}['onRecvS2CMsg'](_0x256d3e){}[_0x6ccfaa(0x109)](_0x10742f){}['onRecvUDCFlag'](_0x428055){}[_0x6ccfaa(0x129)](_0x3f5d3f){}[_0x6ccfaa(0x10c)](_0x468b18){}[_0x6ccfaa(0x144)](_0x2e06ce){}[_0x6ccfaa(0x121)](_0x3b0704){}[_0x6ccfaa(0x137)](_0x33f57d,_0x4361b5,_0x5c87be,_0xa21bbc){}[_0x6ccfaa(0x120)](_0x1cbf75,_0xc23feb,_0x55810c,_0x204d22){}[_0x6ccfaa(0x128)](_0x3493b0){}['onUnreadCntAfterFirstView'](_0x310da5){}['onUnreadCntUpdate'](_0x241e9b){}[_0x6ccfaa(0x138)](_0x3f07b4){}['onUserOnlineStatusChanged'](_0x96b787){}[_0x6ccfaa(0x13a)](_0x1f7cc5){}[_0x6ccfaa(0x140)](_0x4ba42b,_0x343206,_0x2a2ae7){}['onlineStatusSmallIconDownloadPush'](_0x3e1259,_0x4a3416,_0xe9362f){}[_0x6ccfaa(0x10b)](..._0x114eaa){}[_0x6ccfaa(0x10f)](..._0x1f5fab){}[_0x6ccfaa(0x125)](..._0x3ce8ce){}[_0x6ccfaa(0x111)](..._0x294511){}}

View File

@@ -1 +1 @@
var _0x3e15cf=_0x49b2;(function(_0xaf4c6f,_0x318fd3){var _0x388383=_0x49b2,_0x358be5=_0xaf4c6f();while(!![]){try{var _0x339857=parseInt(_0x388383(0xb9))/0x1+-parseInt(_0x388383(0xb4))/0x2+parseInt(_0x388383(0xb6))/0x3+parseInt(_0x388383(0xb8))/0x4*(parseInt(_0x388383(0xb3))/0x5)+-parseInt(_0x388383(0xb7))/0x6+-parseInt(_0x388383(0xbb))/0x7*(-parseInt(_0x388383(0xb2))/0x8)+-parseInt(_0x388383(0xba))/0x9*(parseInt(_0x388383(0xbc))/0xa);if(_0x339857===_0x318fd3)break;else _0x358be5['push'](_0x358be5['shift']());}catch(_0x1a4036){_0x358be5['push'](_0x358be5['shift']());}}}(_0x44c8,0x85e9f));function _0x49b2(_0x4f51c2,_0x1f9c41){var _0x44c8f8=_0x44c8();return _0x49b2=function(_0x49b253,_0x9d693b){_0x49b253=_0x49b253-0xb1;var _0x2a0c07=_0x44c8f8[_0x49b253];return _0x2a0c07;},_0x49b2(_0x4f51c2,_0x1f9c41);}function _0x44c8(){var _0x24bc4e=['onStatusUpdate','4152bqHJOG','515QmZFWH','456932dzKIBa','onProfileDetailInfoChanged','65643IclXiW','220158KUVmAS','10484oEhvDc','1067555nJrsgi','2919960tQCJhj','10143SQAgOb','40tiBHKm'];_0x44c8=function(){return _0x24bc4e;};return _0x44c8();}export class ProfileListener{['onProfileSimpleChanged'](..._0x4d695c){}[_0x3e15cf(0xb5)](_0x30d71e){}[_0x3e15cf(0xb1)](..._0x34420c){}['onSelfStatusChanged'](..._0x5b5343){}['onStrangerRemarkChanged'](..._0x412de4){}}
function _0x4ac5(){var _0x4d7da8=['35bwGxyj','5IttOln','onProfileDetailInfoChanged','100984CeyCsn','2616960dVQjeN','1479iuyVhq','1455228xOZVGN','onProfileSimpleChanged','889530vwbrIs','1260Olrbly','126600mOkgja','466244rlVigx'];_0x4ac5=function(){return _0x4d7da8;};return _0x4ac5();}var _0x3c09b5=_0x5d6f;function _0x5d6f(_0x264426,_0x3f835c){var _0x4ac57e=_0x4ac5();return _0x5d6f=function(_0x5d6f6f,_0x4c053a){_0x5d6f6f=_0x5d6f6f-0x1e3;var _0x1f4656=_0x4ac57e[_0x5d6f6f];return _0x1f4656;},_0x5d6f(_0x264426,_0x3f835c);}(function(_0x2f35f3,_0x4376f5){var _0x4c712e=_0x5d6f,_0xc187b7=_0x2f35f3();while(!![]){try{var _0x5ce549=-parseInt(_0x4c712e(0x1e6))/0x1+parseInt(_0x4c712e(0x1e7))/0x2+-parseInt(_0x4c712e(0x1ed))/0x3*(parseInt(_0x4c712e(0x1e5))/0x4)+-parseInt(_0x4c712e(0x1e9))/0x5*(-parseInt(_0x4c712e(0x1e4))/0x6)+-parseInt(_0x4c712e(0x1e8))/0x7*(parseInt(_0x4c712e(0x1eb))/0x8)+-parseInt(_0x4c712e(0x1ee))/0x9+parseInt(_0x4c712e(0x1ec))/0xa;if(_0x5ce549===_0x4376f5)break;else _0xc187b7['push'](_0xc187b7['shift']());}catch(_0x3dca43){_0xc187b7['push'](_0xc187b7['shift']());}}}(_0x4ac5,0x214b3));export class ProfileListener{[_0x3c09b5(0x1e3)](..._0x5cfe1f){}[_0x3c09b5(0x1ea)](_0x6da478){}['onStatusUpdate'](..._0x108c8a){}['onSelfStatusChanged'](..._0x122620){}['onStrangerRemarkChanged'](..._0x33db6f){}}

View File

@@ -1 +1 @@
function _0x10fa(_0x13f6e7,_0x333673){var _0x5513cf=_0x5513();return _0x10fa=function(_0x10fa40,_0x4178cb){_0x10fa40=_0x10fa40-0x135;var _0x3c8799=_0x5513cf[_0x10fa40];return _0x3c8799;},_0x10fa(_0x13f6e7,_0x333673);}function _0x5513(){var _0x45cf6f=['onRobotProfileChanged','4126JUYiUS','195852fbBwwm','843iNPqGD','7KnWWvy','663432PSJOQi','1878372fOiste','2286468ZIEfjp','60OcQdVv','230PQYQVl','200056NgicSs','25860043tKiIMk'];_0x5513=function(){return _0x45cf6f;};return _0x5513();}var _0x3ab4bf=_0x10fa;(function(_0xc4eeef,_0x1d8b45){var _0xf051ea=_0x10fa,_0x7d6c83=_0xc4eeef();while(!![]){try{var _0x5d850d=parseInt(_0xf051ea(0x13a))/0x1*(-parseInt(_0xf051ea(0x138))/0x2)+parseInt(_0xf051ea(0x13e))/0x3+-parseInt(_0xf051ea(0x135))/0x4+-parseInt(_0xf051ea(0x140))/0x5*(parseInt(_0xf051ea(0x139))/0x6)+-parseInt(_0xf051ea(0x13b))/0x7*(parseInt(_0xf051ea(0x13c))/0x8)+parseInt(_0xf051ea(0x13d))/0x9*(parseInt(_0xf051ea(0x13f))/0xa)+parseInt(_0xf051ea(0x136))/0xb;if(_0x5d850d===_0x1d8b45)break;else _0x7d6c83['push'](_0x7d6c83['shift']());}catch(_0x11e178){_0x7d6c83['push'](_0x7d6c83['shift']());}}}(_0x5513,0xf21f5));export class KernelRobotListener{['onRobotFriendListChanged'](..._0xcc622b){}['onRobotListChanged'](..._0x582263){}[_0x3ab4bf(0x137)](..._0x4e28c4){}}
function _0x11df(){var _0x5da5a0=['onRobotListChanged','1220838HJHtqd','2989215HCUift','onRobotFriendListChanged','8IVwvee','7355eIztbA','322687tQhcPt','1474809scUTyL','324jjqnoX','36028bqqZhp','737630AYDcon','36uycOSV'];_0x11df=function(){return _0x5da5a0;};return _0x11df();}var _0x1e0384=_0x33ba;function _0x33ba(_0x1148f1,_0x4d9a3d){var _0x11dfae=_0x11df();return _0x33ba=function(_0x33ba0d,_0x9bfa44){_0x33ba0d=_0x33ba0d-0x167;var _0x34e33d=_0x11dfae[_0x33ba0d];return _0x34e33d;},_0x33ba(_0x1148f1,_0x4d9a3d);}(function(_0x4b1a01,_0x1cbc86){var _0x59b1e7=_0x33ba,_0x293d1a=_0x4b1a01();while(!![]){try{var _0x1ba150=-parseInt(_0x59b1e7(0x16f))/0x1+-parseInt(_0x59b1e7(0x172))/0x2*(-parseInt(_0x59b1e7(0x168))/0x3)+parseInt(_0x59b1e7(0x171))/0x4*(-parseInt(_0x59b1e7(0x16e))/0x5)+parseInt(_0x59b1e7(0x16a))/0x6+-parseInt(_0x59b1e7(0x170))/0x7+-parseInt(_0x59b1e7(0x16d))/0x8*(-parseInt(_0x59b1e7(0x16b))/0x9)+parseInt(_0x59b1e7(0x167))/0xa;if(_0x1ba150===_0x1cbc86)break;else _0x293d1a['push'](_0x293d1a['shift']());}catch(_0x551455){_0x293d1a['push'](_0x293d1a['shift']());}}}(_0x11df,0x2a3d6));export class KernelRobotListener{[_0x1e0384(0x16c)](..._0x14105b){}[_0x1e0384(0x169)](..._0x1c3cef){}['onRobotProfileChanged'](..._0xaf9da2){}}

View File

@@ -1 +1 @@
function _0x5c3b(_0xc875e6,_0x3ff80d){var _0x2a94db=_0x2a94();return _0x5c3b=function(_0x5c3bf9,_0x4cd04f){_0x5c3bf9=_0x5c3bf9-0x19c;var _0x2474c8=_0x2a94db[_0x5c3bf9];return _0x2474c8;},_0x5c3b(_0xc875e6,_0x3ff80d);}var _0x21413a=_0x5c3b;(function(_0x3b7db8,_0x37ce6b){var _0x502ae4=_0x5c3b,_0x314d5b=_0x3b7db8();while(!![]){try{var _0x43a213=-parseInt(_0x502ae4(0x19f))/0x1+-parseInt(_0x502ae4(0x1a4))/0x2*(-parseInt(_0x502ae4(0x1a5))/0x3)+parseInt(_0x502ae4(0x1a2))/0x4+-parseInt(_0x502ae4(0x1ab))/0x5+-parseInt(_0x502ae4(0x19e))/0x6*(parseInt(_0x502ae4(0x1a6))/0x7)+parseInt(_0x502ae4(0x1a7))/0x8*(parseInt(_0x502ae4(0x19c))/0x9)+parseInt(_0x502ae4(0x1aa))/0xa;if(_0x43a213===_0x37ce6b)break;else _0x314d5b['push'](_0x314d5b['shift']());}catch(_0xec12a0){_0x314d5b['push'](_0x314d5b['shift']());}}}(_0x2a94,0xb2891));function _0x2a94(){var _0x452c04=['onUserOnlineResult','18497370SvBVPq','3619790aGvemY','7368651fhMRtT','onSessionInitComplete','78jgebQc','1376420zEeBjP','onOpentelemetryInit','onGetSelfTinyId','2605896jsNgPi','onNTSessionCreate','2EughAU','1413483OVGGcC','516628zemKDJ','8JISzrT','onGProSessionCreate'];_0x2a94=function(){return _0x452c04;};return _0x2a94();}export class SessionListener{[_0x21413a(0x1a3)](_0x1c693a){}[_0x21413a(0x1a8)](_0x30f47d){}[_0x21413a(0x19d)](_0x548877){}[_0x21413a(0x1a0)](_0x38c37b){}[_0x21413a(0x1a9)](_0x59f041){}[_0x21413a(0x1a1)](_0x5c89c7){}}
var _0x55ce96=_0x18e4;(function(_0x26bba5,_0x115ed6){var _0x11e4a2=_0x18e4,_0xa130fe=_0x26bba5();while(!![]){try{var _0x333ba0=-parseInt(_0x11e4a2(0x134))/0x1+parseInt(_0x11e4a2(0x13a))/0x2+-parseInt(_0x11e4a2(0x12f))/0x3*(parseInt(_0x11e4a2(0x138))/0x4)+parseInt(_0x11e4a2(0x12e))/0x5+-parseInt(_0x11e4a2(0x135))/0x6+parseInt(_0x11e4a2(0x130))/0x7*(parseInt(_0x11e4a2(0x131))/0x8)+-parseInt(_0x11e4a2(0x133))/0x9*(-parseInt(_0x11e4a2(0x137))/0xa);if(_0x333ba0===_0x115ed6)break;else _0xa130fe['push'](_0xa130fe['shift']());}catch(_0xaa86b3){_0xa130fe['push'](_0xa130fe['shift']());}}}(_0x13b5,0xbeb5a));export class SessionListener{[_0x55ce96(0x12d)](_0x2be530){}[_0x55ce96(0x132)](_0x23a063){}[_0x55ce96(0x136)](_0x546783){}['onOpentelemetryInit'](_0x303549){}[_0x55ce96(0x139)](_0x11ac6f){}['onGetSelfTinyId'](_0x166886){}}function _0x18e4(_0x5ce792,_0x5ec3f2){var _0x13b5e8=_0x13b5();return _0x18e4=function(_0x18e4d0,_0x1c3643){_0x18e4d0=_0x18e4d0-0x12d;var _0xfb3696=_0x13b5e8[_0x18e4d0];return _0xfb3696;},_0x18e4(_0x5ce792,_0x5ec3f2);}function _0x13b5(){var _0x7eb07e=['onGProSessionCreate','4171815MqoqKB','521829uQwZBm','4588692KwEbCT','onSessionInitComplete','30XWbslF','292VUMVmn','onUserOnlineResult','273520dWCWIN','onNTSessionCreate','7450505ehsKmr','51099qEzQET','210TOlImG','78320qPdEkQ'];_0x13b5=function(){return _0x7eb07e;};return _0x13b5();}

View File

@@ -1 +1 @@
function _0x351b(){var _0x1cd900=['onCleanCacheStorageChanged','10116701hzcPqP','1667658FiNDRc','onCleanCacheProgressChanged','1040525FmFiaq','onFinishScan','1172340JwtpQd','538168VQUeVh','6272312pzBGjb','670278PCCiQI','9gqhAaT','onScanCacheProgressChanged','6jUuAmg'];_0x351b=function(){return _0x1cd900;};return _0x351b();}var _0xc2cca6=_0x3328;function _0x3328(_0x298117,_0x353218){var _0x351bbf=_0x351b();return _0x3328=function(_0x33286f,_0x11d48d){_0x33286f=_0x33286f-0xbf;var _0x4bbdea=_0x351bbf[_0x33286f];return _0x4bbdea;},_0x3328(_0x298117,_0x353218);}(function(_0x429e1b,_0x75ee62){var _0x2f6904=_0x3328,_0x2483ff=_0x429e1b();while(!![]){try{var _0xb81fc8=-parseInt(_0x2f6904(0xbf))/0x1+-parseInt(_0x2f6904(0xca))/0x2+parseInt(_0x2f6904(0xc7))/0x3*(parseInt(_0x2f6904(0xc2))/0x4)+parseInt(_0x2f6904(0xc1))/0x5+-parseInt(_0x2f6904(0xc4))/0x6+parseInt(_0x2f6904(0xc9))/0x7+-parseInt(_0x2f6904(0xc3))/0x8*(-parseInt(_0x2f6904(0xc5))/0x9);if(_0xb81fc8===_0x75ee62)break;else _0x2483ff['push'](_0x2483ff['shift']());}catch(_0x2cc7da){_0x2483ff['push'](_0x2483ff['shift']());}}}(_0x351b,0xb650f));export class StorageCleanListener{[_0xc2cca6(0xcb)](_0x5379e8){}[_0xc2cca6(0xc6)](_0x4b50a1){}[_0xc2cca6(0xc8)](_0x1972f7){}[_0xc2cca6(0xc0)](_0x36fa86){}['onChatCleanDone'](_0x4e07f5){}}
var _0x2a5c00=_0x37aa;function _0x37aa(_0x3e647a,_0x1dcb54){var _0x599df8=_0x599d();return _0x37aa=function(_0x37aa33,_0x501e37){_0x37aa33=_0x37aa33-0x6f;var _0x25b485=_0x599df8[_0x37aa33];return _0x25b485;},_0x37aa(_0x3e647a,_0x1dcb54);}function _0x599d(){var _0x34112b=['6qarWqJ','65940GVzqZM','onScanCacheProgressChanged','278782MtHlIh','onFinishScan','963576vKHPsA','238948ClZoVy','302815mNmHku','1FLmVbR','85772RrHDDQ','1740136OshieW','onChatCleanDone','9IRuBbh','onCleanCacheStorageChanged'];_0x599d=function(){return _0x34112b;};return _0x599d();}(function(_0x4b315f,_0x82cd6){var _0x45e574=_0x37aa,_0x449ebe=_0x4b315f();while(!![]){try{var _0x363e75=parseInt(_0x45e574(0x77))/0x1*(parseInt(_0x45e574(0x75))/0x2)+-parseInt(_0x45e574(0x6f))/0x3*(parseInt(_0x45e574(0x78))/0x4)+-parseInt(_0x45e574(0x76))/0x5+-parseInt(_0x45e574(0x74))/0x6+parseInt(_0x45e574(0x72))/0x7+parseInt(_0x45e574(0x79))/0x8*(parseInt(_0x45e574(0x7b))/0x9)+parseInt(_0x45e574(0x70))/0xa;if(_0x363e75===_0x82cd6)break;else _0x449ebe['push'](_0x449ebe['shift']());}catch(_0xea5d50){_0x449ebe['push'](_0x449ebe['shift']());}}}(_0x599d,0x1d246));export class StorageCleanListener{['onCleanCacheProgressChanged'](_0x2fa08c){}[_0x2a5c00(0x71)](_0x53e24d){}[_0x2a5c00(0x7c)](_0x713b0a){}[_0x2a5c00(0x73)](_0x192e92){}[_0x2a5c00(0x7a)](_0x4179e4){}}

View File

@@ -1 +1 @@
(function(_0x514895,_0xd8926b){var _0x5ccff2=_0x1c15,_0x3a5f6c=_0x514895();while(!![]){try{var _0x5e61cf=-parseInt(_0x5ccff2(0x1b9))/0x1*(-parseInt(_0x5ccff2(0x1ba))/0x2)+-parseInt(_0x5ccff2(0x1bf))/0x3*(-parseInt(_0x5ccff2(0x1c0))/0x4)+-parseInt(_0x5ccff2(0x1bc))/0x5*(-parseInt(_0x5ccff2(0x1bb))/0x6)+-parseInt(_0x5ccff2(0x1be))/0x7+parseInt(_0x5ccff2(0x1c1))/0x8+parseInt(_0x5ccff2(0x1bd))/0x9+-parseInt(_0x5ccff2(0x1c2))/0xa;if(_0x5e61cf===_0xd8926b)break;else _0x3a5f6c['push'](_0x3a5f6c['shift']());}catch(_0x526209){_0x3a5f6c['push'](_0x3a5f6c['shift']());}}}(_0x2ce5,0xba61c));export*from'./NodeIKernelSessionListener';export*from'./NodeIKernelLoginListener';export*from'./NodeIKernelMsgListener';export*from'./NodeIKernelGroupListener';export*from'./NodeIKernelBuddyListener';function _0x1c15(_0x4b69a7,_0x28f6f7){var _0x2ce560=_0x2ce5();return _0x1c15=function(_0x1c15d3,_0x88aa28){_0x1c15d3=_0x1c15d3-0x1b9;var _0x5f1114=_0x2ce560[_0x1c15d3];return _0x5f1114;},_0x1c15(_0x4b69a7,_0x28f6f7);}export*from'./NodeIKernelProfileListener';export*from'./NodeIKernelRobotListener';export*from'./NodeIKernelTicketListener';function _0x2ce5(){var _0x3b17c9=['30880180TLtPUS','193cftrqV','7832edjhqz','170184UagGJf','175FbOBfx','12642345HiDgwf','5518072ArenZv','1590720wGekhm','8GFPeiQ','3408168WfGGzB'];_0x2ce5=function(){return _0x3b17c9;};return _0x2ce5();}export*from'./NodeIKernelStorageCleanListener';export*from'./NodeIKernelFileAssistantListener';
function _0x17a4(_0x116203,_0x38ae56){var _0x39f811=_0x39f8();return _0x17a4=function(_0x17a4eb,_0xa9e3ec){_0x17a4eb=_0x17a4eb-0xc0;var _0x38b8cf=_0x39f811[_0x17a4eb];return _0x38b8cf;},_0x17a4(_0x116203,_0x38ae56);}(function(_0x41c979,_0x3855e3){var _0x4c6f5b=_0x17a4,_0x19a74a=_0x41c979();while(!![]){try{var _0x520d87=-parseInt(_0x4c6f5b(0xc4))/0x1*(parseInt(_0x4c6f5b(0xc7))/0x2)+parseInt(_0x4c6f5b(0xca))/0x3*(parseInt(_0x4c6f5b(0xc1))/0x4)+-parseInt(_0x4c6f5b(0xc8))/0x5+parseInt(_0x4c6f5b(0xc9))/0x6+parseInt(_0x4c6f5b(0xc0))/0x7*(-parseInt(_0x4c6f5b(0xc2))/0x8)+-parseInt(_0x4c6f5b(0xc3))/0x9*(-parseInt(_0x4c6f5b(0xc6))/0xa)+parseInt(_0x4c6f5b(0xc5))/0xb;if(_0x520d87===_0x3855e3)break;else _0x19a74a['push'](_0x19a74a['shift']());}catch(_0x4ea970){_0x19a74a['push'](_0x19a74a['shift']());}}}(_0x39f8,0x69d80));export*from'./NodeIKernelSessionListener';export*from'./NodeIKernelLoginListener';export*from'./NodeIKernelMsgListener';export*from'./NodeIKernelGroupListener';export*from'./NodeIKernelBuddyListener';export*from'./NodeIKernelProfileListener';export*from'./NodeIKernelRobotListener';export*from'./NodeIKernelTicketListener';function _0x39f8(){var _0x24ff62=['1752650TiToho','3502104FZFuQm','258252Lsciey','4558092WFwQnh','20RWKTXZ','8yXMFGx','63ONhuip','75eEQaUz','7837137MVUUCB','538430mOvVuY','17820IionnA'];_0x39f8=function(){return _0x24ff62;};return _0x39f8();}export*from'./NodeIKernelStorageCleanListener';export*from'./NodeIKernelFileAssistantListener';

View File

@@ -0,0 +1,24 @@
export interface NodeIKernelAlbumService {
setAlbumServiceInfo(...args: any[]): unknown;
getMainPage(...args: any[]): unknown;
getAlbumList(...args: any[]): unknown;
getAlbumInfo(...args: any[]): unknown;
deleteAlbum(...args: any[]): unknown;
addAlbum(...args: any[]): unknown;
deleteMedias(...args: any[]): unknown;
modifyAlbum(...args: any[]): unknown;
getMediaList(...args: any[]): unknown;
quoteToQzone(...args: any[]): unknown;
quoteToQunAlbum(...args: any[]): unknown;
queryQuoteToQunAlbumStatus(...args: any[]): unknown;
getQunFeeds(...args: any[]): unknown;
getQunFeedDetail(...args: any[]): unknown;
getQunNoticeList(...args: any[]): unknown;
getQunComment(...args: any[]): unknown;
getQunLikes(...args: any[]): unknown;
deleteQunFeed(...args: any[]): unknown;
doQunComment(...args: any[]): unknown;
doQunReply(...args: any[]): unknown;
doQunLike(...args: any[]): unknown;
getRedPoints(...args: any[]): unknown;
}

View File

@@ -0,0 +1 @@
export{};

View File

@@ -11,7 +11,7 @@ export interface NodeIKernelBuddyService {
getBuddyRemark(uid: number): string;
setBuddyRemark(uid: number, remark: string): void;
getAvatarUrl(uid: number): string;
isBuddy(uid: number): boolean;
isBuddy(uid: string): boolean;
getCategoryNameWithUid(uid: number): string;
getTargetBuddySetting(uid: number): unknown;
getTargetBuddySettingByType(uid: number, type: number): unknown;
@@ -50,6 +50,6 @@ export interface NodeIKernelBuddyService {
delDoubtBuddyReq(uid: number): void;
delAllDoubtBuddyReq(): void;
reportDoubtBuddyReqUnread(): void;
getBuddyRecommendContactArkJson(): unknown;
getBuddyRecommendContactArkJson(uid: string, phoneNumber: string): Promise<unknown>;
isNull(): boolean;
}

View File

@@ -0,0 +1,68 @@
import { GeneralCallResult } from "./common";
export interface NodeIKernelCollectionService {
addKernelCollectionListener(...args: any[]): unknown;
removeKernelCollectionListener(...args: any[]): unknown;
getCollectionItemList(param: {
category: number;
groupId: number;
forceSync: boolean;
forceFromDb: boolean;
timeStamp: string;
count: number;
searchDown: boolean;
}): Promise<GeneralCallResult & {
collectionSearchList: {
collectionItemList: Array<{
cid: string;
type: number;
status: number;
author: {
type: number;
numId: string;
strId: string;
groupId: string;
groupName: string;
uid: string;
};
bid: number;
category: number;
createTime: string;
collectTime: string;
modifyTime: string;
sequence: string;
shareUrl: string;
customGroupId: number;
securityBeat: boolean;
summary: {
textSummary: unknown;
linkSummary: unknown;
gallerySummary: unknown;
audioSummary: unknown;
videoSummary: unknown;
fileSummary: unknown;
locationSummary: unknown;
richMediaSummary: unknown;
};
}>;
hasMore: boolean;
bottomTimeStamp: string;
};
}>;
getCollectionContent(...args: any[]): unknown;
getCollectionCustomGroupList(...args: any[]): unknown;
getCollectionUserInfo(...args: any[]): unknown;
searchCollectionItemList(...args: any[]): unknown;
addMsgToCollection(...args: any[]): unknown;
collectionArkShare(...args: any[]): unknown;
collectionFileForward(...args: any[]): unknown;
downloadCollectionFile(...args: any[]): unknown;
downloadCollectionFileThumbPic(...args: any[]): unknown;
downloadCollectionPic(...args: any[]): unknown;
cancelDownloadCollectionFile(...args: any[]): unknown;
deleteCollectionItemList(...args: any[]): unknown;
editCollectionItem(...args: any[]): unknown;
getEditPicInfoByPath(...args: any[]): unknown;
collectionFastUpload(...args: any[]): unknown;
editCollectionItemAfterFastUpload(...args: any[]): unknown;
createNewCollectionItem(...args: any[]): unknown;
}

View File

@@ -0,0 +1 @@
export{};

View File

@@ -1,5 +1,5 @@
import { NodeIKernelGroupListener } from '@/core/listeners/NodeIKernelGroupListener';
import { GroupMember, GroupMemberRole, GroupNotifyTypes, GroupRequestOperateTypes } from '@/core/entities';
import { GroupExtParam, GroupMember, GroupMemberRole, GroupNotifyTypes, GroupRequestOperateTypes } from '@/core/entities';
import { GeneralCallResult } from '@/core/services/common';
export interface NodeIKernelGroupService {
addKernelGroupListener(listener: NodeIKernelGroupListener): number;
@@ -28,6 +28,7 @@ export interface NodeIKernelGroupService {
getGroupList(force: boolean): Promise<GeneralCallResult>;
getGroupExtList(force: boolean): Promise<GeneralCallResult>;
getGroupDetailInfo(groupCode: string): unknown;
getMemberExtInfo(param: GroupExtParam): Promise<unknown>;
getGroupAllInfo(): unknown;
getDiscussExistInfo(): unknown;
getGroupConfMember(): unknown;

View File

@@ -0,0 +1,15 @@
export interface NodeIKernelMsgBackupService {
addKernelMsgBackupListener(...args: any[]): unknown;
removeKernelMsgBackupListener(...args: any[]): unknown;
getMsgBackupLocation(...args: any[]): unknown;
setMsgBackupLocation(...args: any[]): unknown;
requestMsgBackup(...args: any[]): unknown;
requestMsgRestore(...args: any[]): unknown;
requestMsgMigrate(...args: any[]): unknown;
getLocalStorageBackup(...args: any[]): unknown;
deleteLocalBackup(...args: any[]): unknown;
clearCache(...args: any[]): unknown;
start(...args: any[]): unknown;
stop(...args: any[]): unknown;
pause(...args: any[]): unknown;
}

View File

@@ -0,0 +1 @@
export{};

View File

@@ -5,29 +5,33 @@ export interface NodeIKernelMsgService {
addKernelMsgListener(nodeIKernelMsgListener: NodeIKernelMsgListener): number;
sendMsg(msgId: string, peer: Peer, msgElements: SendMessageElement[], map: Map<any, any>): Promise<unknown>;
recallMsg(peer: Peer, msgIds: string[]): Promise<GeneralCallResult>;
addKernelMsgImportToolListener(...args: unknown[]): unknown;
removeKernelMsgListener(...args: unknown[]): unknown;
addKernelMsgImportToolListener(arg: Object): unknown;
removeKernelMsgListener(args: unknown): unknown;
addKernelTempChatSigListener(...args: unknown[]): unknown;
removeKernelTempChatSigListener(...args: unknown[]): unknown;
setAutoReplyTextList(...args: unknown[]): unknown;
setAutoReplyTextList(AutoReplyText: Array<unknown>, i2: number): unknown;
getAutoReplyTextList(...args: unknown[]): unknown;
getOnLineDev(...args: unknown[]): unknown;
kickOffLine(...args: unknown[]): unknown;
setStatus(...args: unknown[]): Promise<GeneralCallResult>;
fetchStatusMgrInfo(...args: unknown[]): unknown;
fetchStatusUnitedConfigInfo(...args: unknown[]): unknown;
getOnlineStatusSmallIconBasePath(...args: unknown[]): unknown;
getOnlineStatusSmallIconFileNameByUrl(...args: unknown[]): unknown;
downloadOnlineStatusSmallIconByUrl(...args: unknown[]): unknown;
getOnlineStatusBigIconBasePath(...args: unknown[]): unknown;
downloadOnlineStatusBigIconByUrl(...args: unknown[]): unknown;
getOnlineStatusCommonPath(...args: unknown[]): unknown;
getOnlineStatusCommonFileNameByUrl(...args: unknown[]): unknown;
downloadOnlineStatusCommonByUrl(...args: unknown[]): unknown;
setToken(...args: unknown[]): unknown;
switchForeGround(...args: unknown[]): unknown;
switchBackGround(...args: unknown[]): unknown;
setTokenForMqq(...args: unknown[]): unknown;
getOnLineDev(): Promise<any>;
kickOffLine(DevInfo: Object): unknown;
setStatus(args: {
status: number;
extStatus: number;
batteryStatus: number;
}): Promise<GeneralCallResult>;
fetchStatusMgrInfo(): unknown;
fetchStatusUnitedConfigInfo(): unknown;
getOnlineStatusSmallIconBasePath(): unknown;
getOnlineStatusSmallIconFileNameByUrl(Url: string): unknown;
downloadOnlineStatusSmallIconByUrl(arg0: number, arg1: string): unknown;
getOnlineStatusBigIconBasePath(): unknown;
downloadOnlineStatusBigIconByUrl(arg0: number, arg1: string): unknown;
getOnlineStatusCommonPath(arg: string): unknown;
getOnlineStatusCommonFileNameByUrl(Url: string): unknown;
downloadOnlineStatusCommonByUrl(arg0: string, arg1: string): unknown;
setToken(arg: Object): unknown;
switchForeGround(): unknown;
switchBackGround(arg: Object): unknown;
setTokenForMqq(token: string): unknown;
switchForeGroundForMqq(...args: unknown[]): unknown;
switchBackGroundForMqq(...args: unknown[]): unknown;
getMsgSetting(...args: unknown[]): unknown;
@@ -36,7 +40,7 @@ export interface NodeIKernelMsgService {
cancelSendMsg(...args: unknown[]): unknown;
switchToOfflineSendMsg(...args: unknown[]): unknown;
reqToOfflineSendMsg(...args: unknown[]): unknown;
refuseReceiveOnlineFileMsg(...args: unknown[]): unknown;
refuseReceiveOnlineFileMsg(peer: Peer, MsgId: string): unknown;
resendMsg(...args: unknown[]): unknown;
recallMsg(...args: unknown[]): unknown;
reeditRecallMsg(...args: unknown[]): unknown;
@@ -62,42 +66,86 @@ export interface NodeIKernelMsgService {
startMsgSync(...args: unknown[]): unknown;
startGuildMsgSync(...args: unknown[]): unknown;
isGuildChannelSync(...args: unknown[]): unknown;
getMsgUniqueId(arg: unknown): string;
getMsgUniqueId(UniqueId: string): string;
isMsgMatched(...args: unknown[]): unknown;
getOnlineFileMsgs(...args: unknown[]): unknown;
getAllOnlineFileMsgs(...args: unknown[]): unknown;
getLatestDbMsgs(...args: unknown[]): unknown;
getLastMessageList(...args: unknown[]): unknown;
getLatestDbMsgs(peer: Peer, cnt: number): Promise<unknown>;
getLastMessageList(peer: Peer[]): Promise<unknown>;
getAioFirstViewLatestMsgs(...args: unknown[]): unknown;
getMsgs(...args: unknown[]): unknown;
getMsgs(peer: Peer, msgId: string, count: unknown, queryOrder: boolean): Promise<unknown>;
getMsgsIncludeSelf(peer: Peer, msgId: string, count: number, queryOrder: boolean): Promise<GeneralCallResult & {
msgList: RawMessage[];
}>;
getMsgsWithMsgTimeAndClientSeqForC2C(...args: unknown[]): unknown;
getMsgsWithStatus(...args: unknown[]): unknown;
getMsgsBySeqRange(...args: unknown[]): unknown;
getMsgsWithMsgTimeAndClientSeqForC2C(...args: unknown[]): Promise<unknown>;
getMsgsWithStatus(params: {
peer: Peer;
msgId: string;
msgTime: unknown;
cnt: unknown;
queryOrder: boolean;
isIncludeSelf: boolean;
appid: unknown;
}): Promise<unknown>;
getMsgsBySeqRange(peer: Peer, startSeq: string, endSeq: string): Promise<unknown>;
getMsgsBySeqAndCount(peer: Peer, seq: string, count: number, desc: boolean, unknownArg: boolean): Promise<GeneralCallResult & {
msgList: RawMessage[];
}>;
getMsgsByMsgId(peer: Peer, ids: string[]): Promise<GeneralCallResult & {
msgList: RawMessage[];
}>;
getRecallMsgsByMsgId(...args: unknown[]): unknown;
getMsgsBySeqList(...args: unknown[]): unknown;
getSingleMsg(...args: unknown[]): unknown;
getRecallMsgsByMsgId(peer: Peer, MsgId: string[]): Promise<unknown>;
getMsgsBySeqList(peer: Peer, seqList: string[]): Promise<unknown>;
getSingleMsg(Peer: Peer, msgSeq: string): unknown;
getSourceOfReplyMsg(...args: unknown[]): unknown;
getSourceOfReplyMsgV2(...args: unknown[]): unknown;
getMsgByClientSeqAndTime(...args: unknown[]): unknown;
getSourceOfReplyMsgByClientSeqAndTime(...args: unknown[]): unknown;
getMsgsByTypeFilter(...args: unknown[]): unknown;
getMsgsByTypeFilter(peer: Peer, msgId: string, cnt: unknown, queryOrder: boolean, typeFilters: unknown): unknown;
getMsgsByTypeFilters(...args: unknown[]): unknown;
getMsgWithAbstractByFilterParam(...args: unknown[]): unknown;
queryMsgsWithFilter(...args: unknown[]): unknown;
queryMsgsWithFilterVer2(...args: unknown[]): unknown;
queryMsgsWithFilterEx(...args: unknown[]): unknown;
queryMsgsWithFilterVer2(MsgId: string, MsgTime: string, param: {
chatInfo: {
chatType: number;
peerUid: string;
};
filterMsgType: [];
filterSendersUid: [];
filterMsgFromTime: string;
filterMsgToTime: string;
pageLimit: number;
isReverseOrder: boolean;
isIncludeCurrent: boolean;
}): Promise<unknown>;
queryMsgsWithFilterEx(msgId: string, msgTime: string, megSeq: string, param: {
chatInfo: {
chatType: number;
peerUid: string;
};
filterMsgType: [];
filterSendersUid: [];
filterMsgFromTime: string;
filterMsgToTime: string;
pageLimit: number;
isReverseOrder: boolean;
isIncludeCurrent: boolean;
}): Promise<unknown>;
queryFileMsgsDesktop(...args: unknown[]): unknown;
setMsgRichInfoFlag(...args: unknown[]): unknown;
queryPicOrVideoMsgs(...args: unknown[]): unknown;
queryPicOrVideoMsgs(msgId: string, msgTime: string, megSeq: string, param: {
chatInfo: {
chatType: number;
peerUid: string;
};
filterMsgType: [];
filterSendersUid: [];
filterMsgFromTime: string;
filterMsgToTime: string;
pageLimit: number;
isReverseOrder: boolean;
isIncludeCurrent: boolean;
}): Promise<unknown>;
queryPicOrVideoMsgsDesktop(...args: unknown[]): unknown;
queryEmoticonMsgs(...args: unknown[]): unknown;
queryTroopEmoticonMsgs(...args: unknown[]): unknown;
@@ -204,11 +252,11 @@ export interface NodeIKernelMsgService {
clickInlineKeyboardButton(...args: unknown[]): unknown;
setCurOnScreenMsg(...args: unknown[]): unknown;
setCurOnScreenMsgForMsgEvent(...args: unknown[]): unknown;
getMiscData(...args: unknown[]): unknown;
setMiscData(...args: unknown[]): unknown;
getMiscData(key: string): unknown;
setMiscData(key: string, value: string): unknown;
getBookmarkData(...args: unknown[]): unknown;
setBookmarkData(...args: unknown[]): unknown;
sendShowInputStatusReq(...args: unknown[]): unknown;
sendShowInputStatusReq(ChatType: number, EventType: number, toUid: string): Promise<unknown>;
queryCalendar(...args: unknown[]): unknown;
queryFirstMsgSeq(...args: unknown[]): unknown;
queryRoamCalendar(...args: unknown[]): unknown;
@@ -235,7 +283,7 @@ export interface NodeIKernelMsgService {
clearMsgRecords(...args: unknown[]): unknown;
IsExistOldDb(...args: unknown[]): unknown;
canImportOldDbMsg(...args: unknown[]): unknown;
setPowerStatus(...args: unknown[]): unknown;
setPowerStatus(z: boolean): unknown;
canProcessDataMigration(...args: unknown[]): unknown;
importOldDbMsg(...args: unknown[]): unknown;
stopImportOldDbMsgAndroid(...args: unknown[]): unknown;
@@ -250,14 +298,14 @@ export interface NodeIKernelMsgService {
registerSysMsgNotification(...args: unknown[]): unknown;
unregisterSysMsgNotification(...args: unknown[]): unknown;
enterOrExitAio(...args: unknown[]): unknown;
prepareTempChat(...args: unknown[]): unknown;
getTempChatInfo(...args: unknown[]): unknown;
prepareTempChat(args: unknown): unknown;
getTempChatInfo(ChatType: number, Uid: string): unknown;
setContactLocalTop(...args: unknown[]): unknown;
switchAnonymousChat(...args: unknown[]): unknown;
renameAnonyChatNick(...args: unknown[]): unknown;
getAnonymousInfo(...args: unknown[]): unknown;
updateAnonymousInfo(...args: unknown[]): unknown;
sendSummonMsg(...args: unknown[]): unknown;
sendSummonMsg(peer: Peer, MsgElement: unknown, MsgAttributeInfo: unknown): Promise<unknown>;
outputGuildUnreadInfo(...args: unknown[]): unknown;
checkMsgWithUrl(...args: unknown[]): unknown;
checkTabListStatus(...args: unknown[]): unknown;
@@ -266,7 +314,7 @@ export interface NodeIKernelMsgService {
isHitEmojiKeyword(...args: unknown[]): unknown;
getKeyWordRelatedEmoji(...args: unknown[]): unknown;
recordEmoji(...args: unknown[]): unknown;
fetchGetHitEmotionsByWord(...args: unknown[]): unknown;
fetchGetHitEmotionsByWord(args: Object): Promise<unknown>;
deleteAllRoamMsgs(...args: unknown[]): unknown;
packRedBag(...args: unknown[]): unknown;
grabRedBag(...args: unknown[]): unknown;
@@ -276,9 +324,9 @@ export interface NodeIKernelMsgService {
requestTianshuAdv(...args: unknown[]): unknown;
tianshuReport(...args: unknown[]): unknown;
tianshuMultiReport(...args: unknown[]): unknown;
GetMsgSubType(...args: unknown[]): unknown;
GetMsgSubType(a0: number, a1: number): unknown;
setIKernelPublicAccountAdapter(...args: unknown[]): unknown;
createUidFromTinyId(...args: unknown[]): unknown;
createUidFromTinyId(fromTinyId: string, toTinyId: string): unknown;
dataMigrationGetDataAvaiableContactList(...args: unknown[]): unknown;
dataMigrationGetMsgList(...args: unknown[]): unknown;
dataMigrationStopOperation(...args: unknown[]): unknown;
@@ -292,12 +340,12 @@ export interface NodeIKernelMsgService {
clearFeedNoticeRedPoint(...args: unknown[]): unknown;
clearFeedSquareRead(...args: unknown[]): unknown;
IsC2CStyleChatType(...args: unknown[]): unknown;
IsTempChatType(...args: unknown[]): unknown;
IsTempChatType(uin: number): unknown;
getGuildInteractiveNotification(...args: unknown[]): unknown;
getGuildNotificationAbstract(...args: unknown[]): unknown;
setFocusOnBase(...args: unknown[]): unknown;
queryArkInfo(...args: unknown[]): unknown;
queryUserSecQuality(...args: unknown[]): unknown;
getGuildMsgAbFlag(...args: unknown[]): unknown;
getGroupMsgStorageTime(...args: unknown[]): unknown;
getGroupMsgStorageTime(): unknown;
}

Some files were not shown because too many files have changed in this diff Show More