feat: EH Downloader 用 Go + Wails v2 重写
原 Electron 版在这台 Windows 机器上无法启动(0x80000003 崩在 V8 初始化), 整个业务逻辑用 Go 重写,前端界面与协议结论完全保留。 - internal/eh: 协议核心,画廊页分页 -> /s/ -> hath 直链 -> 下载 - internal/core: 并发引擎 / 状态存储 / 目录模板 / 油猴桥口 - app.go: Wails 绑定层,替代 Electron IPC - frontend/js/api.js: 适配层,renderer.js 一行未改 - 37 个测试,含 httptest 模拟 EH 的端到端链路验证 相比 Electron 版:90MB -> 12.4MB,180MB 内存 -> 27MB,构建 90s -> 2s。 顺带修掉原版代理探测的 bug(永远返回第一个端口,从不等连接结果)。
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
// 前端「构建」:这个项目没有框架和打包步骤,纯静态文件直接拷贝即可。
|
||||
// 保留这个脚本是为了满足 wails.json 里的 frontend:build 约定,
|
||||
// 顺便做一件 Wails 要求的事:把非 wailsjs 的资源同步到 dist/。
|
||||
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
|
||||
const FRONTEND = __dirname;
|
||||
const DIST = path.join(FRONTEND, 'dist');
|
||||
|
||||
// 需要原样拷贝的入口文件与目录
|
||||
const ENTRIES = ['index.html', 'css', 'js'];
|
||||
|
||||
function copy() {
|
||||
fs.mkdirSync(DIST, { recursive: true });
|
||||
for (const name of ENTRIES) {
|
||||
const src = path.join(FRONTEND, name);
|
||||
if (!fs.existsSync(src)) continue;
|
||||
fs.cpSync(src, path.join(DIST, name), { recursive: true });
|
||||
}
|
||||
// wailsjs 是 wails build 自动生成的绑定,保留
|
||||
console.log('[frontend] 资源已同步到 dist/');
|
||||
}
|
||||
|
||||
copy();
|
||||
|
||||
if (process.argv.includes('--watch')) {
|
||||
console.log('[frontend] watch 模式:改动 src 后重新运行 wails dev 即可');
|
||||
}
|
||||
Reference in New Issue
Block a user