跳转到内容

Anbao Schema

我们通过扩展 JSON Schema 的 format 字段,来为您的脚本提供丰富的 UI 输入能力。

默认情况下, 表单项会根据其字段名 (key) 的字母顺序进行渲染。

为了获得可控的、自定义的渲染顺序, 您可以在每个字段的 title 属性前加上 数字. 前缀。UI 将会解析这个数字并按升序对表单项进行排序。

  • 带排序前缀: "title": "1. 目标URL"
  • 无排序前缀: "title": "视频描述"

带有前缀的字段会排在没有前缀的字段前面。

开发者意图schema 定义 (typeformat)Anbao UI 渲染行为传递给脚本的值 (context.common)
短文本 (默认){"type": "string"}渲染一个标准的单行输入框。string
长文本{"type": "string", "format": "textarea"}渲染一个多行文本域。string
密码/密钥{"type": "string", "format": "password"}渲染一个密码输入框。string
日期{"type": "string", "format": "date"}渲染一个日期选择器。string (例如 “2025-10-09”)
日期和时间{"type": "string", "format": "date-time"}渲染一个日期和时间选择器。string (例如 “2025-10-09 15:10:46”)
下拉单选{"type": "string", "enum": ["A", "B"]}渲染一个下拉选择框。string (用户选择的项)
数值{"type": "number"}{"type": "integer"}渲染一个数字输入框。number
布尔值{"type": "boolean"}渲染一个开关或复选框。boolean
文件选择{"type": "string", "format": "file"}渲染一个“选择文件”按钮,打开系统文件选择对话框。string (用户选择的文件的绝对路径)
目录选择{"type": "string", "format": "directory"}渲染一个“选择文件夹”按钮,打开系统文件夹选择对话框。string (用户选择的文件夹的绝对路径)

要将一个或多个字段标记为必填,您可以在 schema 的顶层使用标准的 required 关键字。它是一个包含所有必填字段名称(key)的字符串数组。

  • 示例:

    // @schema
    // {
    // "type": "object",
    // "properties": {
    // "video_title": {
    // "type": "string",
    // "title": "1. 视频标题"
    // },
    // "video_description": {
    // "type": "string",
    // "title": "2. 视频描述 (可选)"
    // }
    // },
    // "required": ["video_title"]
    // }
  • 行为分析: 在这个例子中,video_title 字段在 UI 上会显示为必填项,如果用户不填写就提交,表单将无法通过校验。

您可以为 schema 中的某个字段添加一个 keyword 属性(一个字符串数组),来将其限制为只在特定平台下显示。

  • 核心逻辑:

    1. 当用户在 UI 上选择了一个或多个“凭证”后,系统会获取这些凭证关联的平台的 base_url
    2. 系统会检查某个字段的 keyword 数组中的任何一个关键字,是否被任何一个已选平台的 base_url包含
    3. 如果匹配成功,该字段就会在表单中显示。
  • 通用字段: 如果一个字段没有 keyword 属性,它将被视为通用字段,在任何情况下都会显示。

  • UI 提示: 对于专属字段,其标题旁边会自动附加 [keyword1, keyword2] 标识,以方便用户识别。

  • 示例:

    // @keywords bilibili, douyin
    // @schema
    // {
    // "title": "跨平台发布脚本",
    // "type": "object",
    // "properties": {
    // "common_description": {
    // "type": "string",
    // "title": "1. 通用视频描述"
    // },
    // "bili_danmaku_enabled": {
    // "type": "boolean",
    // "title": "2. 开启弹幕",
    // "keyword": ["bilibili"]
    // },
    // "douyin_challenge_name": {
    // "type": "string",
    // "title": "3. 参与挑战",
    // "keyword": ["douyin"]
    // }
    // }
    // }
    • 行为分析:
      • common_description 字段始终显示。
      • 当用户选择的凭证关联到 base_url 包含 bilibili 的平台时,bili_danmaku_enabled 字段会显示,其标题为 2. 开启弹幕 [bilibili]
      • 当用户选择的凭证关联到 base_url 包含 douyin 的平台时,douyin_challenge_name 字段会显示,其标题为 3. 参与挑战 [douyin]