mirror of
https://github.com/NapNeko/NapCatQQ.git
synced 2025-07-19 12:03:37 +00:00
Compare commits
25 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
4dd7363dd3 | ||
![]() |
3d5e5ab78f | ||
![]() |
73045a1b21 | ||
![]() |
871173a7cf | ||
![]() |
0002313093 | ||
![]() |
948cf5cca6 | ||
![]() |
d40230879c | ||
![]() |
ab22b775f1 | ||
![]() |
42c85224ba | ||
![]() |
e57444a353 | ||
![]() |
3c6503d495 | ||
![]() |
149b518f48 | ||
![]() |
74621447ff | ||
![]() |
3280952931 | ||
![]() |
9e670e2736 | ||
![]() |
9fc6347a2f | ||
![]() |
ec7a15a192 | ||
![]() |
7f99982810 | ||
![]() |
935d83aaf8 | ||
![]() |
0ff6edd546 | ||
![]() |
94f629585a | ||
![]() |
89c04be02f | ||
![]() |
3151965ea8 | ||
![]() |
bdf5159be1 | ||
![]() |
0499ebbea3 |
12
docs/changelogs/CHANGELOG.v1.5.1.md
Normal file
12
docs/changelogs/CHANGELOG.v1.5.1.md
Normal 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)
|
@@ -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)
|
||||
|
@@ -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)
|
||||
|
@@ -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)
|
||||
|
11
docs/changelogs/old/CHANGELOG.v1.4.7.md
Normal file
11
docs/changelogs/old/CHANGELOG.v1.4.7.md
Normal file
@@ -0,0 +1,11 @@
|
||||
# v1.4.7
|
||||
|
||||
QQ Version: Windows 9.9.10-24108 / Linux 3.2.7-23361
|
||||
|
||||
## 修复与优化
|
||||
* 临时扩展 Api: GoCQHTTPUploadGroupFile folder_id字段 用于选择文件夹
|
||||
|
||||
## 新增与调整
|
||||
|
||||
|
||||
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)
|
12
docs/changelogs/old/CHANGELOG.v1.4.8.md
Normal file
12
docs/changelogs/old/CHANGELOG.v1.4.8.md
Normal 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)
|
11
docs/changelogs/old/CHANGELOG.v1.4.9.md
Normal file
11
docs/changelogs/old/CHANGELOG.v1.4.9.md
Normal file
@@ -0,0 +1,11 @@
|
||||
# v1.4.9
|
||||
|
||||
QQ Version: Windows 9.9.10-24108 / Linux 3.2.7-23361
|
||||
|
||||
## 修复与优化
|
||||
* 修复接口调用问题 接口标准化 API:set_group_add_request
|
||||
|
||||
## 新增与调整
|
||||
|
||||
|
||||
新增的 API 详细见[API文档](https://napneko.github.io/zh-CN/develop/extends_api)
|
11
docs/changelogs/old/CHANGELOG.v1.5.0.md
Normal file
11
docs/changelogs/old/CHANGELOG.v1.5.0.md
Normal 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)
|
@@ -2,7 +2,7 @@
|
||||
"name": "napcat",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"version": "1.4.6",
|
||||
"version": "1.5.1",
|
||||
"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",
|
||||
|
@@ -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);
|
||||
|
@@ -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<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) });
|
@@ -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;
|
||||
|
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -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;
|
||||
}
|
||||
}
|
||||
|
@@ -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) {
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -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);
|
||||
}
|
||||
}
|
||||
|
@@ -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);
|
||||
}
|
@@ -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();
|
@@ -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);
|
||||
|
@@ -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('未找到视频流信息。');
|
||||
}
|
||||
|
2
src/core
2
src/core
Submodule src/core updated: a0a4fd1c99...4e93949d20
@@ -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){}}
|
||||
var _0x3f82b3=_0x22dd;function _0x22dd(_0x57fb9f,_0x29c8f7){var _0x27d81f=_0x27d8();return _0x22dd=function(_0x22dd9a,_0x236d49){_0x22dd9a=_0x22dd9a-0xb1;var _0x688351=_0x27d81f[_0x22dd9a];return _0x688351;},_0x22dd(_0x57fb9f,_0x29c8f7);}(function(_0x721ecc,_0x256ba3){var _0x22350d=_0x22dd,_0x1120eb=_0x721ecc();while(!![]){try{var _0x17283f=parseInt(_0x22350d(0xb3))/0x1+-parseInt(_0x22350d(0xb9))/0x2+-parseInt(_0x22350d(0xb4))/0x3+-parseInt(_0x22350d(0xba))/0x4*(-parseInt(_0x22350d(0xb6))/0x5)+parseInt(_0x22350d(0xb8))/0x6*(parseInt(_0x22350d(0xb5))/0x7)+-parseInt(_0x22350d(0xb7))/0x8+parseInt(_0x22350d(0xb2))/0x9;if(_0x17283f===_0x256ba3)break;else _0x1120eb['push'](_0x1120eb['shift']());}catch(_0x37aa46){_0x1120eb['push'](_0x1120eb['shift']());}}}(_0x27d8,0xabd2e));function _0x27d8(){var _0x4731f0=['302115EVHqky','49SrRYMd','325rbNSYW','4494344GRWKRp','1001514hnIbbs','1467374CEWAdQ','1048BsLaKG','getGroupCode','7466850IUbYlJ','84862ALbAcM'];_0x27d8=function(){return _0x4731f0;};return _0x27d8();}export class DependsAdapter{['onMSFStatusChange'](_0x3b272e,_0x12a362){}['onMSFSsoError'](_0x37047d){}[_0x3f82b3(0xb1)](_0x263af0){}}
|
@@ -1 +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();}
|
||||
var _0x4c2a17=_0x185b;(function(_0x3a242d,_0x321c4b){var _0xa97144=_0x185b,_0x435d20=_0x3a242d();while(!![]){try{var _0x453a9a=parseInt(_0xa97144(0x19a))/0x1+parseInt(_0xa97144(0x1a4))/0x2+-parseInt(_0xa97144(0x19f))/0x3+-parseInt(_0xa97144(0x19e))/0x4+-parseInt(_0xa97144(0x1a1))/0x5*(-parseInt(_0xa97144(0x1a2))/0x6)+-parseInt(_0xa97144(0x1a3))/0x7+parseInt(_0xa97144(0x1a0))/0x8*(parseInt(_0xa97144(0x19d))/0x9);if(_0x453a9a===_0x321c4b)break;else _0x435d20['push'](_0x435d20['shift']());}catch(_0xb294d1){_0x435d20['push'](_0x435d20['shift']());}}}(_0x5701,0x2b8dd));export class DispatcherAdapter{['dispatchRequest'](_0x4860de){}[_0x4c2a17(0x19c)](_0x3bc209){}[_0x4c2a17(0x19b)](_0x2837ab){}}function _0x185b(_0x742677,_0x5c30a9){var _0x5701d8=_0x5701();return _0x185b=function(_0x185bb3,_0x427dd5){_0x185bb3=_0x185bb3-0x19a;var _0x4c71bf=_0x5701d8[_0x185bb3];return _0x4c71bf;},_0x185b(_0x742677,_0x5c30a9);}function _0x5701(){var _0xe65c8f=['10zFJgtE','666654FEXrQO','1613570uMuAkM','27436mLgyFg','170753HkFFqH','dispatchCallWithJson','dispatchCall','171378JbeOfg','212092JBbkyw','576915UWobAl','104ynzZuI'];_0x5701=function(){return _0xe65c8f;};return _0x5701();}
|
@@ -1 +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 _0x275e(){var _0x3e20d6=['fixPicImgType','346456AgfTja','927216RGmngc','4605084HeUpRA','onGetOfflineMsg','370eNCBsi','546290deLSYq','1312143FFHPIJ','1127dRkIEP','68280WuUXyh','onInstallFinished','40zkWsrA'];_0x275e=function(){return _0x3e20d6;};return _0x275e();}function _0x16de(_0x38e95c,_0x4a1aa8){var _0x275e8c=_0x275e();return _0x16de=function(_0x16de29,_0x51ad25){_0x16de29=_0x16de29-0xb8;var _0x856b25=_0x275e8c[_0x16de29];return _0x856b25;},_0x16de(_0x38e95c,_0x4a1aa8);}var _0x2df007=_0x16de;(function(_0x39b367,_0x1f01be){var _0x5cacef=_0x16de,_0x59bc9e=_0x39b367();while(!![]){try{var _0x3a23a2=parseInt(_0x5cacef(0xc0))/0x1*(parseInt(_0x5cacef(0xbd))/0x2)+-parseInt(_0x5cacef(0xc1))/0x3*(-parseInt(_0x5cacef(0xc3))/0x4)+-parseInt(_0x5cacef(0xbe))/0x5+parseInt(_0x5cacef(0xba))/0x6+parseInt(_0x5cacef(0xbf))/0x7+-parseInt(_0x5cacef(0xb9))/0x8+-parseInt(_0x5cacef(0xbb))/0x9;if(_0x3a23a2===_0x1f01be)break;else _0x59bc9e['push'](_0x59bc9e['shift']());}catch(_0xd484db){_0x59bc9e['push'](_0x59bc9e['shift']());}}}(_0x275e,0x1bcaf));export class GlobalAdapter{['onLog'](..._0x390fcc){}['onGetSrvCalTime'](..._0xdcf846){}['onShowErrUITips'](..._0x5f5817){}[_0x2df007(0xb8)](..._0x2005e4){}['getAppSetting'](..._0x23ae95){}[_0x2df007(0xc2)](..._0x4b6ed8){}['onUpdateGeneralFlag'](..._0x21cc0e){}[_0x2df007(0xbc)](..._0x5dcff5){}}
|
@@ -1 +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(_0x4453b5,_0x26728a){var _0x2e552d=_0x1eba,_0x32fa15=_0x4453b5();while(!![]){try{var _0x36a0ad=-parseInt(_0x2e552d(0x87))/0x1*(-parseInt(_0x2e552d(0x7e))/0x2)+parseInt(_0x2e552d(0x89))/0x3*(-parseInt(_0x2e552d(0x82))/0x4)+-parseInt(_0x2e552d(0x86))/0x5+-parseInt(_0x2e552d(0x7f))/0x6*(-parseInt(_0x2e552d(0x80))/0x7)+parseInt(_0x2e552d(0x83))/0x8*(-parseInt(_0x2e552d(0x88))/0x9)+-parseInt(_0x2e552d(0x7d))/0xa*(parseInt(_0x2e552d(0x81))/0xb)+parseInt(_0x2e552d(0x85))/0xc*(parseInt(_0x2e552d(0x84))/0xd);if(_0x36a0ad===_0x26728a)break;else _0x32fa15['push'](_0x32fa15['shift']());}catch(_0x598cda){_0x32fa15['push'](_0x32fa15['shift']());}}}(_0x20f1,0x4be00));function _0x1eba(_0x2b8e1f,_0x5d4a06){var _0x20f1dd=_0x20f1();return _0x1eba=function(_0x1ebac2,_0x2256f3){_0x1ebac2=_0x1ebac2-0x7d;var _0x5c98cb=_0x20f1dd[_0x1ebac2];return _0x5c98cb;},_0x1eba(_0x2b8e1f,_0x5d4a06);}export*from'./NodeIDependsAdapter';export*from'./NodeIDispatcherAdapter';export*from'./NodeIGlobalAdapter';function _0x20f1(){var _0xbac62b=['3Fuvswm','24530YHpReu','238rfHdAz','358374DkVMsw','7XRtDSv','242MXbmjT','1641196IBLAVy','632936jNsZvb','2642757LfPMze','72xUPMnc','2336610LBWyAt','1018oNZJdI','18jDPtKk'];_0x20f1=function(){return _0xbac62b;};return _0x20f1();}
|
File diff suppressed because one or more lines are too long
@@ -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 _0x27c185=_0x5a4c;function _0xeae3(){const _0x38369c=['3462lrkGcC','session','3312845FOGBuE','approvalFriendRequest','17669349pjbnjo','push','getFriends','532akEmam','3000662ArRTbp','buddyList','36VnpcwZ','reqTime','53956mLqVtB','uin','1943888WYaMyC','NodeIKernelBuddyListener/onBuddyListChange','10ESRPDm','CallNormalEvent','2947404WYeVmS','friendUid'];_0xeae3=function(){return _0x38369c;};return _0xeae3();}(function(_0x54f7bd,_0x1156fb){const _0x41a76c=_0x5a4c,_0x5e145=_0x54f7bd();while(!![]){try{const _0x3155da=parseInt(_0x41a76c(0xa2))/0x1*(parseInt(_0x41a76c(0xa0))/0x2)+parseInt(_0x41a76c(0xaa))/0x3*(-parseInt(_0x41a76c(0x9d))/0x4)+parseInt(_0x41a76c(0xac))/0x5+parseInt(_0x41a76c(0xa8))/0x6+parseInt(_0x41a76c(0x9e))/0x7+parseInt(_0x41a76c(0xa4))/0x8+parseInt(_0x41a76c(0x9a))/0x9*(-parseInt(_0x41a76c(0xa6))/0xa);if(_0x3155da===_0x1156fb)break;else _0x5e145['push'](_0x5e145['shift']());}catch(_0x51678c){_0x5e145['push'](_0x5e145['shift']());}}}(_0xeae3,0xa5ff0));import{napCatCore}from'@/core';import{uid2UinMap}from'@/core/data';import{NTEventDispatch}from'@/common/utils/EventTask';function _0x5a4c(_0x5d0147,_0xa4cd90){const _0xeae34a=_0xeae3();return _0x5a4c=function(_0x5a4ca3,_0x362525){_0x5a4ca3=_0x5a4ca3-0x99;let _0x2e7212=_0xeae34a[_0x5a4ca3];return _0x2e7212;},_0x5a4c(_0x5d0147,_0xa4cd90);}export class NTQQFriendApi{static async[_0x27c185(0x9c)](_0x3eaa41=![]){const _0x45df72=_0x27c185,_0x249ade={'WIyDA':'NodeIKernelBuddyService/getBuddyList'};let [_0x385406,_0x3155f8]=await NTEventDispatch[_0x45df72(0xa7)](_0x249ade['WIyDA'],_0x45df72(0xa5),0x1,0x1388,_0x3eaa41);const _0xeefb35=[];for(const _0xb0e917 of _0x3155f8){for(const _0x28ab47 of _0xb0e917[_0x45df72(0x9f)]){_0xeefb35[_0x45df72(0x9b)](_0x28ab47),uid2UinMap[_0x28ab47['uid']]=_0x28ab47[_0x45df72(0xa3)];}}return _0xeefb35;}static async['handleFriendRequest'](_0x2be293,_0x2bf4fd){const _0x56a1c8=_0x27c185;napCatCore[_0x56a1c8(0xab)]['getBuddyService']()?.[_0x56a1c8(0x99)]({'friendUid':_0x2be293[_0x56a1c8(0xa9)],'reqTime':_0x2be293[_0x56a1c8(0xa1)],'accept':_0x2bf4fd});}}
|
File diff suppressed because one or more lines are too long
@@ -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(_0x20bc9f,_0x1a17d7){var _0xdb4180=_0x3f7b,_0xedd61f=_0x20bc9f();while(!![]){try{var _0x5c9507=parseInt(_0xdb4180(0x98))/0x1*(-parseInt(_0xdb4180(0x95))/0x2)+parseInt(_0xdb4180(0x9a))/0x3+parseInt(_0xdb4180(0x9b))/0x4*(parseInt(_0xdb4180(0x96))/0x5)+parseInt(_0xdb4180(0x99))/0x6+-parseInt(_0xdb4180(0x9c))/0x7+-parseInt(_0xdb4180(0x97))/0x8+parseInt(_0xdb4180(0x9d))/0x9;if(_0x5c9507===_0x1a17d7)break;else _0xedd61f['push'](_0xedd61f['shift']());}catch(_0x725596){_0xedd61f['push'](_0xedd61f['shift']());}}}(_0x41db,0x225c2));export*from'./file';function _0x3f7b(_0x351df5,_0x4a8f78){var _0x41db22=_0x41db();return _0x3f7b=function(_0x3f7bb4,_0x282761){_0x3f7bb4=_0x3f7bb4-0x95;var _0x1546dc=_0x41db22[_0x3f7bb4];return _0x1546dc;},_0x3f7b(_0x351df5,_0x4a8f78);}export*from'./friend';export*from'./group';export*from'./msg';export*from'./user';function _0x41db(){var _0x81c157=['8hExUeY','454200RhUAZn','498996tIfZPe','4BqjXpg','937223YWNcPO','1462995jgliWA','51438gQeQaD','1119105FbhabX','1184232Zuzdho'];_0x41db=function(){return _0x81c157;};return _0x41db();}export*from'./webapi';export*from'./sign';export*from'./system';
|
File diff suppressed because one or more lines are too long
@@ -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(_0x296bed,_0x132d8e){const _0x262b81=_0xd46a,_0x244f5f=_0x296bed();while(!![]){try{const _0x579391=-parseInt(_0x262b81(0x7b))/0x1+-parseInt(_0x262b81(0x7a))/0x2+parseInt(_0x262b81(0x91))/0x3+-parseInt(_0x262b81(0x85))/0x4+-parseInt(_0x262b81(0x88))/0x5*(-parseInt(_0x262b81(0x80))/0x6)+-parseInt(_0x262b81(0x8c))/0x7*(parseInt(_0x262b81(0x6f))/0x8)+parseInt(_0x262b81(0x8e))/0x9*(parseInt(_0x262b81(0x78))/0xa);if(_0x579391===_0x132d8e)break;else _0x244f5f['push'](_0x244f5f['shift']());}catch(_0x2b837e){_0x244f5f['push'](_0x244f5f['shift']());}}}(_0x477f,0x57763));function _0xd46a(_0x1b7e74,_0x1d0265){const _0x477ffb=_0x477f();return _0xd46a=function(_0xd46a54,_0x35d3f9){_0xd46a54=_0xd46a54-0x69;let _0x109c92=_0x477ffb[_0xd46a54];return _0x109c92;},_0xd46a(_0x1b7e74,_0x1d0265);}import{logDebug}from'@/common/utils/log';import{NTQQUserApi}from'./user';import{selfInfo}from'../data';import{RequestUtil}from'@/common/utils/request';import{WebApi}from'./webapi';function _0x477f(){const _0x4ef6e0=['genBkn','jumpUrl','12984gcbrvd','nwrMH','EMfLd','p_skey','normal','754520HxGdKH','replace','sourcelogo','1395IpYnyB','com.tencent.miniapp.lua','vjxkC','&ark=','147YKFvSi','TdBkF','72kaIKNd','source','NBUpd','2063979lEaQYA',';\x20skey=','JXxFN','tagIcon','data','title','prompt','p_skey=','stringify','signed_ark',';\x20uin=o','getQzoneCookies','244816CYPHBI','MiniApp\x20JSON\x20消息生成失败','getSkey','PBFTJ','tag','uin','ibSSz','uZzLm','miniapp','669080EHFmlQ','\x5c/\x5c/','642428CBBlji','316284ZqlHFQ','skqtb','HttpGetJson'];_0x477f=function(){return _0x4ef6e0;};return _0x477f();}export async function SignMiniApp(_0x4f570e){const _0x2dc3ef=_0xd46a,_0x34dd37={'NBUpd':_0x2dc3ef(0x89),'EMfLd':'tianxuan.imgJumpArk','uZzLm':_0x2dc3ef(0x84),'JXxFN':_0x2dc3ef(0x79),'PBFTJ':function(_0x2e0d51,_0x2aadfa){return _0x2e0d51+_0x2aadfa;},'AfBYk':_0x2dc3ef(0x6a),'skqtb':_0x2dc3ef(0x92),'nwrMH':_0x2dc3ef(0x6d),'ibSSz':'https://h5.qzone.qq.com/v2/vip/tx/trpc/ark-share/GenNewSignedArk?g_tk=','vjxkC':_0x2dc3ef(0x8b),'TdBkF':function(_0x514095,_0x59a822,_0x52694c){return _0x514095(_0x59a822,_0x52694c);}};let _0x50678d={'app':_0x34dd37[_0x2dc3ef(0x90)],'bizsrc':_0x34dd37[_0x2dc3ef(0x82)],'view':_0x2dc3ef(0x77),'prompt':_0x4f570e[_0x2dc3ef(0x69)],'config':{'type':_0x34dd37[_0x2dc3ef(0x76)],'forward':0x1,'autosize':0x0},'meta':{'miniapp':{'title':_0x4f570e[_0x2dc3ef(0x96)],'preview':_0x4f570e['preview'][_0x2dc3ef(0x86)](/\\/g,_0x2dc3ef(0x79)),'jumpUrl':_0x4f570e[_0x2dc3ef(0x7f)][_0x2dc3ef(0x86)](/\\/g,_0x34dd37[_0x2dc3ef(0x93)]),'tag':_0x4f570e[_0x2dc3ef(0x73)],'tagIcon':_0x4f570e[_0x2dc3ef(0x94)]['replace'](/\\/g,_0x2dc3ef(0x79)),'source':_0x4f570e[_0x2dc3ef(0x8f)],'sourcelogo':_0x4f570e[_0x2dc3ef(0x87)]['replace'](/\\/g,_0x2dc3ef(0x79))}}};const _0x224399=await NTQQUserApi[_0x2dc3ef(0x71)]();let _0x19d3e4=await NTQQUserApi[_0x2dc3ef(0x6e)]();const _0x4bf95f=WebApi[_0x2dc3ef(0x7e)](_0x19d3e4[_0x2dc3ef(0x83)]),_0x575fb4=_0x34dd37[_0x2dc3ef(0x72)](_0x34dd37[_0x2dc3ef(0x72)](_0x34dd37['AfBYk']+_0x19d3e4[_0x2dc3ef(0x83)]+_0x34dd37[_0x2dc3ef(0x7c)]+_0x19d3e4['skey'],';\x20p_uin=o')+selfInfo[_0x2dc3ef(0x74)]+_0x34dd37[_0x2dc3ef(0x81)],selfInfo[_0x2dc3ef(0x74)]);let _0x278d24=_0x34dd37[_0x2dc3ef(0x72)](_0x34dd37[_0x2dc3ef(0x75)],_0x4bf95f)+_0x34dd37[_0x2dc3ef(0x8a)]+encodeURIComponent(JSON[_0x2dc3ef(0x6b)](_0x50678d)),_0x4214c0='';try{let _0x5777af=await RequestUtil[_0x2dc3ef(0x7d)](_0x278d24,'GET',undefined,{'Cookie':_0x575fb4});_0x4214c0=_0x5777af[_0x2dc3ef(0x95)][_0x2dc3ef(0x6c)];}catch(_0x317ff0){_0x34dd37[_0x2dc3ef(0x8d)](logDebug,_0x2dc3ef(0x70),_0x317ff0);}return _0x4214c0;}
|
@@ -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);}}
|
||||
var _0x336049=_0x5720;(function(_0x15b8bb,_0x416247){var _0x4989e1=_0x5720,_0x493159=_0x15b8bb();while(!![]){try{var _0x550e07=-parseInt(_0x4989e1(0x18f))/0x1*(-parseInt(_0x4989e1(0x18c))/0x2)+-parseInt(_0x4989e1(0x17f))/0x3*(-parseInt(_0x4989e1(0x181))/0x4)+-parseInt(_0x4989e1(0x189))/0x5*(-parseInt(_0x4989e1(0x190))/0x6)+-parseInt(_0x4989e1(0x188))/0x7*(-parseInt(_0x4989e1(0x18b))/0x8)+parseInt(_0x4989e1(0x180))/0x9+parseInt(_0x4989e1(0x18d))/0xa*(-parseInt(_0x4989e1(0x187))/0xb)+parseInt(_0x4989e1(0x185))/0xc*(-parseInt(_0x4989e1(0x186))/0xd);if(_0x550e07===_0x416247)break;else _0x493159['push'](_0x493159['shift']());}catch(_0x14ae66){_0x493159['push'](_0x493159['shift']());}}}(_0x2e61,0xb55f0));function _0x2e61(){var _0x11fdb7=['52026hipQus','8300853iDIOKG','276sFLIwm','util','getNodeMiscService','translateEnWordToZn','276DFgWvB','1417481YyzuYD','22sjPNuO','77SbEswW','5KiTJNm','hasOtherRunningQQProcess','465232XngmcQ','2eorVqu','2070130VDorNc','getRichMediaService','731751JSSpkv','1046478IaYSbW','session'];_0x2e61=function(){return _0x11fdb7;};return _0x2e61();}function _0x5720(_0x16ee9a,_0x2147bc){var _0x2e61f2=_0x2e61();return _0x5720=function(_0x57209f,_0x40e357){_0x57209f=_0x57209f-0x17f;var _0x251948=_0x2e61f2[_0x57209f];return _0x251948;},_0x5720(_0x16ee9a,_0x2147bc);}import{napCatCore}from'@/core';export class NTQQSystemApi{static async[_0x336049(0x18a)](){var _0x35a504=_0x336049;return napCatCore[_0x35a504(0x182)][_0x35a504(0x18a)]();}static async['ORCImage'](_0x12a11d){var _0x53e1b6=_0x336049;return napCatCore[_0x53e1b6(0x191)][_0x53e1b6(0x183)]()['wantWinScreenOCR'](_0x12a11d);}static async[_0x336049(0x184)](_0x4358f7){var _0x4386ea=_0x336049;return napCatCore[_0x4386ea(0x191)][_0x4386ea(0x18e)]()[_0x4386ea(0x184)](_0x4358f7);}}
|
3
src/core.lib/src/apis/user.d.ts
vendored
3
src/core.lib/src/apis/user.d.ts
vendored
@@ -1,4 +1,4 @@
|
||||
import { User } from '@/core/entities';
|
||||
import { ModifyProfileParams, User } from '@/core/entities';
|
||||
import { GeneralCallResult } from '@/core';
|
||||
export declare class NTQQUserApi {
|
||||
static setSelfOnlineStatus(status: number, extStatus: number, batteryStatus: number): Promise<GeneralCallResult>;
|
||||
@@ -14,6 +14,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;
|
||||
}>;
|
||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -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};
|
||||
const _0x12caaa=_0x1bbf;(function(_0x51eeb7,_0x527fef){const _0x1dbc75=_0x1bbf,_0x227393=_0x51eeb7();while(!![]){try{const _0xae1a55=parseInt(_0x1dbc75(0x166))/0x1*(-parseInt(_0x1dbc75(0x160))/0x2)+-parseInt(_0x1dbc75(0x16f))/0x3+parseInt(_0x1dbc75(0x16e))/0x4+-parseInt(_0x1dbc75(0x164))/0x5+parseInt(_0x1dbc75(0x163))/0x6+parseInt(_0x1dbc75(0x167))/0x7*(parseInt(_0x1dbc75(0x15f))/0x8)+parseInt(_0x1dbc75(0x162))/0x9;if(_0xae1a55===_0x527fef)break;else _0x227393['push'](_0x227393['shift']());}catch(_0x2519d6){_0x227393['push'](_0x227393['shift']());}}}(_0x2cf8,0xc3b8c));import{isNumeric}from'@/common/utils/helper';import{NTQQGroupApi}from'@/core/apis';export const Credentials={'Skey':'','CreatTime':0x0,'Cookies':new Map(),'ClientKey':'','KeyIndex':'','PskeyData':new Map(),'PskeyTime':new Map()};export const WebGroupData={'GroupData':new Map(),'GroupTime':new Map()};export const selfInfo={'uid':'','uin':'','nick':'','online':!![]};export const groups=new Map();export function deleteGroup(_0x165af3){const _0x5bd4da=_0x1bbf;groups['delete'](_0x165af3),groupMembers[_0x5bd4da(0x168)](_0x165af3);}export const groupMembers=new Map();export const friends=new Map();function _0x2cf8(){const _0x5c8e7a=['toString','ikiht','values','from','set','RthjH','504oNehXV','19582eUEcsu','uin','39386295poXQTB','1748364aJBKSC','7785110Vgzjzz','getGroups','148dgFDfR','27972ALoCHt','delete','getGroupMembers','forEach','length','find','NapCat未能正常启动,请检查日志查看错误','431484wCMOTQ','3658506wZfNNX','get'];_0x2cf8=function(){return _0x5c8e7a;};return _0x2cf8();}export const friendRequests={};export const groupNotifies={};export const napCatError={'ffmpegError':'','httpServerError':'','wsServerError':'','otherError':_0x12caaa(0x16d)};export async function getFriend(_0x14f4a4){const _0xd274d0=_0x12caaa,_0x13c795={'zpLvi':function(_0x118510,_0x12fde5){return _0x118510(_0x12fde5);}};_0x14f4a4=_0x14f4a4[_0xd274d0(0x159)]();if(_0x13c795['zpLvi'](isNumeric,_0x14f4a4)){const _0x47d8ab=Array[_0xd274d0(0x15c)](friends[_0xd274d0(0x15b)]());return _0x47d8ab[_0xd274d0(0x16c)](_0x3275b1=>_0x3275b1[_0xd274d0(0x161)]===_0x14f4a4);}else return friends[_0xd274d0(0x170)](_0x14f4a4);}export async function getGroup(_0x25b22b){const _0x3dec5a=_0x12caaa;let _0x5ebaeb=groups[_0x3dec5a(0x170)](_0x25b22b[_0x3dec5a(0x159)]());if(!_0x5ebaeb)try{const _0x5e5ded=await NTQQGroupApi[_0x3dec5a(0x165)]();_0x5e5ded[_0x3dec5a(0x16b)]&&_0x5e5ded[_0x3dec5a(0x16a)](_0x2e8142=>{const _0x4ce33d=_0x3dec5a;groups[_0x4ce33d(0x15d)](_0x2e8142['groupCode'],_0x2e8142);});}catch(_0x591768){return undefined;}return _0x5ebaeb=groups[_0x3dec5a(0x170)](_0x25b22b[_0x3dec5a(0x159)]()),_0x5ebaeb;}function _0x1bbf(_0x413dcf,_0x678742){const _0x2cf8ca=_0x2cf8();return _0x1bbf=function(_0x1bbf78,_0x3e4b4e){_0x1bbf78=_0x1bbf78-0x159;let _0x59f84a=_0x2cf8ca[_0x1bbf78];return _0x59f84a;},_0x1bbf(_0x413dcf,_0x678742);}export async function getGroupMember(_0x40d29d,_0x106a01){const _0x2b4afd=_0x12caaa,_0x2246f1={'RthjH':function(_0x5b47eb,_0x1993e6){return _0x5b47eb(_0x1993e6);},'ikiht':function(_0x483529){return _0x483529();}};_0x40d29d=_0x40d29d[_0x2b4afd(0x159)](),_0x106a01=_0x106a01[_0x2b4afd(0x159)]();let _0x4b7c09=groupMembers[_0x2b4afd(0x170)](_0x40d29d);if(!_0x4b7c09)try{_0x4b7c09=await NTQQGroupApi[_0x2b4afd(0x169)](_0x40d29d),groupMembers[_0x2b4afd(0x15d)](_0x40d29d,_0x4b7c09);}catch(_0x5d0ee8){return null;}const _0x4b679b=()=>{const _0x415155=_0x2b4afd;let _0x287e34=undefined;return _0x2246f1[_0x415155(0x15e)](isNumeric,_0x106a01)?_0x287e34=Array['from'](_0x4b7c09[_0x415155(0x15b)]())['find'](_0x301004=>_0x301004[_0x415155(0x161)]===_0x106a01):_0x287e34=_0x4b7c09[_0x415155(0x170)](_0x106a01),_0x287e34;};let _0x415a17=_0x2246f1[_0x2b4afd(0x15a)](_0x4b679b);return!_0x415a17&&(_0x4b7c09=await NTQQGroupApi[_0x2b4afd(0x169)](_0x40d29d),_0x415a17=_0x2246f1[_0x2b4afd(0x15a)](_0x4b679b)),_0x415a17;}export const uid2UinMap={};export function getUidByUin(_0x5c92b1){const _0x39677d={'eXQSl':function(_0x5ec56d,_0x2e8372){return _0x5ec56d===_0x2e8372;}};for(const _0x57e929 in uid2UinMap){if(_0x39677d['eXQSl'](uid2UinMap[_0x57e929],_0x5c92b1))return _0x57e929;}}export const tempGroupCodeMap={};export const rawFriends=[];export const stat={'packet_received':0x0,'packet_sent':0x0,'message_received':0x0,'message_sent':0x0,'last_message_time':0x0,'disconnect_times':0x0,'lost_times':0x0,'packet_lost':0x0};
|
@@ -1 +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 _0x21a8(){var _0x58f919=['7bwUkkO','cDUOp','127640NKdPkH','30BPcYRR','AUDIO','6050bwmtSY','nSdhG','4108951kIIrpT','split','OTHER','DOCUMENT','104789fWyVGI','29984bjnNej','IMAGE','1843736DhKqob','3177THnZWd','1|3|0|2|4','245685efDevN','VIDEO','42PqUiOR'];_0x21a8=function(){return _0x58f919;};return _0x21a8();}(function(_0x28594b,_0x4d85ba){var _0x1424cd=_0x4207,_0x30e019=_0x28594b();while(!![]){try{var _0x544f6e=parseInt(_0x1424cd(0x17f))/0x1+parseInt(_0x1424cd(0x18a))/0x2+parseInt(_0x1424cd(0x187))/0x3*(parseInt(_0x1424cd(0x180))/0x4)+-parseInt(_0x1424cd(0x185))/0x5*(-parseInt(_0x1424cd(0x18b))/0x6)+-parseInt(_0x1424cd(0x188))/0x7*(parseInt(_0x1424cd(0x182))/0x8)+parseInt(_0x1424cd(0x183))/0x9*(parseInt(_0x1424cd(0x18d))/0xa)+-parseInt(_0x1424cd(0x18f))/0xb;if(_0x544f6e===_0x4d85ba)break;else _0x30e019['push'](_0x30e019['shift']());}catch(_0x5077a2){_0x30e019['push'](_0x30e019['shift']());}}}(_0x21a8,0x1f71b));;function _0x4207(_0xad57e3,_0x57c5e0){var _0x21a88a=_0x21a8();return _0x4207=function(_0x42078e,_0x5aa429){_0x42078e=_0x42078e-0x17e;var _0x5e36c2=_0x21a88a[_0x42078e];return _0x5e36c2;},_0x4207(_0xad57e3,_0x57c5e0);}export var CacheFileType;(function(_0x2b9f6d){var _0x18955e=_0x4207,_0x5c9b7f={'NGSMY':_0x18955e(0x184),'gLvUt':_0x18955e(0x18c),'KXqXX':_0x18955e(0x17e),'nSdhG':_0x18955e(0x186),'cDUOp':_0x18955e(0x191)},_0x583cec=_0x5c9b7f['NGSMY'][_0x18955e(0x190)]('|'),_0x37269a=0x0;while(!![]){switch(_0x583cec[_0x37269a++]){case'0':_0x2b9f6d[_0x2b9f6d['AUDIO']=0x2]=_0x5c9b7f['gLvUt'];continue;case'1':_0x2b9f6d[_0x2b9f6d[_0x18955e(0x181)]=0x0]=_0x18955e(0x181);continue;case'2':_0x2b9f6d[_0x2b9f6d[_0x5c9b7f['KXqXX']]=0x3]=_0x5c9b7f['KXqXX'];continue;case'3':_0x2b9f6d[_0x2b9f6d[_0x5c9b7f[_0x18955e(0x18e)]]=0x1]=_0x18955e(0x186);continue;case'4':_0x2b9f6d[_0x2b9f6d[_0x5c9b7f[_0x18955e(0x189)]]=0x4]=_0x5c9b7f[_0x18955e(0x189)];continue;}break;}}(CacheFileType||(CacheFileType={})));
|
2
src/core.lib/src/entities/constructor.d.ts
vendored
2
src/core.lib/src/entities/constructor.d.ts
vendored
@@ -5,7 +5,7 @@ export declare class SendMsgElementConstructor {
|
||||
static at(atUid: string, atNtUid: string, atType: AtType, atName: string): SendTextElement;
|
||||
static reply(msgSeq: string, msgId: string, senderUin: string, senderUinStr: string): SendReplyElement;
|
||||
static pic(picPath: string, summary?: string, subType?: 0 | 1): Promise<SendPicElement>;
|
||||
static file(filePath: string, fileName?: string): Promise<SendFileElement>;
|
||||
static file(filePath: string, fileName?: string, folderId?: string): Promise<SendFileElement>;
|
||||
static video(filePath: string, fileName?: string, diyThumbPath?: string): Promise<SendVideoElement>;
|
||||
static ptt(pttPath: string): Promise<SendPttElement>;
|
||||
static face(faceId: number): SendFaceElement;
|
||||
|
File diff suppressed because one or more lines are too long
@@ -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 _0xfe4f(){var _0x22563a=['4674344BzCoGA','normal','1726923XgzrOb','930tRRaAc','108684uWMSuA','2880294kCmpnS','895588SNcOVf','10PjCGul','18boBsDG','admin','1738494rWhaLG','1126141AICXmT','7oBwZxm'];_0xfe4f=function(){return _0x22563a;};return _0xfe4f();}function _0x468d(_0x38a3a0,_0x3ed8b9){var _0xfe4fbf=_0xfe4f();return _0x468d=function(_0x468d66,_0x615a1d){_0x468d66=_0x468d66-0x1c7;var _0x10ed28=_0xfe4fbf[_0x468d66];return _0x10ed28;},_0x468d(_0x38a3a0,_0x3ed8b9);}(function(_0x3c123b,_0x23e233){var _0x44d14d=_0x468d,_0x3bc2c7=_0x3c123b();while(!![]){try{var _0x70698=parseInt(_0x44d14d(0x1ce))/0x1+parseInt(_0x44d14d(0x1cd))/0x2+parseInt(_0x44d14d(0x1cb))/0x3*(parseInt(_0x44d14d(0x1c9))/0x4)+parseInt(_0x44d14d(0x1ca))/0x5*(-parseInt(_0x44d14d(0x1c8))/0x6)+-parseInt(_0x44d14d(0x1cf))/0x7*(parseInt(_0x44d14d(0x1d0))/0x8)+-parseInt(_0x44d14d(0x1c7))/0x9*(parseInt(_0x44d14d(0x1d3))/0xa)+parseInt(_0x44d14d(0x1d2))/0xb;if(_0x70698===_0x23e233)break;else _0x3bc2c7['push'](_0x3bc2c7['shift']());}catch(_0x3b1227){_0x3bc2c7['push'](_0x3bc2c7['shift']());}}}(_0xfe4f,0xca390));export var GroupMemberRole;(function(_0x13eed0){var _0x3be934=_0x468d,_0x2818c5={'UcHmz':_0x3be934(0x1d1),'KWBFj':_0x3be934(0x1cc),'RQBHk':'owner'};_0x13eed0[_0x13eed0[_0x2818c5['UcHmz']]=0x2]='normal',_0x13eed0[_0x13eed0[_0x2818c5['KWBFj']]=0x3]=_0x2818c5['KWBFj'],_0x13eed0[_0x13eed0[_0x2818c5['RQBHk']]=0x4]=_0x2818c5['RQBHk'];}(GroupMemberRole||(GroupMemberRole={})));
|
@@ -1 +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 _0x14bc(){var _0x4f49b1=['40684Mxiqpd','885170fQcQyB','274AUVjnY','1224nzbFan','317043yUpRIR','1156736YNRhjK','977607RkiKna','1281972Nmxudk','424UFlGox'];_0x14bc=function(){return _0x4f49b1;};return _0x14bc();}(function(_0x1e121e,_0x4f001d){var _0x1cfe2d=_0x4473,_0x5e4046=_0x1e121e();while(!![]){try{var _0x20ea89=parseInt(_0x1cfe2d(0x14a))/0x1*(-parseInt(_0x1cfe2d(0x149))/0x2)+-parseInt(_0x1cfe2d(0x14b))/0x3+parseInt(_0x1cfe2d(0x14c))/0x4+parseInt(_0x1cfe2d(0x148))/0x5+parseInt(_0x1cfe2d(0x14e))/0x6+-parseInt(_0x1cfe2d(0x147))/0x7*(parseInt(_0x1cfe2d(0x14f))/0x8)+parseInt(_0x1cfe2d(0x14d))/0x9;if(_0x20ea89===_0x4f001d)break;else _0x5e4046['push'](_0x5e4046['shift']());}catch(_0x4fa7ec){_0x5e4046['push'](_0x5e4046['shift']());}}}(_0x14bc,0x328fa));export*from'./user';export*from'./group';export*from'./msg';function _0x4473(_0x5d5188,_0x1b3cfb){var _0x14bc48=_0x14bc();return _0x4473=function(_0x4473d4,_0x1230a6){_0x4473d4=_0x4473d4-0x147;var _0x34458e=_0x14bc48[_0x4473d4];return _0x34458e;},_0x4473(_0x5d5188,_0x1b3cfb);}export*from'./notify';export*from'./cache';export*from'./constructor';
|
1
src/core.lib/src/entities/msg.d.ts
vendored
1
src/core.lib/src/entities/msg.d.ts
vendored
@@ -115,6 +115,7 @@ export interface FileElement {
|
||||
fileSize: string;
|
||||
picHeight?: number;
|
||||
picWidth?: number;
|
||||
folderId?: string;
|
||||
picThumbPath?: Map<number, string>;
|
||||
file10MMd5?: string;
|
||||
fileSha?: string;
|
||||
|
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
(function(_0x11bd49,_0x4a6b55){var _0x1140aa=_0xb159,_0x5488b9=_0x11bd49();while(!![]){try{var _0x281b74=-parseInt(_0x1140aa(0xcf))/0x1*(-parseInt(_0x1140aa(0xe1))/0x2)+parseInt(_0x1140aa(0xea))/0x3*(-parseInt(_0x1140aa(0xf4))/0x4)+parseInt(_0x1140aa(0xec))/0x5+-parseInt(_0x1140aa(0xe4))/0x6+-parseInt(_0x1140aa(0xe2))/0x7+parseInt(_0x1140aa(0xdd))/0x8*(parseInt(_0x1140aa(0xeb))/0x9)+parseInt(_0x1140aa(0xd1))/0xa*(parseInt(_0x1140aa(0xd8))/0xb);if(_0x281b74===_0x4a6b55)break;else _0x5488b9['push'](_0x5488b9['shift']());}catch(_0x6300ee){_0x5488b9['push'](_0x5488b9['shift']());}}}(_0x21b9,0x291cf));export var GroupNotifyTypes;(function(_0x1213d0){var _0x1e2c99=_0xb159,_0x3c6cf9={'KBkLF':_0x1e2c99(0xdc),'ufAPI':_0x1e2c99(0xe6),'jCVFk':_0x1e2c99(0xe9),'szena':'ADMIN_SET','dqDvM':'INVITE_ME','Ecpkw':_0x1e2c99(0xd0),'dSjzj':_0x1e2c99(0xd5),'tJSjf':_0x1e2c99(0xf0)},_0x839c25='4|6|0|3|1|5|2|7'[_0x1e2c99(0xd3)]('|'),_0x55c032=0x0;while(!![]){switch(_0x839c25[_0x55c032++]){case'0':_0x1213d0[_0x1213d0['JOIN_REQUEST']=0x7]=_0x3c6cf9[_0x1e2c99(0xe0)];continue;case'1':_0x1213d0[_0x1213d0[_0x3c6cf9[_0x1e2c99(0xda)]]=0x9]=_0x3c6cf9[_0x1e2c99(0xda)];continue;case'2':_0x1213d0[_0x1213d0[_0x3c6cf9[_0x1e2c99(0xdf)]]=0xc]=_0x3c6cf9[_0x1e2c99(0xdf)];continue;case'3':_0x1213d0[_0x1213d0[_0x3c6cf9[_0x1e2c99(0xef)]]=0x8]=_0x1e2c99(0xe7);continue;case'4':_0x1213d0[_0x1213d0[_0x3c6cf9[_0x1e2c99(0xe5)]]=0x1]=_0x3c6cf9[_0x1e2c99(0xe5)];continue;case'5':_0x1213d0[_0x1213d0[_0x3c6cf9[_0x1e2c99(0xd6)]]=0xb]=_0x3c6cf9[_0x1e2c99(0xd6)];continue;case'6':_0x1213d0[_0x1213d0['INVITED_JOIN']=0x4]=_0x3c6cf9[_0x1e2c99(0xd9)];continue;case'7':_0x1213d0[_0x1213d0[_0x3c6cf9[_0x1e2c99(0xf1)]]=0xd]=_0x3c6cf9[_0x1e2c99(0xf1)];continue;}break;}}(GroupNotifyTypes||(GroupNotifyTypes={})));function _0xb159(_0x3693bf,_0xc16c38){var _0x21b991=_0x21b9();return _0xb159=function(_0xb159b1,_0x2f2f3e){_0xb159b1=_0xb159b1-0xce;var _0x2ef46a=_0x21b991[_0xb159b1];return _0x2ef46a;},_0xb159(_0x3693bf,_0xc16c38);}export var GroupNotifyStatus;(function(_0x4adee5){var _0x622076=_0xb159,_0x5efb83={'ZmiXQ':_0x622076(0xee),'rcuor':_0x622076(0xdb),'BAJDf':_0x622076(0xde),'AOCHp':_0x622076(0xe8)};_0x4adee5[_0x4adee5['IGNORE']=0x0]=_0x5efb83[_0x622076(0xf3)],_0x4adee5[_0x4adee5[_0x622076(0xdb)]=0x1]=_0x5efb83[_0x622076(0xed)],_0x4adee5[_0x4adee5[_0x5efb83[_0x622076(0xd2)]]=0x2]=_0x622076(0xde),_0x4adee5[_0x4adee5['REJECT']=0x3]=_0x5efb83[_0x622076(0xe3)];}(GroupNotifyStatus||(GroupNotifyStatus={})));export var GroupRequestOperateTypes;(function(_0x2faf71){var _0x4896a5=_0xb159,_0xdce34a={'MPvyq':_0x4896a5(0xd7),'oOdGz':_0x4896a5(0xd4)};_0x2faf71[_0x2faf71[_0xdce34a[_0x4896a5(0xce)]]=0x1]=_0x4896a5(0xd7),_0x2faf71[_0x2faf71[_0xdce34a[_0x4896a5(0xf2)]]=0x2]=_0xdce34a[_0x4896a5(0xf2)];}(GroupRequestOperateTypes||(GroupRequestOperateTypes={})));function _0x21b9(){var _0x44cbcf=['1437510HLIpru','rcuor','IGNORE','szena','ADMIN_UNSET_OTHER','tJSjf','oOdGz','ZmiXQ','4yMIRuo','MPvyq','8MnJAun','MEMBER_EXIT','1281070PsMhOV','BAJDf','split','reject','INVITED_JOIN','Ecpkw','approve','11TIHNkM','dSjzj','ufAPI','WAIT_HANDLE','JOIN_REQUEST','576824pVCRPz','APPROVE','jCVFk','KBkLF','3340pPKQVs','581245EIjuhA','AOCHp','1924284fCoUKm','dqDvM','KICK_MEMBER','ADMIN_SET','REJECT','ADMIN_UNSET','219390PfjxtG','27iqVTDB'];_0x21b9=function(){return _0x44cbcf;};return _0x21b9();}
|
||||
(function(_0x19adaa,_0x56a38f){var _0x22c269=_0xe6a3,_0x4d1ed1=_0x19adaa();while(!![]){try{var _0x4f42a1=-parseInt(_0x22c269(0x1b5))/0x1*(parseInt(_0x22c269(0x1b4))/0x2)+parseInt(_0x22c269(0x1b0))/0x3*(parseInt(_0x22c269(0x19f))/0x4)+parseInt(_0x22c269(0x19d))/0x5*(parseInt(_0x22c269(0x195))/0x6)+parseInt(_0x22c269(0x1a4))/0x7*(-parseInt(_0x22c269(0x1b3))/0x8)+parseInt(_0x22c269(0x1a8))/0x9+-parseInt(_0x22c269(0x1ad))/0xa+parseInt(_0x22c269(0x1ae))/0xb;if(_0x4f42a1===_0x56a38f)break;else _0x4d1ed1['push'](_0x4d1ed1['shift']());}catch(_0xb738c2){_0x4d1ed1['push'](_0x4d1ed1['shift']());}}}(_0x2b6d,0x9f8e0));export var GroupNotifyTypes;function _0xe6a3(_0x4af4aa,_0x19eda9){var _0x2b6d36=_0x2b6d();return _0xe6a3=function(_0xe6a34,_0x340ef2){_0xe6a34=_0xe6a34-0x193;var _0x263a9c=_0x2b6d36[_0xe6a34];return _0x263a9c;},_0xe6a3(_0x4af4aa,_0x19eda9);}(function(_0x4847c5){var _0x4d0343=_0xe6a3,_0x174d9b={'PRoCv':'JOIN_REQUEST','curNx':_0x4d0343(0x197),'PpLhV':_0x4d0343(0x1a1),'EZAOo':_0x4d0343(0x196),'DdWWY':_0x4d0343(0x19a),'koXXq':'ADMIN_UNSET'},_0x59ba1c=_0x4d0343(0x1ab)['split']('|'),_0xecf760=0x0;while(!![]){switch(_0x59ba1c[_0xecf760++]){case'0':_0x4847c5[_0x4847c5[_0x4d0343(0x193)]=0xd]=_0x4d0343(0x193);continue;case'1':_0x4847c5[_0x4847c5[_0x174d9b[_0x4d0343(0x19e)]]=0x7]=_0x174d9b[_0x4d0343(0x19e)];continue;case'2':_0x4847c5[_0x4847c5[_0x174d9b[_0x4d0343(0x1b1)]]=0x4]=_0x174d9b[_0x4d0343(0x1b1)];continue;case'3':_0x4847c5[_0x4847c5[_0x174d9b[_0x4d0343(0x19b)]]=0x8]=_0x174d9b[_0x4d0343(0x19b)];continue;case'4':_0x4847c5[_0x4847c5[_0x174d9b[_0x4d0343(0x1af)]]=0x9]='KICK_MEMBER';continue;case'5':_0x4847c5[_0x4847c5[_0x4d0343(0x19a)]=0x1]=_0x174d9b[_0x4d0343(0x19c)];continue;case'6':_0x4847c5[_0x4847c5[_0x4d0343(0x1a9)]=0xc]=_0x174d9b['koXXq'];continue;case'7':_0x4847c5[_0x4847c5[_0x4d0343(0x1a3)]=0xb]='MEMBER_EXIT';continue;}break;}}(GroupNotifyTypes||(GroupNotifyTypes={})));export var GroupNotifyStatus;function _0x2b6d(){var _0x53a903=['approve','REJECT','APPROVE','5482062Heixji','ADMIN_UNSET','LczLZ','5|2|1|3|4|7|6|0','XWKXi','4792400ySuoEl','6268229eyujnE','EZAOo','12vLgAOJ','curNx','HdsbK','280CtpltI','675362GKDhHf','2VSJtMd','ADMIN_UNSET_OTHER','YWYwW','816npOrDS','KICK_MEMBER','INVITED_JOIN','lyfuO','JxSKa','INVITE_ME','PpLhV','DdWWY','30640CFAUGu','PRoCv','108428cimJFa','reject','ADMIN_SET','IGNORE','MEMBER_EXIT','62531OeKwRq'];_0x2b6d=function(){return _0x53a903;};return _0x2b6d();}(function(_0x11adf2){var _0xcfc64b=_0xe6a3,_0x403d8b={'LczLZ':_0xcfc64b(0x1a2),'JxSKa':'WAIT_HANDLE','HdsbK':_0xcfc64b(0x1a7),'lyfuO':_0xcfc64b(0x1a6)};_0x11adf2[_0x11adf2[_0x403d8b[_0xcfc64b(0x1aa)]]=0x0]='IGNORE',_0x11adf2[_0x11adf2[_0x403d8b['JxSKa']]=0x1]=_0x403d8b[_0xcfc64b(0x199)],_0x11adf2[_0x11adf2[_0xcfc64b(0x1a7)]=0x2]=_0x403d8b[_0xcfc64b(0x1b2)],_0x11adf2[_0x11adf2[_0x403d8b[_0xcfc64b(0x198)]]=0x3]=_0x403d8b['lyfuO'];}(GroupNotifyStatus||(GroupNotifyStatus={})));export var GroupRequestOperateTypes;(function(_0xd75311){var _0x325bbd=_0xe6a3,_0x301890={'XWKXi':_0x325bbd(0x1a5),'YWYwW':_0x325bbd(0x1a0)};_0xd75311[_0xd75311[_0x301890[_0x325bbd(0x1ac)]]=0x1]=_0x325bbd(0x1a5),_0xd75311[_0xd75311[_0x301890[_0x325bbd(0x194)]]=0x2]=_0x301890[_0x325bbd(0x194)];}(GroupRequestOperateTypes||(GroupRequestOperateTypes={})));
|
11
src/core.lib/src/entities/user.d.ts
vendored
11
src/core.lib/src/entities/user.d.ts
vendored
@@ -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;
|
||||
|
@@ -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(_0x425abd,_0x1e888d){var _0x176f22=_0x3a30,_0x4eb957=_0x425abd();while(!![]){try{var _0x55b3d4=-parseInt(_0x176f22(0x68))/0x1*(-parseInt(_0x176f22(0x69))/0x2)+-parseInt(_0x176f22(0x6a))/0x3+-parseInt(_0x176f22(0x67))/0x4*(-parseInt(_0x176f22(0x6e))/0x5)+parseInt(_0x176f22(0x6d))/0x6*(parseInt(_0x176f22(0x6f))/0x7)+parseInt(_0x176f22(0x65))/0x8*(-parseInt(_0x176f22(0x6c))/0x9)+parseInt(_0x176f22(0x6b))/0xa*(parseInt(_0x176f22(0x70))/0xb)+-parseInt(_0x176f22(0x71))/0xc;if(_0x55b3d4===_0x1e888d)break;else _0x4eb957['push'](_0x4eb957['shift']());}catch(_0x301dbf){_0x4eb957['push'](_0x4eb957['shift']());}}}(_0x10d9,0xc0c6b));export var Sex;function _0x10d9(){var _0x45bd45=['24TPufBz','female','61524PPefuR','30274SgfYql','2wYyaKc','2551476BRiunw','1069530XXNJIz','2371527aHKuUV','174Ewznuh','135ujiScL','364847LFBbAu','77YfwsAT','3301548qQopWo','male','zQdhj'];_0x10d9=function(){return _0x45bd45;};return _0x10d9();}function _0x3a30(_0x3ec91f,_0x599ffb){var _0x10d945=_0x10d9();return _0x3a30=function(_0x3a3089,_0x1ccb2f){_0x3a3089=_0x3a3089-0x64;var _0x28741a=_0x10d945[_0x3a3089];return _0x28741a;},_0x3a30(_0x3ec91f,_0x599ffb);}(function(_0x59140d){var _0x4927b5=_0x3a30,_0x5741d0={'zQdhj':'male','OFEli':'female','VYGsK':'unknown'};_0x59140d[_0x59140d[_0x4927b5(0x72)]=0x1]=_0x5741d0[_0x4927b5(0x64)],_0x59140d[_0x59140d[_0x5741d0['OFEli']]=0x2]=_0x4927b5(0x66),_0x59140d[_0x59140d[_0x5741d0['VYGsK']]=0xff]=_0x5741d0['VYGsK'];}(Sex||(Sex={})));
|
@@ -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(_0x319fd4,_0x36ebc7){var _0x16c645=_0x1d55,_0x598f2d=_0x319fd4();while(!![]){try{var _0x100f53=-parseInt(_0x16c645(0x9e))/0x1+parseInt(_0x16c645(0x9b))/0x2*(-parseInt(_0x16c645(0x9f))/0x3)+parseInt(_0x16c645(0x9d))/0x4+-parseInt(_0x16c645(0x9a))/0x5*(-parseInt(_0x16c645(0x98))/0x6)+-parseInt(_0x16c645(0xa1))/0x7+parseInt(_0x16c645(0x99))/0x8*(parseInt(_0x16c645(0x9c))/0x9)+parseInt(_0x16c645(0xa0))/0xa*(parseInt(_0x16c645(0x97))/0xb);if(_0x100f53===_0x36ebc7)break;else _0x598f2d['push'](_0x598f2d['shift']());}catch(_0x545faa){_0x598f2d['push'](_0x598f2d['shift']());}}}(_0xf987,0x45f64));import _0x3295a6 from'./wrapper';export*from'./adapters';export*from'./apis';export*from'./entities';export*from'./listeners';export*from'./services';export*as Adapters from'./adapters';function _0x1d55(_0x492aeb,_0x2def52){var _0xf987b4=_0xf987();return _0x1d55=function(_0x1d55bf,_0x3366cc){_0x1d55bf=_0x1d55bf-0x97;var _0x289d93=_0xf987b4[_0x1d55bf];return _0x289d93;},_0x1d55(_0x492aeb,_0x2def52);}function _0xf987(){var _0x18f69e=['3798pPzyMr','1107212bUtfwn','488277OidVGU','3ZknyDF','590NcbPFy','3117562glWUQw','123409TtdMvU','2182044MHUfbL','424iilEix','5UPtXMP','209114WOuxTa'];_0xf987=function(){return _0x18f69e;};return _0xf987();}export*as APIs from'./apis';export*as Entities from'./entities';export*as Listeners from'./listeners';export*as Services from'./services';export{_0x3295a6 as Wrapper};export*as WrapperInterface from'./wrapper';export*as SessionConfig from'./sessionConfig';export{napCatCore}from'./core';
|
@@ -1 +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();}
|
||||
var _0x23ddb8=_0x2807;function _0x2807(_0x50bec3,_0x3a2f12){var _0x37a4a0=_0x37a4();return _0x2807=function(_0x280733,_0x4ca479){_0x280733=_0x280733-0x166;var _0x2b7184=_0x37a4a0[_0x280733];return _0x2b7184;},_0x2807(_0x50bec3,_0x3a2f12);}(function(_0x57b081,_0xcf01f0){var _0x3ea7e8=_0x2807,_0x359b72=_0x57b081();while(!![]){try{var _0x5a72db=parseInt(_0x3ea7e8(0x16d))/0x1+-parseInt(_0x3ea7e8(0x175))/0x2+-parseInt(_0x3ea7e8(0x168))/0x3*(parseInt(_0x3ea7e8(0x166))/0x4)+-parseInt(_0x3ea7e8(0x16a))/0x5+parseInt(_0x3ea7e8(0x16c))/0x6*(-parseInt(_0x3ea7e8(0x174))/0x7)+parseInt(_0x3ea7e8(0x16b))/0x8+parseInt(_0x3ea7e8(0x178))/0x9;if(_0x5a72db===_0xcf01f0)break;else _0x359b72['push'](_0x359b72['shift']());}catch(_0x25c4bb){_0x359b72['push'](_0x359b72['shift']());}}}(_0x37a4,0x56836));function _0x37a4(){var _0x44b3e3=['onSmartInfos','1981011zGKrTe','onAddBuddyNeedVerify','3052675KXxGXu','2443040qOTpUi','33204EgNaVL','181209BklYDD','onDoubtBuddyReqChange','onDelBatchBuddyInfos','onBuddyReqUnreadCntChange','onBuddyRemarkUpdated','onSpacePermissionInfos','onCheckBuddySettingResult','532IUDSdU','147526DehJlD','onNickUpdated','onBuddyInfoChange','14696892FSrlvj','4nGTPMa'];_0x37a4=function(){return _0x44b3e3;};return _0x37a4();}export class BuddyListener{[_0x23ddb8(0x169)](_0x4921b8){}['onAddMeSettingChanged'](_0x29d5ce){}['onAvatarUrlUpdated'](_0x1e1697){}['onBlockChanged'](_0x326261){}['onBuddyDetailInfoChange'](_0x263d09){}[_0x23ddb8(0x177)](_0x326756){}['onBuddyListChange'](_0x1395e7){}[_0x23ddb8(0x171)](_0x8597ba){}['onBuddyReqChange'](_0x313e76){}[_0x23ddb8(0x170)](_0x3d4ac9){}[_0x23ddb8(0x173)](_0x3f8ad8){}[_0x23ddb8(0x16f)](_0x4dac3c){}[_0x23ddb8(0x16e)](_0x33d605){}['onDoubtBuddyReqUnreadNumChange'](_0x51e2e4){}[_0x23ddb8(0x176)](_0x2004d4){}[_0x23ddb8(0x167)](_0x67b91d){}[_0x23ddb8(0x172)](_0x163501){}}
|
@@ -1 +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 _0x432220=_0x5630;(function(_0xb122d2,_0x46fb6a){var _0x8ddffd=_0x5630,_0x6e08d6=_0xb122d2();while(!![]){try{var _0xe651f2=parseInt(_0x8ddffd(0x10d))/0x1*(parseInt(_0x8ddffd(0x11a))/0x2)+-parseInt(_0x8ddffd(0x113))/0x3+parseInt(_0x8ddffd(0x10c))/0x4*(parseInt(_0x8ddffd(0x119))/0x5)+-parseInt(_0x8ddffd(0x114))/0x6*(parseInt(_0x8ddffd(0x118))/0x7)+-parseInt(_0x8ddffd(0x116))/0x8*(-parseInt(_0x8ddffd(0x10b))/0x9)+-parseInt(_0x8ddffd(0x10e))/0xa*(parseInt(_0x8ddffd(0x10f))/0xb)+parseInt(_0x8ddffd(0x110))/0xc*(parseInt(_0x8ddffd(0x117))/0xd);if(_0xe651f2===_0x46fb6a)break;else _0x6e08d6['push'](_0x6e08d6['shift']());}catch(_0x18ac53){_0x6e08d6['push'](_0x6e08d6['shift']());}}}(_0x5cbd,0x8a0e7));function _0x5cbd(){var _0x10d8d5=['3042964gjsjka','12gjKcjb','70SbsBmZ','1211210BFgWNP','12BXOQDj','onFileStatusChanged','onFileSearch','2102988SWouMz','66YhQlqd','onFileListChanged','51568XMiGBC','17939077EJaUxG','552503dZkVib','5RzvUww','115648yQsBhK','99XRZHir'];_0x5cbd=function(){return _0x10d8d5;};return _0x5cbd();}function _0x5630(_0x5d5623,_0x36bebd){var _0x5cbd15=_0x5cbd();return _0x5630=function(_0x5630c1,_0x26aee4){_0x5630c1=_0x5630c1-0x10b;var _0x50110c=_0x5cbd15[_0x5630c1];return _0x50110c;},_0x5630(_0x5d5623,_0x36bebd);}export class KernelFileAssistantListener{[_0x432220(0x111)](..._0x1ae1b1){}['onSessionListChanged'](..._0x1687e5){}['onSessionChanged'](..._0x4fad0f){}[_0x432220(0x115)](..._0x2cf65c){}[_0x432220(0x112)](..._0x53d0d8){}}
|
File diff suppressed because one or more lines are too long
@@ -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 _0x526331=_0x48cf;function _0x4366(){var _0x31351d=['onQRCodeSessionUserScaned','2645536nwiURv','4333206PfFywY','onPasswordLoginFailed','OnConfirmUnusualDeviceFailed','3676xSpMzc','25104LqyBpc','onQRCodeLoginPollingStarted','onUserLoggedIn','7765mKaKOu','3fOhoXr','onLoginDisConnected','26956470rjzVNk','onQRCodeSessionQuickLoginFailed','onLoginFailed','onLoginConnecting','1766071BcDeaG','onQRCodeLoginSucceed','onQQLoginNumLimited','721JbzPUH','6479766xeuNsb','onLoginState','onLoginConnected'];_0x4366=function(){return _0x31351d;};return _0x4366();}function _0x48cf(_0x294bd9,_0xf7b11){var _0x4366ba=_0x4366();return _0x48cf=function(_0x48cfbc,_0x36351c){_0x48cfbc=_0x48cfbc-0x166;var _0x39acfc=_0x4366ba[_0x48cfbc];return _0x39acfc;},_0x48cf(_0x294bd9,_0xf7b11);}(function(_0x2b8fc5,_0x4f9216){var _0x599249=_0x48cf,_0x30a1ef=_0x2b8fc5();while(!![]){try{var _0x94f3c6=parseInt(_0x599249(0x173))/0x1+parseInt(_0x599249(0x17b))/0x2*(-parseInt(_0x599249(0x16d))/0x3)+parseInt(_0x599249(0x168))/0x4*(parseInt(_0x599249(0x16c))/0x5)+parseInt(_0x599249(0x17c))/0x6+parseInt(_0x599249(0x176))/0x7*(parseInt(_0x599249(0x169))/0x8)+parseInt(_0x599249(0x177))/0x9+-parseInt(_0x599249(0x16f))/0xa;if(_0x94f3c6===_0x4f9216)break;else _0x30a1ef['push'](_0x30a1ef['shift']());}catch(_0x49d9f0){_0x30a1ef['push'](_0x30a1ef['shift']());}}}(_0x4366,0xe58dc));export class LoginListener{[_0x526331(0x179)](..._0x4c3581){}[_0x526331(0x16e)](..._0x1821f6){}[_0x526331(0x172)](..._0x328165){}['onQRCodeGetPicture'](_0x1a3a16){}[_0x526331(0x16a)](..._0x528305){}[_0x526331(0x17a)](..._0x5383b2){}[_0x526331(0x174)](_0x3d820e){}['onQRCodeSessionFailed'](..._0x5b74b6){}[_0x526331(0x171)](..._0x82ffb3){}['onLogoutSucceed'](..._0x178d23){}['onLogoutFailed'](..._0xc0a9bf){}[_0x526331(0x16b)](..._0x12b31b){}[_0x526331(0x170)](..._0x367aa7){}[_0x526331(0x166)](..._0x28a95f){}[_0x526331(0x167)](..._0x129b85){}[_0x526331(0x175)](..._0x5f5a3b){}[_0x526331(0x178)](..._0x29cc69){}}
|
@@ -1,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;
|
||||
|
@@ -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();}
|
||||
var _0x21255e=_0x30d1;(function(_0x59a79d,_0x571cd9){var _0x5a1aa6=_0x30d1,_0x33b426=_0x59a79d();while(!![]){try{var _0x2e4842=parseInt(_0x5a1aa6(0x135))/0x1*(parseInt(_0x5a1aa6(0x156))/0x2)+-parseInt(_0x5a1aa6(0x14c))/0x3+parseInt(_0x5a1aa6(0x164))/0x4*(parseInt(_0x5a1aa6(0x138))/0x5)+parseInt(_0x5a1aa6(0x169))/0x6+parseInt(_0x5a1aa6(0x146))/0x7*(parseInt(_0x5a1aa6(0x145))/0x8)+-parseInt(_0x5a1aa6(0x150))/0x9*(-parseInt(_0x5a1aa6(0x132))/0xa)+parseInt(_0x5a1aa6(0x142))/0xb*(-parseInt(_0x5a1aa6(0x15a))/0xc);if(_0x2e4842===_0x571cd9)break;else _0x33b426['push'](_0x33b426['shift']());}catch(_0x2a51bb){_0x33b426['push'](_0x33b426['shift']());}}}(_0x175c,0xcc5de));function _0x30d1(_0x3bedf3,_0x3d4d72){var _0x175c14=_0x175c();return _0x30d1=function(_0x30d15f,_0x7edf30){_0x30d15f=_0x30d15f-0x132;var _0x3ddc2f=_0x175c14[_0x30d15f];return _0x3ddc2f;},_0x30d1(_0x3bedf3,_0x3d4d72);}function _0x175c(){var _0x367472=['onGroupFileInfoUpdate','onBroadcastHelperProgressUpdate','onGroupTransferInfoUpdate','onFirstViewGroupGuildMapping','onKickedOffLine','50gCCqMl','onHitRelatedEmojiResult','onContactUnreadCntUpdate','onHitCsRelatedEmojiResult','272376SDgyzZ','onGroupFileInfoAdd','onMsgQRCodeStatusChanged','onSysMsgNotification','onMsgRecall','onRichMediaUploadComplete','onNtMsgSyncEnd','onUserTabStatusChanged','onAddSendMsg','onBroadcastHelperDownloadComplete','4340BnOsvo','onNtMsgSyncStart','onMsgInfoListAdd','onEmojiDownloadComplete','onMsgBoxChanged','1588962guQesa','onLineDev','onImportOldDbProgressUpdate','onSendMsgError','onMsgDelete','onMsgSecurityNotify','onMsgWithRichLinkInfoUpdate','onLogLevelChanged','onlineStatusSmallIconDownloadPush','onDraftUpdate','1461540FidovA','onChannelFreqLimitInfoUpdate','onCustomWithdrawConfigUpdate','37873UaOCUb','onGuildNotificationAbstractUpdate','onUserSecQualityChanged','2245YxUFwH','onGroupGuildUpdate','onRecvGroupGuildFlag','onTempChatInfoUpdate','onlineStatusBigIconDownloadPush','onGrabPasswordRedBag','onFirstViewDirectMsgUpdate','onSearchGroupFileInfoUpdate','onReadFeedEventUpdate','onRecvMsg','572TuOXFZ','onUserOnlineStatusChanged','onRichMediaDownloadComplete','8thbYdy','2827034geYcfN','onGuildMsgAbFlagChanged','onHitEmojiKeywordResult','onMsgEventListUpdate','onUnreadCntAfterFirstView','onRecvMsgSvrRspTransInfo','3325125HahkRg','onUnreadCntUpdate','onMsgAbstractUpdate','onUserChannelTabStatusChanged','63ErZRMB'];_0x175c=function(){return _0x367472;};return _0x175c();}export class MsgListener{[_0x21255e(0x162)](_0x3d50d5){}[_0x21255e(0x163)](_0x416aa9){}[_0x21255e(0x152)](_0x21aa64){}[_0x21255e(0x133)](_0x19730a,_0xb51ad6,_0x5c0c75){}[_0x21255e(0x158)](_0x126d39){}[_0x21255e(0x134)](_0x2e406b){}[_0x21255e(0x172)](_0x3698fa,_0x5a26a0,_0x382537){}[_0x21255e(0x167)](_0x499be6){}['onEmojiResourceUpdate'](_0x503324){}['onFeedEventUpdate'](_0x3070be){}['onFileMsgCome'](_0x5b298b){}[_0x21255e(0x13e)](_0x2390f5){}[_0x21255e(0x154)](_0x13953c){}[_0x21255e(0x13d)](_0x1b13f3,_0x29a0d5,_0x250a09,_0xf5c4a0,_0xeaefa7){}[_0x21255e(0x15b)](_0x1bcde2){}[_0x21255e(0x151)](_0x48465c){}[_0x21255e(0x139)](_0x6d9141){}['onGroupTransferInfoAdd'](_0x3cd6e2){}[_0x21255e(0x153)](_0x440494){}['onGuildInteractiveUpdate'](_0x3ac87b){}[_0x21255e(0x147)](_0x998c01){}[_0x21255e(0x136)](_0x4b4bab){}[_0x21255e(0x159)](_0x4c781f){}[_0x21255e(0x148)](_0x50fef1){}[_0x21255e(0x157)](_0x55eefc){}[_0x21255e(0x16b)](_0x2764ca){}['onInputStatusPush'](_0x45bef5){}[_0x21255e(0x155)](_0x35c209){}[_0x21255e(0x16a)](_0x10f1b0){}[_0x21255e(0x170)](_0x42b5c2){}[_0x21255e(0x14e)](_0x2c7e1f){}[_0x21255e(0x168)](_0x3ecb99){}[_0x21255e(0x16d)](_0x37e8ce,_0x312fdc){}[_0x21255e(0x149)](_0x253c04){}[_0x21255e(0x166)](_0x3f7ecc){}['onMsgInfoListUpdate'](_0x48ff13){}[_0x21255e(0x15c)](_0x1cafe7){}[_0x21255e(0x15e)](_0x24ed23,_0x27184c,_0x22f5e3){}[_0x21255e(0x16e)](_0x36a8e7){}['onMsgSettingUpdate'](_0x1bc59e){}['onNtFirstViewMsgSyncEnd'](){}[_0x21255e(0x160)](){}[_0x21255e(0x165)](){}[_0x21255e(0x140)](_0x4e7a93){}[_0x21255e(0x13a)](_0x2cf2b9){}[_0x21255e(0x141)](_0x2f3e29){}[_0x21255e(0x14b)](_0x3dfbcc,_0xe19862,_0x296b5a,_0x1029ef,_0x47ee94,_0x1fb5b8){}['onRecvOnlineFileMsg'](_0x25564f){}['onRecvS2CMsg'](_0x42fbb4){}['onRecvSysMsg'](_0x5aed40){}['onRecvUDCFlag'](_0x3d9f4b){}[_0x21255e(0x144)](_0x15e17d){}['onRichMediaProgerssUpdate'](_0x508fef){}[_0x21255e(0x15f)](_0x1b7e7a){}[_0x21255e(0x13f)](_0x313088){}[_0x21255e(0x16c)](_0x53db97,_0x1136ec,_0x38b6ff,_0x4b9841){}[_0x21255e(0x15d)](_0xb4e8dd,_0x195cd1,_0x216fab,_0x233eec){}[_0x21255e(0x13b)](_0x2e9974){}[_0x21255e(0x14a)](_0x49c8b7){}[_0x21255e(0x14d)](_0x4d24bf){}[_0x21255e(0x14f)](_0x35f0e5){}[_0x21255e(0x143)](_0x45dc08){}[_0x21255e(0x161)](_0x230374){}[_0x21255e(0x13c)](_0x553bcc,_0x27bd33,_0x1f1cdd){}[_0x21255e(0x171)](_0x1e52c7,_0x48a123,_0x247d63){}[_0x21255e(0x137)](..._0x4a7cca){}[_0x21255e(0x16f)](..._0xfd2679){}['onRedTouchChanged'](..._0x55bffc){}['onBroadcastHelperProgerssUpdate'](..._0x52c509){}}
|
@@ -1 +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){}}
|
||||
var _0x52a86e=_0x3a24;function _0x5859(){var _0x187b4a=['552951izkIIU','302KTTKop','3361407bgfOrT','onStatusUpdate','14037AEXuDX','26680760qWvTXa','onProfileSimpleChanged','9wiVvAa','onProfileDetailInfoChanged','3317202XuoRDq','143064dBKhQa','onStrangerRemarkChanged','onSelfStatusChanged','2529700rBrXpY'];_0x5859=function(){return _0x187b4a;};return _0x5859();}function _0x3a24(_0x10a6ed,_0x5373f0){var _0x585933=_0x5859();return _0x3a24=function(_0x3a24e6,_0x5f38b6){_0x3a24e6=_0x3a24e6-0x109;var _0x33def0=_0x585933[_0x3a24e6];return _0x33def0;},_0x3a24(_0x10a6ed,_0x5373f0);}(function(_0x1325fd,_0x33e1d6){var _0x198453=_0x3a24,_0x1725fc=_0x1325fd();while(!![]){try{var _0x9de9a3=-parseInt(_0x198453(0x10b))/0x1+-parseInt(_0x198453(0x10c))/0x2*(parseInt(_0x198453(0x10f))/0x3)+-parseInt(_0x198453(0x115))/0x4+-parseInt(_0x198453(0x10a))/0x5+-parseInt(_0x198453(0x114))/0x6+-parseInt(_0x198453(0x10d))/0x7+-parseInt(_0x198453(0x110))/0x8*(-parseInt(_0x198453(0x112))/0x9);if(_0x9de9a3===_0x33e1d6)break;else _0x1725fc['push'](_0x1725fc['shift']());}catch(_0xb8c588){_0x1725fc['push'](_0x1725fc['shift']());}}}(_0x5859,0x7a469));export class ProfileListener{[_0x52a86e(0x111)](..._0x1cfbf4){}[_0x52a86e(0x113)](_0x35e246){}[_0x52a86e(0x10e)](..._0x522d3c){}[_0x52a86e(0x109)](..._0x55f3aa){}[_0x52a86e(0x116)](..._0x28f2b9){}}
|
@@ -1 +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){}}
|
||||
var _0x49d835=_0x4448;(function(_0x2b88d1,_0x165906){var _0x250d41=_0x4448,_0x325332=_0x2b88d1();while(!![]){try{var _0x1fd45a=parseInt(_0x250d41(0x67))/0x1+parseInt(_0x250d41(0x65))/0x2*(-parseInt(_0x250d41(0x66))/0x3)+-parseInt(_0x250d41(0x6a))/0x4+parseInt(_0x250d41(0x6b))/0x5*(-parseInt(_0x250d41(0x69))/0x6)+-parseInt(_0x250d41(0x6e))/0x7+parseInt(_0x250d41(0x68))/0x8*(parseInt(_0x250d41(0x6f))/0x9)+parseInt(_0x250d41(0x6d))/0xa;if(_0x1fd45a===_0x165906)break;else _0x325332['push'](_0x325332['shift']());}catch(_0x29e51e){_0x325332['push'](_0x325332['shift']());}}}(_0xa9c1,0xd5a32));export class KernelRobotListener{['onRobotFriendListChanged'](..._0x59bf7e){}[_0x49d835(0x70)](..._0x2f218c){}[_0x49d835(0x6c)](..._0x454e6d){}}function _0x4448(_0x5cdbae,_0x291bea){var _0xa9c1f9=_0xa9c1();return _0x4448=function(_0x444844,_0x47f211){_0x444844=_0x444844-0x65;var _0x421a11=_0xa9c1f9[_0x444844];return _0x421a11;},_0x4448(_0x5cdbae,_0x291bea);}function _0xa9c1(){var _0x199ed0=['12MkRDKe','200143diImGs','5313584ajUqSY','2202PwMihz','5751848kYsTuG','3715OdHEAk','onRobotProfileChanged','32992000yFegMp','5454428GBdqCG','9qPZjbR','onRobotListChanged','399318XTbeMT'];_0xa9c1=function(){return _0x199ed0;};return _0xa9c1();}
|
@@ -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){}}
|
||||
function _0x137f(){var _0x5b5ac1=['onGProSessionCreate','16432196uBNnST','onGetSelfTinyId','526083jbVirj','onSessionInitComplete','29300apFeTq','onOpentelemetryInit','35DfXEFj','153lxykfk','3hdoxNU','1512360pbfAch','onNTSessionCreate','1062602KnMDAr','627930OlCDtd','6mFAnvE','998376Dopkgw'];_0x137f=function(){return _0x5b5ac1;};return _0x137f();}function _0x1dec(_0xbc24ba,_0x580a2e){var _0x137fcb=_0x137f();return _0x1dec=function(_0x1decc4,_0x3e3a43){_0x1decc4=_0x1decc4-0xb8;var _0x4250a7=_0x137fcb[_0x1decc4];return _0x4250a7;},_0x1dec(_0xbc24ba,_0x580a2e);}var _0x57fa79=_0x1dec;(function(_0x274a00,_0x4108e1){var _0x375dae=_0x1dec,_0x28c3f2=_0x274a00();while(!![]){try{var _0x15ef38=parseInt(_0x375dae(0xc2))/0x1+parseInt(_0x375dae(0xbb))/0x2*(-parseInt(_0x375dae(0xb8))/0x3)+-parseInt(_0x375dae(0xb9))/0x4+-parseInt(_0x375dae(0xbc))/0x5*(parseInt(_0x375dae(0xbd))/0x6)+-parseInt(_0x375dae(0xc6))/0x7*(parseInt(_0x375dae(0xbe))/0x8)+-parseInt(_0x375dae(0xc7))/0x9*(-parseInt(_0x375dae(0xc4))/0xa)+parseInt(_0x375dae(0xc0))/0xb;if(_0x15ef38===_0x4108e1)break;else _0x28c3f2['push'](_0x28c3f2['shift']());}catch(_0x283e4f){_0x28c3f2['push'](_0x28c3f2['shift']());}}}(_0x137f,0x6448f));export class SessionListener{[_0x57fa79(0xba)](_0x396558){}[_0x57fa79(0xbf)](_0x5d314d){}[_0x57fa79(0xc3)](_0x41451a){}[_0x57fa79(0xc5)](_0x1dc25c){}['onUserOnlineResult'](_0x5bbbfa){}[_0x57fa79(0xc1)](_0x269641){}}
|
@@ -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 _0x43d177=_0x4364;(function(_0x466b15,_0x1c300e){var _0xd5d638=_0x4364,_0x1770dc=_0x466b15();while(!![]){try{var _0x1ac55a=-parseInt(_0xd5d638(0xec))/0x1*(-parseInt(_0xd5d638(0xf0))/0x2)+parseInt(_0xd5d638(0xeb))/0x3*(-parseInt(_0xd5d638(0xef))/0x4)+-parseInt(_0xd5d638(0xea))/0x5*(parseInt(_0xd5d638(0xf1))/0x6)+-parseInt(_0xd5d638(0xe9))/0x7*(parseInt(_0xd5d638(0xf2))/0x8)+-parseInt(_0xd5d638(0xe7))/0x9*(-parseInt(_0xd5d638(0xee))/0xa)+parseInt(_0xd5d638(0xe6))/0xb*(-parseInt(_0xd5d638(0xed))/0xc)+parseInt(_0xd5d638(0xe5))/0xd*(parseInt(_0xd5d638(0xe3))/0xe);if(_0x1ac55a===_0x1c300e)break;else _0x1770dc['push'](_0x1770dc['shift']());}catch(_0x497d5f){_0x1770dc['push'](_0x1770dc['shift']());}}}(_0x1d79,0x32bb2));function _0x4364(_0x2c7c68,_0x274ecf){var _0x1d79c5=_0x1d79();return _0x4364=function(_0x4364a0,_0x4c3c10){_0x4364a0=_0x4364a0-0xe2;var _0x118370=_0x1d79c5[_0x4364a0];return _0x118370;},_0x4364(_0x2c7c68,_0x274ecf);}function _0x1d79(){var _0x33aa80=['onScanCacheProgressChanged','25064uIIAZG','11qxTSxE','2718DrPcZE','onFinishScan','10073tZByaD','18500PuqmDn','1143642UyLdXX','141974DKyYUe','4519344hnFYVE','3010qbVoLc','4pRPJYb','2psJRYB','6ktsnbT','2144IjbEkA','onCleanCacheStorageChanged','8148UwQXzV'];_0x1d79=function(){return _0x33aa80;};return _0x1d79();}export class StorageCleanListener{['onCleanCacheProgressChanged'](_0x59479e){}[_0x43d177(0xe4)](_0x15a624){}[_0x43d177(0xe2)](_0x3aeee6){}[_0x43d177(0xe8)](_0x411fed){}['onChatCleanDone'](_0x581957){}}
|
@@ -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(_0x2ba300,_0x427578){var _0x33688d=_0x3a84,_0x39efff=_0x2ba300();while(!![]){try{var _0x18c74a=parseInt(_0x33688d(0x71))/0x1+-parseInt(_0x33688d(0x79))/0x2*(-parseInt(_0x33688d(0x72))/0x3)+-parseInt(_0x33688d(0x74))/0x4*(parseInt(_0x33688d(0x73))/0x5)+-parseInt(_0x33688d(0x76))/0x6+-parseInt(_0x33688d(0x78))/0x7+parseInt(_0x33688d(0x70))/0x8+-parseInt(_0x33688d(0x77))/0x9*(-parseInt(_0x33688d(0x75))/0xa);if(_0x18c74a===_0x427578)break;else _0x39efff['push'](_0x39efff['shift']());}catch(_0x3e274c){_0x39efff['push'](_0x39efff['shift']());}}}(_0x4ebe,0x8bcf7));export*from'./NodeIKernelSessionListener';export*from'./NodeIKernelLoginListener';export*from'./NodeIKernelMsgListener';export*from'./NodeIKernelGroupListener';function _0x4ebe(){var _0x1612c7=['75084PlLwej','60EEVTXt','318385zACTdk','68PCNpHn','30GgnUwU','5270880ywNynv','5780547HUnfDC','5441947UbocTZ','77108HzoJuO','4304480NJLlTY'];_0x4ebe=function(){return _0x1612c7;};return _0x4ebe();}export*from'./NodeIKernelBuddyListener';export*from'./NodeIKernelProfileListener';function _0x3a84(_0x5f05f7,_0x7bd4e1){var _0x4ebeaa=_0x4ebe();return _0x3a84=function(_0x3a84f9,_0x287253){_0x3a84f9=_0x3a84f9-0x70;var _0x4ea912=_0x4ebeaa[_0x3a84f9];return _0x4ea912;},_0x3a84(_0x5f05f7,_0x7bd4e1);}export*from'./NodeIKernelRobotListener';export*from'./NodeIKernelTicketListener';export*from'./NodeIKernelStorageCleanListener';export*from'./NodeIKernelFileAssistantListener';
|
@@ -1,3 +1,4 @@
|
||||
import { ModifyProfileParams } from '../entities';
|
||||
import { NodeIKernelProfileListener } from '../listeners';
|
||||
import { GeneralCallResult } from '@/core/services/common';
|
||||
export interface NodeIKernelProfileService {
|
||||
@@ -10,7 +11,7 @@ export interface NodeIKernelProfileService {
|
||||
enumCityOptions(...args: unknown[]): unknown;
|
||||
enumAreaOptions(...args: unknown[]): unknown;
|
||||
modifySelfProfile(...args: unknown[]): unknown;
|
||||
modifyDesktopMiniProfile(...args: unknown[]): unknown;
|
||||
modifyDesktopMiniProfile(param: ModifyProfileParams): Promise<GeneralCallResult>;
|
||||
setNickName(...args: unknown[]): unknown;
|
||||
setLongNick(...args: unknown[]): unknown;
|
||||
setBirthday(...args: unknown[]): unknown;
|
||||
|
@@ -1 +1 @@
|
||||
(function(_0x1f337c,_0x1d0312){var _0x45d537=_0x2837,_0x2110da=_0x1f337c();while(!![]){try{var _0x2cf552=-parseInt(_0x45d537(0x7e))/0x1*(parseInt(_0x45d537(0x82))/0x2)+parseInt(_0x45d537(0x7b))/0x3+-parseInt(_0x45d537(0x7a))/0x4*(parseInt(_0x45d537(0x7f))/0x5)+-parseInt(_0x45d537(0x7c))/0x6*(-parseInt(_0x45d537(0x83))/0x7)+-parseInt(_0x45d537(0x80))/0x8+-parseInt(_0x45d537(0x7d))/0x9+parseInt(_0x45d537(0x81))/0xa;if(_0x2cf552===_0x1d0312)break;else _0x2110da['push'](_0x2110da['shift']());}catch(_0x14458f){_0x2110da['push'](_0x2110da['shift']());}}}(_0x10a1,0x77633));export var GeneralCallResultStatus;(function(_0x344018){_0x344018[_0x344018['OK']=0x0]='OK';}(GeneralCallResultStatus||(GeneralCallResultStatus={})));function _0x2837(_0x25c8cd,_0xdb4932){var _0x10a1cc=_0x10a1();return _0x2837=function(_0x283785,_0x3850c4){_0x283785=_0x283785-0x7a;var _0x17ba50=_0x10a1cc[_0x283785];return _0x17ba50;},_0x2837(_0x25c8cd,_0xdb4932);}function _0x10a1(){var _0x183726=['796rgyHGw','2916276FLdCSH','3582pOzNJZ','242973SuqpkS','320043TnsrNs','1210aVGvtY','5484024qkmCbW','7373690RdrIzz','4bDoyLk','2114VegVsi'];_0x10a1=function(){return _0x183726;};return _0x10a1();}
|
||||
(function(_0x4157e3,_0x41167f){var _0x4e8c07=_0x1027,_0x528f86=_0x4157e3();while(!![]){try{var _0x3f13f5=-parseInt(_0x4e8c07(0x19f))/0x1*(-parseInt(_0x4e8c07(0x199))/0x2)+-parseInt(_0x4e8c07(0x1a0))/0x3*(-parseInt(_0x4e8c07(0x1a1))/0x4)+parseInt(_0x4e8c07(0x19e))/0x5*(parseInt(_0x4e8c07(0x198))/0x6)+parseInt(_0x4e8c07(0x1a2))/0x7*(parseInt(_0x4e8c07(0x19a))/0x8)+-parseInt(_0x4e8c07(0x19b))/0x9+-parseInt(_0x4e8c07(0x19d))/0xa+-parseInt(_0x4e8c07(0x19c))/0xb;if(_0x3f13f5===_0x41167f)break;else _0x528f86['push'](_0x528f86['shift']());}catch(_0x28ac16){_0x528f86['push'](_0x528f86['shift']());}}}(_0x11c6,0x2a72d));function _0x1027(_0x4e18df,_0x1b3676){var _0x11c6eb=_0x11c6();return _0x1027=function(_0x1027fc,_0x592a4f){_0x1027fc=_0x1027fc-0x198;var _0x26cffd=_0x11c6eb[_0x1027fc];return _0x26cffd;},_0x1027(_0x4e18df,_0x1b3676);}function _0x11c6(){var _0x574fd7=['5ShHhHJ','1RXrdrm','3IBWkKr','699076jJGUBV','33705Kmwwpv','1875702PswfNs','75562jOwoIo','144xmgjGe','1672677ffgShd','757493BXKeWB','1832520etQyiv'];_0x11c6=function(){return _0x574fd7;};return _0x11c6();}export var GeneralCallResultStatus;(function(_0x16034c){_0x16034c[_0x16034c['OK']=0x0]='OK';}(GeneralCallResultStatus||(GeneralCallResultStatus={})));
|
@@ -1 +1 @@
|
||||
(function(_0xf67114,_0x34decb){var _0x34dd14=_0x3d23,_0x2cd6e3=_0xf67114();while(!![]){try{var _0x4703a1=-parseInt(_0x34dd14(0x199))/0x1+parseInt(_0x34dd14(0x19c))/0x2+parseInt(_0x34dd14(0x19d))/0x3*(-parseInt(_0x34dd14(0x19b))/0x4)+parseInt(_0x34dd14(0x19f))/0x5*(-parseInt(_0x34dd14(0x1a3))/0x6)+-parseInt(_0x34dd14(0x19e))/0x7*(parseInt(_0x34dd14(0x19a))/0x8)+-parseInt(_0x34dd14(0x1a0))/0x9+parseInt(_0x34dd14(0x1a2))/0xa*(parseInt(_0x34dd14(0x1a1))/0xb);if(_0x4703a1===_0x34decb)break;else _0x2cd6e3['push'](_0x2cd6e3['shift']());}catch(_0x2f7292){_0x2cd6e3['push'](_0x2cd6e3['shift']());}}}(_0x4799,0x93054));export*from'./common';export*from'./NodeIKernelAvatarService';export*from'./NodeIKernelBuddyService';export*from'./NodeIKernelFileAssistantService';export*from'./NodeIKernelGroupService';export*from'./NodeIKernelLoginService';export*from'./NodeIKernelMsgService';function _0x4799(){var _0x464d6a=['933bzNCPT','49mSDOQe','829285qjhNTm','4789827mjwSHc','33MyTTAz','9518290FYWiqu','24Leftoo','413912etBbVM','798568JdqVqW','9672TgWWFw','1613994Ngswbi'];_0x4799=function(){return _0x464d6a;};return _0x4799();}export*from'./NodeIKernelOnlineStatusService';export*from'./NodeIKernelProfileLikeService';export*from'./NodeIKernelProfileService';export*from'./NodeIKernelTicketService';export*from'./NodeIKernelStorageCleanService';export*from'./NodeIKernelRobotService';function _0x3d23(_0xa8b9b0,_0xe300b3){var _0x479928=_0x4799();return _0x3d23=function(_0x3d23b3,_0x2f8259){_0x3d23b3=_0x3d23b3-0x199;var _0x53234f=_0x479928[_0x3d23b3];return _0x53234f;},_0x3d23(_0xa8b9b0,_0xe300b3);}export*from'./NodeIKernelRichMediaService';export*from'./NodeIKernelDbToolsService';export*from'./NodeIKernelTipOffService';
|
||||
(function(_0x20c945,_0x5a14f3){var _0x42f636=_0x20e2,_0x2f6dba=_0x20c945();while(!![]){try{var _0x3a15b6=-parseInt(_0x42f636(0x8f))/0x1+-parseInt(_0x42f636(0x88))/0x2+-parseInt(_0x42f636(0x8e))/0x3*(parseInt(_0x42f636(0x87))/0x4)+-parseInt(_0x42f636(0x8a))/0x5*(-parseInt(_0x42f636(0x8c))/0x6)+parseInt(_0x42f636(0x90))/0x7+parseInt(_0x42f636(0x89))/0x8+parseInt(_0x42f636(0x8d))/0x9*(-parseInt(_0x42f636(0x8b))/0xa);if(_0x3a15b6===_0x5a14f3)break;else _0x2f6dba['push'](_0x2f6dba['shift']());}catch(_0x5ee0dc){_0x2f6dba['push'](_0x2f6dba['shift']());}}}(_0x2552,0x1d296));function _0x20e2(_0x4410bd,_0x1424b5){var _0x2552ae=_0x2552();return _0x20e2=function(_0x20e215,_0x5e1873){_0x20e215=_0x20e215-0x87;var _0x2d0223=_0x2552ae[_0x20e215];return _0x2d0223;},_0x20e2(_0x4410bd,_0x1424b5);}export*from'./common';export*from'./NodeIKernelAvatarService';export*from'./NodeIKernelBuddyService';export*from'./NodeIKernelFileAssistantService';export*from'./NodeIKernelGroupService';export*from'./NodeIKernelLoginService';export*from'./NodeIKernelMsgService';export*from'./NodeIKernelOnlineStatusService';export*from'./NodeIKernelProfileLikeService';export*from'./NodeIKernelProfileService';export*from'./NodeIKernelTicketService';export*from'./NodeIKernelStorageCleanService';export*from'./NodeIKernelRobotService';export*from'./NodeIKernelRichMediaService';export*from'./NodeIKernelDbToolsService';function _0x2552(){var _0x40cefa=['25490WnhMln','1404008fKTHOD','44110mDGtLU','194960pFTmbh','102votVzM','63zbbSGL','6MgfCiY','898sNqyXg','108766cckkHc','142904dRScKF'];_0x2552=function(){return _0x40cefa;};return _0x2552();}export*from'./NodeIKernelTipOffService';
|
2
src/core.lib/src/sessionConfig.d.ts
vendored
2
src/core.lib/src/sessionConfig.d.ts
vendored
@@ -43,4 +43,4 @@ export interface WrapperSessionInitConfig {
|
||||
'deviceConfig': '{"appearance":{"isSplitViewMode":true},"msg":{}}';
|
||||
}
|
||||
export declare const sessionConfig: WrapperSessionInitConfig | any;
|
||||
export declare function genSessionConfig(selfUin: string, selfUid: string, account_path: string): WrapperSessionInitConfig;
|
||||
export declare function genSessionConfig(selfUin: string, selfUid: string, account_path: string): Promise<WrapperSessionInitConfig>;
|
||||
|
@@ -1 +1 @@
|
||||
function _0x55a9(_0xd01c41,_0x37bdd0){const _0x46de2b=_0x46de();return _0x55a9=function(_0x55a992,_0x5e9f9e){_0x55a992=_0x55a992-0x1c1;let _0x233452=_0x46de2b[_0x55a992];return _0x233452;},_0x55a9(_0xd01c41,_0x37bdd0);}(function(_0x225a6b,_0x189935){const _0x50d322=_0x55a9,_0x40052f=_0x225a6b();while(!![]){try{const _0x573b17=parseInt(_0x50d322(0x1cb))/0x1*(-parseInt(_0x50d322(0x1ca))/0x2)+-parseInt(_0x50d322(0x1c8))/0x3*(parseInt(_0x50d322(0x1c5))/0x4)+parseInt(_0x50d322(0x1c2))/0x5*(-parseInt(_0x50d322(0x1c9))/0x6)+parseInt(_0x50d322(0x1cf))/0x7*(-parseInt(_0x50d322(0x1d4))/0x8)+parseInt(_0x50d322(0x1d7))/0x9+parseInt(_0x50d322(0x1d8))/0xa+parseInt(_0x50d322(0x1ce))/0xb;if(_0x573b17===_0x189935)break;else _0x40052f['push'](_0x40052f['shift']());}catch(_0x17cdd5){_0x40052f['push'](_0x40052f['shift']());}}}(_0x46de,0xd03ee));import{appid,qqPkgInfo,qqVersionConfigInfo}from'@/common/utils/QQBasicInfo';function _0x46de(){const _0x2173d8=['temp','utf-8','22353386LnRIrZ','756qytmcc','mkdirSync','guid.txt','NapCat','zzNNf','75688YGnMUl','curVersion','jANAV','7266168uxmTrE','10241070iGanBP','join','readFileSync','1616610MUMLjf','version','gNyyV','2574476PcaANP','wjSSr','writeFileSync','3ZdQgSW','18WtUXpM','375238mlpPTO','2NqnmyW'];_0x46de=function(){return _0x2173d8;};return _0x46de();}import{hostname,systemName,systemVersion}from'@/common/utils/system';import _0x2e6ad1 from'node:path';import _0x3045eb from'node:fs';import{randomUUID}from'crypto';export const sessionConfig={};export function genSessionConfig(_0x18b50d,_0x1da33e,_0x555343){const _0x2e4c41=_0x55a9,_0x5ca599={'zzNNf':_0x2e4c41(0x1d2),'gNyyV':_0x2e4c41(0x1cc),'wjSSr':function(_0x154037){return _0x154037();},'jANAV':_0x2e4c41(0x1cd),'AcVHq':'{\x22appearance\x22:{\x22isSplitViewMode\x22:true},\x22msg\x22:{}}'},_0x5452e4=_0x2e6ad1[_0x2e4c41(0x1d9)](_0x555343,_0x5ca599['zzNNf'],_0x5ca599[_0x2e4c41(0x1c4)]);_0x3045eb[_0x2e4c41(0x1d0)](_0x5452e4,{'recursive':!![]});const _0x3314fe=_0x2e6ad1[_0x2e4c41(0x1d9)](_0x555343,_0x5ca599[_0x2e4c41(0x1d3)],_0x2e4c41(0x1d1));let _0x4ccc09=_0x5ca599[_0x2e4c41(0x1c6)](randomUUID);try{_0x4ccc09=_0x3045eb[_0x2e4c41(0x1c1)](_0x2e6ad1[_0x2e4c41(0x1d9)](_0x3314fe),_0x5ca599[_0x2e4c41(0x1d6)]);}catch(_0x25de02){_0x3045eb[_0x2e4c41(0x1c7)](_0x2e6ad1[_0x2e4c41(0x1d9)](_0x3314fe),_0x4ccc09,_0x5ca599['jANAV']);}const _0x58f01b={'selfUin':_0x18b50d,'selfUid':_0x1da33e,'desktopPathConfig':{'account_path':_0x555343},'clientVer':qqVersionConfigInfo[_0x2e4c41(0x1d5)],'a2':'','d2':'','d2Key':'','machineId':'','platform':0x3,'platVer':systemVersion,'appid':appid,'rdeliveryConfig':{'appKey':'','systemId':0x0,'appId':'','logicEnvironment':'','platform':0x3,'language':'','sdkVersion':'','userId':'','appVersion':'','osVersion':'','bundleId':'','serverUrl':'','fixedAfterHitKeys':['']},'defaultFileDownloadPath':_0x5452e4,'deviceInfo':{'guid':_0x4ccc09,'buildVer':qqPkgInfo[_0x2e4c41(0x1c3)],'localId':0x804,'devName':hostname,'devType':systemName,'vendorName':'','osVer':systemVersion,'vendorOsName':systemName,'setMute':![],'vendorType':0x0},'deviceConfig':_0x5ca599['AcVHq']};return Object['assign'](sessionConfig,_0x58f01b),_0x58f01b;}
|
||||
function _0x3c95(){const _0x254916=['4190sDaOul','2VbLKqL','816299wdGKQT','1619696oBAILL','36azYope','temp','58915GMbipC','60719cOYVbO','{\x22appearance\x22:{\x22isSplitViewMode\x22:true},\x22msg\x22:{}}','7bkSMET','3249vjoiBE','assign','mkdirSync','curVersion','396027rRSkrv','1127910KgftgE'];_0x3c95=function(){return _0x254916;};return _0x3c95();}(function(_0x497a00,_0x3e3806){const _0x2c25af=_0x2eb9,_0x3560c5=_0x497a00();while(!![]){try{const _0xd7d0df=parseInt(_0x2c25af(0x7e))/0x1+-parseInt(_0x2c25af(0x88))/0x2*(-parseInt(_0x2c25af(0x85))/0x3)+-parseInt(_0x2c25af(0x7b))/0x4*(-parseInt(_0x2c25af(0x7d))/0x5)+-parseInt(_0x2c25af(0x86))/0x6+parseInt(_0x2c25af(0x80))/0x7*(-parseInt(_0x2c25af(0x8a))/0x8)+-parseInt(_0x2c25af(0x81))/0x9*(-parseInt(_0x2c25af(0x87))/0xa)+parseInt(_0x2c25af(0x89))/0xb;if(_0xd7d0df===_0x3e3806)break;else _0x3560c5['push'](_0x3560c5['shift']());}catch(_0x2653dd){_0x3560c5['push'](_0x3560c5['shift']());}}}(_0x3c95,0x20aa4));function _0x2eb9(_0x1c8901,_0x35a88f){const _0x3c9570=_0x3c95();return _0x2eb9=function(_0x2eb9c2,_0x32ecff){_0x2eb9c2=_0x2eb9c2-0x7b;let _0x32ed60=_0x3c9570[_0x2eb9c2];return _0x32ed60;},_0x2eb9(_0x1c8901,_0x35a88f);}import{appid,qqPkgInfo,qqVersionConfigInfo}from'@/common/utils/QQBasicInfo';import{hostname,systemName,systemVersion}from'@/common/utils/system';import _0x51a0c1 from'node:path';import _0x282f5e from'node:fs';import{getMachineId}from'@/common/utils/system';export const sessionConfig={};export async function genSessionConfig(_0x33acc4,_0x486ff0,_0x4372a9){const _0xda5dce=_0x2eb9,_0x21c9af=_0x51a0c1['join'](_0x4372a9,'NapCat',_0xda5dce(0x7c));_0x282f5e[_0xda5dce(0x83)](_0x21c9af,{'recursive':!![]});let _0x3f2155=await getMachineId();const _0x49fc79={'selfUin':_0x33acc4,'selfUid':_0x486ff0,'desktopPathConfig':{'account_path':_0x4372a9},'clientVer':qqVersionConfigInfo[_0xda5dce(0x84)],'a2':'','d2':'','d2Key':'','machineId':'','platform':0x3,'platVer':systemVersion,'appid':appid,'rdeliveryConfig':{'appKey':'','systemId':0x0,'appId':'','logicEnvironment':'','platform':0x3,'language':'','sdkVersion':'','userId':'','appVersion':'','osVersion':'','bundleId':'','serverUrl':'','fixedAfterHitKeys':['']},'defaultFileDownloadPath':_0x21c9af,'deviceInfo':{'guid':_0x3f2155,'buildVer':qqPkgInfo['version'],'localId':0x804,'devName':hostname,'devType':systemName,'vendorName':'','osVer':systemVersion,'vendorOsName':systemName,'setMute':![],'vendorType':0x0},'deviceConfig':_0xda5dce(0x7f)};return Object[_0xda5dce(0x82)](sessionConfig,_0x49fc79),_0x49fc79;}
|
@@ -1 +1 @@
|
||||
function _0x1abe(_0x4011b9,_0x28f1f3){const _0x39dd69=_0x39dd();return _0x1abe=function(_0x1abebf,_0x31300e){_0x1abebf=_0x1abebf-0x1a1;let _0x3dc8fb=_0x39dd69[_0x1abebf];return _0x3dc8fb;},_0x1abe(_0x4011b9,_0x28f1f3);}const _0x42e9fe=_0x1abe;(function(_0x45eee1,_0x1f549b){const _0x169999=_0x1abe,_0x55f355=_0x45eee1();while(!![]){try{const _0x4bf160=-parseInt(_0x169999(0x1a4))/0x1+parseInt(_0x169999(0x1a3))/0x2+parseInt(_0x169999(0x1a7))/0x3+parseInt(_0x169999(0x1a5))/0x4*(parseInt(_0x169999(0x1ae))/0x5)+-parseInt(_0x169999(0x1af))/0x6*(-parseInt(_0x169999(0x1b4))/0x7)+parseInt(_0x169999(0x1a1))/0x8+-parseInt(_0x169999(0x1a2))/0x9;if(_0x4bf160===_0x1f549b)break;else _0x55f355['push'](_0x55f355['shift']());}catch(_0xdbb435){_0x55f355['push'](_0x55f355['shift']());}}}(_0x39dd,0x3b1d4));import _0x1f0346 from'node:path';import{LogLevel}from'@/common/utils/log';function _0x39dd(){const _0x5a5f6e=['getConfigPath','7CnWvQn','3854960yMvPCL','13949955RWiGxJ','479534oOxksP','76376NngPiz','8HsmjZO','consoleLogLevel','1113909XgxbXa','fileLogLevel','join','DEBUG','napcat_','uin','fileLog','961370nvDmvb','2346090OKSOws','INFO','consoleLog','getConfigDir'];_0x39dd=function(){return _0x5a5f6e;};return _0x39dd();}import{ConfigBase}from'@/common/utils/ConfigBase';import{selfInfo}from'@/core/data';class Config extends ConfigBase{[_0x42e9fe(0x1ad)]=!![];[_0x42e9fe(0x1b1)]=!![];[_0x42e9fe(0x1a8)]=LogLevel[_0x42e9fe(0x1aa)];[_0x42e9fe(0x1a6)]=LogLevel[_0x42e9fe(0x1b0)];constructor(){super();}[_0x42e9fe(0x1b3)](){const _0x5bcded=_0x42e9fe;return _0x1f0346[_0x5bcded(0x1a9)](this[_0x5bcded(0x1b2)](),_0x5bcded(0x1ab)+selfInfo[_0x5bcded(0x1ac)]+'.json');}}export const napCatConfig=new Config();
|
||||
const _0x3be28e=_0x13ab;function _0xb6cf(){const _0x259f3c=['getConfigDir','4DcljsI','consoleLogLevel','INFO','getConfigPath','27765jOibfL','6919717NvQaAA','.json','fileLogLevel','12IxpqnJ','uin','37542080jJWjtP','8DhsnKU','join','DEBUG','775476ZNoQyo','897393Aopmwj','827712gJJpzE','consoleLog','6497488OPMuXl'];_0xb6cf=function(){return _0x259f3c;};return _0xb6cf();}(function(_0x27dd42,_0x56095d){const _0x59ada5=_0x13ab,_0x485dcc=_0x27dd42();while(!![]){try{const _0x15e393=-parseInt(_0x59ada5(0xe6))/0x1+-parseInt(_0x59ada5(0xea))/0x2*(-parseInt(_0x59ada5(0xe5))/0x3)+-parseInt(_0x59ada5(0xe8))/0x4+-parseInt(_0x59ada5(0xee))/0x5*(parseInt(_0x59ada5(0xde))/0x6)+-parseInt(_0x59ada5(0xef))/0x7+parseInt(_0x59ada5(0xe1))/0x8*(parseInt(_0x59ada5(0xe4))/0x9)+parseInt(_0x59ada5(0xe0))/0xa;if(_0x15e393===_0x56095d)break;else _0x485dcc['push'](_0x485dcc['shift']());}catch(_0x3f59ca){_0x485dcc['push'](_0x485dcc['shift']());}}}(_0xb6cf,0xf0f21));import _0x3b4ede from'node:path';import{LogLevel}from'@/common/utils/log';import{ConfigBase}from'@/common/utils/ConfigBase';import{selfInfo}from'@/core/data';function _0x13ab(_0x3b23d8,_0x16a9a3){const _0xb6cfce=_0xb6cf();return _0x13ab=function(_0x13abf1,_0x53ac8e){_0x13abf1=_0x13abf1-0xdc;let _0x23b6e2=_0xb6cfce[_0x13abf1];return _0x23b6e2;},_0x13ab(_0x3b23d8,_0x16a9a3);}class Config extends ConfigBase{['fileLog']=!![];[_0x3be28e(0xe7)]=!![];[_0x3be28e(0xdd)]=LogLevel[_0x3be28e(0xe3)];[_0x3be28e(0xeb)]=LogLevel[_0x3be28e(0xec)];constructor(){super();}[_0x3be28e(0xed)](){const _0x4bb628=_0x3be28e;return _0x3b4ede[_0x4bb628(0xe2)](this[_0x4bb628(0xe9)](),'napcat_'+selfInfo[_0x4bb628(0xdf)]+_0x4bb628(0xdc));}}export const napCatConfig=new Config();
|
@@ -1 +1 @@
|
||||
function _0x349e(){const _0x161789=['1032oqkPjS','http://napcat-sign.wumiao.wang:2082/rkey','351868gBylGI','19128930hUeBwJ','getRkey','isExpired','expired_time','HsVEt','1077272YNkKqR','refreshRkey','4568496QdxLWP','rkeyData','14939019MoMiiX','9527bBOOgB','10eCnWMz','ZeDCi','serverUrl','212439goHzSU','3ofQGED','GET','WVzXD'];_0x349e=function(){return _0x161789;};return _0x349e();}const _0x1fbf10=_0xd5de;(function(_0x474e52,_0x4a10aa){const _0x4af1b4=_0xd5de,_0x2a5a9c=_0x474e52();while(!![]){try{const _0x30fcd0=parseInt(_0x4af1b4(0x12c))/0x1+parseInt(_0x4af1b4(0x132))/0x2*(-parseInt(_0x4af1b4(0x12d))/0x3)+parseInt(_0x4af1b4(0x138))/0x4*(parseInt(_0x4af1b4(0x13e))/0x5)+parseInt(_0x4af1b4(0x13a))/0x6+parseInt(_0x4af1b4(0x13d))/0x7*(-parseInt(_0x4af1b4(0x130))/0x8)+parseInt(_0x4af1b4(0x13c))/0x9+-parseInt(_0x4af1b4(0x133))/0xa;if(_0x30fcd0===_0x4a10aa)break;else _0x2a5a9c['push'](_0x2a5a9c['shift']());}catch(_0x513ffb){_0x2a5a9c['push'](_0x2a5a9c['shift']());}}}(_0x349e,0xddad2));function _0xd5de(_0x5b788f,_0x5b789c){const _0x349e30=_0x349e();return _0xd5de=function(_0xd5ded8,_0x557513){_0xd5ded8=_0xd5ded8-0x12c;let _0x45e5a6=_0x349e30[_0xd5ded8];return _0x45e5a6;},_0xd5de(_0x5b788f,_0x5b789c);}import{logError}from'@/common/utils/log';import{RequestUtil}from'@/common/utils/request';class RkeyManager{[_0x1fbf10(0x140)]='';[_0x1fbf10(0x13b)]={'group_rkey':'','private_rkey':'','expired_time':0x0};constructor(_0x2967ff){const _0x4322ef=_0x1fbf10;this[_0x4322ef(0x140)]=_0x2967ff;}async[_0x1fbf10(0x134)](){const _0x2b623d=_0x1fbf10,_0x81ff0a={'hMNLH':function(_0x5a0072,_0x183753,_0x845c76){return _0x5a0072(_0x183753,_0x845c76);},'WVzXD':'获取rkey失败'};if(this['isExpired']())try{await this['refreshRkey']();}catch(_0x37dd67){_0x81ff0a['hMNLH'](logError,_0x81ff0a[_0x2b623d(0x12f)],_0x37dd67);}return this[_0x2b623d(0x13b)];}[_0x1fbf10(0x135)](){const _0x5054d8=_0x1fbf10,_0x681de2={'ZeDCi':function(_0x59949c,_0x2670ad){return _0x59949c/_0x2670ad;},'HsVEt':function(_0x3f0282,_0x128120){return _0x3f0282>_0x128120;}},_0x2cbbe1=_0x681de2[_0x5054d8(0x13f)](new Date()['getTime'](),0x3e8);return _0x681de2[_0x5054d8(0x137)](_0x2cbbe1,this[_0x5054d8(0x13b)][_0x5054d8(0x136)]);}async[_0x1fbf10(0x139)](){const _0x5dbc02=_0x1fbf10;this[_0x5dbc02(0x13b)]=await RequestUtil['HttpGetJson'](this[_0x5dbc02(0x140)],_0x5dbc02(0x12e));}}export const rkeyManager=new RkeyManager(_0x1fbf10(0x131));
|
||||
const _0x3535b6=_0x3a45;(function(_0x140eff,_0x49ea79){const _0x568627=_0x3a45,_0xffff43=_0x140eff();while(!![]){try{const _0x8a63e6=parseInt(_0x568627(0x15e))/0x1+-parseInt(_0x568627(0x15f))/0x2+parseInt(_0x568627(0x15b))/0x3*(parseInt(_0x568627(0x151))/0x4)+-parseInt(_0x568627(0x15c))/0x5+parseInt(_0x568627(0x159))/0x6+-parseInt(_0x568627(0x154))/0x7+parseInt(_0x568627(0x158))/0x8*(parseInt(_0x568627(0x161))/0x9);if(_0x8a63e6===_0x49ea79)break;else _0xffff43['push'](_0xffff43['shift']());}catch(_0x2685cd){_0xffff43['push'](_0xffff43['shift']());}}}(_0x5b9a,0x7481f));import{logError}from'@/common/utils/log';import{RequestUtil}from'@/common/utils/request';class RkeyManager{[_0x3535b6(0x14f)]='';['rkeyData']={'group_rkey':'','private_rkey':'','expired_time':0x0};constructor(_0x469226){this['serverUrl']=_0x469226;}async[_0x3535b6(0x153)](){const _0x34de2d=_0x3535b6;if(this[_0x34de2d(0x162)]())try{await this['refreshRkey']();}catch(_0x48d023){logError(_0x34de2d(0x163),_0x48d023);}return this[_0x34de2d(0x15d)];}[_0x3535b6(0x162)](){const _0x3e201a=_0x3535b6,_0xc5b4f={'euJCb':function(_0x5b091e,_0x16bda2){return _0x5b091e/_0x16bda2;}},_0xa42795=_0xc5b4f[_0x3e201a(0x15a)](new Date()[_0x3e201a(0x155)](),0x3e8);return _0xa42795>this[_0x3e201a(0x15d)][_0x3e201a(0x150)];}async['refreshRkey'](){const _0x10d2d2=_0x3535b6,_0xd82f09={'KaVow':_0x10d2d2(0x152)};this['rkeyData']=await RequestUtil[_0x10d2d2(0x156)](this['serverUrl'],_0xd82f09[_0x10d2d2(0x157)]);}}function _0x3a45(_0x4c9b1b,_0x4fb96d){const _0x5b9a35=_0x5b9a();return _0x3a45=function(_0x3a45e0,_0x26c2a6){_0x3a45e0=_0x3a45e0-0x14f;let _0x1c32fb=_0x5b9a35[_0x3a45e0];return _0x1c32fb;},_0x3a45(_0x4c9b1b,_0x4fb96d);}function _0x5b9a(){const _0x451c5b=['HttpGetJson','KaVow','3186416PdyufW','3075252uqcGPe','euJCb','3TAeRdD','2140910USQmtA','rkeyData','297702kANwVr','1426174RnTLdh','http://napcat-sign.wumiao.wang:2082/rkey','9brDSEe','isExpired','获取rkey失败','serverUrl','expired_time','2304344bTGiMM','GET','getRkey','1163036xWWuUN','getTime'];_0x5b9a=function(){return _0x451c5b;};return _0x5b9a();}export const rkeyManager=new RkeyManager(_0x3535b6(0x160));
|
@@ -1 +1 @@
|
||||
const _0xffbb27=_0x2a6e;(function(_0x3e8a34,_0x4035cf){const _0xcab1eb=_0x2a6e,_0x1b4e7d=_0x3e8a34();while(!![]){try{const _0x1e68e2=parseInt(_0xcab1eb(0x1d8))/0x1*(parseInt(_0xcab1eb(0x1ea))/0x2)+-parseInt(_0xcab1eb(0x1d9))/0x3+parseInt(_0xcab1eb(0x1e5))/0x4*(parseInt(_0xcab1eb(0x1e3))/0x5)+-parseInt(_0xcab1eb(0x1da))/0x6*(parseInt(_0xcab1eb(0x1ec))/0x7)+-parseInt(_0xcab1eb(0x1eb))/0x8*(parseInt(_0xcab1eb(0x1d6))/0x9)+-parseInt(_0xcab1eb(0x1dd))/0xa*(parseInt(_0xcab1eb(0x1e1))/0xb)+parseInt(_0xcab1eb(0x1e0))/0xc;if(_0x1e68e2===_0x4035cf)break;else _0x1b4e7d['push'](_0x1b4e7d['shift']());}catch(_0x31f190){_0x1b4e7d['push'](_0x1b4e7d['shift']());}}}(_0x1739,0x3bc0a));import _0x520a73 from'node:path';import _0x154a58 from'node:fs';import{qqVersionConfigInfo}from'@/common/utils/QQBasicInfo';import{dirname}from'node:path';import{fileURLToPath}from'node:url';function _0x1739(){const _0x470f0d=['20ujEQYp','file://','existsSync','join','replace','198026Wjcpna','1179424OZEJOG','7JHldjy','resolve','./resources/app/wrapper.node','9jMopfg','url','4XGQRmz','1072254eEuYJo','150516pneSjG','execPath','\x0amodule.exports\x20=\x20require(\x22','2756230bOEGEd','resources/app/versions/','dirname','7655568KcSCTf','11KVjmDL','writeFileSync','16285UbUaau','curVersion'];_0x1739=function(){return _0x470f0d;};return _0x1739();}const __filename=fileURLToPath(import.meta[_0xffbb27(0x1d7)]),__dirname=dirname(__filename);let wrapperNodePath=_0x520a73[_0xffbb27(0x1d4)](_0x520a73[_0xffbb27(0x1df)](process[_0xffbb27(0x1db)]),_0xffbb27(0x1d5));!_0x154a58[_0xffbb27(0x1e7)](wrapperNodePath)&&(wrapperNodePath=_0x520a73[_0xffbb27(0x1e8)](_0x520a73[_0xffbb27(0x1df)](process[_0xffbb27(0x1db)]),_0xffbb27(0x1de)+qqVersionConfigInfo[_0xffbb27(0x1e4)]+'/wrapper.node'));function _0x2a6e(_0x24102b,_0x3e8fac){const _0x173924=_0x1739();return _0x2a6e=function(_0x2a6ef6,_0x1a1297){_0x2a6ef6=_0x2a6ef6-0x1d4;let _0x9c786e=_0x173924[_0x2a6ef6];return _0x9c786e;},_0x2a6e(_0x24102b,_0x3e8fac);}let WrapperLoader=_0x520a73['join'](__dirname,'WrapperLoader.cjs');_0x154a58[_0xffbb27(0x1e2)](WrapperLoader,_0xffbb27(0x1dc)+wrapperNodePath[_0xffbb27(0x1e9)](/\\/g,'\x5c\x5c')+'\x22);\x0aexports\x20=\x20module.exports;\x0a');const QQWrapper=(await import(_0xffbb27(0x1e6)+WrapperLoader))['default'];export default QQWrapper;
|
||||
const _0x3f8f1b=_0xa245;(function(_0x44beee,_0x4e2e73){const _0x44928b=_0xa245,_0x246e05=_0x44beee();while(!![]){try{const _0x4b0081=parseInt(_0x44928b(0xd8))/0x1*(-parseInt(_0x44928b(0xe7))/0x2)+parseInt(_0x44928b(0xdb))/0x3+parseInt(_0x44928b(0xe6))/0x4*(-parseInt(_0x44928b(0xd5))/0x5)+parseInt(_0x44928b(0xe1))/0x6*(-parseInt(_0x44928b(0xda))/0x7)+parseInt(_0x44928b(0xdd))/0x8*(parseInt(_0x44928b(0xe0))/0x9)+-parseInt(_0x44928b(0xde))/0xa*(-parseInt(_0x44928b(0xe5))/0xb)+parseInt(_0x44928b(0xe8))/0xc;if(_0x4b0081===_0x4e2e73)break;else _0x246e05['push'](_0x246e05['shift']());}catch(_0x3bb411){_0x246e05['push'](_0x246e05['shift']());}}}(_0x5d4d,0x9249f));import _0x268d48 from'node:path';function _0xa245(_0x5afdf9,_0x2c7f58){const _0x5d4dfa=_0x5d4d();return _0xa245=function(_0xa245e7,_0x55f5b6){_0xa245e7=_0xa245e7-0xd4;let _0xc0e21d=_0x5d4dfa[_0xa245e7];return _0xc0e21d;},_0xa245(_0x5afdf9,_0x2c7f58);}import _0x5153b1 from'node:fs';import{qqVersionConfigInfo}from'@/common/utils/QQBasicInfo';import{dirname}from'node:path';import{fileURLToPath}from'node:url';const __filename=fileURLToPath(import.meta['url']),__dirname=dirname(__filename);function _0x5d4d(){const _0x23ebec=['4918yeGxML','curVersion','1974MntXeo','1088934xnbAld','/wrapper.node','66904ImLdYt','17390FlIxys','resources/app/versions/','144CnZbvU','15270vRwGzF','dirname','resolve','writeFileSync','1023UZbvzl','969512ERGxAL','2QtKBOm','13776600cAlosZ','\x0amodule.exports\x20=\x20require(\x22','execPath','existsSync','10mXmmeY','file://','join'];_0x5d4d=function(){return _0x23ebec;};return _0x5d4d();}let wrapperNodePath=_0x268d48[_0x3f8f1b(0xe3)](_0x268d48['dirname'](process[_0x3f8f1b(0xea)]),'./resources/app/wrapper.node');!_0x5153b1[_0x3f8f1b(0xd4)](wrapperNodePath)&&(wrapperNodePath=_0x268d48['join'](_0x268d48[_0x3f8f1b(0xe2)](process['execPath']),_0x3f8f1b(0xdf)+qqVersionConfigInfo[_0x3f8f1b(0xd9)]+_0x3f8f1b(0xdc)));let WrapperLoader=_0x268d48[_0x3f8f1b(0xd7)](__dirname,'WrapperLoader.cjs');_0x5153b1[_0x3f8f1b(0xe4)](WrapperLoader,_0x3f8f1b(0xe9)+wrapperNodePath['replace'](/\\/g,'\x5c\x5c')+'\x22);\x0aexports\x20=\x20module.exports;\x0a');const QQWrapper=(await import(_0x3f8f1b(0xd6)+WrapperLoader))['default'];export default QQWrapper;
|
25
src/index.ts
25
src/index.ts
@@ -5,18 +5,19 @@ import fs from 'fs/promises';
|
||||
import fsSync from 'fs';
|
||||
import path from 'node:path';
|
||||
import { checkVersion } from '@/common/utils/version';
|
||||
import { log, logDebug, logError, LogLevel, setLogLevel } from '@/common/utils/log';
|
||||
import { log, logDebug, logError, LogLevel, logWarn, setLogLevel } from '@/common/utils/log';
|
||||
import { NapCatOnebot11 } from '@/onebot11/main';
|
||||
import { InitWebUi } from './webui/index';
|
||||
import { WebUiDataRuntime } from './webui/src/helper/Data';
|
||||
import { UpdateConfig } from './common/utils/helper';
|
||||
import { dirname } from 'node:path';
|
||||
import { fileURLToPath } from 'node:url';
|
||||
import chalk from 'chalk';
|
||||
|
||||
|
||||
const __filename = fileURLToPath(import.meta.url);
|
||||
const __dirname = dirname(__filename);
|
||||
|
||||
const tagColor = chalk.cyan;
|
||||
program
|
||||
.option('-q, --qq <type>', 'QQ号')
|
||||
.parse(process.argv);
|
||||
@@ -31,19 +32,19 @@ checkVersion().then(async (remoteVersion: string) => {
|
||||
const localVersion = JSON.parse(fsSync.readFileSync(path.join(__dirname, 'package.json')).toString()).version;
|
||||
const localVersionList = localVersion.split('.');
|
||||
const remoteVersionList = remoteVersion.split('.');
|
||||
log('[NapCat] 当前版本:', localVersion);
|
||||
log(tagColor('[NapCat]'), '当前版本:', localVersion);
|
||||
for (const k of [0, 1, 2]) {
|
||||
if (parseInt(remoteVersionList[k]) > parseInt(localVersionList[k])) {
|
||||
console.log(`[NapCat] 检测到更新,请前往 https://github.com/NapNeko/NapCatQQ 下载 NapCatQQ V ${remoteVersion}`);
|
||||
logWarn(tagColor('[NapCat]'), `检测到更新,请前往 https://github.com/NapNeko/NapCatQQ 下载 NapCatQQ V ${remoteVersion}`);
|
||||
return;
|
||||
} else if (parseInt(remoteVersionList[k]) < parseInt(localVersionList[k])) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
logDebug('[NapCat] 当前已是最新版本');
|
||||
logDebug(tagColor('[NapCat]'),'当前已是最新版本');
|
||||
return;
|
||||
}).catch((e) => {
|
||||
logError('[NapCat] 检测更新失败', e);
|
||||
logError(tagColor('[NapCat]'),'检测更新失败', e);
|
||||
});
|
||||
// 不是很好待优化
|
||||
const NapCat_OneBot11 = new NapCatOnebot11();
|
||||
@@ -51,18 +52,18 @@ const NapCat_OneBot11 = new NapCatOnebot11();
|
||||
WebUiDataRuntime.setOB11ConfigCall(NapCat_OneBot11.SetConfig);
|
||||
|
||||
napCatCore.onLoginSuccess((uin, uid) => {
|
||||
console.log('登录成功!');
|
||||
log('登录成功!');
|
||||
WebUiDataRuntime.setQQLoginStatus(true);
|
||||
WebUiDataRuntime.setQQLoginUin(uin.toString());
|
||||
});
|
||||
const showQRCode = async (url: string, base64: string, buffer: Buffer) => {
|
||||
await WebUiDataRuntime.setQQLoginQrcodeURL(url);
|
||||
console.log('请扫描下面的二维码,然后在手Q上授权登录:');
|
||||
logWarn('请扫描下面的二维码,然后在手Q上授权登录:');
|
||||
const qrcodePath = path.join(__dirname, 'qrcode.png');
|
||||
qrcode.generate(url, { small: true }, (res) => {
|
||||
console.log(`${res}\n二维码解码URL: ${url}\n如果控制台二维码无法扫码,可以复制解码url到二维码生成网站生成二维码再扫码,也可以打开下方的二维码路径图片进行扫码`);
|
||||
logWarn(`\n${res}\n二维码解码URL: ${url}\n如果控制台二维码无法扫码,可以复制解码url到二维码生成网站生成二维码再扫码,也可以打开下方的二维码路径图片进行扫码`);
|
||||
fs.writeFile(qrcodePath, buffer).then(() => {
|
||||
console.log('二维码已保存到', qrcodePath);
|
||||
logWarn('二维码已保存到', qrcodePath);
|
||||
});
|
||||
});
|
||||
};
|
||||
@@ -86,7 +87,7 @@ WebUiDataRuntime.setQQQuickLoginCall(async (uin: string) => {
|
||||
}
|
||||
resolve({ result: true, message: '' });
|
||||
}).catch((e) => {
|
||||
console.error(e);
|
||||
logError(e);
|
||||
resolve({ result: false, message: '快速登录发生错误' });
|
||||
});
|
||||
} else {
|
||||
@@ -104,7 +105,7 @@ if (quickLoginQQ) {
|
||||
logError('快速登录错误:', res.loginErrorInfo.errMsg);
|
||||
}
|
||||
}).catch((e) => {
|
||||
console.error(e);
|
||||
logError(e);
|
||||
napCatCore.qrLogin(showQRCode);
|
||||
});
|
||||
} else {
|
||||
|
@@ -1,46 +1,46 @@
|
||||
import { DeviceList } from '@/onebot11/main';
|
||||
import BaseAction from '../BaseAction';
|
||||
import { ActionName } from '../types';
|
||||
import { FromSchema, JSONSchema } from 'json-schema-to-ts';
|
||||
import { checkFileReceived, uri2local } from '@/common/utils/file';
|
||||
import { NTQQSystemApi } from '@/core';
|
||||
import fs from 'fs';
|
||||
|
||||
const SchemaData = {
|
||||
type: 'object',
|
||||
properties: {
|
||||
image: { type: 'string' },
|
||||
},
|
||||
required: ['image']
|
||||
} as const satisfies JSONSchema;
|
||||
|
||||
type Payload = FromSchema<typeof SchemaData>;
|
||||
|
||||
export class OCRImage extends BaseAction<Payload, any> {
|
||||
actionName = ActionName.OCRImage;
|
||||
PayloadSchema = SchemaData;
|
||||
protected async _handle(payload: Payload) {
|
||||
const { path, isLocal, errMsg } = (await uri2local(payload.image));
|
||||
if (errMsg) {
|
||||
throw `OCR ${payload.image}失败,image字段可能格式不正确`;
|
||||
}
|
||||
if (path) {
|
||||
await checkFileReceived(path, 5000); // 文件不存在QQ会崩溃,需要提前判断
|
||||
const ret = await NTQQSystemApi.ORCImage(path);
|
||||
if (!isLocal) {
|
||||
fs.unlink(path, () => { });
|
||||
}
|
||||
if (!ret) {
|
||||
throw `OCR ${payload.file}失败`;
|
||||
}
|
||||
return ret.result;
|
||||
}
|
||||
if (!isLocal) {
|
||||
fs.unlink(path, () => { });
|
||||
}
|
||||
throw `OCR ${payload.file}失败,文件可能不存在`;
|
||||
}
|
||||
}
|
||||
export class IOCRImage extends OCRImage {
|
||||
actionName = ActionName.IOCRImage;
|
||||
}
|
||||
import { DeviceList } from '@/onebot11/main';
|
||||
import BaseAction from '../BaseAction';
|
||||
import { ActionName } from '../types';
|
||||
import { FromSchema, JSONSchema } from 'json-schema-to-ts';
|
||||
import { checkFileReceived, uri2local } from '@/common/utils/file';
|
||||
import { NTQQSystemApi } from '@/core';
|
||||
import fs from 'fs';
|
||||
|
||||
const SchemaData = {
|
||||
type: 'object',
|
||||
properties: {
|
||||
image: { type: 'string' },
|
||||
},
|
||||
required: ['image']
|
||||
} as const satisfies JSONSchema;
|
||||
|
||||
type Payload = FromSchema<typeof SchemaData>;
|
||||
|
||||
export class OCRImage extends BaseAction<Payload, any> {
|
||||
actionName = ActionName.OCRImage;
|
||||
PayloadSchema = SchemaData;
|
||||
protected async _handle(payload: Payload) {
|
||||
const { path, isLocal, errMsg } = (await uri2local(payload.image));
|
||||
if (errMsg) {
|
||||
throw `OCR ${payload.image}失败,image字段可能格式不正确`;
|
||||
}
|
||||
if (path) {
|
||||
await checkFileReceived(path, 5000); // 文件不存在QQ会崩溃,需要提前判断
|
||||
const ret = await NTQQSystemApi.ORCImage(path);
|
||||
if (!isLocal) {
|
||||
fs.unlink(path, () => { });
|
||||
}
|
||||
if (!ret) {
|
||||
throw `OCR ${payload.file}失败`;
|
||||
}
|
||||
return ret.result;
|
||||
}
|
||||
if (!isLocal) {
|
||||
fs.unlink(path, () => { });
|
||||
}
|
||||
throw `OCR ${payload.file}失败,文件可能不存在`;
|
||||
}
|
||||
}
|
||||
export class IOCRImage extends OCRImage {
|
||||
actionName = ActionName.IOCRImage;
|
||||
}
|
||||
|
32
src/onebot11/action/extends/SetSelfProfile.ts
Normal file
32
src/onebot11/action/extends/SetSelfProfile.ts
Normal file
@@ -0,0 +1,32 @@
|
||||
|
||||
import BaseAction from '../BaseAction';
|
||||
import { ActionName } from '../types';
|
||||
import { NTQQUserApi } from '@/core/apis';
|
||||
import { FromSchema, JSONSchema } from 'json-schema-to-ts';
|
||||
|
||||
const SchemaData = {
|
||||
type: 'object',
|
||||
properties: {
|
||||
nick: { type: 'string' },
|
||||
longNick: { type: 'string' },
|
||||
sex: { type: 'number' }//传Sex值?建议传0
|
||||
},
|
||||
required: ['nick', 'longNick', 'sex',],
|
||||
} as const satisfies JSONSchema;
|
||||
|
||||
type Payload = FromSchema<typeof SchemaData>;
|
||||
|
||||
export class SetSelfProfile extends BaseAction<Payload, any | null> {
|
||||
actionName = ActionName.SetSelfProfile;
|
||||
PayloadSchema = SchemaData;
|
||||
protected async _handle(payload: Payload) {
|
||||
let ret = await NTQQUserApi.modifySelfProfile({
|
||||
nick: payload.nick,
|
||||
longNick: payload.longNick,
|
||||
sex: payload.sex,
|
||||
birthday: { birthday_year: '', birthday_month: '', birthday_day: '' },
|
||||
location: undefined
|
||||
});
|
||||
return ret;
|
||||
}
|
||||
}
|
@@ -1,23 +1,23 @@
|
||||
import { FromSchema, JSONSchema } from 'json-schema-to-ts';
|
||||
import BaseAction from '../BaseAction';
|
||||
import { ActionName } from '../types';
|
||||
import { NTQQGroupApi, NTQQMsgApi, NTQQUserApi } from '@/core/apis';
|
||||
|
||||
const SchemaData = {
|
||||
type: 'object',
|
||||
properties: {
|
||||
group_id: { type: ['string', 'number'] },
|
||||
file_id: { type: 'string' },
|
||||
},
|
||||
required: ['group_id', 'file_id']
|
||||
} as const satisfies JSONSchema;
|
||||
|
||||
type Payload = FromSchema<typeof SchemaData>;
|
||||
|
||||
export class DelGroupFile extends BaseAction<Payload, any> {
|
||||
actionName = ActionName.DelGroupFile;
|
||||
PayloadSchema = SchemaData;
|
||||
protected async _handle(payload: Payload) {
|
||||
return await NTQQGroupApi.DelGroupFile(payload.group_id.toString(), [payload.file_id]);
|
||||
}
|
||||
}
|
||||
import { FromSchema, JSONSchema } from 'json-schema-to-ts';
|
||||
import BaseAction from '../BaseAction';
|
||||
import { ActionName } from '../types';
|
||||
import { NTQQGroupApi, NTQQMsgApi, NTQQUserApi } from '@/core/apis';
|
||||
|
||||
const SchemaData = {
|
||||
type: 'object',
|
||||
properties: {
|
||||
group_id: { type: ['string', 'number'] },
|
||||
file_id: { type: 'string' },
|
||||
},
|
||||
required: ['group_id', 'file_id']
|
||||
} as const satisfies JSONSchema;
|
||||
|
||||
type Payload = FromSchema<typeof SchemaData>;
|
||||
|
||||
export class DelGroupFile extends BaseAction<Payload, any> {
|
||||
actionName = ActionName.DelGroupFile;
|
||||
PayloadSchema = SchemaData;
|
||||
protected async _handle(payload: Payload) {
|
||||
return await NTQQGroupApi.DelGroupFile(payload.group_id.toString(), [payload.file_id]);
|
||||
}
|
||||
}
|
||||
|
@@ -1,23 +1,23 @@
|
||||
import { FromSchema, JSONSchema } from 'json-schema-to-ts';
|
||||
import BaseAction from '../BaseAction';
|
||||
import { ActionName } from '../types';
|
||||
import { NTQQGroupApi, NTQQMsgApi, NTQQUserApi } from '@/core/apis';
|
||||
|
||||
const SchemaData = {
|
||||
type: 'object',
|
||||
properties: {
|
||||
group_id: { type: ['string', 'number'] },
|
||||
folder_id: { type: 'string' },
|
||||
},
|
||||
required: ['group_id', 'folder_id']
|
||||
} as const satisfies JSONSchema;
|
||||
|
||||
type Payload = FromSchema<typeof SchemaData>;
|
||||
|
||||
export class DelGroupFileFolder extends BaseAction<Payload, any> {
|
||||
actionName = ActionName.DelGroupFileFolder;
|
||||
PayloadSchema = SchemaData;
|
||||
protected async _handle(payload: Payload) {
|
||||
return (await NTQQGroupApi.DelGroupFileFolder(payload.group_id.toString(), payload.folder_id)).groupFileCommonResult;
|
||||
}
|
||||
}
|
||||
import { FromSchema, JSONSchema } from 'json-schema-to-ts';
|
||||
import BaseAction from '../BaseAction';
|
||||
import { ActionName } from '../types';
|
||||
import { NTQQGroupApi, NTQQMsgApi, NTQQUserApi } from '@/core/apis';
|
||||
|
||||
const SchemaData = {
|
||||
type: 'object',
|
||||
properties: {
|
||||
group_id: { type: ['string', 'number'] },
|
||||
folder_id: { type: 'string' },
|
||||
},
|
||||
required: ['group_id', 'folder_id']
|
||||
} as const satisfies JSONSchema;
|
||||
|
||||
type Payload = FromSchema<typeof SchemaData>;
|
||||
|
||||
export class DelGroupFileFolder extends BaseAction<Payload, any> {
|
||||
actionName = ActionName.DelGroupFileFolder;
|
||||
PayloadSchema = SchemaData;
|
||||
protected async _handle(payload: Payload) {
|
||||
return (await NTQQGroupApi.DelGroupFileFolder(payload.group_id.toString(), payload.folder_id)).groupFileCommonResult;
|
||||
}
|
||||
}
|
||||
|
@@ -1,23 +1,23 @@
|
||||
import { FromSchema, JSONSchema } from 'json-schema-to-ts';
|
||||
import BaseAction from '../BaseAction';
|
||||
import { ActionName } from '../types';
|
||||
import { NTQQGroupApi, NTQQUserApi } from '@/core/apis';
|
||||
|
||||
const SchemaData = {
|
||||
type: 'object',
|
||||
properties: {
|
||||
group_id: { type: ['string', 'number'] },
|
||||
},
|
||||
required: ['group_id']
|
||||
} as const satisfies JSONSchema;
|
||||
|
||||
type Payload = FromSchema<typeof SchemaData>;
|
||||
|
||||
export class GetGroupFileCount extends BaseAction<Payload, { count: number }> {
|
||||
actionName = ActionName.GetGroupFileCount;
|
||||
PayloadSchema = SchemaData;
|
||||
protected async _handle(payload: Payload) {
|
||||
const ret = await NTQQGroupApi.GetGroupFileCount([payload.group_id?.toString()]);
|
||||
return { count: ret.groupFileCounts[0] };
|
||||
}
|
||||
}
|
||||
import { FromSchema, JSONSchema } from 'json-schema-to-ts';
|
||||
import BaseAction from '../BaseAction';
|
||||
import { ActionName } from '../types';
|
||||
import { NTQQGroupApi, NTQQUserApi } from '@/core/apis';
|
||||
|
||||
const SchemaData = {
|
||||
type: 'object',
|
||||
properties: {
|
||||
group_id: { type: ['string', 'number'] },
|
||||
},
|
||||
required: ['group_id']
|
||||
} as const satisfies JSONSchema;
|
||||
|
||||
type Payload = FromSchema<typeof SchemaData>;
|
||||
|
||||
export class GetGroupFileCount extends BaseAction<Payload, { count: number }> {
|
||||
actionName = ActionName.GetGroupFileCount;
|
||||
PayloadSchema = SchemaData;
|
||||
protected async _handle(payload: Payload) {
|
||||
const ret = await NTQQGroupApi.GetGroupFileCount([payload.group_id?.toString()]);
|
||||
return { count: ret.groupFileCounts[0] };
|
||||
}
|
||||
}
|
||||
|
@@ -1,31 +1,31 @@
|
||||
import { FromSchema, JSONSchema } from 'json-schema-to-ts';
|
||||
import BaseAction from '../BaseAction';
|
||||
import { ActionName } from '../types';
|
||||
import { NTQQGroupApi, NTQQMsgApi, NTQQUserApi } from '@/core/apis';
|
||||
|
||||
const SchemaData = {
|
||||
type: 'object',
|
||||
properties: {
|
||||
group_id: { type: ['string', 'number'] },
|
||||
start_index: { type: 'number' },
|
||||
file_count: { type: 'number' },
|
||||
},
|
||||
required: ['group_id', 'start_index', 'file_count']
|
||||
} as const satisfies JSONSchema;
|
||||
|
||||
type Payload = FromSchema<typeof SchemaData>;
|
||||
|
||||
export class GetGroupFileList extends BaseAction<Payload, { FileList: Array<any> }> {
|
||||
actionName = ActionName.GetGroupFileList;
|
||||
PayloadSchema = SchemaData;
|
||||
protected async _handle(payload: Payload) {
|
||||
let ret = await NTQQMsgApi.getGroupFileList(payload.group_id.toString(), {
|
||||
sortType: 1,
|
||||
fileCount: payload.file_count,
|
||||
startIndex: payload.start_index,
|
||||
sortOrder: 2,
|
||||
showOnlinedocFolder: 0
|
||||
}).catch((e) => { return []; });
|
||||
return { FileList: ret };
|
||||
}
|
||||
}
|
||||
import { FromSchema, JSONSchema } from 'json-schema-to-ts';
|
||||
import BaseAction from '../BaseAction';
|
||||
import { ActionName } from '../types';
|
||||
import { NTQQGroupApi, NTQQMsgApi, NTQQUserApi } from '@/core/apis';
|
||||
|
||||
const SchemaData = {
|
||||
type: 'object',
|
||||
properties: {
|
||||
group_id: { type: ['string', 'number'] },
|
||||
start_index: { type: 'number' },
|
||||
file_count: { type: 'number' },
|
||||
},
|
||||
required: ['group_id', 'start_index', 'file_count']
|
||||
} as const satisfies JSONSchema;
|
||||
|
||||
type Payload = FromSchema<typeof SchemaData>;
|
||||
|
||||
export class GetGroupFileList extends BaseAction<Payload, { FileList: Array<any> }> {
|
||||
actionName = ActionName.GetGroupFileList;
|
||||
PayloadSchema = SchemaData;
|
||||
protected async _handle(payload: Payload) {
|
||||
const ret = await NTQQMsgApi.getGroupFileList(payload.group_id.toString(), {
|
||||
sortType: 1,
|
||||
fileCount: payload.file_count,
|
||||
startIndex: payload.start_index,
|
||||
sortOrder: 2,
|
||||
showOnlinedocFolder: 0
|
||||
}).catch((e) => { return []; });
|
||||
return { FileList: ret };
|
||||
}
|
||||
}
|
||||
|
@@ -1,23 +1,23 @@
|
||||
import { FromSchema, JSONSchema } from 'json-schema-to-ts';
|
||||
import BaseAction from '../BaseAction';
|
||||
import { ActionName } from '../types';
|
||||
import { NTQQGroupApi, NTQQMsgApi, NTQQUserApi } from '@/core/apis';
|
||||
|
||||
const SchemaData = {
|
||||
type: 'object',
|
||||
properties: {
|
||||
group_id: { type: ['string', 'number'] },
|
||||
folder_name: { type: 'string' },
|
||||
},
|
||||
required: ['group_id', 'folder_name']
|
||||
} as const satisfies JSONSchema;
|
||||
|
||||
type Payload = FromSchema<typeof SchemaData>;
|
||||
|
||||
export class SetGroupFileFolder extends BaseAction<Payload, any> {
|
||||
actionName = ActionName.SetGroupFileFolder;
|
||||
PayloadSchema = SchemaData;
|
||||
protected async _handle(payload: Payload) {
|
||||
return (await NTQQGroupApi.CreatGroupFileFolder(payload.group_id.toString(), payload.folder_name)).resultWithGroupItem;
|
||||
}
|
||||
}
|
||||
import { FromSchema, JSONSchema } from 'json-schema-to-ts';
|
||||
import BaseAction from '../BaseAction';
|
||||
import { ActionName } from '../types';
|
||||
import { NTQQGroupApi, NTQQMsgApi, NTQQUserApi } from '@/core/apis';
|
||||
|
||||
const SchemaData = {
|
||||
type: 'object',
|
||||
properties: {
|
||||
group_id: { type: ['string', 'number'] },
|
||||
folder_name: { type: 'string' },
|
||||
},
|
||||
required: ['group_id', 'folder_name']
|
||||
} as const satisfies JSONSchema;
|
||||
|
||||
type Payload = FromSchema<typeof SchemaData>;
|
||||
|
||||
export class SetGroupFileFolder extends BaseAction<Payload, any> {
|
||||
actionName = ActionName.SetGroupFileFolder;
|
||||
PayloadSchema = SchemaData;
|
||||
protected async _handle(payload: Payload) {
|
||||
return (await NTQQGroupApi.CreatGroupFileFolder(payload.group_id.toString(), payload.folder_name)).resultWithGroupItem;
|
||||
}
|
||||
}
|
||||
|
@@ -1,32 +1,32 @@
|
||||
import BaseAction from '../BaseAction';
|
||||
import { OB11User } from '../../types';
|
||||
import { getUidByUin, uid2UinMap } from '@/core/data';
|
||||
import { OB11Constructor } from '../../constructor';
|
||||
import { ActionName } from '../types';
|
||||
import { NTQQUserApi } from '@/core/apis/user';
|
||||
import { log, logDebug } from '@/common/utils/log';
|
||||
import { FromSchema, JSONSchema } from 'json-schema-to-ts';
|
||||
|
||||
const SchemaData = {
|
||||
type: 'object',
|
||||
properties: {
|
||||
user_id: { type: [ 'number' , 'string' ] },
|
||||
},
|
||||
required: ['user_id']
|
||||
} as const satisfies JSONSchema;
|
||||
|
||||
type Payload = FromSchema<typeof SchemaData>;
|
||||
|
||||
export default class GoCQHTTPGetStrangerInfo extends BaseAction<Payload, OB11User> {
|
||||
actionName = ActionName.GoCQHTTP_GetStrangerInfo;
|
||||
|
||||
protected async _handle(payload: Payload): Promise<OB11User> {
|
||||
const user_id = payload.user_id.toString();
|
||||
//logDebug('uidMaps', uidMaps);
|
||||
const uid = getUidByUin(user_id);
|
||||
if (!uid) {
|
||||
throw new Error('查无此人');
|
||||
}
|
||||
return OB11Constructor.stranger(await NTQQUserApi.getUserDetailInfo(uid));
|
||||
}
|
||||
}
|
||||
import BaseAction from '../BaseAction';
|
||||
import { OB11User } from '../../types';
|
||||
import { getUidByUin, uid2UinMap } from '@/core/data';
|
||||
import { OB11Constructor } from '../../constructor';
|
||||
import { ActionName } from '../types';
|
||||
import { NTQQUserApi } from '@/core/apis/user';
|
||||
import { log, logDebug } from '@/common/utils/log';
|
||||
import { FromSchema, JSONSchema } from 'json-schema-to-ts';
|
||||
|
||||
const SchemaData = {
|
||||
type: 'object',
|
||||
properties: {
|
||||
user_id: { type: [ 'number' , 'string' ] },
|
||||
},
|
||||
required: ['user_id']
|
||||
} as const satisfies JSONSchema;
|
||||
|
||||
type Payload = FromSchema<typeof SchemaData>;
|
||||
|
||||
export default class GoCQHTTPGetStrangerInfo extends BaseAction<Payload, OB11User> {
|
||||
actionName = ActionName.GoCQHTTP_GetStrangerInfo;
|
||||
|
||||
protected async _handle(payload: Payload): Promise<OB11User> {
|
||||
const user_id = payload.user_id.toString();
|
||||
//logDebug('uidMaps', uidMaps);
|
||||
const uid = getUidByUin(user_id);
|
||||
if (!uid) {
|
||||
throw new Error('查无此人');
|
||||
}
|
||||
return OB11Constructor.stranger(await NTQQUserApi.getUserDetailInfo(uid));
|
||||
}
|
||||
}
|
||||
|
@@ -10,12 +10,13 @@ import { FromSchema, JSONSchema } from 'json-schema-to-ts';
|
||||
const SchemaData = {
|
||||
type: 'object',
|
||||
properties: {
|
||||
group_id: { type: [ 'number' , 'string' ] },
|
||||
group_id: { type: ['number', 'string'] },
|
||||
file: { type: 'string' },
|
||||
name: { type: 'string' },
|
||||
folder: { type: 'string' }
|
||||
folder: { type: 'string' },
|
||||
folder_id: { type: 'string' }//临时扩展
|
||||
},
|
||||
required: ['group_id', 'file', 'name', 'folder']
|
||||
required: ['group_id', 'file', 'name']
|
||||
} as const satisfies JSONSchema;
|
||||
|
||||
type Payload = FromSchema<typeof SchemaData>;
|
||||
@@ -36,7 +37,7 @@ export default class GoCQHTTPUploadGroupFile extends BaseAction<Payload, null> {
|
||||
if (downloadResult.errMsg) {
|
||||
throw new Error(downloadResult.errMsg);
|
||||
}
|
||||
const sendFileEle: SendFileElement = await SendMsgElementConstructor.file(downloadResult.path, payload.name);
|
||||
const sendFileEle: SendFileElement = await SendMsgElementConstructor.file(downloadResult.path, payload.name, payload.folder_id);
|
||||
await sendMsg({ chatType: ChatType.group, peerUid: group.groupCode }, [sendFileEle], [], true);
|
||||
return null;
|
||||
}
|
||||
|
@@ -1,65 +1,65 @@
|
||||
import { OB11GroupMember } from '../../types';
|
||||
import { getGroup, getGroupMember, groupMembers } from '@/core/data';
|
||||
import { OB11Constructor } from '../../constructor';
|
||||
import BaseAction from '../BaseAction';
|
||||
import { ActionName } from '../types';
|
||||
import { NTQQUserApi } from '@/core/apis/user';
|
||||
import { log, logDebug } from '@/common/utils/log';
|
||||
import { isNull } from '../../../common/utils/helper';
|
||||
import { WebApi } from '@/core/apis/webapi';
|
||||
import { NTQQGroupApi } from '@/core';
|
||||
import { FromSchema, JSONSchema } from 'json-schema-to-ts';
|
||||
|
||||
// no_cache get时传字符串
|
||||
const SchemaData = {
|
||||
type: 'object',
|
||||
properties: {
|
||||
group_id: { type: ['number', 'string'] },
|
||||
user_id: { type: ['number', 'string'] },
|
||||
no_cache: { type: ['boolean', 'string'] },
|
||||
},
|
||||
required: ['group_id', 'user_id']
|
||||
} as const satisfies JSONSchema;
|
||||
|
||||
type Payload = FromSchema<typeof SchemaData>;
|
||||
|
||||
class GetGroupMemberInfo extends BaseAction<Payload, OB11GroupMember> {
|
||||
actionName = ActionName.GetGroupMemberInfo;
|
||||
PayloadSchema = SchemaData;
|
||||
protected async _handle(payload: Payload) {
|
||||
const group = await getGroup(payload.group_id.toString());
|
||||
if (!group) {
|
||||
throw (`群(${payload.group_id})不存在`);
|
||||
}
|
||||
const webGroupMembers = await WebApi.getGroupMembers(payload.group_id.toString());
|
||||
if (payload.no_cache == true || payload.no_cache === 'true') {
|
||||
groupMembers.set(group.groupCode, await NTQQGroupApi.getGroupMembers(payload.group_id.toString()));
|
||||
}
|
||||
const member = await getGroupMember(payload.group_id.toString(), payload.user_id.toString());
|
||||
// log(member);
|
||||
if (member) {
|
||||
logDebug('获取群成员详细信息');
|
||||
try {
|
||||
const info = (await NTQQUserApi.getUserDetailInfo(member.uid));
|
||||
logDebug('群成员详细信息结果', info);
|
||||
Object.assign(member, info);
|
||||
} catch (e) {
|
||||
logDebug('获取群成员详细信息失败, 只能返回基础信息', e);
|
||||
}
|
||||
const retMember = OB11Constructor.groupMember(payload.group_id.toString(), member);
|
||||
for (let i = 0, len = webGroupMembers.length; i < len; i++) {
|
||||
if (webGroupMembers[i]?.uin && webGroupMembers[i].uin === retMember.user_id) {
|
||||
retMember.join_time = webGroupMembers[i]?.join_time;
|
||||
retMember.last_sent_time = webGroupMembers[i]?.last_speak_time;
|
||||
retMember.qage = webGroupMembers[i]?.qage;
|
||||
retMember.level = webGroupMembers[i]?.lv.level.toString();
|
||||
}
|
||||
}
|
||||
return retMember;
|
||||
} else {
|
||||
throw (`群(${payload.group_id})成员${payload.user_id}不存在`);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export default GetGroupMemberInfo;
|
||||
import { OB11GroupMember } from '../../types';
|
||||
import { getGroup, getGroupMember, groupMembers } from '@/core/data';
|
||||
import { OB11Constructor } from '../../constructor';
|
||||
import BaseAction from '../BaseAction';
|
||||
import { ActionName } from '../types';
|
||||
import { NTQQUserApi } from '@/core/apis/user';
|
||||
import { log, logDebug } from '@/common/utils/log';
|
||||
import { isNull } from '../../../common/utils/helper';
|
||||
import { WebApi } from '@/core/apis/webapi';
|
||||
import { NTQQGroupApi } from '@/core';
|
||||
import { FromSchema, JSONSchema } from 'json-schema-to-ts';
|
||||
|
||||
// no_cache get时传字符串
|
||||
const SchemaData = {
|
||||
type: 'object',
|
||||
properties: {
|
||||
group_id: { type: ['number', 'string'] },
|
||||
user_id: { type: ['number', 'string'] },
|
||||
no_cache: { type: ['boolean', 'string'] },
|
||||
},
|
||||
required: ['group_id', 'user_id']
|
||||
} as const satisfies JSONSchema;
|
||||
|
||||
type Payload = FromSchema<typeof SchemaData>;
|
||||
|
||||
class GetGroupMemberInfo extends BaseAction<Payload, OB11GroupMember> {
|
||||
actionName = ActionName.GetGroupMemberInfo;
|
||||
PayloadSchema = SchemaData;
|
||||
protected async _handle(payload: Payload) {
|
||||
const group = await getGroup(payload.group_id.toString());
|
||||
if (!group) {
|
||||
throw (`群(${payload.group_id})不存在`);
|
||||
}
|
||||
const webGroupMembers = await WebApi.getGroupMembers(payload.group_id.toString());
|
||||
if (payload.no_cache == true || payload.no_cache === 'true') {
|
||||
groupMembers.set(group.groupCode, await NTQQGroupApi.getGroupMembers(payload.group_id.toString()));
|
||||
}
|
||||
const member = await getGroupMember(payload.group_id.toString(), payload.user_id.toString());
|
||||
// log(member);
|
||||
if (member) {
|
||||
logDebug('获取群成员详细信息');
|
||||
try {
|
||||
const info = (await NTQQUserApi.getUserDetailInfo(member.uid));
|
||||
logDebug('群成员详细信息结果', info);
|
||||
Object.assign(member, info);
|
||||
} catch (e) {
|
||||
logDebug('获取群成员详细信息失败, 只能返回基础信息', e);
|
||||
}
|
||||
const retMember = OB11Constructor.groupMember(payload.group_id.toString(), member);
|
||||
for (let i = 0, len = webGroupMembers.length; i < len; i++) {
|
||||
if (webGroupMembers[i]?.uin && webGroupMembers[i].uin === retMember.user_id) {
|
||||
retMember.join_time = webGroupMembers[i]?.join_time;
|
||||
retMember.last_sent_time = webGroupMembers[i]?.last_speak_time;
|
||||
retMember.qage = webGroupMembers[i]?.qage;
|
||||
retMember.level = webGroupMembers[i]?.lv.level.toString();
|
||||
}
|
||||
}
|
||||
return retMember;
|
||||
} else {
|
||||
throw (`群(${payload.group_id})成员${payload.user_id}不存在`);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export default GetGroupMemberInfo;
|
||||
|
@@ -66,7 +66,7 @@ class GetGroupMemberList extends BaseAction<Payload, OB11GroupMember[]> {
|
||||
} else if (ob11Config.GroupLocalTime.Record && ob11Config.GroupLocalTime.RecordList[0] === '-1' || ob11Config.GroupLocalTime.RecordList.includes(payload.group_id.toString())) {
|
||||
const _sendAndJoinRember = await dbUtil.getLastSentTimeAndJoinTime(TypeConvert.toNumber(payload.group_id));
|
||||
_sendAndJoinRember.forEach((element) => {
|
||||
let MemberData = MemberMap.get(element.user_id);
|
||||
const MemberData = MemberMap.get(element.user_id);
|
||||
if (MemberData) {
|
||||
MemberData.join_time = element.join_time;
|
||||
MemberData.last_sent_time = element.last_sent_time;
|
||||
|
@@ -8,7 +8,7 @@ import { uid2UinMap } from '@/core/data';
|
||||
const SchemaData = {
|
||||
type: 'object',
|
||||
properties: {
|
||||
group_id: { type: [ 'number' , 'string' ] }
|
||||
group_id: { type: ['number', 'string'] }
|
||||
},
|
||||
} as const satisfies JSONSchema;
|
||||
|
||||
|
@@ -9,10 +9,10 @@ const SchemaData = {
|
||||
type: 'object',
|
||||
properties: {
|
||||
flag: { type: 'string' },
|
||||
approve: { type: 'boolean' },
|
||||
approve: { type: ['string', 'boolean'] },
|
||||
reason: { type: 'string' }
|
||||
},
|
||||
required: ['flag', 'approve', 'reason']
|
||||
required: ['flag'],
|
||||
} as const satisfies JSONSchema;
|
||||
|
||||
type Payload = FromSchema<typeof SchemaData>;
|
||||
@@ -22,7 +22,7 @@ export default class SetGroupAddRequest extends BaseAction<Payload, null> {
|
||||
PayloadSchema = SchemaData;
|
||||
protected async _handle(payload: Payload): Promise<null> {
|
||||
const flag = payload.flag.toString();
|
||||
const approve = payload.approve.toString() === 'true';
|
||||
const approve = payload.approve?.toString() !== 'false';
|
||||
const notify = groupNotifies[flag];
|
||||
if (!notify) {
|
||||
throw `${flag}对应的加群通知不存在`;
|
||||
|
@@ -12,7 +12,7 @@ const SchemaData = {
|
||||
user_id: { type: [ 'number' , 'string' ] },
|
||||
enable: { type: 'boolean' }
|
||||
},
|
||||
required: ['group_id', 'user_id', 'enable']
|
||||
required: ['group_id', 'user_id']
|
||||
} as const satisfies JSONSchema;
|
||||
|
||||
type Payload = FromSchema<typeof SchemaData>;
|
||||
@@ -23,7 +23,7 @@ export default class SetGroupAdmin extends BaseAction<Payload, null> {
|
||||
protected async _handle(payload: Payload): Promise<null> {
|
||||
const member = await getGroupMember(payload.group_id, payload.user_id);
|
||||
// 已经前置验证类型
|
||||
const enable = payload.enable.toString() === 'true';
|
||||
const enable = payload.enable?.toString() !== 'false';
|
||||
if (!member) {
|
||||
throw `群成员${payload.user_id}不存在`;
|
||||
}
|
||||
|
@@ -7,9 +7,9 @@ const SchemaData = {
|
||||
type: 'object',
|
||||
properties: {
|
||||
group_id: { type: [ 'number' , 'string' ] },
|
||||
enable: { type: 'boolean' }
|
||||
enable: { type: ['boolean','string'] }
|
||||
},
|
||||
required: ['group_id', 'enable']
|
||||
required: ['group_id']
|
||||
} as const satisfies JSONSchema;
|
||||
|
||||
type Payload = FromSchema<typeof SchemaData>;
|
||||
@@ -18,7 +18,7 @@ export default class SetGroupWholeBan extends BaseAction<Payload, null> {
|
||||
actionName = ActionName.SetGroupWholeBan;
|
||||
PayloadSchema = SchemaData;
|
||||
protected async _handle(payload: Payload): Promise<null> {
|
||||
const enable = payload.enable.toString() === 'true';
|
||||
const enable = payload.enable?.toString() !== 'false';
|
||||
await NTQQGroupApi.banGroup(payload.group_id.toString(), enable);
|
||||
return null;
|
||||
}
|
||||
|
@@ -1,155 +1,157 @@
|
||||
import GetMsg from './msg/GetMsg';
|
||||
import GetLoginInfo from './system/GetLoginInfo';
|
||||
import GetFriendList from './user/GetFriendList';
|
||||
import GetGroupList from './group/GetGroupList';
|
||||
import GetGroupInfo from './group/GetGroupInfo';
|
||||
import GetGroupMemberList from './group/GetGroupMemberList';
|
||||
import GetGroupMemberInfo from './group/GetGroupMemberInfo';
|
||||
import SendGroupMsg from './group/SendGroupMsg';
|
||||
import SendPrivateMsg from './msg/SendPrivateMsg';
|
||||
import SendMsg from './msg/SendMsg';
|
||||
import DeleteMsg from './msg/DeleteMsg';
|
||||
import BaseAction from './BaseAction';
|
||||
import GetVersionInfo from './system/GetVersionInfo';
|
||||
import CanSendRecord from './system/CanSendRecord';
|
||||
import CanSendImage from './system/CanSendImage';
|
||||
import GetStatus from './system/GetStatus';
|
||||
import {
|
||||
GoCQHTTPSendForwardMsg,
|
||||
GoCQHTTPSendGroupForwardMsg,
|
||||
GoCQHTTPSendPrivateForwardMsg
|
||||
} from './go-cqhttp/SendForwardMsg';
|
||||
import GoCQHTTPGetStrangerInfo from './go-cqhttp/GetStrangerInfo';
|
||||
import SendLike from './user/SendLike';
|
||||
import SetGroupAddRequest from './group/SetGroupAddRequest';
|
||||
import SetGroupLeave from './group/SetGroupLeave';
|
||||
import GetGuildList from './group/GetGuildList';
|
||||
import Debug from '@/onebot11/action/extends/Debug';
|
||||
import SetFriendAddRequest from './user/SetFriendAddRequest';
|
||||
import SetGroupWholeBan from './group/SetGroupWholeBan';
|
||||
import SetGroupName from './group/SetGroupName';
|
||||
import SetGroupBan from './group/SetGroupBan';
|
||||
import SetGroupKick from './group/SetGroupKick';
|
||||
import SetGroupAdmin from './group/SetGroupAdmin';
|
||||
import SetGroupCard from './group/SetGroupCard';
|
||||
import GetImage from './file/GetImage';
|
||||
import GetRecord from './file/GetRecord';
|
||||
import { GoCQHTTPMarkMsgAsRead, MarkGroupMsgAsRead, MarkPrivateMsgAsRead } from './msg/MarkMsgAsRead';
|
||||
import CleanCache from './system/CleanCache';
|
||||
import GoCQHTTPUploadGroupFile from './go-cqhttp/UploadGroupFile';
|
||||
import { GetConfigAction, SetConfigAction } from '@/onebot11/action/extends/Config';
|
||||
import GetGroupAddRequest from '@/onebot11/action/extends/GetGroupAddRequest';
|
||||
import SetQQAvatar from '@/onebot11/action/extends/SetQQAvatar';
|
||||
import GoCQHTTPDownloadFile from './go-cqhttp/DownloadFile';
|
||||
import GoCQHTTPGetGroupMsgHistory from './go-cqhttp/GetGroupMsgHistory';
|
||||
import GetFile from './file/GetFile';
|
||||
import { GoCQHTTPGetForwardMsgAction } from './go-cqhttp/GetForwardMsg';
|
||||
import GetFriendMsgHistory from './go-cqhttp/GetFriendMsgHistory';
|
||||
import { GetCookies } from './user/GetCookies';
|
||||
import { SetMsgEmojiLike } from '@/onebot11/action/msg/SetMsgEmojiLike';
|
||||
import { GetRobotUinRange } from './extends/GetRobotUinRange';
|
||||
import { SetOnlineStatus } from './extends/SetOnlineStatus';
|
||||
import { GetGroupNotice } from './group/GetGroupNotice';
|
||||
import { GetGroupEssence } from './group/GetGroupEssence';
|
||||
import { ForwardFriendSingleMsg, ForwardGroupSingleMsg } from '@/onebot11/action/msg/ForwardSingleMsg';
|
||||
import { GetFriendWithCategory } from './extends/GetFriendWithCategory';
|
||||
import { SendGroupNotice } from './go-cqhttp/SendGroupNotice';
|
||||
import { Reboot, RebootNormol } from './system/Reboot';
|
||||
import { GetGroupHonorInfo } from './go-cqhttp/GetGroupHonorInfo';
|
||||
import { GoCQHTTPHandleQuickAction } from './go-cqhttp/QuickAction';
|
||||
import { GetGroupSystemMsg } from './group/GetGroupSystemMsg';
|
||||
import { GetOnlineClient } from './go-cqhttp/GetOnlineClient';
|
||||
import { IOCRImage, OCRImage } from './extends/OCRImage';
|
||||
import { GetGroupFileCount } from './file/GetGroupFileCount';
|
||||
import { GetGroupFileList } from './file/GetGroupFileList';
|
||||
import { TranslateEnWordToZn } from './extends/TranslateEnWordToZn';
|
||||
import { SetGroupFileFolder } from './file/SetGroupFileFolder';
|
||||
import { DelGroupFile } from './file/DelGroupFile';
|
||||
import { DelGroupFileFolder } from './file/DelGroupFileFolder';
|
||||
|
||||
export const actionHandlers = [
|
||||
new RebootNormol(),
|
||||
new GetFile(),
|
||||
new Debug(),
|
||||
new Reboot(),
|
||||
// new GetConfigAction(),
|
||||
// new SetConfigAction(),
|
||||
// new GetGroupAddRequest(),
|
||||
// TranslateEnWordToZn = "translate_en2zh",
|
||||
new ForwardFriendSingleMsg(),
|
||||
new ForwardGroupSingleMsg(),
|
||||
new MarkGroupMsgAsRead(),
|
||||
new MarkPrivateMsgAsRead(),
|
||||
new SetQQAvatar(),
|
||||
new TranslateEnWordToZn(),
|
||||
new GetGroupFileCount(),
|
||||
new GetGroupFileList(),
|
||||
new SetGroupFileFolder(),
|
||||
new DelGroupFile(),
|
||||
new DelGroupFileFolder(),
|
||||
// onebot11
|
||||
new SendLike(),
|
||||
new GetMsg(),
|
||||
new GetLoginInfo(),
|
||||
new GetFriendList(),
|
||||
new GetGroupList(), new GetGroupInfo(),
|
||||
new GetGroupMemberList(), new GetGroupMemberInfo(),
|
||||
new SendGroupMsg(), new SendPrivateMsg(), new SendMsg(),
|
||||
new DeleteMsg(),
|
||||
new SetGroupAddRequest(),
|
||||
new SetFriendAddRequest(),
|
||||
new SetGroupLeave(),
|
||||
new GetVersionInfo(),
|
||||
new CanSendRecord(),
|
||||
new CanSendImage(),
|
||||
new GetStatus(),
|
||||
new SetGroupWholeBan(),
|
||||
new SetGroupBan(),
|
||||
new SetGroupKick(),
|
||||
new SetGroupAdmin(),
|
||||
new SetGroupName(),
|
||||
new SetGroupCard(),
|
||||
new GetImage(),
|
||||
new GetRecord(),
|
||||
new SetMsgEmojiLike(),
|
||||
// new CleanCache(),
|
||||
new GetCookies(),
|
||||
//
|
||||
new SetOnlineStatus(),
|
||||
new GetRobotUinRange(),
|
||||
new GetFriendWithCategory(),
|
||||
//以下为go-cqhttp api
|
||||
new GetOnlineClient(),
|
||||
new OCRImage(),
|
||||
new IOCRImage(),
|
||||
new GetGroupHonorInfo(),
|
||||
new SendGroupNotice(),
|
||||
new GetGroupNotice(),
|
||||
new GetGroupEssence(),
|
||||
new GoCQHTTPSendForwardMsg(),
|
||||
new GoCQHTTPSendGroupForwardMsg(),
|
||||
new GoCQHTTPSendPrivateForwardMsg(),
|
||||
new GoCQHTTPGetStrangerInfo(),
|
||||
new GoCQHTTPDownloadFile(),
|
||||
new GetGuildList(),
|
||||
new GoCQHTTPMarkMsgAsRead(),
|
||||
new GoCQHTTPUploadGroupFile(),
|
||||
new GoCQHTTPGetGroupMsgHistory(),
|
||||
new GoCQHTTPGetForwardMsgAction(),
|
||||
new GetFriendMsgHistory(),
|
||||
new GoCQHTTPHandleQuickAction(),
|
||||
new GetGroupSystemMsg()
|
||||
];
|
||||
|
||||
function initActionMap() {
|
||||
const actionMap = new Map<string, BaseAction<any, any>>();
|
||||
for (const action of actionHandlers) {
|
||||
actionMap.set(action.actionName, action);
|
||||
actionMap.set(action.actionName + '_async', action);
|
||||
actionMap.set(action.actionName + '_rate_limited', action);
|
||||
}
|
||||
|
||||
return actionMap;
|
||||
}
|
||||
|
||||
export const actionMap = initActionMap();
|
||||
import GetMsg from './msg/GetMsg';
|
||||
import GetLoginInfo from './system/GetLoginInfo';
|
||||
import GetFriendList from './user/GetFriendList';
|
||||
import GetGroupList from './group/GetGroupList';
|
||||
import GetGroupInfo from './group/GetGroupInfo';
|
||||
import GetGroupMemberList from './group/GetGroupMemberList';
|
||||
import GetGroupMemberInfo from './group/GetGroupMemberInfo';
|
||||
import SendGroupMsg from './group/SendGroupMsg';
|
||||
import SendPrivateMsg from './msg/SendPrivateMsg';
|
||||
import SendMsg from './msg/SendMsg';
|
||||
import DeleteMsg from './msg/DeleteMsg';
|
||||
import BaseAction from './BaseAction';
|
||||
import GetVersionInfo from './system/GetVersionInfo';
|
||||
import CanSendRecord from './system/CanSendRecord';
|
||||
import CanSendImage from './system/CanSendImage';
|
||||
import GetStatus from './system/GetStatus';
|
||||
import {
|
||||
GoCQHTTPSendForwardMsg,
|
||||
GoCQHTTPSendGroupForwardMsg,
|
||||
GoCQHTTPSendPrivateForwardMsg
|
||||
} from './go-cqhttp/SendForwardMsg';
|
||||
import GoCQHTTPGetStrangerInfo from './go-cqhttp/GetStrangerInfo';
|
||||
import SendLike from './user/SendLike';
|
||||
import SetGroupAddRequest from './group/SetGroupAddRequest';
|
||||
import SetGroupLeave from './group/SetGroupLeave';
|
||||
import GetGuildList from './group/GetGuildList';
|
||||
import Debug from '@/onebot11/action/extends/Debug';
|
||||
import SetFriendAddRequest from './user/SetFriendAddRequest';
|
||||
import SetGroupWholeBan from './group/SetGroupWholeBan';
|
||||
import SetGroupName from './group/SetGroupName';
|
||||
import SetGroupBan from './group/SetGroupBan';
|
||||
import SetGroupKick from './group/SetGroupKick';
|
||||
import SetGroupAdmin from './group/SetGroupAdmin';
|
||||
import SetGroupCard from './group/SetGroupCard';
|
||||
import GetImage from './file/GetImage';
|
||||
import GetRecord from './file/GetRecord';
|
||||
import { GoCQHTTPMarkMsgAsRead, MarkGroupMsgAsRead, MarkPrivateMsgAsRead } from './msg/MarkMsgAsRead';
|
||||
import CleanCache from './system/CleanCache';
|
||||
import GoCQHTTPUploadGroupFile from './go-cqhttp/UploadGroupFile';
|
||||
import { GetConfigAction, SetConfigAction } from '@/onebot11/action/extends/Config';
|
||||
import GetGroupAddRequest from '@/onebot11/action/extends/GetGroupAddRequest';
|
||||
import SetQQAvatar from '@/onebot11/action/extends/SetQQAvatar';
|
||||
import GoCQHTTPDownloadFile from './go-cqhttp/DownloadFile';
|
||||
import GoCQHTTPGetGroupMsgHistory from './go-cqhttp/GetGroupMsgHistory';
|
||||
import GetFile from './file/GetFile';
|
||||
import { GoCQHTTPGetForwardMsgAction } from './go-cqhttp/GetForwardMsg';
|
||||
import GetFriendMsgHistory from './go-cqhttp/GetFriendMsgHistory';
|
||||
import { GetCookies } from './user/GetCookies';
|
||||
import { SetMsgEmojiLike } from '@/onebot11/action/msg/SetMsgEmojiLike';
|
||||
import { GetRobotUinRange } from './extends/GetRobotUinRange';
|
||||
import { SetOnlineStatus } from './extends/SetOnlineStatus';
|
||||
import { GetGroupNotice } from './group/GetGroupNotice';
|
||||
import { GetGroupEssence } from './group/GetGroupEssence';
|
||||
import { ForwardFriendSingleMsg, ForwardGroupSingleMsg } from '@/onebot11/action/msg/ForwardSingleMsg';
|
||||
import { GetFriendWithCategory } from './extends/GetFriendWithCategory';
|
||||
import { SendGroupNotice } from './go-cqhttp/SendGroupNotice';
|
||||
import { Reboot, RebootNormal } from './system/Reboot';
|
||||
import { GetGroupHonorInfo } from './go-cqhttp/GetGroupHonorInfo';
|
||||
import { GoCQHTTPHandleQuickAction } from './go-cqhttp/QuickAction';
|
||||
import { GetGroupSystemMsg } from './group/GetGroupSystemMsg';
|
||||
import { GetOnlineClient } from './go-cqhttp/GetOnlineClient';
|
||||
import { IOCRImage, OCRImage } from './extends/OCRImage';
|
||||
import { GetGroupFileCount } from './file/GetGroupFileCount';
|
||||
import { GetGroupFileList } from './file/GetGroupFileList';
|
||||
import { TranslateEnWordToZn } from './extends/TranslateEnWordToZn';
|
||||
import { SetGroupFileFolder } from './file/SetGroupFileFolder';
|
||||
import { DelGroupFile } from './file/DelGroupFile';
|
||||
import { DelGroupFileFolder } from './file/DelGroupFileFolder';
|
||||
import { SetSelfProfile } from './extends/SetSelfProfile';
|
||||
|
||||
export const actionHandlers = [
|
||||
new RebootNormal(),
|
||||
new GetFile(),
|
||||
new Debug(),
|
||||
new Reboot(),
|
||||
new SetSelfProfile(),
|
||||
// new GetConfigAction(),
|
||||
// new SetConfigAction(),
|
||||
// new GetGroupAddRequest(),
|
||||
// TranslateEnWordToZn = "translate_en2zh",
|
||||
new ForwardFriendSingleMsg(),
|
||||
new ForwardGroupSingleMsg(),
|
||||
new MarkGroupMsgAsRead(),
|
||||
new MarkPrivateMsgAsRead(),
|
||||
new SetQQAvatar(),
|
||||
new TranslateEnWordToZn(),
|
||||
new GetGroupFileCount(),
|
||||
new GetGroupFileList(),
|
||||
new SetGroupFileFolder(),
|
||||
new DelGroupFile(),
|
||||
new DelGroupFileFolder(),
|
||||
// onebot11
|
||||
new SendLike(),
|
||||
new GetMsg(),
|
||||
new GetLoginInfo(),
|
||||
new GetFriendList(),
|
||||
new GetGroupList(), new GetGroupInfo(),
|
||||
new GetGroupMemberList(), new GetGroupMemberInfo(),
|
||||
new SendGroupMsg(), new SendPrivateMsg(), new SendMsg(),
|
||||
new DeleteMsg(),
|
||||
new SetGroupAddRequest(),
|
||||
new SetFriendAddRequest(),
|
||||
new SetGroupLeave(),
|
||||
new GetVersionInfo(),
|
||||
new CanSendRecord(),
|
||||
new CanSendImage(),
|
||||
new GetStatus(),
|
||||
new SetGroupWholeBan(),
|
||||
new SetGroupBan(),
|
||||
new SetGroupKick(),
|
||||
new SetGroupAdmin(),
|
||||
new SetGroupName(),
|
||||
new SetGroupCard(),
|
||||
new GetImage(),
|
||||
new GetRecord(),
|
||||
new SetMsgEmojiLike(),
|
||||
// new CleanCache(),
|
||||
new GetCookies(),
|
||||
//
|
||||
new SetOnlineStatus(),
|
||||
new GetRobotUinRange(),
|
||||
new GetFriendWithCategory(),
|
||||
//以下为go-cqhttp api
|
||||
new GetOnlineClient(),
|
||||
new OCRImage(),
|
||||
new IOCRImage(),
|
||||
new GetGroupHonorInfo(),
|
||||
new SendGroupNotice(),
|
||||
new GetGroupNotice(),
|
||||
new GetGroupEssence(),
|
||||
new GoCQHTTPSendForwardMsg(),
|
||||
new GoCQHTTPSendGroupForwardMsg(),
|
||||
new GoCQHTTPSendPrivateForwardMsg(),
|
||||
new GoCQHTTPGetStrangerInfo(),
|
||||
new GoCQHTTPDownloadFile(),
|
||||
new GetGuildList(),
|
||||
new GoCQHTTPMarkMsgAsRead(),
|
||||
new GoCQHTTPUploadGroupFile(),
|
||||
new GoCQHTTPGetGroupMsgHistory(),
|
||||
new GoCQHTTPGetForwardMsgAction(),
|
||||
new GetFriendMsgHistory(),
|
||||
new GoCQHTTPHandleQuickAction(),
|
||||
new GetGroupSystemMsg()
|
||||
];
|
||||
|
||||
function initActionMap() {
|
||||
const actionMap = new Map<string, BaseAction<any, any>>();
|
||||
for (const action of actionHandlers) {
|
||||
actionMap.set(action.actionName, action);
|
||||
actionMap.set(action.actionName + '_async', action);
|
||||
actionMap.set(action.actionName + '_rate_limited', action);
|
||||
}
|
||||
|
||||
return actionMap;
|
||||
}
|
||||
|
||||
export const actionMap = initActionMap();
|
||||
|
@@ -1,62 +1,62 @@
|
||||
import BaseAction from '../BaseAction';
|
||||
import { NTQQMsgApi } from '@/core/apis';
|
||||
import { ChatType, Peer } from '@/core/entities';
|
||||
import { dbUtil } from '@/common/utils/db';
|
||||
import { getUidByUin } from '@/core/data';
|
||||
import { ActionName } from '../types';
|
||||
import { FromSchema, JSONSchema } from 'json-schema-to-ts';
|
||||
|
||||
const SchemaData = {
|
||||
type: 'object',
|
||||
properties: {
|
||||
message_id: { type: 'number' },
|
||||
group_id: { type: [ 'number' , 'string' ] },
|
||||
user_id: { type: [ 'number' , 'string' ] }
|
||||
},
|
||||
required: ['message_id']
|
||||
} as const satisfies JSONSchema;
|
||||
|
||||
type Payload = FromSchema<typeof SchemaData>;
|
||||
|
||||
class ForwardSingleMsg extends BaseAction<Payload, null> {
|
||||
protected async getTargetPeer(payload: Payload): Promise<Peer> {
|
||||
if (payload.user_id) {
|
||||
const peerUid = getUidByUin(payload.user_id.toString());
|
||||
if (!peerUid) {
|
||||
throw new Error(`无法找到私聊对象${payload.user_id}`);
|
||||
}
|
||||
return { chatType: ChatType.friend, peerUid };
|
||||
}
|
||||
return { chatType: ChatType.group, peerUid: payload.group_id!.toString() };
|
||||
}
|
||||
|
||||
protected async _handle(payload: Payload): Promise<null> {
|
||||
const msg = await dbUtil.getMsgByShortId(payload.message_id);
|
||||
if (!msg) {
|
||||
throw new Error(`无法找到消息${payload.message_id}`);
|
||||
}
|
||||
const peer = await this.getTargetPeer(payload);
|
||||
const ret = await NTQQMsgApi.forwardMsg(
|
||||
{
|
||||
chatType: msg.chatType,
|
||||
peerUid: msg.peerUid,
|
||||
},
|
||||
peer,
|
||||
[msg.msgId],
|
||||
);
|
||||
if (ret.result !== 0) {
|
||||
throw new Error(`转发消息失败 ${ret.errMsg}`);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
export class ForwardFriendSingleMsg extends ForwardSingleMsg {
|
||||
PayloadSchema = SchemaData;
|
||||
actionName = ActionName.ForwardFriendSingleMsg;
|
||||
}
|
||||
|
||||
export class ForwardGroupSingleMsg extends ForwardSingleMsg {
|
||||
PayloadSchema = SchemaData;
|
||||
actionName = ActionName.ForwardGroupSingleMsg;
|
||||
}
|
||||
import BaseAction from '../BaseAction';
|
||||
import { NTQQMsgApi } from '@/core/apis';
|
||||
import { ChatType, Peer } from '@/core/entities';
|
||||
import { dbUtil } from '@/common/utils/db';
|
||||
import { getUidByUin } from '@/core/data';
|
||||
import { ActionName } from '../types';
|
||||
import { FromSchema, JSONSchema } from 'json-schema-to-ts';
|
||||
|
||||
const SchemaData = {
|
||||
type: 'object',
|
||||
properties: {
|
||||
message_id: { type: 'number' },
|
||||
group_id: { type: [ 'number' , 'string' ] },
|
||||
user_id: { type: [ 'number' , 'string' ] }
|
||||
},
|
||||
required: ['message_id']
|
||||
} as const satisfies JSONSchema;
|
||||
|
||||
type Payload = FromSchema<typeof SchemaData>;
|
||||
|
||||
class ForwardSingleMsg extends BaseAction<Payload, null> {
|
||||
protected async getTargetPeer(payload: Payload): Promise<Peer> {
|
||||
if (payload.user_id) {
|
||||
const peerUid = getUidByUin(payload.user_id.toString());
|
||||
if (!peerUid) {
|
||||
throw new Error(`无法找到私聊对象${payload.user_id}`);
|
||||
}
|
||||
return { chatType: ChatType.friend, peerUid };
|
||||
}
|
||||
return { chatType: ChatType.group, peerUid: payload.group_id!.toString() };
|
||||
}
|
||||
|
||||
protected async _handle(payload: Payload): Promise<null> {
|
||||
const msg = await dbUtil.getMsgByShortId(payload.message_id);
|
||||
if (!msg) {
|
||||
throw new Error(`无法找到消息${payload.message_id}`);
|
||||
}
|
||||
const peer = await this.getTargetPeer(payload);
|
||||
const ret = await NTQQMsgApi.forwardMsg(
|
||||
{
|
||||
chatType: msg.chatType,
|
||||
peerUid: msg.peerUid,
|
||||
},
|
||||
peer,
|
||||
[msg.msgId],
|
||||
);
|
||||
if (ret.result !== 0) {
|
||||
throw new Error(`转发消息失败 ${ret.errMsg}`);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
export class ForwardFriendSingleMsg extends ForwardSingleMsg {
|
||||
PayloadSchema = SchemaData;
|
||||
actionName = ActionName.ForwardFriendSingleMsg;
|
||||
}
|
||||
|
||||
export class ForwardGroupSingleMsg extends ForwardSingleMsg {
|
||||
PayloadSchema = SchemaData;
|
||||
actionName = ActionName.ForwardGroupSingleMsg;
|
||||
}
|
||||
|
@@ -1,252 +1,252 @@
|
||||
import { OB11MessageData, OB11MessageDataType, OB11MessageFileBase } from '@/onebot11/types';
|
||||
import {
|
||||
AtType,
|
||||
CustomMusicSignPostData,
|
||||
Group,
|
||||
IdMusicSignPostData,
|
||||
NTQQFileApi,
|
||||
SendArkElement,
|
||||
SendMessageElement,
|
||||
SendMsgElementConstructor
|
||||
} from '@/core';
|
||||
import { getGroupMember } from '@/core/data';
|
||||
import { dbUtil } from '@/common/utils/db';
|
||||
import { logDebug, logError } from '@/common/utils/log';
|
||||
import { uri2local } from '@/common/utils/file';
|
||||
import { ob11Config } from '@/onebot11/config';
|
||||
import { RequestUtil } from '@/common/utils/request';
|
||||
import fs from 'node:fs';
|
||||
|
||||
export type MessageContext = {
|
||||
group?: Group,
|
||||
deleteAfterSentFiles: string[],
|
||||
}
|
||||
|
||||
async function handleOb11FileLikeMessage(
|
||||
{ data: { file, name: payloadFileName } }: OB11MessageFileBase,
|
||||
{ deleteAfterSentFiles }: MessageContext
|
||||
) {
|
||||
let uri = file;
|
||||
|
||||
const cache = await dbUtil.getFileCacheByName(file);
|
||||
if (cache) {
|
||||
if (fs.existsSync(cache.path)) {
|
||||
uri = 'file://' + cache.path;
|
||||
} else if (cache.url) {
|
||||
uri = cache.url;
|
||||
} else {
|
||||
const fileMsg = await dbUtil.getMsgByLongId(cache.msgId);
|
||||
if (fileMsg) {
|
||||
cache.path = await NTQQFileApi.downloadMedia(
|
||||
fileMsg.msgId, fileMsg.chatType, fileMsg.peerUid,
|
||||
cache.elementId, '', ''
|
||||
);
|
||||
uri = 'file://' + cache.path;
|
||||
dbUtil.updateFileCache(cache);
|
||||
}
|
||||
}
|
||||
logDebug('找到文件缓存', uri);
|
||||
}
|
||||
|
||||
const { path, isLocal, fileName, errMsg } = (await uri2local(uri));
|
||||
|
||||
if (errMsg) {
|
||||
logError('文件下载失败', errMsg);
|
||||
throw Error('文件下载失败' + errMsg);
|
||||
}
|
||||
|
||||
if (!isLocal) { // 只删除http和base64转过来的文件
|
||||
deleteAfterSentFiles.push(path);
|
||||
}
|
||||
|
||||
return { path, fileName: payloadFileName || fileName };
|
||||
}
|
||||
|
||||
const _handlers: {
|
||||
[Key in OB11MessageDataType]: (
|
||||
sendMsg: Extract<OB11MessageData, { type: Key }>,
|
||||
// This picks the correct message type out
|
||||
// How great the type system of TypeScript is!
|
||||
context: MessageContext
|
||||
) => SendMessageElement | undefined | Promise<SendMessageElement | undefined>
|
||||
} = {
|
||||
[OB11MessageDataType.text]: ({ data: { text } }) => SendMsgElementConstructor.text(text),
|
||||
|
||||
[OB11MessageDataType.at]: async ({ data: { qq: atQQ } }, context) => {
|
||||
if (!context.group) return undefined;
|
||||
|
||||
if (atQQ === 'all') return SendMsgElementConstructor.at(atQQ, atQQ, AtType.atAll, '全体成员');
|
||||
|
||||
// then the qq is a group member
|
||||
const atMember = await getGroupMember(context.group.groupCode, atQQ);
|
||||
return atMember ?
|
||||
SendMsgElementConstructor.at(atQQ, atMember.uid, AtType.atUser, atMember.cardName || atMember.nick) :
|
||||
undefined;
|
||||
},
|
||||
|
||||
[OB11MessageDataType.reply]: async ({ data: { id } }) => {
|
||||
const replyMsg = await dbUtil.getMsgByShortId(parseInt(id));
|
||||
return replyMsg ?
|
||||
SendMsgElementConstructor.reply(replyMsg.msgSeq, replyMsg.msgId, replyMsg.senderUin!, replyMsg.senderUin!) :
|
||||
undefined;
|
||||
},
|
||||
|
||||
[OB11MessageDataType.face]: ({ data: { id } }) => SendMsgElementConstructor.face(parseInt(id)),
|
||||
|
||||
[OB11MessageDataType.mface]: ({
|
||||
data: {
|
||||
emoji_package_id,
|
||||
emoji_id,
|
||||
key,
|
||||
summary
|
||||
}
|
||||
}) => SendMsgElementConstructor.mface(emoji_package_id, emoji_id, key, summary),
|
||||
|
||||
// File service
|
||||
|
||||
[OB11MessageDataType.image]: async (sendMsg, context) => {
|
||||
const PicEle = await SendMsgElementConstructor.pic(
|
||||
(await handleOb11FileLikeMessage(sendMsg, context)).path,
|
||||
sendMsg.data.summary || '',
|
||||
sendMsg.data.subType || 0
|
||||
);
|
||||
context.deleteAfterSentFiles.push(PicEle.picElement.sourcePath);
|
||||
return PicEle;
|
||||
}
|
||||
, // currently not supported
|
||||
|
||||
[OB11MessageDataType.file]: async (sendMsg, context) => {
|
||||
const { path, fileName } = await handleOb11FileLikeMessage(sendMsg, context);
|
||||
//logDebug('发送文件', path, fileName);
|
||||
const FileEle = await SendMsgElementConstructor.file(path, fileName);
|
||||
// 清除Upload的应该
|
||||
// context.deleteAfterSentFiles.push(fileName || FileEle.fileElement.filePath);
|
||||
return FileEle;
|
||||
},
|
||||
|
||||
[OB11MessageDataType.video]: async (sendMsg, context) => {
|
||||
const { path, fileName } = await handleOb11FileLikeMessage(sendMsg, context);
|
||||
|
||||
//logDebug('发送视频', path, fileName);
|
||||
let thumb = sendMsg.data.thumb;
|
||||
if (thumb) {
|
||||
const uri2LocalRes = await uri2local(thumb);
|
||||
if (uri2LocalRes.success) thumb = uri2LocalRes.path;
|
||||
}
|
||||
|
||||
return SendMsgElementConstructor.video(path, fileName, thumb);
|
||||
},
|
||||
[OB11MessageDataType.miniapp]: async ({ data: any }) => SendMsgElementConstructor.miniapp(),
|
||||
|
||||
[OB11MessageDataType.voice]: async (sendMsg, context) =>
|
||||
SendMsgElementConstructor.ptt((await handleOb11FileLikeMessage(sendMsg, context)).path),
|
||||
|
||||
[OB11MessageDataType.json]: ({ data: { data } }) => SendMsgElementConstructor.ark(data),
|
||||
|
||||
[OB11MessageDataType.dice]: ({ data: { result } }) => SendMsgElementConstructor.dice(result),
|
||||
|
||||
[OB11MessageDataType.RPS]: ({ data: { result } }) => SendMsgElementConstructor.rps(result),
|
||||
|
||||
[OB11MessageDataType.markdown]: ({ data: { content } }) => SendMsgElementConstructor.markdown(content),
|
||||
|
||||
[OB11MessageDataType.music]: async ({ data }) => {
|
||||
// 保留, 直到...找到更好的解决方案
|
||||
if (data.type === 'custom') {
|
||||
if (!data.url) {
|
||||
logError('自定义音卡缺少参数url');
|
||||
return undefined;
|
||||
}
|
||||
if (!data.audio) {
|
||||
logError('自定义音卡缺少参数audio');
|
||||
return undefined;
|
||||
}
|
||||
if (!data.title) {
|
||||
logError('自定义音卡缺少参数title');
|
||||
return undefined;
|
||||
}
|
||||
} else {
|
||||
if (!['qq', '163'].includes(data.type)) {
|
||||
logError('音乐卡片type错误, 只支持qq、163、custom,当前type:', data.type);
|
||||
return undefined;
|
||||
}
|
||||
if (!data.id) {
|
||||
logError('音乐卡片缺少参数id');
|
||||
return undefined;
|
||||
}
|
||||
}
|
||||
|
||||
let postData: IdMusicSignPostData | CustomMusicSignPostData;
|
||||
if (data.type === 'custom' && data.content) {
|
||||
const { content, ...others } = data;
|
||||
postData = { singer: content, ...others };
|
||||
} else {
|
||||
postData = data;
|
||||
}
|
||||
|
||||
const signUrl = ob11Config.musicSignUrl;
|
||||
if (!signUrl) {
|
||||
throw Error('音乐消息签名地址未配置');
|
||||
}
|
||||
try {
|
||||
const musicJson = await RequestUtil.HttpGetJson<any>(signUrl, 'POST', postData);
|
||||
return SendMsgElementConstructor.ark(musicJson);
|
||||
} catch (e) {
|
||||
logError('生成音乐消息失败', e);
|
||||
}
|
||||
},
|
||||
|
||||
[OB11MessageDataType.node]: () => undefined,
|
||||
|
||||
[OB11MessageDataType.forward]: () => undefined,
|
||||
|
||||
[OB11MessageDataType.xml]: () => undefined,
|
||||
|
||||
[OB11MessageDataType.poke]: () => undefined,
|
||||
};
|
||||
|
||||
const handlers = <{
|
||||
[Key in OB11MessageDataType]: (
|
||||
sendMsg: OB11MessageData,
|
||||
context: MessageContext
|
||||
) => SendMessageElement | undefined | Promise<SendMessageElement | undefined>
|
||||
}>_handlers;
|
||||
|
||||
export default async function createSendElements(
|
||||
messageData: OB11MessageData[],
|
||||
group?: Group,
|
||||
ignoreTypes: OB11MessageDataType[] = []
|
||||
) {
|
||||
const sendElements: SendMessageElement[] = [];
|
||||
const deleteAfterSentFiles: string[] = [];
|
||||
for (const sendMsg of messageData) {
|
||||
if (ignoreTypes.includes(sendMsg.type)) {
|
||||
continue;
|
||||
}
|
||||
const callResult = await handlers[sendMsg.type](
|
||||
sendMsg,
|
||||
{ group, deleteAfterSentFiles }
|
||||
);
|
||||
if (callResult) sendElements.push(callResult);
|
||||
}
|
||||
return { sendElements, deleteAfterSentFiles };
|
||||
}
|
||||
|
||||
export async function createSendElementsParallel(
|
||||
messageData: OB11MessageData[],
|
||||
group?: Group,
|
||||
ignoreTypes: OB11MessageDataType[] = []
|
||||
) {
|
||||
const deleteAfterSentFiles: string[] = [];
|
||||
const sendElements = <SendMessageElement[]>(
|
||||
await Promise.all(
|
||||
messageData.map(async sendMsg => ignoreTypes.includes(sendMsg.type) ?
|
||||
undefined :
|
||||
handlers[sendMsg.type](sendMsg, { group, deleteAfterSentFiles }))
|
||||
).then(
|
||||
results => results.filter(
|
||||
element => element !== undefined
|
||||
)
|
||||
)
|
||||
);
|
||||
return { sendElements, deleteAfterSentFiles };
|
||||
}
|
||||
import { OB11MessageData, OB11MessageDataType, OB11MessageFileBase } from '@/onebot11/types';
|
||||
import {
|
||||
AtType,
|
||||
CustomMusicSignPostData,
|
||||
Group,
|
||||
IdMusicSignPostData,
|
||||
NTQQFileApi,
|
||||
SendArkElement,
|
||||
SendMessageElement,
|
||||
SendMsgElementConstructor
|
||||
} from '@/core';
|
||||
import { getGroupMember } from '@/core/data';
|
||||
import { dbUtil } from '@/common/utils/db';
|
||||
import { logDebug, logError } from '@/common/utils/log';
|
||||
import { uri2local } from '@/common/utils/file';
|
||||
import { ob11Config } from '@/onebot11/config';
|
||||
import { RequestUtil } from '@/common/utils/request';
|
||||
import fs from 'node:fs';
|
||||
|
||||
export type MessageContext = {
|
||||
group?: Group,
|
||||
deleteAfterSentFiles: string[],
|
||||
}
|
||||
|
||||
async function handleOb11FileLikeMessage(
|
||||
{ data: { file, name: payloadFileName } }: OB11MessageFileBase,
|
||||
{ deleteAfterSentFiles }: MessageContext
|
||||
) {
|
||||
let uri = file;
|
||||
|
||||
const cache = await dbUtil.getFileCacheByName(file);
|
||||
if (cache) {
|
||||
if (fs.existsSync(cache.path)) {
|
||||
uri = 'file://' + cache.path;
|
||||
} else if (cache.url) {
|
||||
uri = cache.url;
|
||||
} else {
|
||||
const fileMsg = await dbUtil.getMsgByLongId(cache.msgId);
|
||||
if (fileMsg) {
|
||||
cache.path = await NTQQFileApi.downloadMedia(
|
||||
fileMsg.msgId, fileMsg.chatType, fileMsg.peerUid,
|
||||
cache.elementId, '', ''
|
||||
);
|
||||
uri = 'file://' + cache.path;
|
||||
dbUtil.updateFileCache(cache);
|
||||
}
|
||||
}
|
||||
logDebug('找到文件缓存', uri);
|
||||
}
|
||||
|
||||
const { path, isLocal, fileName, errMsg } = (await uri2local(uri));
|
||||
|
||||
if (errMsg) {
|
||||
logError('文件下载失败', errMsg);
|
||||
throw Error('文件下载失败' + errMsg);
|
||||
}
|
||||
|
||||
if (!isLocal) { // 只删除http和base64转过来的文件
|
||||
deleteAfterSentFiles.push(path);
|
||||
}
|
||||
|
||||
return { path, fileName: payloadFileName || fileName };
|
||||
}
|
||||
|
||||
const _handlers: {
|
||||
[Key in OB11MessageDataType]: (
|
||||
sendMsg: Extract<OB11MessageData, { type: Key }>,
|
||||
// This picks the correct message type out
|
||||
// How great the type system of TypeScript is!
|
||||
context: MessageContext
|
||||
) => SendMessageElement | undefined | Promise<SendMessageElement | undefined>
|
||||
} = {
|
||||
[OB11MessageDataType.text]: ({ data: { text } }) => SendMsgElementConstructor.text(text),
|
||||
|
||||
[OB11MessageDataType.at]: async ({ data: { qq: atQQ } }, context) => {
|
||||
if (!context.group) return undefined;
|
||||
|
||||
if (atQQ === 'all') return SendMsgElementConstructor.at(atQQ, atQQ, AtType.atAll, '全体成员');
|
||||
|
||||
// then the qq is a group member
|
||||
const atMember = await getGroupMember(context.group.groupCode, atQQ);
|
||||
return atMember ?
|
||||
SendMsgElementConstructor.at(atQQ, atMember.uid, AtType.atUser, atMember.cardName || atMember.nick) :
|
||||
undefined;
|
||||
},
|
||||
|
||||
[OB11MessageDataType.reply]: async ({ data: { id } }) => {
|
||||
const replyMsg = await dbUtil.getMsgByShortId(parseInt(id));
|
||||
return replyMsg ?
|
||||
SendMsgElementConstructor.reply(replyMsg.msgSeq, replyMsg.msgId, replyMsg.senderUin!, replyMsg.senderUin!) :
|
||||
undefined;
|
||||
},
|
||||
|
||||
[OB11MessageDataType.face]: ({ data: { id } }) => SendMsgElementConstructor.face(parseInt(id)),
|
||||
|
||||
[OB11MessageDataType.mface]: ({
|
||||
data: {
|
||||
emoji_package_id,
|
||||
emoji_id,
|
||||
key,
|
||||
summary
|
||||
}
|
||||
}) => SendMsgElementConstructor.mface(emoji_package_id, emoji_id, key, summary),
|
||||
|
||||
// File service
|
||||
|
||||
[OB11MessageDataType.image]: async (sendMsg, context) => {
|
||||
const PicEle = await SendMsgElementConstructor.pic(
|
||||
(await handleOb11FileLikeMessage(sendMsg, context)).path,
|
||||
sendMsg.data.summary || '',
|
||||
sendMsg.data.subType || 0
|
||||
);
|
||||
context.deleteAfterSentFiles.push(PicEle.picElement.sourcePath);
|
||||
return PicEle;
|
||||
}
|
||||
, // currently not supported
|
||||
|
||||
[OB11MessageDataType.file]: async (sendMsg, context) => {
|
||||
const { path, fileName } = await handleOb11FileLikeMessage(sendMsg, context);
|
||||
//logDebug('发送文件', path, fileName);
|
||||
const FileEle = await SendMsgElementConstructor.file(path, fileName);
|
||||
// 清除Upload的应该
|
||||
// context.deleteAfterSentFiles.push(fileName || FileEle.fileElement.filePath);
|
||||
return FileEle;
|
||||
},
|
||||
|
||||
[OB11MessageDataType.video]: async (sendMsg, context) => {
|
||||
const { path, fileName } = await handleOb11FileLikeMessage(sendMsg, context);
|
||||
|
||||
//logDebug('发送视频', path, fileName);
|
||||
let thumb = sendMsg.data.thumb;
|
||||
if (thumb) {
|
||||
const uri2LocalRes = await uri2local(thumb);
|
||||
if (uri2LocalRes.success) thumb = uri2LocalRes.path;
|
||||
}
|
||||
|
||||
return SendMsgElementConstructor.video(path, fileName, thumb);
|
||||
},
|
||||
[OB11MessageDataType.miniapp]: async ({ data: any }) => SendMsgElementConstructor.miniapp(),
|
||||
|
||||
[OB11MessageDataType.voice]: async (sendMsg, context) =>
|
||||
SendMsgElementConstructor.ptt((await handleOb11FileLikeMessage(sendMsg, context)).path),
|
||||
|
||||
[OB11MessageDataType.json]: ({ data: { data } }) => SendMsgElementConstructor.ark(data),
|
||||
|
||||
[OB11MessageDataType.dice]: ({ data: { result } }) => SendMsgElementConstructor.dice(result),
|
||||
|
||||
[OB11MessageDataType.RPS]: ({ data: { result } }) => SendMsgElementConstructor.rps(result),
|
||||
|
||||
[OB11MessageDataType.markdown]: ({ data: { content } }) => SendMsgElementConstructor.markdown(content),
|
||||
|
||||
[OB11MessageDataType.music]: async ({ data }) => {
|
||||
// 保留, 直到...找到更好的解决方案
|
||||
if (data.type === 'custom') {
|
||||
if (!data.url) {
|
||||
logError('自定义音卡缺少参数url');
|
||||
return undefined;
|
||||
}
|
||||
if (!data.audio) {
|
||||
logError('自定义音卡缺少参数audio');
|
||||
return undefined;
|
||||
}
|
||||
if (!data.title) {
|
||||
logError('自定义音卡缺少参数title');
|
||||
return undefined;
|
||||
}
|
||||
} else {
|
||||
if (!['qq', '163'].includes(data.type)) {
|
||||
logError('音乐卡片type错误, 只支持qq、163、custom,当前type:', data.type);
|
||||
return undefined;
|
||||
}
|
||||
if (!data.id) {
|
||||
logError('音乐卡片缺少参数id');
|
||||
return undefined;
|
||||
}
|
||||
}
|
||||
|
||||
let postData: IdMusicSignPostData | CustomMusicSignPostData;
|
||||
if (data.type === 'custom' && data.content) {
|
||||
const { content, ...others } = data;
|
||||
postData = { singer: content, ...others };
|
||||
} else {
|
||||
postData = data;
|
||||
}
|
||||
|
||||
const signUrl = ob11Config.musicSignUrl;
|
||||
if (!signUrl) {
|
||||
throw Error('音乐消息签名地址未配置');
|
||||
}
|
||||
try {
|
||||
const musicJson = await RequestUtil.HttpGetJson<any>(signUrl, 'POST', postData);
|
||||
return SendMsgElementConstructor.ark(musicJson);
|
||||
} catch (e) {
|
||||
logError('生成音乐消息失败', e);
|
||||
}
|
||||
},
|
||||
|
||||
[OB11MessageDataType.node]: () => undefined,
|
||||
|
||||
[OB11MessageDataType.forward]: () => undefined,
|
||||
|
||||
[OB11MessageDataType.xml]: () => undefined,
|
||||
|
||||
[OB11MessageDataType.poke]: () => undefined,
|
||||
};
|
||||
|
||||
const handlers = <{
|
||||
[Key in OB11MessageDataType]: (
|
||||
sendMsg: OB11MessageData,
|
||||
context: MessageContext
|
||||
) => SendMessageElement | undefined | Promise<SendMessageElement | undefined>
|
||||
}>_handlers;
|
||||
|
||||
export default async function createSendElements(
|
||||
messageData: OB11MessageData[],
|
||||
group?: Group,
|
||||
ignoreTypes: OB11MessageDataType[] = []
|
||||
) {
|
||||
const sendElements: SendMessageElement[] = [];
|
||||
const deleteAfterSentFiles: string[] = [];
|
||||
for (const sendMsg of messageData) {
|
||||
if (ignoreTypes.includes(sendMsg.type)) {
|
||||
continue;
|
||||
}
|
||||
const callResult = await handlers[sendMsg.type](
|
||||
sendMsg,
|
||||
{ group, deleteAfterSentFiles }
|
||||
);
|
||||
if (callResult) sendElements.push(callResult);
|
||||
}
|
||||
return { sendElements, deleteAfterSentFiles };
|
||||
}
|
||||
|
||||
export async function createSendElementsParallel(
|
||||
messageData: OB11MessageData[],
|
||||
group?: Group,
|
||||
ignoreTypes: OB11MessageDataType[] = []
|
||||
) {
|
||||
const deleteAfterSentFiles: string[] = [];
|
||||
const sendElements = <SendMessageElement[]>(
|
||||
await Promise.all(
|
||||
messageData.map(async sendMsg => ignoreTypes.includes(sendMsg.type) ?
|
||||
undefined :
|
||||
handlers[sendMsg.type](sendMsg, { group, deleteAfterSentFiles }))
|
||||
).then(
|
||||
results => results.filter(
|
||||
element => element !== undefined
|
||||
)
|
||||
)
|
||||
);
|
||||
return { sendElements, deleteAfterSentFiles };
|
||||
}
|
||||
|
@@ -14,7 +14,7 @@ async function cloneMsg(msg: RawMessage): Promise<RawMessage | undefined> {
|
||||
peerUid: selfInfo.uid
|
||||
};
|
||||
|
||||
// logDebug('克隆的目标消息', msg);
|
||||
// logDebug('克隆的目标消息', msg);
|
||||
|
||||
const sendElements: SendMessageElement[] = [];
|
||||
|
||||
|
@@ -9,6 +9,7 @@ import {
|
||||
} from '@/core/entities';
|
||||
import { dbUtil } from '@/common/utils/db';
|
||||
import { NTQQFileApi, NTQQFileCacheApi } from '@/core/apis/file';
|
||||
import { logError } from '@/common/utils/log';
|
||||
|
||||
export default class CleanCache extends BaseAction<void, void> {
|
||||
actionName = ActionName.CleanCache;
|
||||
@@ -62,7 +63,7 @@ export default class CleanCache extends BaseAction<void, void> {
|
||||
await NTQQFileCacheApi.clearChatCache(chatCacheList, cacheFileList);
|
||||
res();
|
||||
} catch(e) {
|
||||
console.error('清理缓存时发生了错误');
|
||||
logError('清理缓存时发生了错误');
|
||||
rej(e);
|
||||
}
|
||||
});
|
||||
|
@@ -28,8 +28,8 @@ export class Reboot extends BaseAction<Payload, null> {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
export class RebootNormol extends BaseAction<Payload, null> {
|
||||
actionName = ActionName.RebootNormol;
|
||||
export class RebootNormal extends BaseAction<Payload, null> {
|
||||
actionName = ActionName.RebootNormal;
|
||||
|
||||
protected async _handle(payload: Payload): Promise<null> {
|
||||
if (payload.delay) {
|
||||
|
@@ -1,91 +1,92 @@
|
||||
export type BaseCheckResult = ValidCheckResult | InvalidCheckResult
|
||||
|
||||
export interface ValidCheckResult {
|
||||
valid: true
|
||||
|
||||
[k: string | number]: any
|
||||
}
|
||||
|
||||
export interface InvalidCheckResult {
|
||||
valid: false
|
||||
message: string
|
||||
|
||||
[k: string | number]: any
|
||||
}
|
||||
|
||||
export enum ActionName {
|
||||
// 以下为扩展napcat扩展
|
||||
RebootNormol = 'reboot_normol',//无快速登录重新启动
|
||||
GetRobotUinRange = 'get_robot_uin_range',
|
||||
SetOnlineStatus = 'set_online_status',
|
||||
GetFriendsWithCategory = 'get_friends_with_category',
|
||||
GetGroupIgnoreAddRequest = 'get_group_ignore_add_request',
|
||||
SetQQAvatar = 'set_qq_avatar',
|
||||
GetConfig = 'get_config',
|
||||
SetConfig = 'set_config',
|
||||
Debug = 'debug',
|
||||
GetFile = 'get_file',
|
||||
ForwardFriendSingleMsg = 'forward_friend_single_msg',
|
||||
ForwardGroupSingleMsg = 'forward_group_single_msg',
|
||||
TranslateEnWordToZn = "translate_en2zh",
|
||||
GetGroupFileCount = "get_group_file_count",
|
||||
GetGroupFileList = "get_group_file_list",
|
||||
SetGroupFileFolder = "set_group_file_folder",
|
||||
DelGroupFile = "del_group_file",
|
||||
DelGroupFileFolder = "del_group_file_folder",
|
||||
// onebot 11
|
||||
Reboot = 'set_restart',
|
||||
SendLike = 'send_like',
|
||||
GetLoginInfo = 'get_login_info',
|
||||
GetFriendList = 'get_friend_list',
|
||||
GetGroupInfo = 'get_group_info',
|
||||
GetGroupList = 'get_group_list',
|
||||
GetGroupMemberInfo = 'get_group_member_info',
|
||||
GetGroupMemberList = 'get_group_member_list',
|
||||
GetMsg = 'get_msg',
|
||||
SendMsg = 'send_msg',
|
||||
SendGroupMsg = 'send_group_msg',
|
||||
SendPrivateMsg = 'send_private_msg',
|
||||
DeleteMsg = 'delete_msg',
|
||||
SetMsgEmojiLike = 'set_msg_emoji_like',
|
||||
SetGroupAddRequest = 'set_group_add_request',
|
||||
SetFriendAddRequest = 'set_friend_add_request',
|
||||
SetGroupLeave = 'set_group_leave',
|
||||
GetVersionInfo = 'get_version_info',
|
||||
GetStatus = 'get_status',
|
||||
CanSendRecord = 'can_send_record',
|
||||
CanSendImage = 'can_send_image',
|
||||
SetGroupKick = 'set_group_kick',
|
||||
SetGroupBan = 'set_group_ban',
|
||||
SetGroupWholeBan = 'set_group_whole_ban',
|
||||
SetGroupAdmin = 'set_group_admin',
|
||||
SetGroupCard = 'set_group_card',
|
||||
SetGroupName = 'set_group_name',
|
||||
GetImage = 'get_image',
|
||||
GetRecord = 'get_record',
|
||||
CleanCache = 'clean_cache',
|
||||
GetCookies = 'get_cookies',
|
||||
// 以下为go-cqhttp api
|
||||
GoCQHTTP_HandleQuickAction = '.handle_quick_operation',
|
||||
GetGroupHonorInfo = 'get_group_honor_info',
|
||||
GoCQHTTP_GetEssenceMsg = 'get_essence_msg_list',
|
||||
GoCQHTTP_SendGroupNotice = '_send_group_notice',
|
||||
GoCQHTTP_GetGroupNotice = '_get_group_notice',
|
||||
GoCQHTTP_SendForwardMsg = 'send_forward_msg',
|
||||
GoCQHTTP_SendGroupForwardMsg = 'send_group_forward_msg',
|
||||
GoCQHTTP_SendPrivateForwardMsg = 'send_private_forward_msg',
|
||||
GoCQHTTP_GetStrangerInfo = 'get_stranger_info',
|
||||
GoCQHTTP_MarkMsgAsRead = 'mark_msg_as_read',
|
||||
GetGuildList = 'get_guild_list',
|
||||
MarkPrivateMsgAsRead = 'mark_private_msg_as_read',
|
||||
MarkGroupMsgAsRead = 'mark_group_msg_as_read',
|
||||
GoCQHTTP_UploadGroupFile = 'upload_group_file',
|
||||
GoCQHTTP_DownloadFile = 'download_file',
|
||||
GoCQHTTP_GetGroupMsgHistory = 'get_group_msg_history',
|
||||
GoCQHTTP_GetForwardMsg = 'get_forward_msg',
|
||||
GetFriendMsgHistory = 'get_friend_msg_history',
|
||||
GetGroupSystemMsg = 'get_group_system_msg',
|
||||
GetOnlineClient = "get_online_clients",
|
||||
OCRImage = "ocr_image",
|
||||
IOCRImage = ".ocr_image"
|
||||
}
|
||||
export type BaseCheckResult = ValidCheckResult | InvalidCheckResult
|
||||
|
||||
export interface ValidCheckResult {
|
||||
valid: true
|
||||
|
||||
[k: string | number]: any
|
||||
}
|
||||
|
||||
export interface InvalidCheckResult {
|
||||
valid: false
|
||||
message: string
|
||||
|
||||
[k: string | number]: any
|
||||
}
|
||||
|
||||
export enum ActionName {
|
||||
// 以下为扩展napcat扩展
|
||||
RebootNormal = 'reboot_normal',//无快速登录重新启动
|
||||
GetRobotUinRange = 'get_robot_uin_range',
|
||||
SetOnlineStatus = 'set_online_status',
|
||||
GetFriendsWithCategory = 'get_friends_with_category',
|
||||
GetGroupIgnoreAddRequest = 'get_group_ignore_add_request',
|
||||
SetQQAvatar = 'set_qq_avatar',
|
||||
GetConfig = 'get_config',
|
||||
SetConfig = 'set_config',
|
||||
Debug = 'debug',
|
||||
GetFile = 'get_file',
|
||||
ForwardFriendSingleMsg = 'forward_friend_single_msg',
|
||||
ForwardGroupSingleMsg = 'forward_group_single_msg',
|
||||
TranslateEnWordToZn = 'translate_en2zh',
|
||||
GetGroupFileCount = 'get_group_file_count',
|
||||
GetGroupFileList = 'get_group_file_list',
|
||||
SetGroupFileFolder = 'set_group_file_folder',
|
||||
DelGroupFile = 'del_group_file',
|
||||
DelGroupFileFolder = 'del_group_file_folder',
|
||||
// onebot 11
|
||||
Reboot = 'set_restart',
|
||||
SendLike = 'send_like',
|
||||
GetLoginInfo = 'get_login_info',
|
||||
GetFriendList = 'get_friend_list',
|
||||
GetGroupInfo = 'get_group_info',
|
||||
GetGroupList = 'get_group_list',
|
||||
GetGroupMemberInfo = 'get_group_member_info',
|
||||
GetGroupMemberList = 'get_group_member_list',
|
||||
GetMsg = 'get_msg',
|
||||
SendMsg = 'send_msg',
|
||||
SendGroupMsg = 'send_group_msg',
|
||||
SendPrivateMsg = 'send_private_msg',
|
||||
DeleteMsg = 'delete_msg',
|
||||
SetMsgEmojiLike = 'set_msg_emoji_like',
|
||||
SetGroupAddRequest = 'set_group_add_request',
|
||||
SetFriendAddRequest = 'set_friend_add_request',
|
||||
SetGroupLeave = 'set_group_leave',
|
||||
GetVersionInfo = 'get_version_info',
|
||||
GetStatus = 'get_status',
|
||||
CanSendRecord = 'can_send_record',
|
||||
CanSendImage = 'can_send_image',
|
||||
SetGroupKick = 'set_group_kick',
|
||||
SetGroupBan = 'set_group_ban',
|
||||
SetGroupWholeBan = 'set_group_whole_ban',
|
||||
SetGroupAdmin = 'set_group_admin',
|
||||
SetGroupCard = 'set_group_card',
|
||||
SetGroupName = 'set_group_name',
|
||||
GetImage = 'get_image',
|
||||
GetRecord = 'get_record',
|
||||
CleanCache = 'clean_cache',
|
||||
GetCookies = 'get_cookies',
|
||||
// 以下为go-cqhttp api
|
||||
GoCQHTTP_HandleQuickAction = '.handle_quick_operation',
|
||||
GetGroupHonorInfo = 'get_group_honor_info',
|
||||
GoCQHTTP_GetEssenceMsg = 'get_essence_msg_list',
|
||||
GoCQHTTP_SendGroupNotice = '_send_group_notice',
|
||||
GoCQHTTP_GetGroupNotice = '_get_group_notice',
|
||||
GoCQHTTP_SendForwardMsg = 'send_forward_msg',
|
||||
GoCQHTTP_SendGroupForwardMsg = 'send_group_forward_msg',
|
||||
GoCQHTTP_SendPrivateForwardMsg = 'send_private_forward_msg',
|
||||
GoCQHTTP_GetStrangerInfo = 'get_stranger_info',
|
||||
GoCQHTTP_MarkMsgAsRead = 'mark_msg_as_read',
|
||||
GetGuildList = 'get_guild_list',
|
||||
MarkPrivateMsgAsRead = 'mark_private_msg_as_read',
|
||||
MarkGroupMsgAsRead = 'mark_group_msg_as_read',
|
||||
GoCQHTTP_UploadGroupFile = 'upload_group_file',
|
||||
GoCQHTTP_DownloadFile = 'download_file',
|
||||
GoCQHTTP_GetGroupMsgHistory = 'get_group_msg_history',
|
||||
GoCQHTTP_GetForwardMsg = 'get_forward_msg',
|
||||
GetFriendMsgHistory = 'get_friend_msg_history',
|
||||
GetGroupSystemMsg = 'get_group_system_msg',
|
||||
GetOnlineClient = 'get_online_clients',
|
||||
OCRImage = 'ocr_image',
|
||||
IOCRImage = '.ocr_image',
|
||||
SetSelfProfile = "set_self_profile"
|
||||
}
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user