'update'
This commit is contained in:
@@ -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`
|
||||
- 历史/备份脚本,辅助数据迁移或格式转换。
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user