'update'
This commit is contained in:
@@ -158,31 +158,43 @@ answer = inquirer.fuzzy(
|
||||
|
||||
## 9.1 主要代码文件说明(细化)
|
||||
|
||||
|
||||
- `exportbooknotes.py`
|
||||
- 采用 OOP 设计,核心类为 `BookNotesExporter`:
|
||||
- `build_booksnote(bookid=None)`:构建结构化笔记数据。
|
||||
- `export_booksnote_to_md(booksnote, booksinfo, out_path=None)`:导出为 Markdown。
|
||||
- `find_file_by_ext`、`get_toc_tree` 等辅助方法。
|
||||
- 数据同步:自动复制 iBooks 数据库和元数据到本地。
|
||||
- 菜单交互:按最近打开时间戳排序,显示“书名 [时间戳]”,支持模糊搜索。
|
||||
- 只处理用户选中书籍的笔记,按章节分组导出 Markdown。
|
||||
- 依赖核心解析模块,负责主流程调度。
|
||||
|
||||
- `annotationdata.py`
|
||||
- OOP 设计,核心类为 `AnnotationManager`:
|
||||
- `get_annotations(bookid=None)`:返回所有或指定 assetid 的笔记。
|
||||
- `parse_location(location)`:静态方法,解析定位信息。
|
||||
- 解析 AEAnnotation.sqlite,提取所有或指定 assetid 的笔记。
|
||||
- 支持苹果时间戳转换,结构化输出。
|
||||
- parse_location 辅助函数,统一解析笔记定位信息。
|
||||
|
||||
- `booklist_parse.py`
|
||||
- OOP 设计,核心类为 `BookListManager`:
|
||||
- `get_books_info()`:获取书籍元数据。
|
||||
- `get_books_last_open()`:获取每本书的最近打开时间。
|
||||
- 解析 Books.plist,获取书籍元数据(书名、作者、路径、时间等)。
|
||||
- 解析 BKLibrary.sqlite,获取每本书的最近打开时间(zlastopendate,苹果时间戳)。
|
||||
- 提供统一数据接口,便于主流程排序和展示。
|
||||
- 解析 BKLibrary.sqlite,获取每本书的最近打开时间。
|
||||
|
||||
- `opf_parse.py`
|
||||
- OOP 设计,核心类为 `OPFParser`:
|
||||
- `parse_opf(filepath)`:静态方法,返回 id->href 映射。
|
||||
- 解析 epub 的 OPF 文件,获取章节与文件映射关系(idref -> href)。
|
||||
- 支持多种 epub 目录结构。
|
||||
|
||||
- `toc_parse.py`
|
||||
- OOP 设计,核心类为 `TOCParser`:
|
||||
- `parse_navpoints(navpoints)`:递归解析 navPoint 节点。
|
||||
- `find_label_path(node, ref, filepos, path)`:查找章节路径。
|
||||
- `find_section_by_selectedtext(html_path, selectedtext)`:通过选中文本定位章节标题。
|
||||
- `parse_html_title(html_path)`:解析 html 文件标题。
|
||||
- 解析 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