界面已本地化;技能介绍与说明文档按所选语言由 AI 自动翻译,代码、命令、路径和专业术语保留原文,以原作者文档为准。
探索技能
效率与协作 · SKILL.md

calibre-library

calibre-library

【效率与协作】Use when browsing, searching, or downloading books from a Calibre library through its read-only AJAX API. Covers search, category browsing, book details, downloads, and the explicit no-write boundary.

独立 GitHub 快照 · 自动分类 · 以原作者文档为准

Jjianyun8023 / my-skillsApache-2.0

技能说明

GitHub

name: calibre-library description: >- Use when browsing, searching, or downloading books from a Calibre library through its read-only AJAX API. Covers search, category browsing, book details, downloads, and the explicit no-write boundary.

Calibre 书库(只读)

通过 Calibre Content Server AJAX API 搜索、浏览和下载书籍。

严禁任何写入、修改、删除操作。仅允许搜索、浏览和下载。

适用场景

  • 按关键词搜索书籍(标题、作者、标签、ISBN)
  • 按作者、出版社、标签、丛书分类浏览
  • 获取书籍详情和元数据
  • 下载书籍文件(epub、mobi、pdf 等)
  • 查看最新入库书籍

不适用

  • 添加、删除、修改书籍或元数据
  • 管理书库设置或用户权限
  • 上传文件到书库

配置

配置文件路径:~/.config/calibre-library/config.json

首次使用前,检查配置文件是否存在:

cat ~/.config/calibre-library/config.json

若不存在,提示用户创建:

mkdir -p ~/.config/calibre-library
cat > ~/.config/calibre-library/config.json << 'EOF'
{
  "base_url": "https://lib.pve.icu",
  "library_id": "library",
  "username": "",
  "password": ""
}
EOF
字段说明
base_urlCalibre Content Server 地址,不带尾部斜杠
library_id书库 ID,通常为 library
usernameBasic Auth 用户名,无认证留空
passwordBasic Auth 密码,无认证留空

认证模式

读取配置后根据 username/password 决定认证方式:

  • 无认证:两个字段均为空 → 直接请求
  • Basic Auth:任一字段非空 → curl 附加 -u username:password

实际使用时,先读配置文件得到 BASE_URL、LIB_ID、USERNAME、PASSWORD,再按是否启用 Basic Auth 拼接 curl 请求。

禁止将密码写入 SKILL.md 或提交到版本控制。

API 参考

详细接口、查询参数、高级搜索语法和响应字段见 reference.md。主技能只保留高频工作流:

  • 搜索书籍:/ajax/search
  • 获取单本 / 批量详情:/ajax/book/{id}/{library}、/ajax/books?ids=...
  • 分类浏览:/ajax/categories/{library}、/ajax/category/{hex}/{library}
  • 最新入库:基于 date: 搜索过滤
  • 下载与封面:/get/{format}/{id}/{library}、/get/cover/...

操作步骤

搜索并查看

  1. 读取配置获取 BASE_URL 和 LIB_ID
  2. 搜索:curl -sL $AUTH "$BASE_URL/ajax/search?query=关键词&num=10&library_id=$LIB_ID"
  3. 提取 book_ids
  4. 批量获取详情:curl -sL $AUTH "$BASE_URL/ajax/books?ids=ID1,ID2&library_id=$LIB_ID"
  5. 向用户展示结果

按作者/出版社/标签浏览

  1. 搜索 author:"刘慈欣" 找到书籍
  2. 从书籍详情的 category_urls.authors 获取作者 URL
  3. 请求该 URL 获取该作者全部 book_ids
  4. 批量获取详情

或直接浏览分类:

  1. 请求分类浏览接口列出作者/出版社列表
  2. 从 items[].url 获取目标条目的书籍列表
  3. 批量获取详情

下载书籍

  1. 获取书籍详情,确认可用 formats 和 main_format 路径
  2. 下载:curl -sL $AUTH "$BASE_URL/get/epub/{book_id}/$LIB_ID" -o ~/Downloads/书名.epub
  3. 校验文件大小是否匹配 format_metadata.{format}.size

查看最新入库

  1. 搜索:curl -sL $AUTH "$BASE_URL/ajax/search?query=date:>7daysago&num=20&sort=date&sort_order=desc&library_id=$LIB_ID"
  2. 提取 book_ids,批量获取详情并展示
  3. 根据用户需求调整时间范围(7daysago、30daysago、具体日期等)

输出格式

列表展示使用 bullet list:

- **三体三部曲** — 刘慈欣 (ID: 267085)
  格式: epub | 标签: 科幻, 经典 | ISBN: 9787229042066

单本详情包含:书名、作者、出版社、出版日期、丛书、标签、可用格式、ISBN、评分,以及从 comments 截取的简介(过长时截断)。

Checklist

使用前:

  • 配置文件 ~/.config/calibre-library/config.json 存在且内容正确
  • base_url 可访问(curl 返回 HTTP 200)
  • 确认操作为只读(搜索/浏览/下载),无任何写入意图

使用后:

  • 下载的文件大小与 format_metadata 一致
  • 未执行任何写入、修改、删除操作

常见错误

错误做法正确做法
在 SKILL.md 中硬编码 base_url 或密码从 ~/.config/calibre-library/config.json 读取
直接用 /mobile HTML 端点解析用 /ajax/ JSON 端点,结构化可靠
搜索后直接拼下载 URL先获取详情确认 formats 和 main_format 再下载
一次请求大量书籍详情批量接口 ids= 每次不超过 50 个,分批请求
尝试通过 API 修改书籍元数据严禁写操作,此技能仅支持只读访问
配置文件不存在时直接报错提示用户创建配置文件并填写参数
我的收藏