Skip to content

配置 Schema

package.jsonopenvideoPlugin.schema 数组声明配置项,后台「插件管理」自动生成配置表单,保存后插件热重载。

json
{
  "openvideoPlugin": {
    "schema": [
      { "key": "interval",  "label": "间隔(秒)", "type": "number", "default": 60, "hint": "定时任务执行间隔" },
      { "key": "verbose",   "label": "详细日志",   "type": "boolean", "default": true },
      { "key": "level",     "label": "日志级别",   "type": "select", "default": "info",
        "options": [ { "value": "debug", "label": "调试" }, { "value": "info", "label": "普通" } ] },
      { "key": "message",   "label": "自定义消息", "type": "textarea", "default": "Hello" }
    ]
  }
}

字段属性

属性类型说明
keystring配置键名(必填)
labelstring表单显示名称
typestringstring / number / boolean / select / textarea(默认 string)
defaultany默认值(用户未设置时使用)
hintstring字段下方提示文字
optionsarrayselect 类型的选项:[{ value, label }]

读取配置

apply(ctx, config)config 即合并后的配置对象;运行期通过 ctx.config 读取。

js
apply(ctx, config) {
  const interval = config.interval ?? 60;
  setInterval(() => { ... }, interval * 1000);
}

说明

  • 配置持久化于 data/plugins.json(每个插件独立)
  • 保存配置后插件自动热重载(卸载 → 重新加载)
  • 未声明 schema 的插件后台不显示「配置」按钮(仍可通过 API 修改)

MIT License · Made with ♥ by yangyang8002