跳转到内容

数据包

进阶

把你的挑选规则、命名格式或资源名检查从一个安装复制到另一个安装。

数据包是一个只含数据的 JSON 文件。它不能运行代码、访问地址、添加条目、改动用户、碰媒体文件,也不能携带机密信息。

  • 你是所有者。
  • 你有一个带 admin 权限范围的 API 密钥。带 health_read、read 或 write 的密钥会被拒绝。
  • 你手上有数据包的 JSON。用别人给你的数据包,或者照着进阶里的结构自己写一个。

迁移一个数据包

迁移一个数据包 的链接

所有路由都在 http://your-server:6262 上。

  1. 把数据包发给 POST /api/v1/data-packs/validate。它只检查,不保存。你应该会看到 "valid": true。
  2. 把同一份 JSON 发给 POST /api/v1/data-packs。它会把数据包保存为未启用状态。此时什么都还没变。
  3. 打开 GET /api/v1/data-packs 列出已保存的数据包。GET /api/v1/data-packs/{id} 导出其中一个。
  4. 打开 GET /api/v1/data-packs/{id}/preview,每条规则带一个 pick_rule_id,最多带一个 naming_id。你会得到一个 approval_hash。
  5. 把同样的选择和这个哈希值发给 POST /api/v1/data-packs/{id}/apply。你应该会看到数据包的 id 和你选的规则 id。

预览:

GET /api/v1/data-packs/home-cinema/preview?pick_rule_id=balanced-web&naming_id=readable

应用的请求体:

{
"pick_rule_ids": ["balanced-web"],
"naming_id": "readable",
"approval_hash": "the hash returned by preview"
}

应用会改动什么

应用会改动什么 的链接
  • 每条选中的挑选规则都是新建的。它不会分配给任何条目。
  • 选中的命名方案只替换这些设置项:
    • 电影的文件和文件夹格式。
    • 剧集文件夹、季文件夹、特别篇文件夹、集、按日期播出和动画的格式。
    • 艺人文件夹、专辑文件夹、碟片文件夹、曲目和多碟曲目的格式。
    • 冒号和非法字符的处理方式。
    • 多集样式、播出日期样式和绝对集数的位数。
  • 导入时重命名、文件夹行为、标签读取和扫描限制从不包含在数据包里。

现象:应用时提示预览已过期。 原因:预览之后,数据包、某个会重名的挑选规则名称,或者某个要被替换的命名设置项变了。什么都没有应用。 解决办法:重新预览,再发送新的哈希值。

现象:导入时提示数据包已存在。 原因:数据包永远不会被替换。 解决办法:给新数据包换一个 id。

现象:权限错误。 原因:这个密钥不是所有者创建的 admin 密钥。 解决办法:以所有者身份创建一个 admin 密钥,然后用它。

限制和拒绝的情况
限制 值
format holyarrs-data-pack
version 1
一个数据包或一次导出的大小 256 KiB
挑选规则 32
命名方案 8
资源名检查 256
id 1 到 64 个字符:小写字母、数字、点、短横线、下划线。以字母或数字开头和结尾
应用的请求体 16 KiB

以下情况数据包会被拒绝:字段重复或无法识别、结尾之后还有多余的 JSON、画质或特征名称无法识别、命名用词有误、版本不是 1,或者数值超出上面的限制。每条资源名检查都会经过 HolyArrs 的解析器,并且必须符合它预期的每一项信息。

数据包结构
字段 内容
format、version、id、name 必填的头部
pick_rules 每条都有 id、name、kinds 和 rules(档位、特征、大小限制、协议、语言、顺序)
naming 每条都有 id、name 和 patterns(上面列出的命名设置项)
release_tests 每条都有 id、name、release_name、hints 和 expected(类型、画质、分辨率、片源、编码、标记)
路由和响应
路由 成功 拒绝
POST /api/v1/data-packs/validate 200,带 valid 和一份摘要 400 无效,413 太大
POST /api/v1/data-packs 201,带一份摘要,状态为 inactive 409 id 已存在,400,413
GET /api/v1/data-packs 200,带 data_packs
GET /api/v1/data-packs/{id} 200,带数据包的 JSON 404
GET /api/v1/data-packs/{id}/preview 200,带 approval_hash 查询参数不是 pick_rule_id 或 naming_id 时 400,404
POST /api/v1/data-packs/{id}/apply 200,带 pack_id、pick_rule_ids、naming_id 409 已过期,400,404

HolyArrs 是免费的。如果它帮你省了时间,欢迎在 GitHub 上点个 Star、赞助它或请我喝杯咖啡。