This commit is contained in:
douboer
2025-08-15 13:49:02 +08:00
parent 8873c70a60
commit 0bc6844209
76 changed files with 726 additions and 11197 deletions

View File

@@ -155,14 +155,37 @@ answer = inquirer.fuzzy(
---
### 9.1 主要代码文件说明
- `exportbooknotes.py`:主程序,负责数据同步、交互式选择、笔记导出等全部流程,菜单排序和显示基于最近打开时间戳。
- `annotationdata.py`:负责从 iBooks 的 SQLite 数据库中解析和获取笔记数据。
- `booklist_parse.py`:负责解析 Books.plist获取书籍元数据如书名、路径等并提供 get_books_last_open 读取 BKLibrary.sqlite 获取最近打开时间。
- `opf_parse.py`:负责解析 epub 的 OPF 文件,获取章节与文件映射关系
- `toc_parse.py`:负责解析 NCX 目录文件,章节定位,以及辅助章节查找
- `backup/booksnote.py`:备份或历史版本的笔记处理脚本
## 9.1 主要代码文件说明(细化)
- `exportbooknotes.py`
- 数据同步:自动复制 iBooks 数据库和元数据到本地
- 菜单交互:按最近打开时间戳排序,显示“书名 [时间戳]”,支持模糊搜索
- 只处理用户选中书籍的笔记,按章节分组导出 Markdown
- 依赖核心解析模块,负责主流程调度。
- `annotationdata.py`
- 解析 AEAnnotation.sqlite提取所有或指定 assetid 的笔记。
- 支持苹果时间戳转换,结构化输出。
- parse_location 辅助函数,统一解析笔记定位信息。
- `booklist_parse.py`
- 解析 Books.plist获取书籍元数据书名、作者、路径、时间等
- 解析 BKLibrary.sqlite获取每本书的最近打开时间zlastopendate苹果时间戳
- 提供统一数据接口,便于主流程排序和展示。
- `opf_parse.py`
- 解析 epub 的 OPF 文件获取章节与文件映射关系idref -> href
- 支持多种 epub 目录结构。
- `toc_parse.py`
- 解析 NCX 目录文件,递归构建章节树结构。
- find_label_path支持通过 ref 和 filepos 查找完整 label 路径。
- find_section_by_selectedtext通过选中文本在 html 文件中定位章节标题。
- parse_html_title解析 html 文件标题。
- `backup/booksnote.py`
- 历史/备份脚本,辅助数据迁移或格式转换。
---