From 93f78f4db5fa9d32453cb876782be7e34332892f 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, 8 Feb 2025 17:34:31 +0800 Subject: [PATCH] feat: #780 --- src/core/helper/config.ts | 2 +- src/webui/index.ts | 16 +++++++++++++++- src/webui/src/helper/config.ts | 5 +++++ 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/src/core/helper/config.ts b/src/core/helper/config.ts index 22b590d0..bc6781da 100644 --- a/src/core/helper/config.ts +++ b/src/core/helper/config.ts @@ -9,7 +9,7 @@ export const NapcatConfigSchema = Type.Object({ fileLogLevel: Type.String({ default: 'debug' }), consoleLogLevel: Type.String({ default: 'info' }), packetBackend: Type.String({ default: 'auto' }), - packetServer: Type.String({ default: '' }) + packetServer: Type.String({ default: '' }), }); export type NapcatConfig = Static; diff --git a/src/webui/index.ts b/src/webui/index.ts index 1fbc4a25..5bde50e1 100644 --- a/src/webui/index.ts +++ b/src/webui/index.ts @@ -28,6 +28,7 @@ export let WebUiConfig: WebUiConfigWrapper; export let webUiPathWrapper: NapCatPathWrapper; const MAX_PORT_TRY = 100; import * as net from 'node:net'; +import { WebUiDataRuntime } from './src/helper/Data'; export async function InitPort(parsedConfig: WebUiConfigType): Promise<[string, number, string]> { try { @@ -48,7 +49,20 @@ export async function InitWebUi(logger: LogWrapper, pathWrapper: NapCatPathWrapp logger.log('[NapCat] [WebUi] Current WebUi is not run.'); return; } - + setTimeout(async () => { + let autoLoginAccount = process.env['NAPCAT_QUICK_ACCOUNT'] || WebUiConfig.getAutoLoginAccount(); + if (autoLoginAccount) { + try { + const { result, message } = await WebUiDataRuntime.requestQuickLogin(autoLoginAccount); + if (!result) { + throw new Error(message); + } + console.log(`[NapCat] [WebUi] Auto login account: ${autoLoginAccount}`); + } catch (error) { + console.log(`[NapCat] [WebUi] Auto login account failed.` + error); + } + } + }, 30000); // ------------注册中间件------------ // 使用express的json中间件 app.use(express.json()); diff --git a/src/webui/src/helper/config.ts b/src/webui/src/helper/config.ts index 7894d336..b9ef685e 100644 --- a/src/webui/src/helper/config.ts +++ b/src/webui/src/helper/config.ts @@ -13,6 +13,7 @@ const WebUiConfigSchema = Type.Object({ port: Type.Number({ default: 6099 }), token: Type.String({ default: 'napcat' }), loginRate: Type.Number({ default: 10 }), + autoLoginAccount: Type.String({ default: '' }), }); export type WebUiConfigType = Static; @@ -125,4 +126,8 @@ export class WebUiConfigWrapper { public static GetWebUIFontPath(): string { return resolve(webUiPathWrapper.configPath, './fonts/webui.woff'); } + + public getAutoLoginAccount(): string | undefined { + return this.WebUiConfigData?.autoLoginAccount; + } } \ No newline at end of file