Skip to content

TODO

TODO

以下为后续计划与优化方向

Web UI 重构 (结构与逻辑)

当前 Web UI 为临时实现, 需要系统性重构, 包括:

  • 重新设计前端组件结构与内部逻辑
  • 优化数据流、状态管理与 API 调用方式
  • 加强错误处理与加载状态显示
  • 统一样式、布局与交互细节

CLI 重构 (命令结构与参数体系)

现有 CLI 命令与参数结构较为松散, 需要集中整理:

  • 重新设计命令结构 (如 download/search/info/export 等)
  • 归并相关参数, 减少冗余
  • 完善错误提示、帮助信息与交互体验

新增章节下载功能:

  • CLI 支持通过 --chapter-id 参数指定章节 ID, 仅下载该章节并导出为单独 txt 文件
  • 当传入章节 URL 时, 自动解析出 book_idchapter_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-pythonOpenCC 的差异
  • 字典更新与维护情况
  • 转换性能表现
  • 安装方式与兼容性

Processor 扩展: 翻译支持

计划扩展 ProcessorProtocol,新增翻译类处理器,用于在导出流程中对章节内容进行翻译。

在线翻译服务

大模型 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 %}

打包与分发

  • 计划提供可执行文件打包方案
  • 待选工具:
    • pyinstaller
    • nuitka

低优先级计划

移除 Node.js 依赖

  • 目前 QQ 与起点部分章节依赖 JavaScript 解密函数
  • 计划尝试使用 Python 重写以避免 subprocess 调用
  • 实现复杂、耗时较长,暂时搁置

新增搜索相关站点

  • 哔哩轻小说
    • 搜索功能依赖两个 cookie: cf_clearancehaha
  • 神凑轻小说
    • 搜索功能依赖 cf_clearance cookie
  • 名著阅读
    • 搜索功能依赖 cf_clearance cookie
  • 一笔阁
    • 搜索功能依赖 cf_clearance cookie

新增站点支持

中文

日文

英文