From 1c468410f150da82acf8fc0f4ddd7773584ef952 Mon Sep 17 00:00:00 2001 From: kjqwer <2990346238@qq.com> Date: Fri, 26 Sep 2025 16:53:09 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=89=93=E5=8C=85=E5=9B=BE?= =?UTF-8?q?=E6=A0=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 61 +--------------------- package.json | 12 +++-- pnpm-lock.yaml | 20 ++++++++ scripts/add-icon.js | 102 +++++++++++++++++++++++++++++++++++++ scripts/create-portable.js | 4 +- ui/public/favicon.ico | Bin 458870 -> 9202 bytes 6 files changed, 132 insertions(+), 67 deletions(-) create mode 100644 scripts/add-icon.js diff --git a/.gitignore b/.gitignore index 35d011e..6b5ca25 100644 --- a/.gitignore +++ b/.gitignore @@ -1,64 +1,5 @@ -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# Runtime data -pids -*.pid -*.seed -*.pid.lock - -# Directory for instrumented libs generated by jscoverage/JSCover -lib-cov - -# Coverage directory used by tools like istanbul -coverage - -# nyc test coverage -.nyc_output - -# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) -.grunt - -# Bower dependency directory (https://bower.io/) -bower_components - -# node-waf configuration -.lock-wscript - -# Compiled binary addons (https://nodejs.org/api/addons.html) -build/Release - -# Dependency directories +# 环境 node_modules/ -jspm_packages/ - -# TypeScript v1 declaration files -typings/ - -# Optional npm cache directory -.npm - -# Optional eslint cache -.eslintcache - -# Optional REPL history -.node_repl_history - -# Output of 'npm pack' -*.tgz - -# Yarn Integrity file -.yarn-integrity - -# dotenv environment variables file -.env - -# next.js build output -.next # 下载文件夹 downloads/ diff --git a/package.json b/package.json index 7e15f4b..03edb94 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "pixiv-backend", + "name": "pixiv-manager", "version": "1.0.4", "description": "Pixiv 下载浏览管理器", "main": "backend/start.js", @@ -10,7 +10,7 @@ "assets": [ "backend/**/*", "ui/dist/**/*", - "node_modules/**/*" + "node_modules/axios/**/*" ] }, "scripts": { @@ -18,8 +18,8 @@ "dev": "node backend/start.js", "test": "node backend/test-login.js", "set-proxy": "node backend/set-proxy.js", - "build": "pkg .", - "build-portable": "npm run build && node scripts/create-portable.js" + "build": "pkg . && node scripts/add-icon.js", + "bp": "npm run build && node scripts/create-portable.js" }, "dependencies": { "appdata-path": "^1.0.0", @@ -36,7 +36,9 @@ "uuid": "^11.1.0" }, "devDependencies": { - "readline-sync": "^1.4.10" + "readline-sync": "^1.4.10", + "resedit": "^2.2.0", + "pe-library": "^1.1.1" }, "keywords": [ "pixiv", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d73db40..46633e0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -45,9 +45,15 @@ importers: specifier: ^11.1.0 version: 11.1.0 devDependencies: + pe-library: + specifier: ^1.0.1 + version: 1.0.1 readline-sync: specifier: ^1.4.10 version: 1.4.10 + resedit: + specifier: ^2.0.3 + version: 2.0.3 packages: @@ -407,6 +413,10 @@ packages: resolution: {integrity: sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ==} engines: {node: '>=16'} + pe-library@1.0.1: + resolution: {integrity: sha512-nh39Mo1eGWmZS7y+mK/dQIqg7S1lp38DpRxkyoHf0ZcUs/HDc+yyTjuOtTvSMZHmfSLuSQaX945u05Y2Q6UWZg==} + engines: {node: '>=14', npm: '>=7'} + proxy-addr@2.0.7: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} engines: {node: '>= 0.10'} @@ -434,6 +444,10 @@ packages: resolution: {integrity: sha512-gNva8/6UAe8QYepIQH/jQ2qn91Qj0B9sYjMBBs3QOB8F2CXcKgLxQaJRP76sWVRQt+QU+8fAkCbCvjjMFu7Ycw==} engines: {node: '>= 0.8.0'} + resedit@2.0.3: + resolution: {integrity: sha512-oTeemxwoMuxxTYxXUwjkrOPfngTQehlv0/HoYFNkB4uzsP1Un1A9nI8JQKGOFkxpqkC7qkMs0lUsGrvUlbLNUA==} + engines: {node: '>=14', npm: '>=7'} + router@2.2.0: resolution: {integrity: sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==} engines: {node: '>= 18'} @@ -898,6 +912,8 @@ snapshots: path-to-regexp@8.2.0: {} + pe-library@1.0.1: {} + proxy-addr@2.0.7: dependencies: forwarded: 0.2.0 @@ -933,6 +949,10 @@ snapshots: readline-sync@1.4.10: {} + resedit@2.0.3: + dependencies: + pe-library: 1.0.1 + router@2.2.0: dependencies: debug: 4.4.1 diff --git a/scripts/add-icon.js b/scripts/add-icon.js new file mode 100644 index 0000000..389f9ad --- /dev/null +++ b/scripts/add-icon.js @@ -0,0 +1,102 @@ +const fs = require('fs'); +const path = require('path'); +const fsExtra = require('fs-extra'); +const resedit = require('resedit'); +const { defaultLogger } = require('../backend/utils/logger'); + +// 创建logger实例 +const logger = defaultLogger.child('AddIcon'); + +async function addIconToExe() { + const distDir = path.join(__dirname, '..', 'dist'); + const exeName = 'pixiv-manager.exe'; + const exePath = path.join(distDir, exeName); + const iconPath = path.join(__dirname, '..', 'ui', 'public', 'favicon.ico'); + + try { + // 检查exe文件是否存在 + if (!await fsExtra.pathExists(exePath)) { + logger.error(`❌ EXE文件不存在: ${exePath}`); + logger.info('请先运行构建命令: npm run build'); + return; + } + + // 检查图标文件是否存在 + if (!await fsExtra.pathExists(iconPath)) { + logger.error(`❌ 图标文件不存在: ${iconPath}`); + return; + } + + logger.info('正在添加图标到EXE文件...'); + + // 读取exe文件和图标文件 + const exeBuf = await fsExtra.readFile(exePath); + const iconBuf = await fsExtra.readFile(iconPath); + + logger.info(`EXE文件大小: ${exeBuf.length} 字节`); + logger.info(`图标文件大小: ${iconBuf.length} 字节`); + + try { + // 使用resedit加载exe(忽略证书和深度签名检查) + const exe = resedit.NtExecutable.from(exeBuf, { + ignoreCert: true, + deepSign: false + }); + const res = resedit.NtExecutableResource.from(exe); + logger.info('成功加载EXE文件'); + + // 读取图标组 + const iconFile = resedit.Data.IconFile.from(iconBuf); + logger.info(`图标文件包含 ${iconFile.icons.length} 个图标`); + + // 添加新的图标资源 + resedit.Resource.IconGroupEntry.replaceIconsForResource( + res.entries, + 1, // icon group id + 1033, // lang (en-US) + iconFile.icons.map(item => item.data) + ); + + logger.info('图标资源替换完成'); + + // 更新资源并写回文件 + res.outputResource(exe); + const newExeBuf = Buffer.from(exe.generate()); + await fsExtra.writeFile(exePath, newExeBuf); + + logger.info('✅ 成功添加图标到EXE文件'); + + // 验证图标是否正确添加 + try { + const verifyExe = resedit.NtExecutable.from(newExeBuf); + const verifyRes = resedit.NtExecutableResource.from(verifyExe); + const iconGroupEntries = verifyRes.entries.filter(e => e.type === 14 && e.id === 1); + if (iconGroupEntries.length > 0) { + logger.info('✅ 图标验证成功'); + } else { + logger.warn('⚠️ 图标验证失败:未找到图标资源'); + } + } catch (verifyError) { + logger.warn('⚠️ 图标验证时出错:', verifyError.message); + } + } catch (parseError) { + logger.warn('使用ResEdit处理图标时出错:', parseError.message); + logger.error('错误堆栈:', parseError.stack); + + // 如果ResEdit方法失败,只记录日志,不中断构建过程 + logger.info('⚠️ 图标添加跳过,继续构建过程'); + } + } catch (error) { + logger.error('❌ 添加图标失败', error); + logger.error('错误详情:', error.message); + // 即使添加图标失败,也不要中断构建过程 + logger.info('⚠️ 图标添加失败,继续构建过程'); + } +} + +// 如果直接运行此脚本,则执行函数 +if (require.main === module) { + addIconToExe(); +} + +module.exports = { addIconToExe }; \ No newline at end of file diff --git a/scripts/create-portable.js b/scripts/create-portable.js index 430e027..af45da2 100644 --- a/scripts/create-portable.js +++ b/scripts/create-portable.js @@ -15,7 +15,7 @@ async function createPortable() { await fs.ensureDir(portableDir); // 复制可执行文件 - const exeName = 'pixiv-backend.exe'; + const exeName = 'pixiv-manager.exe'; const exePath = path.join(distDir, exeName); if (await fs.pathExists(exePath)) { await fs.copy(exePath, path.join(portableDir, exeName)); @@ -50,7 +50,7 @@ echo Tip: Press Ctrl+C to stop server echo. :: Start server and pass proxy port and server port -pixiv-backend.exe --proxy-port=%PROXY_PORT% --server-port=%SERVER_PORT% +pixiv-manager.exe --proxy-port=%PROXY_PORT% --server-port=%SERVER_PORT% echo. echo Server stopped diff --git a/ui/public/favicon.ico b/ui/public/favicon.ico index a941275cacb2fb93a5749d2afb029846b923b253..54d775191c31a5cad953b71e156f7840cc2cf162 100644 GIT binary patch literal 9202 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