Releases: wpy030414/erolib
Release list
EroLib v26.8.25+1650
feat: F11 全屏切换 + 版本号更新至 26.8.25+1650
EroLib v26.8.23+2120
docs: 同步 EPUB/PDF 导入导出、单页删除、智能重下的文档
- DECISIONS 新增 D-019(三格式导出 + 元信息 round-trip)、
D-020(按实际页数对比的智能重新下载) - ARCHITECTURE 命令数 68→70(book 14 / tasks 13),services 树
补 export.rs / import.rs,依赖表补 printpdf / lopdf,i18n 键数 - specs module-library 补导出/导入读回/单页删除契约与约束;
module-task 补 task_redownload 判定矩阵与 source_url 约束;
module-reader / module-home 补删页菜单与 BookExportDialog - PRD / README / AGENTS 功能清单、边界表与常见陷阱同步
EroLib v26.8.16+1900
chore: 构建脚本切换 pnpm + 版本升级 26.8.16+1900
- package.json 精简 scripts,移除冗余 alias(dev/build 直接指向 tauri)
- tauri.conf.json beforeDevCommand/beforeBuildCommand 改用 pnpm exec vite
- 移除 pnpm-workspace.yaml 中 esbuild 构建白名单
- 版本号 bump 至 26.8.16+1900
EroLib v26.8.14+0015
refactor: 代码审计清理与包体积优化
死代码清理
- 提取 BookMetaDialog 组件(消除 Home/Library 重复代码)
- 提取 useBookMenu composable(统一菜单状态管理)
- 移除未使用的函数、导入、CSS 类和设计令牌
- 统一 store 模式(tasks.ts 改用 defineStore)
- 修复 async/await 不一致问题
- 用命名常量替换魔法数字(Reader.vue)
包体积优化
- 添加 manualChunks 实现代码分割(6个供应商包)
- 路由全部改为懒加载
- Material Web 组件按需注册(从集中注册改为每视图独立注册)
- 首次加载体积从 620 kB 降至 ~180 kB
构建优化
- Vite 8 配置优化(manualChunks 函数式配置)
- 移除 16 个未使用的 md3-* 排版类
- 移除 11 个未使用的工具类
- 移除 16 个未使用的设计令牌
EroLib v26.7.28+0110
fix: Windows EHentai/Pixiv 登录窗口白屏 & cookie 抓取
EHentai/Pixiv 在 Windows 上登录窗口白屏的根本原因及修复:
- capabilities/default.json: 添加 "ehentai-login" 到 Tauri v2 权限列表
- main.rs: WKWebView warmup 窗口用 #[cfg(macos)] 保护,
避免在 Windows 上从后台线程创建 1x1 WebView2 破坏环境 - ehentai.rs: 轮询循环跳过整个 forums.e-hentai.org 域名
(原 path.contains("act=Login") 只检查路径不查 query) - cookies.rs: capture_all_cookies 优先使用 Tauri cookies() API
替代 JS eval 重定向 (读不到 HttpOnly),包含 HttpOnly cookie - 修复所有编译警告 (unused import, unused mut, dead code)
EroLib v26.7.20+2050
feat: 标签数据库转译(1000词条+模糊匹配) + 软件自动更新 + vite 8
- 标签转译层:tag_translations 对照表(1014连续词条/3850形式) + 按应用语言SQL直出
(chip/详情/RSS/OPDS 统一,未命中保持原名) + SIMILARITY UDF 编辑距离模糊匹配
(精确优先+最优唯一,物化tag_resolved避开查询热路径,种子指纹自动刷新派生缓存) - 软件更新:check→download→install,读releases Atom feed + aria2下载 + 启动安装器
(update.rs + UpdateDialog + Settings更新区) - vite 5→8(plugin-vue 6.0.8/vitest 4,minify→oxc,移除tsconfig baseUrl)
Co-Authored-By: Claude Code noreply@anthropic.com
EroLib v26.7.20+1235
feat: 阅读器右键菜单 + 自定义主题 + 单页导出 + 批量重试 + ASMHentai兼容修复
- 阅读器右键新增「设为主题」:HCT色彩提取 → 自定义MD3种子色 + 全分辨率图背景叠加覆盖(App.vue + theme store);上限3个FIFO淘汰
- 阅读器右键新增「保存图片」:save_book_page 命令直读CB7归档逐页写出,走系统保存对话框
- 主题引擎重构:applyArgbTheme(ARGB int) 直出token支持custom:种子;非reader页半透明背景图叠加+mask渐变
- ASMHentai CDN路径兼容:load_dir丢失时回退last3digits拼接 images.asmhentai.com/{dir}/{gid}/{page}.jpg
- macOS代理检测修复:忽略scutil HTTPEnable标记,Clash Verge关闭「设为系统代理」时仍能检测到daemon端口
- 任务系统新增「重试全部」FAB批量retry+pause→resume;右键日志区复制到剪贴板(tauri-plugin-clipboard-manager前后端)
- 三语i18n补全上述功能翻译,中文zh.ts去猫言猫语(喵~/喵!等句尾语气词移除)
- 新增依赖:tauri-plugin-clipboard-manager前后端;api.ts NiceCat WebView注释更正为纯HTTP
- 版本号 26.7.19+2330 → 26.7.20+1235
Co-Authored-By: Claude Code noreply@anthropic.com
EroLib v26.7.19+2330
feat: 阅读列表重设计 + 分批下载 + 统一任务日志
阅读列表 (CollectionDialog):
- 右键列表名直接内联重命名,input 与文字同款外观仅光标提示
- 重命名期间底部 + 变为红色垃圾桶按钮,点击 md-dialog 确认删除
- 重命名时列表加半透明遮罩,当前行浮于上方
- 创建列表自动去重命名 (新的阅读列表 1/2/...),上限 100
- 选中列表后书库标题联动显示列表名
- 创建/删除列表有 toast 提示
- 全部行右侧显示置顶图标,用户列表仅高亮无对号
首页 (Home.vue):
- 删除书籍后重新拉取 12 本补位,新书立刻载入缩略图
- 删除成功/失败有 toast 提示
下载系统 (task_manager.rs):
- download_pages_concurrent 改为全量 JoinSet 一次性 spawn,aria2/reqwest
自动从 8 并发信号量消费 - 每页完成一条日志: 📥 第 i/n 页 完成
- 四个模块下载日志完全统一
统一任务日志 (task_manager.rs):
- 📋 创建任务 / 🔍 抓取 / ⬇ 开始下载 / 📥 页级进度
- ❌ 页错误 / 📦 打包 / 📚 注册 / ✅ 完成
- ⏸ 暂停 / ▶ 恢复 / ⏹ 取消 / 🔄 重试
标签写入修复:
- 修复残留触发器 trg_tags_type_to_tag_type 引用不存在的 NEW.type
导致每次 INSERT INTO tags 报错回滚 (no such column: NEW.type) - schema.sql 添加 DROP TRIGGER IF EXISTS 防御
- upsert_tag_and_link 错误处理改为 map_err 不再吞错
- 从 ComicInfo.xml 回填所有旧书标签
AGENTS.md 更新:
- SQLite collections 表从预留更新为阅读列表说明
- Pinia Store 新增 collections store
- 书库节新增阅读列表管理说明
- 首页节补充删除后补位 + 缩略图载入 + toast
- 下载后端统一描述分批并发下载
README.md 更新:
- 本地书库特性新增阅读列表
- 路线图移除已完成的收藏夹管理
- 截图更新 (首页替换书库、保留阅读器/Pixiv/EHentai/任务/设置)
Co-Authored-By: Claude Code noreply@anthropic.com
EroLib v26.7.15+1500
feat: NiceCat 下载源 + 首页 + RSS/OPDS 直出图片 + aria2 自动代理
NiceCat 下载源(新增):
- 浏览式(stores/nicecat-browse.ts / views/NiceCat.vue):首页话题板块横向滚动
- 关键词搜索(两阶段:关键词→最优标签→结果页,searchId 游标翻页)。
- 下载(services/nicecat.rs):全程纯 HTTP,无 WebView——RC4 动态令牌直连
gxxa.fun API(ComicInfo/info + ComicOrder/getComicOrder,当日 dateKey 破解),
8 路并发 reqwest 下 vurm.fun CDN,打包 cb7。TaskSource::Nicecat / NicecatGallery。
首页(新增):
- views/Home.vue:本周阅读时长 Hero + 库封面旋转墙(WallCover 21 本)+ 最近阅读书架。
- components/WallCover.vue / FeedLoading.vue。
阅读时长追踪:
- reading_sessions 表(schema.sql)+ open_book / record_reading / get_weekly_reading_ms /
list_recent_books / get_recent_favorite_book(commands/book.rs / library.rs / models)。 - Reader.vue 计时上报(仅前台累计)。
RSS/OPDS 直出图片与富摘要:
- 新增 /pages/:id/:n(单页图,复用 cb7 归档缓存 + guess_image_mime)与
/article/:id(整本 HTML 画廊)路由,注册进 OPDS + RSS router;ServerState 重构
为共享已配置 service。 - services/feed.rs 抽出共享 book_metadata_blurb(作者|页数·格式·大小|标签|来源
|发布日期|阅读记录),RSS description/content:encoded 与 OPDS summary 复用;标题 EroLib。
修复阅读时长统计(曾恒为 0):
- open_book 改 INSERT … RETURNING id:last_insert_rowid() 在 sqlx 连接池跨连接会返回
错误 session id,record_reading 永不命中,duration_ms 恒 0。 - Reader 改上报本次会话增量(baseline 快照,非历史累计)。
- user_version=1 一次性清零被污染的历史 duration_ms。
aria2 自动捕捉 HTTP 代理:
- services/proxy.rs:env(ALL_PROXY/HTTPS_PROXY/HTTP_PROXY) + macOS scutil --proxy,
60s 缓存,跳过 aria2 不支持的 SOCKS;add_uri 注入 all-proxy,翻墙下载零配置。
其他:
- DB 文件名 manga-manager.db → erolib.db(启动时旧文件含 -wal/-shm 原子重命名迁移)。
- AGENTS.md / README.md 文档同步;i18n(zh/en/ja)、路由、AppShell、capabilities 与依赖更新。
Co-Authored-By: Claude Code noreply@anthropic.com
EroLib v26.7.12+1520
feat: ASMHentai 浏览式下载 + CI 自动发布 + BrandIcon 修复
ASMHentai (asmhentai.com) 浏览板块
- 新增 AhentaiClient scraper:首页/搜索列表解析、详情页元信息抓取、
tag 名末尾计数后缀清洗 (strip_tag_count) - 新增 AhentaiBrowseStore + AHentai.vue 浏览视图:搜索、48条/页无限滚动、
IndexedDB 封面缓存、卡片两态(无页码badge/无作者副标题) - 新增 process_ahentai 下载管线:JoinSet+Semaphore(8) 并发、
add_bytes+set_speed 实时追踪、下载时补全标签/作者/页数 - 侧边栏自定义 AHentai favicon SVG 图标 (BrandIcon)
BrandIcon inset 修复
- BrandIcon 新增 brand prop,仅品牌图标做 75% scale inset,
MDI 原生图标不受影响 - AppShell Pixiv/EHentai/AHentai 标记 brand: true;
Settings 哔哩哔哩图标同步标记
CI/CD
- 新增 release job:等待全平台构建完成 → 读 tauri.conf.json 版本号 →
以 "EroLib {version}" 为标题、commit message 为正文自动发布 GitHub Release - actions/checkout@v5、setup-node@v5、upload-artifact@v6、
download-artifact@v7 全链路 Node 24 原生,消除弃用警告 - Windows 构建后自動去除 MSI 文件名 _en-US 后缀
- bundle.targets: all → [dmg, msi],仅构建需要的包格式
其他
- Windows release 构建 #![windows_subsystem = "windows"] 隐藏后台命令行窗口
- cookies.rs 消除 3 个编译警告(非 macOS stub 模块 + webview 变量)
- SourceCard 页码 badge 为 0 时隐藏
- 版本号 26.7.12+0240 → 26.7.12+1520
- README/AGENTS 文档更新
Co-Authored-By: Claude Code noreply@anthropic.com