From a2bfdd003c72712c393a73fdd5629833939b41e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=89=8B=E7=93=9C=E4=B8=80=E5=8D=81=E9=9B=AA?= Date: Sat, 17 Aug 2024 15:18:33 +0800 Subject: [PATCH 1/8] fix: getNTUserDataInfoConfig --- src/shell/napcat.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/shell/napcat.ts b/src/shell/napcat.ts index 350b99d00..bd4906312 100644 --- a/src/shell/napcat.ts +++ b/src/shell/napcat.ts @@ -43,12 +43,12 @@ export async function NCoreInitShell() { // from constructor const engine = new wrapper.NodeIQQNTWrapperEngine(); - const util = new wrapper.NodeQQNTWrapperUtil(); + //const util = new wrapper.NodeQQNTWrapperUtil(); const loginService = new wrapper.NodeIKernelLoginService(); const session = new wrapper.NodeIQQNTWrapperSession(); // from get dataPath - let dataPath = util.getNTUserDataInfoConfig(); + let dataPath = wrapper.NodeQQNTWrapperUtil.getNTUserDataInfoConfig(); if (!dataPath) { dataPath = path.resolve(os.homedir(), './.config/QQ'); fs.mkdirSync(dataPath, { recursive: true }); From 03098ee0247a384640ff3646c3d96b3f087df6b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=89=8B=E7=93=9C=E4=B8=80=E5=8D=81=E9=9B=AA?= Date: Sat, 17 Aug 2024 15:21:47 +0800 Subject: [PATCH 2/8] chore: util --- src/shell/napcat.ts | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/shell/napcat.ts b/src/shell/napcat.ts index bd4906312..0a1b6f85f 100644 --- a/src/shell/napcat.ts +++ b/src/shell/napcat.ts @@ -43,7 +43,7 @@ export async function NCoreInitShell() { // from constructor const engine = new wrapper.NodeIQQNTWrapperEngine(); - //const util = new wrapper.NodeQQNTWrapperUtil(); + const util = wrapper.NodeQQNTWrapperUtil.get(); const loginService = new wrapper.NodeIKernelLoginService(); const session = new wrapper.NodeIQQNTWrapperSession(); @@ -188,11 +188,10 @@ export async function NCoreInitShell() { } else { logger.log('没有 -q 指令指定快速登录,将使用二维码登录方式'); if (historyLoginList.length > 0) { - logger.log(`可用于快速登录的 QQ:\n${ - historyLoginList + logger.log(`可用于快速登录的 QQ:\n${historyLoginList .map((u, index) => `${index + 1}. ${u.uin} ${u.nickName}`) .join('\n') - }`); + }`); } loginService.getQRCodePicture(); } From e79b608f776cd1a460bde5ba82399e56e57f9abf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=89=8B=E7=93=9C=E4=B8=80=E5=8D=81=E9=9B=AA?= Date: Mon, 19 Aug 2024 18:47:12 +0800 Subject: [PATCH 3/8] support: 27206 --- src/common/framework/event-legacy.ts | 16 +++----- src/core/core.ts | 9 +++-- src/core/external/appid.json | 38 ++++--------------- .../listeners/NodeIKernelGroupListener.ts | 2 +- src/core/services/NodeIKernelGroupService.ts | 4 +- .../services/NodeIKernelProfileService.ts | 4 +- src/core/wrapper/wrapper.ts | 1 + src/framework/napcat.ts | 3 +- src/onebot/index.ts | 6 +-- src/shell/napcat.ts | 7 ++-- 10 files changed, 32 insertions(+), 58 deletions(-) diff --git a/src/common/framework/event-legacy.ts b/src/common/framework/event-legacy.ts index 136ead802..d4a7cd498 100644 --- a/src/common/framework/event-legacy.ts +++ b/src/common/framework/event-legacy.ts @@ -16,16 +16,13 @@ export interface ListenerIBase { } export class LegacyNTEventWrapper { - private listenerMapping: Record; //ListenerName-Unique -> Listener构造函数 private WrapperSession: NodeIQQNTWrapperSession | undefined; //WrapperSession private listenerManager: Map = new Map(); //ListenerName-Unique -> Listener实例 private EventTask = new Map>>(); //tasks ListenerMainName -> ListenerSubName-> uuid -> {timeout,createtime,func} constructor( - listenerMapping: Record, - wrapperSession: NodeIQQNTWrapperSession, + wrapperSession: NodeIQQNTWrapperSession ) { - this.listenerMapping = listenerMapping; this.WrapperSession = wrapperSession; } @@ -72,18 +69,17 @@ export class LegacyNTEventWrapper { } createListenerFunction(listenerMainName: string, uniqueCode: string = ''): T { - const ListenerType = this.listenerMapping![listenerMainName]; - let Listener = this.listenerManager.get(listenerMainName + uniqueCode); - if (!Listener && ListenerType) { - Listener = new ListenerType(this.createProxyDispatch(listenerMainName)); + let existListener = this.listenerManager.get(listenerMainName + uniqueCode); + if (!existListener) { + let Listener = this.createProxyDispatch(listenerMainName); const ServiceSubName = listenerMainName.match(/^NodeIKernel(.*?)Listener$/)![1]; const Service = 'NodeIKernel' + ServiceSubName + 'Service/addKernel' + ServiceSubName + 'Listener'; const addfunc = this.createEventFunction<(listener: T) => number>(Service); addfunc!(Listener as T); - //console.log(addfunc!(Listener as T)); this.listenerManager.set(listenerMainName + uniqueCode, Listener); + return Listener as T; } - return Listener as T; + return existListener as T; } //统一回调清理事件 diff --git a/src/core/core.ts b/src/core/core.ts index 9069a603a..095794b63 100644 --- a/src/core/core.ts +++ b/src/core/core.ts @@ -45,7 +45,7 @@ export class NapCatCore { this.selfInfo = selfInfo; this.context = context; this.util = new this.context.wrapper.NodeQQNTWrapperUtil(); - this.eventWrapper = new LegacyNTEventWrapper(context.wrapper, context.session); + this.eventWrapper = new LegacyNTEventWrapper(context.session); this.apis = { FileApi: new NTQQFileApi(this.context, this), SystemApi: new NTQQSystemApi(this.context, this), @@ -98,7 +98,7 @@ export class NapCatCore { }; //await sleep(2500); this.context.session.getMsgService().addKernelMsgListener( - new this.context.wrapper.NodeIKernelMsgListener(proxiedListenerOf(msgListener, this.context.logger)), + proxiedListenerOf(msgListener, this.context.logger) as any ); const profileListener = new ProfileListener(); @@ -113,7 +113,7 @@ export class NapCatCore { // } }; this.context.session.getProfileService().addKernelProfileListener( - new this.context.wrapper.NodeIKernelProfileListener(proxiedListenerOf(profileListener, this.context.logger)), + proxiedListenerOf(profileListener, this.context.logger), ); // 群相关 @@ -196,6 +196,9 @@ export class NapCatCore { this.apis.GroupApi.groupMemberCache.set(groupCode, members); } }; + this.context.session.getGroupService().addKernelGroupListener( + proxiedListenerOf(profileListener, this.context.logger) as any + ); } checkAdminEvent(groupCode: string, memberNew: GroupMember, memberOld: GroupMember | undefined): boolean { if (memberNew.role !== memberOld?.role) { diff --git a/src/core/external/appid.json b/src/core/external/appid.json index 034b311a1..5104aeeb0 100644 --- a/src/core/external/appid.json +++ b/src/core/external/appid.json @@ -1,12 +1,4 @@ { - "3.1.2-13107": { - "appid": 537146866, - "qua": "V1_LNX_NQ_3.1.2-13107_RDM_B" - }, - "3.2.10-25765": { - "appid": 537234773, - "qua": "V1_LNX_NQ_3.2.10_25765_GW_B" - }, "3.2.12-26702": { "appid": 537237950, "qua": "V1_LNX_NQ_3.2.12_26702_GW_B" @@ -19,29 +11,9 @@ "appid": 537237923, "qua": "V1_LNX_NQ_3.2.12_26909_GW_B" }, - "9.9.11-24815": { - "appid": 537226656, - "qua": "V1_WIN_NQ_9.9.11_24815_GW_B" - }, - "9.9.12-25493": { - "appid": 537231759, - "qua": "V1_WIN_NQ_9.9.12_25493_GW_B" - }, - "9.9.12-25765": { - "appid": 537234702, - "qua": "V1_WIN_NQ_9.9.12_25765_GW_B" - }, - "9.9.12-26299": { - "appid": 537234826, - "qua": "V1_WIN_NQ_9.9.12_26299_GW_B" - }, - "9.9.12-26339": { - "appid": 537234826, - "qua": "V1_WIN_NQ_9.9.12_26339_GW_B" - }, - "9.9.12-26466": { - "appid": 537234826, - "qua": "V1_WIN_NQ_9.9.12_26466_GW_B" + "3.2.12-27206": { + "appid": 537240645, + "qua": "V1_LNX_NQ_3.2.12_27206_GW_B" }, "9.9.15-26702": { "appid": 537237765, @@ -54,5 +26,9 @@ "9.9.15-26909": { "appid": 537237802, "qua": "V1_WIN_NQ_9.9.15_26909_GW_B" + }, + "9.9.15-27206":{ + "appid": 537240610, + "qua": "V1_WIN_NQ_9.9.15_27206_GW_B" } } \ No newline at end of file diff --git a/src/core/listeners/NodeIKernelGroupListener.ts b/src/core/listeners/NodeIKernelGroupListener.ts index 2faa0764d..c518d7d77 100644 --- a/src/core/listeners/NodeIKernelGroupListener.ts +++ b/src/core/listeners/NodeIKernelGroupListener.ts @@ -1,6 +1,6 @@ import { Group, GroupListUpdateType, GroupMember, GroupNotify } from '@/core/entities'; -interface IGroupListener { +export interface IGroupListener { onGroupListUpdate(updateType: GroupListUpdateType, groupList: Group[]): void; onGroupExtListUpdate(...args: unknown[]): void; diff --git a/src/core/services/NodeIKernelGroupService.ts b/src/core/services/NodeIKernelGroupService.ts index 2ddbd4c00..a9b1eec9b 100644 --- a/src/core/services/NodeIKernelGroupService.ts +++ b/src/core/services/NodeIKernelGroupService.ts @@ -1,4 +1,4 @@ -import { NodeIKernelGroupListener } from '@/core/listeners/NodeIKernelGroupListener'; +import { IGroupListener, NodeIKernelGroupListener } from '@/core/listeners/NodeIKernelGroupListener'; import { GroupExtParam, GroupMember, @@ -104,7 +104,7 @@ export interface NodeIKernelGroupService { setHeader(uid: string, path: string): unknown; - addKernelGroupListener(listener: NodeIKernelGroupListener): number; + addKernelGroupListener(listener: IGroupListener): number; removeKernelGroupListener(listenerId: unknown): void; diff --git a/src/core/services/NodeIKernelProfileService.ts b/src/core/services/NodeIKernelProfileService.ts index 2e0885e7a..431c7fa81 100644 --- a/src/core/services/NodeIKernelProfileService.ts +++ b/src/core/services/NodeIKernelProfileService.ts @@ -1,6 +1,6 @@ import { AnyCnameRecord } from 'node:dns'; import { BizKey, ModifyProfileParams, SimpleInfo, UserDetailInfoByUin } from '../entities'; -import { NodeIKernelProfileListener } from '../listeners'; +import { NodeIKernelProfileListener, ProfileListener } from '../listeners'; import { GeneralCallResult } from '@/core/services/common'; export enum UserDetailSource { @@ -35,7 +35,7 @@ export interface NodeIKernelProfileService { fetchUserDetailInfo(trace: string, uids: string[], arg2: number, arg3: number[]): Promise; - addKernelProfileListener(listener: NodeIKernelProfileListener): number; + addKernelProfileListener(listener: ProfileListener): number; removeKernelProfileListener(listenerId: number): void; diff --git a/src/core/wrapper/wrapper.ts b/src/core/wrapper/wrapper.ts index e2fcad1f1..743d89419 100644 --- a/src/core/wrapper/wrapper.ts +++ b/src/core/wrapper/wrapper.ts @@ -35,6 +35,7 @@ import { NodeIkernelTestPerformanceService } from '../services/NodeIkernelTestPe import { NodeIKernelECDHService } from '../services/NodeIKernelECDHService'; export interface NodeQQNTWrapperUtil { + get(): unknown; // eslint-disable-next-line @typescript-eslint/no-misused-new new(): NodeQQNTWrapperUtil; diff --git a/src/framework/napcat.ts b/src/framework/napcat.ts index a7ad890c9..465b7a744 100644 --- a/src/framework/napcat.ts +++ b/src/framework/napcat.ts @@ -41,8 +41,7 @@ export async function NCoreInitFramework( online: true, }); }; - loginService.addKernelLoginListener(new wrapper.NodeIKernelLoginListener( - proxiedListenerOf(loginListener, logger))); + loginService.addKernelLoginListener(proxiedListenerOf(loginListener, logger) as any); }); // 过早进入会导致addKernelMsgListener等Listener添加失败 // await sleep(2500); diff --git a/src/onebot/index.ts b/src/onebot/index.ts index f5472b143..cfb06c228 100644 --- a/src/onebot/index.ts +++ b/src/onebot/index.ts @@ -274,7 +274,7 @@ export class NapCatOneBot11Adapter { }; this.context.session.getMsgService().addKernelMsgListener( - new this.context.wrapper.NodeIKernelMsgListener(proxiedListenerOf(msgListener, this.context.logger)), + proxiedListenerOf(msgListener, this.context.logger) as any ); } @@ -301,7 +301,7 @@ export class NapCatOneBot11Adapter { }; this.context.session.getBuddyService().addKernelBuddyListener( - new this.context.wrapper.NodeIKernelBuddyListener(proxiedListenerOf(buddyListener, this.context.logger)), + proxiedListenerOf(buddyListener, this.context.logger) as any ); } @@ -414,7 +414,7 @@ export class NapCatOneBot11Adapter { }; this.context.session.getGroupService().addKernelGroupListener( - new this.context.wrapper.NodeIKernelGroupListener(proxiedListenerOf(groupListener, this.context.logger)), + proxiedListenerOf(groupListener, this.context.logger) ); } diff --git a/src/shell/napcat.ts b/src/shell/napcat.ts index 0a1b6f85f..129d9e6b0 100644 --- a/src/shell/napcat.ts +++ b/src/shell/napcat.ts @@ -43,7 +43,7 @@ export async function NCoreInitShell() { // from constructor const engine = new wrapper.NodeIQQNTWrapperEngine(); - const util = wrapper.NodeQQNTWrapperUtil.get(); + //const util = wrapper.NodeQQNTWrapperUtil.get(); const loginService = new wrapper.NodeIKernelLoginService(); const session = new wrapper.NodeIQQNTWrapperSession(); @@ -70,7 +70,7 @@ export async function NCoreInitShell() { }, thumb_config: { maxSide: 324, minSide: 48, longLimit: 6, density: 2 }, }, - new wrapper.NodeIGlobalAdapter(new GlobalAdapter()), + new GlobalAdapter() as any, ); loginService.initConfig({ machineId: '', @@ -140,8 +140,7 @@ export async function NCoreInitShell() { logger.logError('[Core] [Login] Login Error , ErrInfo: ', args); }; - loginService.addKernelLoginListener(new wrapper.NodeIKernelLoginListener( - proxiedListenerOf(loginListener, logger))); + loginService.addKernelLoginListener(proxiedListenerOf(loginListener, logger) as any); // 实现WebUi快速登录 loginService.getLoginList().then((res) => { From fd26a9c698c8290275742976d34452dc46951aec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=89=8B=E7=93=9C=E4=B8=80=E5=8D=81=E9=9B=AA?= Date: Mon, 19 Aug 2024 18:53:47 +0800 Subject: [PATCH 4/8] fix --- src/core/core.ts | 2 +- src/shell/napcat.ts | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/core/core.ts b/src/core/core.ts index 095794b63..caff4b19e 100644 --- a/src/core/core.ts +++ b/src/core/core.ts @@ -79,7 +79,7 @@ export class NapCatCore { } get dataPath(): string { - let result = this.util.getNTUserDataInfoConfig(); + let result = this.context.wrapper.NodeQQNTWrapperUtil.getNTUserDataInfoConfig(); if (!result) { result = path.resolve(os.homedir(), './.config/QQ'); fs.mkdirSync(result, { recursive: true }); diff --git a/src/shell/napcat.ts b/src/shell/napcat.ts index 129d9e6b0..886d5f889 100644 --- a/src/shell/napcat.ts +++ b/src/shell/napcat.ts @@ -188,8 +188,8 @@ export async function NCoreInitShell() { logger.log('没有 -q 指令指定快速登录,将使用二维码登录方式'); if (historyLoginList.length > 0) { logger.log(`可用于快速登录的 QQ:\n${historyLoginList - .map((u, index) => `${index + 1}. ${u.uin} ${u.nickName}`) - .join('\n') + .map((u, index) => `${index + 1}. ${u.uin} ${u.nickName}`) + .join('\n') }`); } loginService.getQRCodePicture(); @@ -218,9 +218,9 @@ export async function NCoreInitShell() { }; session.init( sessionConfig, - new wrapper.NodeIDependsAdapter(new DependsAdapter()), - new wrapper.NodeIDispatcherAdapter(new DispatcherAdapter()), - new wrapper.NodeIKernelSessionListener(sessionListener), + new DependsAdapter() as any, + new DispatcherAdapter() as any, + sessionListener as any, ); try { session.startNT(0); From 5b75e753a7e1f544ee6bdfcb147baba6bf7f5d88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=89=8B=E7=93=9C=E4=B8=80=E5=8D=81=E9=9B=AA?= Date: Mon, 19 Aug 2024 21:38:31 +0800 Subject: [PATCH 5/8] Util --- src/core/core.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/core.ts b/src/core/core.ts index caff4b19e..942cce962 100644 --- a/src/core/core.ts +++ b/src/core/core.ts @@ -44,7 +44,7 @@ export class NapCatCore { constructor(context: InstanceContext, selfInfo: SelfInfo) { this.selfInfo = selfInfo; this.context = context; - this.util = new this.context.wrapper.NodeQQNTWrapperUtil(); + this.util = this.context.wrapper.NodeQQNTWrapperUtil; this.eventWrapper = new LegacyNTEventWrapper(context.session); this.apis = { FileApi: new NTQQFileApi(this.context, this), From 0200343780f161428cc4f836259aa1fecf4b3c80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=89=8B=E7=93=9C=E4=B8=80=E5=8D=81=E9=9B=AA?= Date: Tue, 20 Aug 2024 17:12:07 +0800 Subject: [PATCH 6/8] =?UTF-8?q?chore:=20=E8=B0=83=E6=95=B4appid?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/common/utils/QQBasicInfo.ts | 2 +- src/common/utils/helper.ts | 12 ++++++------ src/core/external/appid.json | 32 ++++++++++---------------------- 3 files changed, 17 insertions(+), 29 deletions(-) diff --git a/src/common/utils/QQBasicInfo.ts b/src/common/utils/QQBasicInfo.ts index 86cc62399..b576c5757 100644 --- a/src/common/utils/QQBasicInfo.ts +++ b/src/common/utils/QQBasicInfo.ts @@ -74,7 +74,7 @@ export class QQBasicInfoWrapper { this.context.logger.log( `[QQ版本兼容性检测] ${this.getFullQQVesion()} 版本兼容性不佳,可能会导致一些功能无法正常使用`, ); - return { appid: systemPlatform === 'linux' ? '537237950' : '537237765', qua: this.getQUAInternal() }; + return { appid: systemPlatform === 'linux' ? '537240645' : '537240610', qua: this.getQUAInternal() }; } } diff --git a/src/common/utils/helper.ts b/src/common/utils/helper.ts index a4be075ea..c3fda3695 100644 --- a/src/common/utils/helper.ts +++ b/src/common/utils/helper.ts @@ -97,19 +97,19 @@ export function isEqual(obj1: any, obj2: any) { export function getDefaultQQVersionConfigInfo(): QQVersionConfigType { if (os.platform() === 'linux') { return { - baseVersion: '3.2.12-26702', - curVersion: '3.2.12-26702', + baseVersion: '3.2.12-27206', + curVersion: '3.2.12-27206', prevVersion: '', onErrorVersions: [], - buildId: '26702', + buildId: '27206', }; } return { - baseVersion: '9.9.15-26702', - curVersion: '9.9.15-26702', + baseVersion: '9.9.15-27206', + curVersion: '9.9.15-27206', prevVersion: '', onErrorVersions: [], - buildId: '26702', + buildId: '27206', }; } diff --git a/src/core/external/appid.json b/src/core/external/appid.json index 5104aeeb0..0bb1f39fd 100644 --- a/src/core/external/appid.json +++ b/src/core/external/appid.json @@ -1,34 +1,22 @@ { - "3.2.12-26702": { - "appid": 537237950, - "qua": "V1_LNX_NQ_3.2.12_26702_GW_B" - }, - "3.2.12-26740": { - "appid": 537237950, - "qua": "V1_WIN_NQ_9.9.15_26740_GW_B" + "3.2.12-27187": { + "appid": 537240645, + "qua": "V1_LNX_NQ_3.2.12_27187_GW_B" }, - "3.2.12-26909": { - "appid": 537237923, - "qua": "V1_LNX_NQ_3.2.12_26909_GW_B" + "9.9.15-27187":{ + "appid": 537240610, + "qua": "V1_WIN_NQ_9.9.15_27187_GW_B" }, "3.2.12-27206": { "appid": 537240645, "qua": "V1_LNX_NQ_3.2.12_27206_GW_B" }, - "9.9.15-26702": { - "appid": 537237765, - "qua": "V1_WIN_NQ_9.9.15_26702_GW_B" - }, - "9.9.15-26740": { - "appid": 537237765, - "qua": "V1_WIN_NQ_9.9.15_26702_GW_B" - }, - "9.9.15-26909": { - "appid": 537237802, - "qua": "V1_WIN_NQ_9.9.15_26909_GW_B" - }, "9.9.15-27206":{ "appid": 537240610, "qua": "V1_WIN_NQ_9.9.15_27206_GW_B" + }, + "9.9.15-27254":{ + "appid": 537240709, + "qua": "V1_WIN_NQ_9.9.15_27254_GW_B" } } \ No newline at end of file From cd496a22bf14644284cb54d6fc0ba9785c97c12b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=89=8B=E7=93=9C=E4=B8=80=E5=8D=81=E9=9B=AA?= Date: Tue, 20 Aug 2024 17:47:14 +0800 Subject: [PATCH 7/8] =?UTF-8?q?chore:=20=E8=B0=83=E6=95=B4appid?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/core/external/appid.json | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/core/external/appid.json b/src/core/external/appid.json index 0bb1f39fd..0cce792c5 100644 --- a/src/core/external/appid.json +++ b/src/core/external/appid.json @@ -3,14 +3,18 @@ "appid": 537240645, "qua": "V1_LNX_NQ_3.2.12_27187_GW_B" }, - "9.9.15-27187":{ - "appid": 537240610, - "qua": "V1_WIN_NQ_9.9.15_27187_GW_B" - }, "3.2.12-27206": { "appid": 537240645, "qua": "V1_LNX_NQ_3.2.12_27206_GW_B" }, + "3.2.12-27254":{ + "appid": 537240795, + "qua": "V1_LNX_NQ_3.2.12_27254_GW_B" + }, + "9.9.15-27187":{ + "appid": 537240610, + "qua": "V1_WIN_NQ_9.9.15_27187_GW_B" + }, "9.9.15-27206":{ "appid": 537240610, "qua": "V1_WIN_NQ_9.9.15_27206_GW_B" From cd076c59599262fe1010f807409e651dd0f8ff98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=89=8B=E7=93=9C=E4=B8=80=E5=8D=81=E9=9B=AA?= Date: Tue, 20 Aug 2024 20:22:44 +0800 Subject: [PATCH 8/8] fix --- src/onebot/action/index.ts | 2 ++ src/onebot/action/system/GetCSRF.ts | 12 ++++++++++++ src/onebot/action/types.ts | 3 ++- src/onebot/network/active-websocket.ts | 2 ++ src/onebot/network/passive-websocket.ts | 7 ++++++- 5 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 src/onebot/action/system/GetCSRF.ts diff --git a/src/onebot/action/index.ts b/src/onebot/action/index.ts index a486c0440..ebc7457df 100644 --- a/src/onebot/action/index.ts +++ b/src/onebot/action/index.ts @@ -79,6 +79,7 @@ import { NapCatOneBot11Adapter } from '@/onebot'; import GetGuildProfile from './guild/GetGuildProfile'; import SetModelShow from './go-cqhttp/SetModelShow'; import { SetInputStatus } from './extends/SetInputStatus'; +import { GetCSRF } from './system/GetCSRF'; export type ActionMap = Map>; @@ -167,6 +168,7 @@ export function createActionMap(onebotContext: NapCatOneBot11Adapter, coreContex new GetGuildProfile(onebotContext, coreContext), new SetModelShow(onebotContext, coreContext), new SetInputStatus(onebotContext, coreContext), + new GetCSRF(onebotContext, coreContext), ]; const actionMap = new Map(); for (const action of actionHandlers) { diff --git a/src/onebot/action/system/GetCSRF.ts b/src/onebot/action/system/GetCSRF.ts new file mode 100644 index 000000000..8d0c1dba5 --- /dev/null +++ b/src/onebot/action/system/GetCSRF.ts @@ -0,0 +1,12 @@ +import BaseAction from '../BaseAction'; +import { ActionName } from '../types'; + +export class GetCSRF extends BaseAction { + actionName = ActionName.GetCSRF; + + async _handle(payload: any) { + return { + token: "", + }; + } +} diff --git a/src/onebot/action/types.ts b/src/onebot/action/types.ts index 2bfbcd288..095a0d63f 100644 --- a/src/onebot/action/types.ts +++ b/src/onebot/action/types.ts @@ -107,5 +107,6 @@ export enum ActionName { FetchEmojiLike = 'fetch_emoji_like', GetGuildProfile = "get_guild_service_profile", SetModelShow = "_set_model_show", - SetInputStatus = "set_input_status" + SetInputStatus = "set_input_status", + GetCSRF = "get_csrf_token" } diff --git a/src/onebot/network/active-websocket.ts b/src/onebot/network/active-websocket.ts index cfed08e7f..15b169707 100644 --- a/src/onebot/network/active-websocket.ts +++ b/src/onebot/network/active-websocket.ts @@ -71,6 +71,8 @@ export class OB11ActiveWebSocketAdapter implements IOB11NetworkAdapter { this.connection = new WebSocket(this.url, { maxPayload: 1024 * 1024 * 1024, + handshakeTimeout: 2000, + perMessageDeflate: false, headers: { 'X-Self-ID': this.coreContext.selfInfo.uin, 'Authorization': `Bearer ${this.token}`, diff --git a/src/onebot/network/passive-websocket.ts b/src/onebot/network/passive-websocket.ts index 0ded05a9a..d1d0307b3 100644 --- a/src/onebot/network/passive-websocket.ts +++ b/src/onebot/network/passive-websocket.ts @@ -36,7 +36,11 @@ export class OB11PassiveWebSocketAdapter implements IOB11NetworkAdapter { this.logger = coreContext.context.logger; this.heartbeatInterval = heartbeatInterval; - this.wsServer = new WebSocketServer({ port: port, host: ip, maxPayload: 1024 * 1024 * 1024, }); + this.wsServer = new WebSocketServer({ + port: port, + host: ip, + maxPayload: 1024 * 1024 * 1024, + }); const core = coreContext; this.wsServer.on('connection', async (wsClient, wsReq) => { if (!this.isOpen) { @@ -151,6 +155,7 @@ export class OB11PassiveWebSocketAdapter implements IOB11NetworkAdapter { //this.logger.logDebug('收到正向Websocket消息', receiveData); } catch (e) { this.checkStateAndReply(OB11Response.error('json解析失败,请检查数据格式', 1400, echo), wsClient); + return; } receiveData.params = (receiveData?.params) ? receiveData.params : {};//兼容类型验证 const retdata = await this.actions.get(receiveData.action)?.websocketHandle(receiveData.params, echo || '');