Anbao Schema
3. Anbao Schema: 定义你的脚本输入
Section titled “3. Anbao Schema: 定义你的脚本输入”我们通过扩展 JSON Schema 的 format
字段,来为您的脚本提供丰富的 UI 输入能力。
3.1 控制表单顺序
Section titled “3.1 控制表单顺序”默认情况下, 表单项会根据其字段名 (key) 的字母顺序进行渲染。
为了获得可控的、自定义的渲染顺序, 您可以在每个字段的 title
属性前加上 数字.
前缀。UI 将会解析这个数字并按升序对表单项进行排序。
- 带排序前缀:
"title": "1. 目标URL"
- 无排序前缀:
"title": "视频描述"
带有前缀的字段会排在没有前缀的字段前面。
3.2 UI 渲染规则
Section titled “3.2 UI 渲染规则”开发者意图 | schema 定义 (type 和 format ) | 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 (用户选择的文件夹的绝对路径) |
3.3 必填字段 (Required Fields)
Section titled “3.3 必填字段 (Required Fields)”要将一个或多个字段标记为必填,您可以在 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 上会显示为必填项,如果用户不填写就提交,表单将无法通过校验。
3.4 创建平台专属字段
Section titled “3.4 创建平台专属字段”您可以为 schema
中的某个字段添加一个 keyword
属性(一个字符串数组),来将其限制为只在特定平台下显示。
-
核心逻辑:
- 当用户在 UI 上选择了一个或多个“凭证”后,系统会获取这些凭证关联的平台的
base_url
。 - 系统会检查某个字段的
keyword
数组中的任何一个关键字,是否被任何一个已选平台的base_url
所包含。 - 如果匹配成功,该字段就会在表单中显示。
- 当用户在 UI 上选择了一个或多个“凭证”后,系统会获取这些凭证关联的平台的
-
通用字段: 如果一个字段没有
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]
。
- 行为分析: