From 60aae228a17ec85a6c4f434a24264a1193277780 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: Thu, 6 Nov 2025 17:57:57 +0800 Subject: [PATCH] feat: add Node NapCat Test --- .gitignore | 1 + package-lock.json | 11 +++---- package.json | 4 ++- src/shell/base.ts | 20 +++++++++---- tests/QQNT.dll | Bin 0 -> 483328 bytes tests/loadNapCat.cjs | 69 +++++++++++++++++++++++++++++++++++++++++++ tests/nodeTest.ps1 | 8 +++++ 7 files changed, 102 insertions(+), 11 deletions(-) create mode 100644 tests/QQNT.dll create mode 100644 tests/loadNapCat.cjs create mode 100644 tests/nodeTest.ps1 diff --git a/.gitignore b/.gitignore index 3df3e7c7..42d6420b 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,4 @@ devconfig/* *.db checkVersion.sh bun.lockb +tests/run/ \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 983a8d0c..c35ec1f5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "napcat", - "version": "4.9.21", + "version": "4.9.25", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "napcat", - "version": "4.9.21", + "version": "4.9.25", "dependencies": { "express": "^5.0.0", "silk-wasm": "^3.6.1", @@ -44,6 +44,7 @@ "express-rate-limit": "^7.5.0", "fast-xml-parser": "^4.3.6", "file-type": "^21.0.0", + "fs-extra": "^11.3.2", "json5": "^2.2.3", "multer": "^2.0.1", "napcat.protobuf": "^1.1.4", @@ -5222,9 +5223,9 @@ "license": "MIT" }, "node_modules/fs-extra": { - "version": "11.3.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz", - "integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==", + "version": "11.3.2", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.2.tgz", + "integrity": "sha512-Xr9F6z6up6Ws+NjzMCZc6WXg2YFRlrLP9NQDO3VQrWrfiojdhS56TzueT88ze0uBdCTwEIhQ3ptnmKeWGFAe0A==", "dev": true, "license": "MIT", "dependencies": { diff --git a/package.json b/package.json index 79f7aa16..21c55fbf 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,8 @@ "lint:webui": "cd napcat.webui && eslint src/**/*", "lint:fix:webui": "cd napcat.webui && eslint --fix src/**/*", "depend": "cd dist && npm install --omit=dev", - "dev:depend": "npm i && cd napcat.webui && npm i" + "dev:depend": "npm i && cd napcat.webui && npm i", + "test:winshell": "pwsh ./tests/nodeTest.ps1" }, "devDependencies": { "@babel/core": "^7.28.0", @@ -57,6 +58,7 @@ "express-rate-limit": "^7.5.0", "fast-xml-parser": "^4.3.6", "file-type": "^21.0.0", + "fs-extra": "^11.3.2", "json5": "^2.2.3", "multer": "^2.0.1", "napcat.protobuf": "^1.1.4", diff --git a/src/shell/base.ts b/src/shell/base.ts index 6abed9c5..f7b3f92b 100644 --- a/src/shell/base.ts +++ b/src/shell/base.ts @@ -24,7 +24,6 @@ import path from 'path'; import fs from 'fs'; import os from 'os'; import { LoginListItem, NodeIKernelLoginService } from '@/core/services'; -import { program } from 'commander'; import qrcode from '@/qrcode/lib/main'; import { NapCatOneBot11Adapter } from '@/onebot'; import { InitWebUi } from '@/webui'; @@ -322,7 +321,9 @@ export async function NCoreInitShell () { // 初始化 FFmpeg 服务 await FFmpegService.init(pathWrapper.binaryPath, logger); - await connectToNamedPipe(logger).catch(e => logger.logError('命名管道连接失败', e)); + if (process.env['NAPCAT_DISABLE_PIPE'] !== '1') { + await connectToNamedPipe(logger).catch(e => logger.logError('命名管道连接失败', e)); + } const basicInfoWrapper = new QQBasicInfoWrapper({ logger }); const wrapper = loadQQWrapper(basicInfoWrapper.getFullQQVersion()); const nativePacketHandler = new NativePacketHandler({ logger }); // 初始化 NativePacketHandler 用于后续使用 @@ -362,9 +363,18 @@ export async function NCoreInitShell () { await initializeEngine(engine, basicInfoWrapper, dataPathGlobal, systemPlatform, systemVersion); await initializeLoginService(loginService, basicInfoWrapper, dataPathGlobal, systemVersion, hostname); handleProxy(session, logger); - program.option('-q, --qq [number]', 'QQ号').parse(process.argv); - const cmdOptions = program.opts(); - const quickLoginUin = cmdOptions['qq']; + + let quickLoginUin: string | undefined = undefined; + try { + const args = process.argv; + const qIndex = args.findIndex(arg => arg === '-q' || arg === '--qq'); + if (qIndex !== -1 && qIndex + 1 < args.length) { + quickLoginUin = args[qIndex + 1]; + } + } catch (error) { + logger.logWarn('解析命令行参数失败,无法使用快速登录功能', error); + } + const historyLoginList = (await loginService.getLoginList()).LocalLoginInfoList; const dataTimestape = new Date().getTime().toString(); diff --git a/tests/QQNT.dll b/tests/QQNT.dll new file mode 100644 index 0000000000000000000000000000000000000000..12c861baa9cadd59c866dfb7e21f9e360ac217d0 GIT binary patch literal 483328 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 OFMP6}r@R?8@c#jc1fBx` literal 0 HcmV?d00001 diff --git a/tests/loadNapCat.cjs b/tests/loadNapCat.cjs new file mode 100644 index 00000000..7ba9989b --- /dev/null +++ b/tests/loadNapCat.cjs @@ -0,0 +1,69 @@ +const fs = require('fs-extra'); +const path = require('path'); +const { pathToFileURL } = require('url'); + +const mainPath = process.argv[2]; +if (!mainPath) { + console.error('Please provide the base directory as the first argument.'); + process.exit(1); +} + +// 动态获取 versions 下唯一的版本文件夹,并拼接 resources/app 路径 +const versionsDir = path.join(mainPath, 'versions'); +console.log(`Looking for version folders in: ${versionsDir}`); +const versionFolders = fs.readdirSync(versionsDir).filter(f => fs.statSync(path.join(versionsDir, f)).isDirectory()); +if (versionFolders.length !== 1) { + console.error('versions 文件夹下必须且只能有一个版本目录'); + process.exit(1); +} + +const BASE_DIR = path.join(versionsDir, versionFolders[0], 'resources', 'app'); +const TARGET_DIR = path.join(__dirname, 'run'); +const QQNT_FILE = path.join(__dirname, 'QQNT.dll'); +const NAPCAT_MJS_PATH = path.join(__dirname, '..', 'dist', 'napcat.mjs'); + +const itemsToCopy = [ + 'avif_convert.dll', + 'broadcast_ipc.dll', + 'libglib-2.0-0.dll', + 'libgobject-2.0-0.dll', + 'libvips-42.dll', + 'ncnn.dll', + 'opencv.dll', + 'package.json', + 'QBar.dll', + 'wrapper.node' +]; + +async function copyAll () { + const qqntDllPath = path.join(TARGET_DIR, 'QQNT.dll'); + const configPath = path.join(TARGET_DIR, 'config.json'); + const allItemsExist = await fs.pathExists(qqntDllPath) + && await fs.pathExists(configPath) + && (await Promise.all(itemsToCopy.map(item => fs.pathExists(path.join(TARGET_DIR, item))))).every(exists => exists); + + if (!allItemsExist) { + console.log('Copying required files...'); + await fs.ensureDir(TARGET_DIR); + await fs.copy(QQNT_FILE, qqntDllPath, { overwrite: true }); + await fs.copy(path.join(versionsDir, 'config.json'), configPath, { overwrite: true }); + await Promise.all(itemsToCopy.map(async (item) => { + await fs.copy(path.join(BASE_DIR, item), path.join(TARGET_DIR, item), { overwrite: true }); + console.log(`Copied ${item}`); + })); + console.log('All files copied successfully.'); + } else { + console.log('Files already exist, skipping copy.'); + } + + process.env.NAPCAT_WRAPPER_PATH = path.join(TARGET_DIR, 'wrapper.node'); + process.env.NAPCAT_QQ_PACKAGE_INFO_PATH = path.join(TARGET_DIR, 'package.json'); + process.env.NAPCAT_QQ_VERSION_CONFIG_PATH = path.join(TARGET_DIR, 'config.json'); + process.env.NAPCAT_DISABLE_PIPE = '1'; + process.env.NAPCAT_WORKDIR = path.join(__dirname, 'run'); + + console.log('Loading NapCat module...'); + await import(pathToFileURL(NAPCAT_MJS_PATH).href); +} + +copyAll().catch(console.error); \ No newline at end of file diff --git a/tests/nodeTest.ps1 b/tests/nodeTest.ps1 new file mode 100644 index 00000000..e44f082e --- /dev/null +++ b/tests/nodeTest.ps1 @@ -0,0 +1,8 @@ +[Console]::OutputEncoding = [System.Text.Encoding]::UTF8 +$regPath = 'HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\QQ' +$uninstall = (Get-ItemProperty -Path $regPath -Name UninstallString -ErrorAction Stop).UninstallString +$uninstall = $uninstall.Trim('"') +$qqPath = Split-Path $uninstall -Parent + +Write-Host "QQPath: $qqPath" +node.exe "tests/loadNapCat.cjs" "$qqPath"