Skip to content

octavianx/calibreweb-libkeeper

Repository files navigation

📚 Calibre Book Checker

一个用于清理、核查和归档 Calibre 或 Calibre-Web 图书库中遗留或异常数据的工具集合。包含以下功能:

  • 检查书籍目录是否缺失或无格式文件
  • 查找未被 Calibre 数据库引用的孤立目录(孤儿目录)
  • 统计孤儿目录文件数量和大小
  • 自动打包孤儿目录并可交互确认删除
  • 支持 .env 环境变量配置
  • 生成 Markdown 格式归档报告

📦 包含的脚本

脚本文件名 功能说明
archive_orphan_dirs.py 查找并打包未被数据库引用的目录树,可交互删除原始目录,生成报告,支持 dry-run 模式
find_deep_orphan.py 查找所有未被数据库引用的目录树根(不含统计信息)
find_deep_orphan_w_size.py 📌 find_deep_orphan.py 的增强版:统计每个孤立目录的文件数和总大小
find_empty.p 快速列出书籍目录树中所有空目录
check_calibre_files.py(即 Canvas 中当前脚本) 检查 metadata.db 中记录的书籍路径是否真实存在,是否含有 .epub/.pdf 格式文件,支持 .env 配置

⚙️ 安装依赖

确保你使用的是 Python 3.7+ 推荐使用虚拟环境:

python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

requirements.txt

python-dotenv

📄 .env 示例

请在项目根目录创建 .env 文件,并填写如下内容:

BOOK_ROOT=/your/full/path/to/calibre/books
DB_PATH=/your/full/path/to/metadata.db

🧪 使用方法示例

检查数据库中的路径是否缺失或无格式文件

python check_calibre_files.py

查找孤儿目录(不带统计)

python find_deep_orphan.py

查找孤儿目录 + 文件数与大小统计

python find_deep_orphan_w_size.py

查找所有空目录

python find_empty.p

查找并打包孤儿目录,生成报告,并交互删除原始目录

python archive_orphan_dirs.py

如需 dry-run 模式(仅生成报告,实际不打包、不删除):

python archive_orphan_dirs.py --dry-run

📝 输出示例

运行 archive_orphan_dirs.py 后,将在 BOOK_ROOT 的上一级目录生成:

orphan_archives_20250518_231512/
├── orphan_report_20250518_231512.md
├── Trash_old_books.zip
├── Unused_Notes_2022.zip
...

报告内容如下

路径 文件数 大小 Zip 文件
Trash_old_books 42 32.1 MB Trash_old_books.zip
Unsorted_Notes 0 0.0 B (空目录未压缩)

About

some util to maintain the bookroot clean, delete the unnecessary files and find the empty recorders.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages