Appearance
书源 API 参考
这一节是 Readori 书源格式的字段级参考,供编写、调试或从其他通用书源生态迁移规则时查阅。 内容以 Models/BookSource.swift、Core/Engine/RuleType.swift 和 Core/Engine/JSEngine.swift 的实际实现为准;语法上兼容社区通用书源 JSON(包括 Legado 生态常见的字段名和规则写法), 但具体行为、边界情况和 JS 扩展方法以本节示例为准,不与任何第三方文档逐字一致。
Readori 的书源解析是独立实现(clean-room),只在功能格式上保持兼容,方便你直接 导入已有书源 JSON。遇到本节未覆盖的写法,请优先在应用内用书源批量验证 实测,而不是假设两套实现完全一致。
三份参考
- 字段参考——
bookSourceUrl到ruleReview的每个字段,含类型、 是否必填和取值示例。 - 规则语法——CSS/XPath/JSONPath/正则/JS 的写法、
&&/||组合、@put:/@get:变量、##替换链、索引与排除语法。 - JS 执行上下文——规则 JS 中可用的
java、book、chapter、source、cookie、result等对象,以及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##<[^>]+>##"
}
}这份骨架省略了 header、loginUrl、ruleExplore、分页 nextTocUrl/nextContentUrl 等可选字段——完整字段表见字段参考。
