规则系统概览
anx-rule/2 是 AniBaka 当前规则格式。它用 JSON 数组描述数据如何在搜索、详情和播放三个阶段流动。
为什么使用管线
- 可序列化:规则可以远程订阅、缓存、比较版本和导入导出。
- 可校验:未知操作符、缺失参数和非法正则可以在安装前暴露。
- 可测试:解释器可以搭配假宿主做确定性单测。
- 可维护:常见站点模式由配方或通用操作符复用。
- 可回退:
first允许多个解析策略按顺序试跑且状态隔离。
三个阶段
| 阶段 | 固定输入 | 结构化输出 | 常见步骤 |
|---|---|---|---|
search | keyword | List<Series> | fetch、searchList、jsonSeries |
detail | seriesId | List<Source> | follow、episodes、jsonEpisodes |
play | episodeId | URL + 媒体元数据 | follow、playerAaaa、json、setMediaHeaders |
当前分发格式
官方 v2 规则文件以明文 JSON维护,方便审查与贡献。SourceCodec 仍兼容以下历史或分享格式:
- 裸 JSON。
baka://:gzip + Base64URL。bakax://:gzip + AES-256-CBC + Base64URL。- 包含
pack字段的 JSON 包装。
这些兼容格式不代表新规则应该继续加密。提交到当前 v2 规则库时使用可审查的明文 anx-rule/2。
规则仓库
rule/index.json 使用 anx-rulehub/2,每个条目包含:
key:规则稳定标识。title、intro、site、badge:展示元数据。rev:更新版本号。ref:相对规则文件路径。engine:应为anx-rule/2。
客户端解析索引、按 ref 获取规则、静态校验并安装。版本更新依赖 rev,规则内容变化时必须同步递增。
配方
规则可以声明配方,当前内置:
maccms:在未显式提供阶段时填充常见 suggest 搜索、详情列表和player_aaaa播放链。player_aaaa:填充常见 MacCMS 播放器解析与videoUrl回退。
显式管线优先,配方只补全空阶段。
