Skip to content

在线书源

设置中的书源管理支持从 HTTP/HTTPS URL 导入外部 JSON,也支持本地文件、分享内容和深链接。导入后来源先进入本地存储,再由用户决定是否启用。

支持的输入格式

导入解析会依次尝试几种常见的 JSON 形状,不需要手动选择格式:

jsonc
// 1. 单个书源对象
{ "bookSourceUrl": "https://example.com", "bookSourceName": "示例书源", ... }

// 2. 书源数组(最常见,批量导出/导入)
[
  { "bookSourceUrl": "https://a.example.com", ... },
  { "bookSourceUrl": "https://b.example.com", ... }
]

// 3. 带 wrapper key 的导出格式,自动识别 sources / bookSources / data / list 任一 key
{ "sources": [ { "bookSourceUrl": "https://a.example.com", ... } ] }

粘贴板里常见的不可见字符(NBSP、零宽空格、软连字符等)和书源分享文本里的说明性前导文字 会被自动清理,只要能定位到第一个 {[,就会尝试从那里开始解析——所以“从群聊/网页 复制的一段带说明文字的书源 JSON”通常可以直接粘贴导入,不需要自己先手动裁剪。

三种导入入口:

text
importFromJSON(jsonString)   直接粘贴/分享的 JSON 文本
importFromURL(urlString)     只接受 http/https,其他 scheme(含 file://)一律拒绝,
                              防止通过导入 URL 探测内网或读取本机文件
importFromFile(fileURL)      本地文件,自动尝试 UTF-8,失败再退回 GBK 解码

readori:// 深链接和识别为旧版兼容 scheme 的分享链接也会走同一套统一入口 (importFromExternalInput),先按 JSON 处理,识别失败再按 URL/深链接处理。

导入去重与合并

导入以 bookSourceUrl(规范化后)作为唯一键:已存在的书源会比较新旧两份的完整度, 保留信息更全的一份并计入“更新”,内容更差则保留原有的并计入“跳过”,全新的 bookSourceUrl 计入“新增”。导入结果会给出 total/added/updated/skipped/failed 五个数字,导入几十个书源时可以直接用这几个数字核对,而不需要逐条肉眼比对。

安全检查

  • 只导入自己信任的 URL 和文件。
  • 检查来源是否请求登录、Cookie、脚本或 WebView。
  • 不要把外部来源当作官方来源;站点可随时改变内容或规则。
  • 失败时导出脱敏诊断信息,不要上传完整请求头。

HTTP 200 不能证明来源可用。应用至少需要能够取到有效的书名、详情、章节和正文,才算完成验收—— 完整验收流程见书源批量验证。规则字段和语法参考见 书源字段规则语法

Readori 使用与开发文档