Expand description
v2 书源配置类型(纯 serde,镜像 book-source.schema.json)。
规则是显式结构化对象,无任何紧凑字符串 DSL。Rule 既是配置、也是供求值器
遍历的语法树(见 design D1/D6)。
Structs§
- Book
Info Op - 书详情操作:详情字段抽取(同
BookRules)+ 可选前置请求链(见 design D7-bis)。 字段与BookRules同名同序,故现有bookInfo:{...}JSON 逐字节解析等价;引擎经BookInfoOp::as_book_rules复用既有eval_book_info(不用flatten以保deny_unknown_fields)。 - Book
Rules - 一本书的字段抽取规则(均可省略)。
- Book
Source - v2 书源。
- Capture
- 一条结构化命名捕获:对所属请求的响应用
value规则求一个字符串, 写入scope指定的作用域层,后续步骤/抽取规则以{{name}}引用。 - Category
- 浏览分类。
- Cipher
Step - 加解密算子。默认值贴合「解密正文」主场景:
op=decrypt、inputEnc=base64、outputEnc=utf8。 - Clean
Step - 单步后处理。步内多算子按固定顺序执行:
regex/replace → trim → prepend → append → decode → encode → hash → cipher → fontMap → cn。 - Content
Rules - 正文规则(可选分页)。
- Expect
- 样例期望不变量。
- Explore
Op - 浏览操作。
- Hash
Step - 哈希算子(可选 HMAC)。
- Http
- HTTP 配置块。
- Leaf
Rule - 叶子规则:在当前上下文做一次抽取。
- PreStep
- 前置请求链中的一步:一个请求 + 其响应上的有序命名捕获(见 design D7-bis)。
本步 url/headers/body 可引用更早步骤捕获的
{{name}}。显式列字段(不用#[serde(flatten)]内嵌Request:Rule为 untagged 兜底,flatten 会令deny_unknown_fields校验失效)。 - Rate
Limit - 速率限制。
- Request
- 单个请求。
- Retry
- 重试策略。
- RowUi
- 声明式登录表单的一行(TUI 渲染对应控件,收集值加密存为 loginInfo)。
- Sample
- 黄金样例。
- Search
Op - 搜索操作。
- TocRules
- 目录规则(章节 + 分卷 + 可选分页)。
Enums§
- ByteEnc
- crypto 的 key/iv/输入/输出字节编码。
- Charset
- 字符集。
- Cipher
Algo - 对称加密算法。
- Cipher
Mode - 加密模式。
- Cipher
Op - 加解密方向。
- CnConvert
- 繁简转换方向。
- Codec
- 编解码方式(
decode/encode算子,以及 crypto 的字节↔串编码)。 - Extract
- 取值方式(枚举字符串 或
{ "attr": "..." })。 - Extract
Op - 文本/HTML 取值算子。
- Fetch
Mode - 取页模式:是否动用浏览器解反爬挑战。
真正是否开浏览器还需 app/用户级授权(两级取交集,见 OpenSpec change
browser-fetcherD12)。 - Hash
Algo - 哈希算法。
- HashOut
- 哈希/HMAC 输出编码。
- Method
- HTTP 方法。
- Padding
- 填充方式(gcm 忽略)。
- RowUi
Type - 声明式登录表单项类型。
- Rule
- 一条规则:叶子,或组合子。组合子按其唯一键判别(见 design D1)。
- UrlOr
Rule - URL 字段:可为字符串模板,或一条规则。
- VarScope
- 多步编排:捕获变量的作用域(三级级联 章节→书籍→书源,见 design D7-bis)。
默认
Chapter——最短寿命、零持久、零跨书外溢;get时按 章节→书籍→书源 取第一个非空。 - Via
- 抽取后端(决定
select的语义)。
Constants§
- SCHEMA_
ID - 期望的 schema 标识。