From fd226c45f66a234fe2d637d80167a7ea4806f863 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, 12 Aug 2024 12:41:59 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20Support=20=E5=A4=9A=E8=B4=A6=E6=88=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/framework/liteloader.cjs | 5 ++--- src/framework/napcat.cjs | 16 +++++++++++++--- src/framework/napcat.ts | 6 +++++- 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/src/framework/liteloader.cjs b/src/framework/liteloader.cjs index b9f8c06c..00d6f7fd 100644 --- a/src/framework/liteloader.cjs +++ b/src/framework/liteloader.cjs @@ -1,7 +1,6 @@ //LiteLoader需要提供部分IPC接口,以便于其他插件调用 const { ipcMain } = require('electron'); -const fs = require('fs'); +const napcat= require('./napcat.cjs'); ipcMain.handle("napcat_get_webtoken", async (event, arg) => { - return "http://127.0.0.1:6099/webui/?token=" + JSON.parse(fs.readFileSync(__dirname + '/config/webui.json', 'utf-8').toString()).token; + return napcat.NCgetWebUiUrl(); }); -require('./napcat.cjs'); \ No newline at end of file diff --git a/src/framework/napcat.cjs b/src/framework/napcat.cjs index 44a0bb37..434b425f 100644 --- a/src/framework/napcat.cjs +++ b/src/framework/napcat.cjs @@ -27,7 +27,7 @@ process.dlopen = (module, filename, flags = os.constants.dlopen.RTLD_LAZY) => { if (args[ArgIndex] instanceof Object) { let HookArg = {}; for (let ListenerName in args[ArgIndex]) { - HookArg[ListenerName] = function(...ListenerData) { + HookArg[ListenerName] = function (...ListenerData) { try { if (ListenerName === 'onSessionInitComplete') { //回调成功 @@ -116,13 +116,14 @@ async function fetchServices(timeout = 10000) { Promise.reject(), ); } - +let getWebUiUrlFunc = undefined; async function NCInit() { console.log('[NapCat] [Info] 开始初始化NapCat'); try { const { wrapperSession, wrapperLoginService } = await fetchServices(); - const { NCoreInitFramework } = await import('file://' + path.join(currentPath, './napcat.mjs')); + const { NCoreInitFramework, getWebUiUrl } = await import('file://' + path.join(currentPath, './napcat.mjs')); + getWebUiUrlFunc = getWebUiUrl; //传入LoginService Session 其余自载入 await NCoreInitFramework(wrapperSession, wrapperLoginService, registerInitCallback); //console.log("[NapCat] [Info] NapCat初始化完成"); @@ -132,3 +133,12 @@ async function NCInit() { } NCInit(); +module.exports = { + NCgetWebUiUrl: async () => { + if (getWebUiUrlFunc === undefined) { + console.log('[NapCat] [Error] 未初始化完成'); + return ''; + } + return await getWebUiUrlFunc(); + } +}; \ No newline at end of file diff --git a/src/framework/napcat.ts b/src/framework/napcat.ts index feb35f51..f6a60fad 100644 --- a/src/framework/napcat.ts +++ b/src/framework/napcat.ts @@ -8,10 +8,14 @@ import { SelfInfo } from '@/core/entities'; import { LoginListener } from '@/core/listeners'; import { NodeIKernelLoginService } from '@/core/services'; import { NodeIQQNTWrapperSession, WrapperNodeApi } from '@/core/wrapper/wrapper'; -import { InitWebUi } from '@/webui'; +import { InitWebUi, WebUiConfig } from '@/webui'; import { NapCatOneBot11Adapter } from '@/onebot'; //Framework ES入口文件 +export async function getWebUiUrl() { + let WebUiConfigData = (await WebUiConfig.GetWebUIConfig()); + return "http://127.0.0.1:" + WebUiConfigData.port + '/webui/?token=' + WebUiConfigData.token; +} export async function NCoreInitFramework( session: NodeIQQNTWrapperSession, loginService: NodeIKernelLoginService,