diff --git a/.DS_Store b/.DS_Store index caae08f..7cf8591 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/TODO.md b/TODO.md index 2b3e5a5..861a222 100644 --- a/TODO.md +++ b/TODO.md @@ -37,6 +37,8 @@ - [ ] 年度 / 月度阅读统计图表空数据时的占位样式统一 - [ ] 增加日志记录(AI 请求、封面解析耗时) - [ ] 国际化(中英切换) +- [ ] 转化为iPAD APP,熟悉iOS APP上架等流程。 +- [ ] 前后端分离,后端云上部署,开放restful接口给前端调用。 ## 3. 可选增强 (Nice to Have / Ideas) - [ ] 缓存封面缩略图,减少重复磁盘读取与缩放开销 @@ -54,6 +56,7 @@ - [ ] 封面区域添加标题(“当前/下一本/再下一本”)并可隐藏 - [ ] 支持拖放本地 epub/ibooks 包,临时解析显示 - [ ] 界面字体可选择,config中配置 +- [ ] **提供书籍下载功能(我的600+的书籍可以分享,版权问题?),web版本**(最好单独申请域名,容易被封) ## 4. 技术债 (Tech Debt) - [ ] `ibook_export_app.py` 体积过大(UI/业务/AI/封面解析混杂)→ 拆分模块:`cover_finder.py` / `ai_review.py` / `ui_main.py` @@ -81,3 +84,5 @@ --- 若需要我直接实现其中某一项,请告诉我对应条目。欢迎补充。 + + diff --git a/__pycache__/charts.cpython-312.pyc b/__pycache__/charts.cpython-312.pyc index 19f87c5..275b1a2 100644 Binary files a/__pycache__/charts.cpython-312.pyc and b/__pycache__/charts.cpython-312.pyc differ diff --git a/backup/booksnote.py b/backup/booksnote.py index f35e9c3..50a3b0d 100644 --- a/backup/booksnote.py +++ b/backup/booksnote.py @@ -15,7 +15,6 @@ from collections import defaultdict from annotationdata import get_annotations from opf_parse import parse_opf from toc_parse import parse_navpoints, find_label_path -import os from bs4 import BeautifulSoup def get_toc_tree(toc_path): diff --git a/charts.py b/charts.py index fd34b94..6dbee32 100644 --- a/charts.py +++ b/charts.py @@ -1,4 +1,4 @@ -from PyQt6.QtWidgets import QWidget, QLabel, QSizePolicy +from PyQt6.QtWidgets import QWidget, QSizePolicy from PyQt6.QtGui import QPainter, QColor, QPen, QPainterPath, QLinearGradient from PyQt6.QtCore import Qt, QRectF, QPointF import math diff --git a/data/BKLibrary.sqlite b/data/BKLibrary.sqlite index a4f3305..65021c9 100644 Binary files a/data/BKLibrary.sqlite and b/data/BKLibrary.sqlite differ diff --git a/data/Books.plist b/data/Books.plist index adea98b..5c20836 100644 Binary files a/data/Books.plist and b/data/Books.plist differ diff --git a/ibook_export_app.py b/ibook_export_app.py index 99af846..6cbcf9e 100644 --- a/ibook_export_app.py +++ b/ibook_export_app.py @@ -1,13 +1,11 @@ import sys import os import re -from urllib.parse import unquote import datetime from PyQt6.QtWidgets import ( - QApplication, QWidget, QPushButton, QLabel, QListWidget, - QFileDialog, QMessageBox, QLineEdit, QFormLayout, QDialog, QDialogButtonBox, QTextEdit, QHBoxLayout, QSizePolicy + QApplication, QWidget, QLabel, QMessageBox, QLineEdit, QFormLayout, QDialog, QDialogButtonBox, QSizePolicy ) -from PyQt6.QtGui import QIcon, QPixmap +from PyQt6.QtGui import QIcon from PyQt6.QtCore import QSettings, QSize, QByteArray from PyQt6 import uic import config diff --git a/ibook_export_app_matplot.py b/ibook_export_app_matplot.py index 8746699..f59b657 100644 --- a/ibook_export_app_matplot.py +++ b/ibook_export_app_matplot.py @@ -4,11 +4,11 @@ # --- IGNORE --- import sys, os, re, datetime, math from PyQt6.QtWidgets import ( - QApplication, QWidget, QLabel, QListWidget, QMessageBox, QLineEdit, - QFormLayout, QDialog, QDialogButtonBox, QSizePolicy, QHBoxLayout + QApplication, QWidget, QLabel, QMessageBox, QLineEdit, + QFormLayout, QDialog, QDialogButtonBox, QSizePolicy ) -from PyQt6.QtGui import QIcon, QPixmap -from PyQt6.QtCore import QSettings, QSize, QByteArray +from PyQt6.QtGui import QIcon +from PyQt6.QtCore import QSettings, QByteArray from PyQt6 import uic import config from exportbooknotes import BookNotesExporter diff --git a/ipad_app/.build/index-build/arm64-apple-macosx/debug/index/db/v13/p17306--e4b14b/lock.mdb b/ipad_app/.build/index-build/arm64-apple-macosx/debug/index/db/v13/p17306--e4b14b/lock.mdb index 196410f..b04fbf7 100644 Binary files a/ipad_app/.build/index-build/arm64-apple-macosx/debug/index/db/v13/p17306--e4b14b/lock.mdb and b/ipad_app/.build/index-build/arm64-apple-macosx/debug/index/db/v13/p17306--e4b14b/lock.mdb differ diff --git a/requirements.txt b/requirements.txt index 479acda..9cc5661 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,24 +1,10 @@ -# iBooks 笔记导出工具依赖库 -# GUI 界面支持 +# iBooks 笔记导出 & GUI 工具依赖 + PyQt6>=6.0.0 - -# Qt Designer 工具(用于编辑 .ui 文件和生成界面代码) PyQt6-tools>=6.0.0 - -# HTML/XML 解析 beautifulsoup4>=4.9.0 - -# 命令行交互界面(用于 exportbooknotes.py) InquirerPy>=0.3.0 - -# 可视化:已改为使用原生 Qt(QPainter) 自绘, 不再依赖 matplotlib - -# 以下为 Python 标准库,无需安装: -# sqlite3 - 数据库支持 -# plistlib - plist 文件解析 -# collections - 数据结构 -# datetime - 日期时间处理 -# os - 系统操作 -# re - 正则表达式 -# shutil - 文件操作 -# sys - 系统相关 +requests>=2.31.0 +openai>=1.0.0 +Pillow>=10.0.0 # 可选:封面缩略图生成 +# matplotlib 已移除(自绘 charts),若需要旧版本图表可手动添加:matplotlib>=3.7.0 diff --git a/run.sh b/run.sh new file mode 100755 index 0000000..ebadccc --- /dev/null +++ b/run.sh @@ -0,0 +1,4 @@ + +source ~/venv/bin/activate + +python ibook_export_app.py & diff --git a/uml/.DS_Store b/uml/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/uml/.DS_Store differ diff --git a/uml/iShot_2025-09-06_22.36.33.png b/uml/iShot_2025-09-06_22.36.33.png deleted file mode 100644 index 8fa7dbd..0000000 Binary files a/uml/iShot_2025-09-06_22.36.33.png and /dev/null differ diff --git a/uml/iShot_2025-09-06_22.44.01.png b/uml/iShot_2025-09-06_22.44.01.png deleted file mode 100644 index c1af549..0000000 Binary files a/uml/iShot_2025-09-06_22.44.01.png and /dev/null differ