This commit is contained in:
douboer 2025-09-08 09:54:04 +08:00
parent 227c7f806f
commit 71e9ffede1
15 changed files with 22 additions and 30 deletions

BIN
.DS_Store vendored

Binary file not shown.

View File

@ -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 @@
---
若需要我直接实现其中某一项,请告诉我对应条目。欢迎补充。

Binary file not shown.

View File

@ -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):

View File

@ -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

Binary file not shown.

Binary file not shown.

View File

@ -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

View File

@ -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

View File

@ -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

4
run.sh Executable file
View File

@ -0,0 +1,4 @@
source ~/venv/bin/activate
python ibook_export_app.py &

BIN
uml/.DS_Store vendored Normal file

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 312 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 858 KiB