TODO
TODO¶
以下为后续计划与优化方向
Web UI 重构 (结构与逻辑)¶
当前 Web UI 为临时实现, 需要系统性重构, 包括:
- 重新设计前端组件结构与内部逻辑
- 优化数据流、状态管理与 API 调用方式
- 加强错误处理与加载状态显示
- 统一样式、布局与交互细节
CLI 重构 (命令结构与参数体系)¶
现有 CLI 命令与参数结构较为松散, 需要集中整理:
- 重新设计命令结构 (如 download/search/info/export 等)
- 归并相关参数, 减少冗余
- 完善错误提示、帮助信息与交互体验
新增章节下载功能:
- CLI 支持通过
--chapter-id参数指定章节 ID, 仅下载该章节并导出为单独 txt 文件 - 当传入章节 URL 时, 自动解析出
book_id与chapter_id, 并询问是否下载整本或仅该章节 - 增加相关交互提示与输出信息, 优化体验
Plugins 模块整理与优化¶
插件模块需要整体清理与规范化。
Searcher 整合进 Client:
- 将 searcher 逻辑移入 Client, 由 Client 统一调度
- 每个站点声明:
support_search: bool Client.search()自动结合 fetcher 与 parser 执行- 不支持搜索的站点可在上层选择 fallback 到搜索引擎
搜索功能增强¶
增强现有搜索机制
- 在站点内搜索 API 不可用或结果为空时, 允许 fallback 到搜索引擎 (如 Google/Bing)
- 支持通过搜索引擎语法 (如
site:example.com <书名>) 自动发现书籍目录页 URL - 可配置搜索引擎类型、最大结果数与缓存策略
- 在 CLI 中提供交互式选择搜索结果并直接下载
广告过滤与章节标题归一化¶
Parser 中已对常见第三方网站广告进行基础过滤, 需要继续排查是否存在遗漏
章节名称格式归一化:
- 方案待设计 (作者习惯差异较大,如「第 1 章 标题」/「标题」/「第一章标题」等不一致格式)
- 设计正则匹配与中文数字解析方案,提取章号与标题正文
- 统一输出格式 (如
第 12 章 标题), 并在CleanerProcessor中提供归一化接口
已有站点维护¶
sfacg
- 可能因
cookie expired导致失效 - 需要考虑增加过期检测与重新获取机制 (暂未复现)
esjzone
部分使用自定义字体的页面, 即使加载了相同的字体文件, 仍出现以下现象:
- 字体文件已成功加载
- 部分文字能按照自定义字体正常渲染
- 另一部分文字没有按自定义字体渲染
EPUB 导出优化¶
性能优化:
- 当前主要性能瓶颈集中在
zipfile的写入阶段 - 在缓存完整的情况下,
snakeviz分析结果显示 95% 以上的耗时集中在 ZIP 文件写入与压缩过程
排版与样式优化:
- 目前导出的排版较为基础,整体观感仍有改进空间
- 需参考优秀 EPUB 样本,重点关注字体层次、段落间距、封面与章节页布局等设计细节
对比 OpenCC 与 opencc-python¶
- 对比 opencc-python 与 OpenCC 的差异
- 字典更新与维护情况
- 转换性能表现
- 安装方式与兼容性
Processor 扩展: 翻译支持¶
计划扩展 ProcessorProtocol,新增翻译类处理器,用于在导出流程中对章节内容进行翻译。
在线翻译服务
- 有道翻译
- 有道翻译 API
- 百度翻译
- 谷歌翻译
- 第三方库: googletrans
- Google Cloud Translation
- DeepL
- DeepL API
- Python 库: deepl
大模型 API 翻译
- OpenAI GPT 系列
- Anthropic Claude
- DeepSeek
- Google Gemini
- 支持自定义 prompt 与目标语言
自建 / 本地翻译模型
基于 HuggingFace / Transformers / llama.cpp / Ollama / vLLM 等框架。
可选模型:
配置示例
[[general.processors]]
name = "translator.google"
source = "zh"
target = "en"
[[general.processors]]
name = "translator.deepl"
api_key = "YOUR_KEY"
source = "en"
target = "fr"
[[general.processors]]
name = "translator.hf"
model_path = "/models/Sakura-13B"
system_prompt = "你是一个轻小说翻译模型,可以忠实翻译为简体中文。"
user_prompt = "请翻译成中文:{text}"
导出模板支持¶
- 增加可定制的导出模板 (基于
Jinja2)
示例模板:
{{ book_name }}
作者:{{ author }}
状态:{{ serial_status }} 更新:{{ update_time }}
总字数:{{ word_count }}
简介:
{{ summary }}
{% for volume in volumes %}
====== {{ volume.volume_name }} ======
{% if volume.volume_desc %}
{{ volume.volume_desc }}
{% endif %}
{% for ch in volume.chapters %}
======== {{ ch.title }} ========
{{ chapters_content[ch.chapterId] }}
{% endfor %}
{% endfor %}
打包与分发¶
- 计划提供可执行文件打包方案
- 待选工具:
pyinstallernuitka
低优先级计划¶
移除 Node.js 依赖¶
- 目前 QQ 与起点部分章节依赖 JavaScript 解密函数
- 计划尝试使用 Python 重写以避免
subprocess调用 - 实现复杂、耗时较长,暂时搁置
新增搜索相关站点¶
- 哔哩轻小说
- 搜索功能依赖两个 cookie:
cf_clearance与haha
- 搜索功能依赖两个 cookie:
- 神凑轻小说
- 搜索功能依赖
cf_clearancecookie
- 搜索功能依赖
- 名著阅读
- 搜索功能依赖
cf_clearancecookie
- 搜索功能依赖
- 一笔阁
- 搜索功能依赖
cf_clearancecookie
- 搜索功能依赖
新增站点支持¶
中文¶
- 话本小说
- 支持登录
- 米国度
- 支持登录
- 52书库
- 努努书坊
- 书海小说网
- VIP 章节需登录访问
- 连城读书
- VIP 章节需登录访问
- 长佩文学
- 所有章节需登录
- 页面含加密字段 (需解析
token/content)
- 有毒小说网
- 所有章节需登录
- 页面含加密字段 (需解析
token/content)
- 独阅读
- VIP 章节需登录
- 页面含加密字段 (需解析
token/content)
- 寒武纪年原创网
- VIP 章节需登录
- 页面含加密字段 (需解析
token/content)
- 书耽
- VIP 章节需登录
- 页面含加密字段 (需解析
token/content)
- 晋江文学城
- VIP 章节需登录
- 轻之国度
- 需登录
- 备用
- 息壤中文网
- 纵横中文网
- 海棠小说网
- 需重新排序
- 海棠书屋
- PO18 原创网
- 需登录
- 半夏小说
- 海棠文化線上文學城
- 完本神站
- 站点的章节内容经常混杂 HTML 文本
- 全职小说网
- 部分章节不全或无法访问
- 部分书籍出现
索引文件不存在!提示
- 笔趣阁
- 笔趣趣
curl_cffi
- 燃火小说
curl_cffi
- 42中文网
- 部分章节不全或无法访问
- 部分书籍出现
索引文件不存在!提示
- 文海小说
- 加载较慢,体验不佳
- 小说之家
- 繁体
- 目录分页过多
- 帝书阁
- 目录分页过多
- 结构和
小说之家几乎一样
- 大灰狼小说聚合网
- API 风格与当前框架不兼容,需要单独流程
- 99藏书网
- 需提供
cf_clearanceCookie
- 需提供
- 真白萌
- 需要登录
- 需提供
cf_clearanceCookie
- 塔读文学
- 部分章节需通过 APP 阅读
- 七猫中文网
- 后续章节需 APP 免费阅读
- 得间小说
- 后续章节需 APP 免费阅读
- 芒果书坊
- 加载较慢,体验不佳
日文¶
- カクヨム
- VIP 章节需登录访问
- Novel Up Plus
英文¶
- Asian Hobbyist
- Asianovel
- BabelNovel
- booknet
- Chicken Gege
- Chrysanthemum Garden
- Creative Novels
- Dreame
- Dummy Novels
- Exiled Rebels Scanlations
- FicFun
- Foxaholic
- GoodNovel
- Hosted Novel
- ISO Translations
- Light Novels Translations
- LNMTL
- MoonQuill
- NovelBuddy
- Novel Full
- Novelhall
- Novel Updates
- Penana
- Quotev
- Ranobes
- Re:Library
- ReadNovelFull
- Wuxia & Light Novels
- Royal Road
- Scribble Hub
- Second Life Translations
- Snowy Codex
- Tapas
- TapRead
- Truyen Full
- UntamedAlley
- VipNovel
- Volare Novels
- Wattpad
- Webnovel
- WoopRead
- Wordrain
- WuxiaCity
- WuXiaWorld
- NovelBin
- NovelAll
- FreeWebNOVEL
- Gray City
- Hiraeth Translation
- Indowebnovel
- Lib Read
- MEIO Novel
- RiseNovel
- Novels Online
- Paw Read
- Read From Net
- Aakura Novel
- WTR-LAB