规则介绍
本文档面向想要编写或贡献樱花动漫规则的用户。你不需要掌握 JavaScript,但应先了解樱花动漫的基本使用方式,并根据规则类型准备 XPath 或 HTTP、JSON 方面的基础知识。
樱花动漫规则负责完成两件事:根据关键词返回作品列表,再根据选中的作品返回播放线路和剧集页面。视频资源的启发式获取属于樱花动漫的内部实现,你只需要帮助樱花动漫找到最终播放页面。
目前可以分别为搜索和选集选择以下规则类型:
- XPath 规则:请求网页 HTML,再通过 XPath 定位搜索结果、播放线路和剧集链接。适合服务端已经输出完整 HTML 的传统网站。请从 XPath 规则开发 开始,并参考 XPath 规则示例。
- API 规则:直接请求网站的 JSON 接口,再通过 JSONPath 提取作品、线路和剧集信息。适合由前端调用接口加载内容的网站。请阅读 API 规则开发。
搜索和选集类型可以独立选择,因此同一规则也可以组合使用 XPath 搜索与 API 选集,或 API 搜索与 XPath 选集。初次开发时建议先选择一种类型完成整条数据链路,再根据网站实际结构混合配置。
导入规则(yhdmgz 协议)
樱花动漫使用 yhdmgz:// 协议导入规则:规则 JSON 经 UTF-8 编码后做 Base64,再拼到协议名之后,形如 yhdmgz://<Base64 编码的规则 JSON>。在应用内通过「规则管理 → 添加规则 → 导入(粘贴链接 / 扫描二维码)」粘贴该链接即可完成导入,无需手动逐字段填写。
示例(Base64 内容以 ... 省略示意):
兼容性
依据 fork 源码 lib/utils/encoding.dart,解码时除 yhdmgz://<base64> 外,同样接受以下两种来源,因此旧的或第三方分享的规则链接仍可直接导入:
- 历史协议前缀
kazumi://<base64>; - 网页分享链接
https://qlyyz.xyz/share?gz=<base64>。
解码还对重复前缀做了容错——即使外层多包了一层(例如 yhdmgzyhdmgz://...)也能正确识别并解码出规则 JSON。
本节依据樱花动漫 fork 源码 lib/utils/encoding.dart(jsonToKazumiBase64 编码为 yhdmgz://,kazumiBase64ToJson 同时接受 yhdmgz:// / kazumi:// / https://.../share?gz= 前缀并容忍重复前缀)。
樱花动漫文档 · 规则格式兼容 Kazumi