Skip to content

书源 API 参考

这一节是 Readori 书源格式的字段级参考,供编写、调试或从其他通用书源生态迁移规则时查阅。 内容以 Models/BookSource.swiftCore/Engine/RuleType.swiftCore/Engine/JSEngine.swift 的实际实现为准;语法上兼容社区通用书源 JSON(包括 Legado 生态常见的字段名和规则写法), 但具体行为、边界情况和 JS 扩展方法以本节示例为准,不与任何第三方文档逐字一致。

Readori 的书源解析是独立实现(clean-room),只在功能格式上保持兼容,方便你直接 导入已有书源 JSON。遇到本节未覆盖的写法,请优先在应用内用书源批量验证 实测,而不是假设两套实现完全一致。

三份参考

  • 字段参考——bookSourceUrlruleReview 的每个字段,含类型、 是否必填和取值示例。
  • 规则语法——CSS/XPath/JSONPath/正则/JS 的写法、&&/|| 组合、 @put:/@get: 变量、## 替换链、索引与排除语法。
  • JS 执行上下文——规则 JS 中可用的 javabookchaptersourcecookieresult 等对象,以及 java.* 方法分类速查表。

最小可用书源

下面这个骨架只包含跑通"搜索 → 详情 → 目录 → 正文"链路的必需字段,可以作为新书源的起点。 把 <...> 换成真实站点信息后,仍然需要用书源批量验证逐项确认, HTTP 200 不等于规则可用:

json
{
  "bookSourceUrl": "https://example.com",
  "bookSourceName": "示例书源",
  "bookSourceGroup": "示例分组",
  "bookSourceType": 0,
  "enabled": true,
  "enabledExplore": true,
  "searchUrl": "https://example.com/search?q={{key}}",
  "ruleSearch": {
    "bookList": ".book-list li",
    "name": ".title@text",
    "author": ".author@text",
    "bookUrl": "a@href",
    "coverUrl": "img@data-src"
  },
  "ruleBookInfo": {
    "name": "h1.book-title@text",
    "author": ".author@text",
    "intro": ".intro@text",
    "coverUrl": ".cover img@src",
    "tocUrl": ".toc-entry a@href"
  },
  "ruleToc": {
    "chapterList": "#chapter-list li",
    "chapterName": "a@text",
    "chapterUrl": "a@href"
  },
  "ruleContent": {
    "content": "#content@html##<[^>]+>##"
  }
}

这份骨架省略了 headerloginUrlruleExplore、分页 nextTocUrl/nextContentUrl 等可选字段——完整字段表见字段参考

Readori 使用与开发文档