Skip to content

支持在线书同名搜索合并与多书源切换 - #18

Merged
zilorn merged 1 commit into
mainfrom
codex/multi-source
Oct 11, 2026
Merged

zilorn merged 1 commit into
mainfrom
codex/multi-source

Conversation

@zilorn

@zilorn zilorn commented Oct 11, 2026

Copy link
Copy Markdown
Owner

解决的问题 / Problem

在线搜索逐源平铺同名书,预览和书架在线书缺少换源入口。Fixes #16。

改动后的行为 / Resulting behavior

  • 搜索按去除首尾空白的原始书名合并,显示来源数量;120 条上限按书名计,达到上限后仍补入已有书名的来源,按书源 + bookUrl 去重。
  • 点击合并项优先使用同名书架在线书的绑定来源,否则随机选择。抽屉支持来源切换、简介/标签/目录预览和点击章节预览文字;图片阅读沿用入架后的阅读器。搜索继续返回的同名来源会补入候选列表。
  • 详情页新增「切换书源」,按原始书名搜索所有已启用且支持搜索的书源,失败不覆盖成功候选,关闭后停止分发并丢弃旧结果。阅读器点击书名进入详情页后使用同一入口,本地书不显示。
  • 选择来源仅预览;已入架书需确认后才替换绑定、目录、简介与书源标签并清空旧正文。保留书籍 ID、分组、书名/作者/封面、手编标签及书签/注释/进度记录。抽屉内首次入架后再选来源也继续修改同一本书。
  • 已加载详情/目录沿用会话缓存;换源和关闭以请求序号隔离旧详情、目录与文字响应。持久化换源取消旧下载、推进目录世代,并在既有写队列中复核来源,防止旧正文回填。
  • 更新中英文文案、抽屉文档与前端 skill。适用于 Android / Linux / Windows 共用前端。

验证 / Validation

  • 类型检查 / Type check: pnpm exec tsc --noEmit 通过。
  • 文案检查 / i18n check: pnpm run i18n:check 通过;无未引用 key 或 JSX 硬编码中文,保留既有提示。
  • 前端构建 / Frontend build: pnpm build 通过。
  • 自动回归:node scripts/online-sources-test.mjs 通过,覆盖同名合并、120 上限后的来源补入、去重、不可变更新、换源保留 ID/分组/手编标签、相同 URL 不继承正文、写盘失败、并发来源变化、空目录及本地书拒绝。
  • 相邻回归:node scripts/chapter-editing-test.mjs 通过;git diff --check 通过。
  • Rust 测试(如适用)/ Rust tests: 未修改 Rust,未运行。
  • 手动验证 / Manual verification: 尚未完成手机/桌面与原生应用实测。已准备实际组件的 390px / 1100px 浏览器夹具,但环境缺少 Chromium,浏览器下载返回无效压缩包,无法运行或提供截图。未将夹具准备计为通过。
  • 建议设备验收:多源搜索同名书 → 随机/书架来源预览 → 快速换源并点章节 → 取消及确认书架换源 → 从阅读器书名进入详情页换源 → 检查新正文、阅读位置与书签/注释;另测单源失败和空目录。

数据与兼容性 / Data and compatibility

无数据库格式变化或迁移。搜索合并和预览仅会话保存;换源复用 Rust 整书保存通道,原 ID 不变。书签、注释和进度记录保留,但不同来源的目录序号和正文可能不一致,需要用户手动重新定位;确认区明确说明这一影响。旧正文不跨源复用,封面与手编元信息保留。旧 /online/:key 会话入口兼容。

提交前检查 / Checklist

  • 已阅读 CONTRIBUTING.md 与 AGENTS.md / I read CONTRIBUTING.md and AGENTS.md.
  • 仅包含本次任务相关文件 / Changes are limited to this task.
  • 已更新相关文档与中英文文案(如适用)/ Relevant docs and both locales are updated where applicable.
  • 已完成适用检查,并说明未验证的部分 / Applicable checks are complete and unverified parts are explained.

@zilorn zilorn self-assigned this Oct 11, 2026
@zilorn zilorn added the enhancement New feature or request label Oct 11, 2026
@zilorn
zilorn merged commit b3a55ba into main Oct 11, 2026
2 checks passed
@zilorn
zilorn deleted the codex/multi-source branch October 11, 2026 10:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

多书源合并与切换书源(在线书):发现页搜索同名合并、抽屉内换源,详情页与阅读器入口也可切换

1 participant