5.0 KiB
5.0 KiB
项目 TODO 总览
汇总此前在对话中提出或实现的需求与改进想法。分为:已完成、待办、可选增强。
1. 已完成 (Done)
- 多策略解析封面图片(直接 cover., cover.html 内引用, OPF meta cover, xlink:href, URL decode, 递归搜索)
- 将 AI 书籍简评接入(DashScopeChatClient),生成 3 段 400 字左右精炼书评
- AI 简评加入 JSON (
bookintro.json
) 缓存,避免重复请求 - AI 调用改为后台线程,防止 UI 卡顿;增加线程列表与窗口关闭时的优雅等待,修复 QThread destroyed while running 问题
- 书籍信息与简评改为 HTML 展示;标题加粗彩色(紫红/洋红色)
- 保留 AI 书评段落结构(按空行/空白拆分为多段
<p>
) - 单封面右上角自适应缩放实现
- 扩展为三张封面并排展示(当前 + 后两本)
- 三张封面与文本区域对齐,初版等宽缩放
- 封面支持失真填充模式(IgnoreAspectRatio + setScaledContents)
- 封面宽度锁定 150,并按比例(1:1.4 初版 -> 1:1.2)设定高度上限自适应
- 将封面布局与 text edit 合并到
.ui
文件(ibook_export_app.ui
)而非运行时动态创建 - 导出笔记功能(Markdown 命名含时间戳 + 书名截断)
- 统计标签页:原生 Qt 图表(周 / 30 天 / 12 月 / 气泡汇总)集成
- 窗口几何尺寸持久化 (QSettings)
- 错误/无封面显示文本占位
2. 待办 (Backlog / 未实现需求)
- 封面点击交互:点击第 2 / 3 张封面切换列表选中对应书籍
- 缺失封面使用统一图片占位 (placeholder.png) 替代文字
- 封面高度完全由窗口高度动态拉伸(移除当前 45% 与 400 上限策略或做成配置)
- 可配置封面显示模式:等比缩放 / 失真填充 / 居中裁剪
- AI 书评请求取消 / 防抖(快速切换书籍时取消前一线程)
- AI 简评失败后重试按钮或自动重试逻辑
- 配置对话框持久化写回
config.py
(当前仅本次运行) - 导出格式可选 (Markdown / HTML / PDF)
- 导出时附带封面图片(复制到输出目录或转换为 Base64 嵌入)
- 书籍列表支持搜索 / 过滤 (作者 / 书名 / 最近打开时间)
- 异步加载封面(当前是同步文件系统扫描)
- 提取封面解析逻辑为独立模块并加单元测试
- 统计图表:添加 hover 提示/数据标签开关
- 年度 / 月度阅读统计图表空数据时的占位样式统一
- 增加日志记录(AI 请求、封面解析耗时)
- 国际化(中英切换)
- 转化为iPAD APP,熟悉iOS APP上架等流程。
- 前后端分离,后端云上部署,开放restful接口给前端调用。
3. 可选增强 (Nice to Have / Ideas)
- 缓存封面缩略图,减少重复磁盘读取与缩放开销
- 多线程并行预取下一批书封面与书评
- AI 书评提示词可定制(长度 / 语气 / 侧重点)
- 书评显示字数限制 / 展开收起
- 支持本地笔记全文搜索与高亮(跨书)
- Dark Mode 自适应 (Qt Palette + 自定义样式)
- 统计图数据导出 (CSV/JSON)
- 书籍元数据导入/刷新(重新扫描数据源)按钮
- 键盘快捷键:导出(E), 配置(C), 切换封面焦点, 上下本书(J/K)
- 自动更新检查机制
- 使用 QThreadPool + QRunnable 替代手动线程列表管理
- 添加简单单元测试框架 (pytest) 验证封面解析与导出核心逻辑
- 封面区域添加标题(“当前/下一本/再下一本”)并可隐藏
- 支持拖放本地 epub/ibooks 包,临时解析显示
- 界面字体可选择,config中配置
- 提供书籍下载功能(我的600+的书籍可以分享,版权问题?),web版本(最好单独申请域名,容易被封)
4. 技术债 (Tech Debt)
ibook_export_app.py
体积过大(UI/业务/AI/封面解析混杂)→ 拆分模块:cover_finder.py
/ai_review.py
/ui_main.py
- 缺少异常分类(目前大量 bare except 打印)
- 无统一日志(建议 logging + 级别控制)
- 缺少类型注解与 mypy 校验
- 缺少依赖检查与缺包提示 (PyQt6, charts)
5. 配置项建议
功能 | 建议配置键 | 说明 |
---|---|---|
封面模式 | COVER_MODE | stretch / keep_ratio / crop |
封面固定宽度 | COVER_FIXED_WIDTH | 默认 150 |
高宽比例 | COVER_HW_RATIO | 默认 1.2 |
AI 书评开关 | ENABLE_AI_REVIEW | bool |
AI 提示词模板 | AI_REVIEW_PROMPT | 可包含 {bookname} |
线程超时 | WORKER_TIMEOUT_SEC | 默认 8 |
6. 下一步优先级建议
- 点击封面切换书籍(提升可用性)
- 占位图与封面缓存(视觉一致 + 性能)
- AI 请求取消/防抖(提升体验)
- 模块拆分 + 日志/类型注解(降低维护成本)
- 测试与封面解析单元测试(稳定性)
若需要我直接实现其中某一项,请告诉我对应条目。欢迎补充。