跳转到内容

插件 API

12 endpoints.

GEThttp://localhost:3000/api/plugins/{type}

列出给定类型的全部插件。

路径参数

typestring · enum: download | login | metadata | script | all必填
要列出的插件类型。传 "all" 可以一次取回所有类型。

响应

200插件数组
[
  {
    "author": "Difegue",
    "description": "Searches chaika.moe for tags matching your archive.",
    "icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAAsTAAALEwEAmpwYAAAA\\nB3RJTUUH4wYCFQocjU4r+QAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUH\\nAAAEZElEQVQ4y42T3WtTdxzGn/M7J+fk5SRpTk7TxMZkXU84tTbVNrUT3YxO7HA4pdtQZDe7cgx2\\ns8vBRvEPsOwFYTDYGJUpbDI2wV04cGXCGFLonIu1L2ptmtrmxeb1JDkvv121ZKVze66f74eH7/f5\\nMmjRwMCAwrt4/9KDpflMJpPHvyiR2DPcJklJ3TRDDa0xk36cvrm8vDwHAAwAqKrqjjwXecPG205w\\nHBuqa9rk77/d/qJYLD7cCht5deQIIczbgiAEKLVAKXWUiqVV06Tf35q8dYVJJBJem2A7Kwi2nQzD\\nZig1CG93+PO5/KN6tf5NKpVqbsBUVVVFUUxwHJc1TXNBoxojS7IbhrnLMMx9pVJlBqFQKBKPxwcB\\nkJYgjKIo3QCE1nSKoghbfJuKRqN2RVXexMaQzWaLezyeEUEQDjscjk78PxFFUYRkMsltJgGA3t7e\\nyMLCwie6rr8iCILVbDbvMgwzYRjGxe0o4XC4s1AoHPP5fMP5/NNOyzLKAO6Ew+HrDADBbre/Ryk9\\nnzx81FXJNlEpVpF+OqtpWu2MpmnXWmH9/f2umZmZi4cOHXnLbILLzOchhz1YerJAs9m1GwRAg2GY\\nh7GYah488BJYzYW+2BD61AFBlmX/1nSNRqN9//792ujoaIPVRMjOKHoie3DytVGmp2fXCAEAjuMm\\nu7u7Umosho6gjL/u/QHeEgvJZHJ2K/D+/fuL4+PjXyvPd5ldkShy1UXcmb4DnjgQj/fd5gDA6/XS\\nYCAwTwh9oT3QzrS1+VDVi+vd3Tsy26yQVoFF3dAXJVmK96p9EJ0iLNOwKKU3CQCk0+lSOpP5WLDz\\nF9Q9kZqyO0SloOs6gMfbHSU5NLRiUOuax2/HyZPHEOsLw2SbP83eu/fLxrkNp9P554XxCzVa16MC\\n7+BPnTk9cfmH74KJE8nmga7Xy5JkZ8VKifGIHpoBb1VX8hNTd3/t/7lQ3OeXfFPvf/jBRw8ezD/a\\n7M/aWq91cGgnJaZ2VcgSdnV1XRNNd3vAoBVVYusmnEQS65hfgSG6c+zy3Kre7nF/KrukcMW0Zg8O\\nD08DoJutDxxOEb5IPUymwrq8ft1gLKfkFojkkRxemERCAQUACPFWRazYLJcrFGwQhyufbQQ7rFpy\\nLMkCwGZC34qPIuwp+XPOjBFwazQ/txrdFS2GGS/Xuj+pUKLGk1Kjvlded3s72lyGW+PLbGVcmrAA\\ngN0wTk1NWYODg9XOKltGtpazi5GigzroUnHN5nUHG1ylRsG7rDXHmnEpu4CeEtEKkqNc6QqlLc/M\\n8uT5lLH5eq0aGxsju1O7GQB498a5s/0x9dRALPaQEDZnYwnhWJtMCCNrjeb0UP34Z6e/PW22zjPP\\n+vwXBwfPvbw38XnXjk7GsiwKAIQQhjAMMrlsam45d+zLH6/8o6vkWcBcrXbVKQhf6bpucCwLjmUB\\nSmmhXC419eblrbD/TAgAkUjE987xE0c7ZDmk66ajUCnq+cL63fErl25s5/8baQPaWLhx6goAAAAA\\nSUVORK5CYII=",
    "name": "Chaika.moe",
    "namespace": "trabant",
    "oneshot_arg": "Chaika Gallery or Archive URL (Will attach matching tags to your archive)",
    "origin": "builtin",
    "parameters": [
      {
        "desc": "ipb_pass_hash cookie",
        "type": "string"
      },
      {
        "default_value": 0,
        "desc": "Force resampled archive download",
        "name": "forceresampled",
        "type": "bool"
      }
    ],
    "type": "metadata",
    "version": "2.1"
  }
]

填写你自己的实例地址,请求由浏览器直接发往该地址。

导出插件(GET /plugins/export?namespace=...,见 specs/006-ai-plugin-wizard FR-028)

Section titled “导出插件(GET /plugins/export?namespace=...,见 specs/006-ai-plugin-wizard FR-028)”
GEThttp://localhost:3000/api/plugins/export

尚未在此参考中描述。这个端点会被列出,是因为服务端确实注册了它,但它的请求与响应形状还没有写下来。

下面这段是 handler 自己的文档注释(crates/lanrurugi-api/src/plugins.rs:1038)的译文;原文以源码为准。

GET /plugins/export?namespace=...(specs/006-ai-plugin-wizard FR-028)——把一个已安装的插件(无论是否由向导创建)下载为包含它自己 .ts 文件的 .zip,文件以该命名空间自身最后一段路径命名(例如 custom/metadata/foo → 内含 foo.ts 的 foo.zip),而不是用完整命名空间,因为命名空间那个以 / 分隔的类别前缀在单独解压出来后没有意义。

响应

200该端点已响应;其确切结构尚未记录,见 crates/lanrurugi-api/src/plugins.rs:435 处的 handler。

该响应没有示例数据。

填写你自己的实例地址,请求由浏览器直接发往该地址。

批量导出插件(POST /plugins/export-batch,与单个导出相同,但一次处理多个命名空间)

Section titled “批量导出插件(POST /plugins/export-batch,与单个导出相同,但一次处理多个命名空间)”
POSThttp://localhost:3000/api/plugins/export-batch

尚未在此参考中描述。这个端点会被列出,是因为服务端确实注册了它,但它的请求与响应形状还没有写下来。

下面这段是 handler 自己的文档注释(crates/lanrurugi-api/src/plugins.rs:1109)的译文;原文以源码为准。

POST /plugins/export-batch——与 [export_plugin] 类似,但一次处理多个命名空间,打包进一个 .zip。每个条目以其完整命名空间路径存放(custom/download/foo.ts,而不只是 foo.ts),因为两个不同的命名空间可以共用同一个文件主名(custom/download/foo 与 custom/metadata/foo)——把两者都压成 foo.ts 会在写 zip 时静默丢掉其中一个。

响应

200该端点已响应;其确切结构尚未记录,见 crates/lanrurugi-api/src/plugins.rs:436 处的 handler。

该响应没有示例数据。

该端点需要管理员令牌:访客(只读)令牌会被服务端拒绝。

填写你自己的实例地址,请求由浏览器直接发往该地址。

DELETEhttp://localhost:3000/api/plugins/options

尚未在此参考中描述。这个端点会被列出,是因为服务端确实注册了它,但它的请求与响应形状还没有写下来。

对应的 handler 是 delete_plugin_options,位于 crates/lanrurugi-api/src/plugins.rs:931。

响应

200该端点已响应;其确切结构尚未记录,见 crates/lanrurugi-api/src/plugins.rs:437 处的 handler。

该响应没有示例数据。

该端点需要管理员令牌:访客(只读)令牌会被服务端拒绝。

填写你自己的实例地址,请求由浏览器直接发往该地址。

GEThttp://localhost:3000/api/plugins/options

尚未在此参考中描述。这个端点会被列出,是因为服务端确实注册了它,但它的请求与响应形状还没有写下来。

对应的 handler 是 get_plugin_options,位于 crates/lanrurugi-api/src/plugins.rs:785。

响应

200该端点已响应;其确切结构尚未记录,见 crates/lanrurugi-api/src/plugins.rs:437 处的 handler。

该响应没有示例数据。

填写你自己的实例地址,请求由浏览器直接发往该地址。

PUThttp://localhost:3000/api/plugins/options

尚未在此参考中描述。这个端点会被列出,是因为服务端确实注册了它,但它的请求与响应形状还没有写下来。

对应的 handler 是 put_plugin_options,位于 crates/lanrurugi-api/src/plugins.rs:854。

响应

200该端点已响应;其确切结构尚未记录,见 crates/lanrurugi-api/src/plugins.rs:437 处的 handler。

该响应没有示例数据。

该端点需要管理员令牌:访客(只读)令牌会被服务端拒绝。

填写你自己的实例地址,请求由浏览器直接发往该地址。

持久化某个插件 type 分组内拖拽排序后的显示顺序(PUT /plugins/priority)

Section titled “持久化某个插件 type 分组内拖拽排序后的显示顺序(PUT /plugins/priority)”
POSThttp://localhost:3000/api/plugins/priority

尚未在此参考中描述。这个端点会被列出,是因为服务端确实注册了它,但它的请求与响应形状还没有写下来。

下面这段是 handler 自己的文档注释(crates/lanrurugi-api/src/plugins.rs:567)的译文;原文以源码为准。

PUT /plugins/priority——持久化某个插件 type 分组内拖拽排序后的显示顺序(新增端点,legacy 没有对应功能:legacy 的 plugins.html.tt2 完全没有这种交互)。它把 order 中列出的每个命名空间在其自己的 LRR_PLUGIN_<NS> 哈希(与 customargs/enabled 同一处存储)里的 priority 字段重写为其在 order 中的位置,使后续的 GET /plugins/{type} 按此排序。实际类型与 body.type 不符的命名空间会被跳过(不写入,也不让整个请求报错)——为什么会有这个检查,见 PutPluginPriorityBody::kind 自身的文档。

响应

200该端点已响应;其确切结构尚未记录,见 crates/lanrurugi-api/src/plugins.rs:432 处的 handler。

该响应没有示例数据。

该端点需要管理员令牌:访客(只读)令牌会被服务端拒绝。

填写你自己的实例地址,请求由浏览器直接发往该地址。

POSThttp://localhost:3000/api/plugins/queue

执行一个插件并返回与本次执行对应的 Minion 任务 ID。若你想执行耗时较长、用标准端点可能会超时的插件,这个端点很有用。

查询参数

idstring · min: 40 · max: 40 · pattern可选
要在其上执行插件的档案 ID。只有元数据插件才必须提供。
priorityinteger · default: 0可选
Minion 任务的优先级。数字越大越优先。
pluginstring可选
要使用的插件命名空间。
argstring可选
执行该插件时可选的 One-Shot 参数。

响应

200已入队的任务
{
  "job": 86,
  "operation": "queue_plugin_exec",
  "success": 1
}

该端点需要管理员令牌:访客(只读)令牌会被服务端拒绝。

填写你自己的实例地址,请求由浏览器直接发往该地址。

读取插件当前持久化的 customargs(GET /plugins/settings?namespace=...,按定义补齐/截断)

Section titled “读取插件当前持久化的 customargs(GET /plugins/settings?namespace=...,按定义补齐/截断)”
GEThttp://localhost:3000/api/plugins/settings

尚未在此参考中描述。这个端点会被列出,是因为服务端确实注册了它,但它的请求与响应形状还没有写下来。

下面这段是 handler 自己的文档注释(crates/lanrurugi-api/src/plugins.rs:461)的译文;原文以源码为准。

GET /plugins/settings?namespace=...——插件当前持久化的 customargs(会被补齐/截断到它自己声明的 parameters.len() 恰好长度——一个比插件当前声明更长或更短的过期已保存数组,例如插件升级增删过参数之后,会被静默调整到当前形状,而不是作为不匹配暴露出来,与 legacy 在 get_plugin_parameters 里「先填默认值再覆盖」的行为一致)以及 enabled(legacy 的「自动运行」开关——is_plugin_enabled,从未设置时为 false,与 legacy 自己那个以 hexists 为条件的默认值相同)。

响应

200该端点已响应;其确切结构尚未记录,见 crates/lanrurugi-api/src/plugins.rs:422 处的 handler。

该响应没有示例数据。

填写你自己的实例地址,请求由浏览器直接发往该地址。

PUThttp://localhost:3000/api/plugins/settings

尚未在此参考中描述。这个端点会被列出,是因为服务端确实注册了它,但它的请求与响应形状还没有写下来。

对应的 handler 是 put_plugin_settings,位于 crates/lanrurugi-api/src/plugins.rs:497。

响应

200该端点已响应;其确切结构尚未记录,见 crates/lanrurugi-api/src/plugins.rs:422 处的 handler。

该响应没有示例数据。

该端点需要管理员令牌:访客(只读)令牌会被服务端拒绝。

填写你自己的实例地址,请求由浏览器直接发往该地址。

POSThttp://localhost:3000/api/plugins/upload

尚未在此参考中描述。这个端点会被列出,是因为服务端确实注册了它,但它的请求与响应形状还没有写下来。

对应的 handler 是 upload_plugin,位于 crates/lanrurugi-api/src/plugins.rs:3920。

响应

200该端点已响应;其确切结构尚未记录,见 crates/lanrurugi-api/src/plugins.rs:434 处的 handler。

该响应没有示例数据。

该端点需要管理员令牌:访客(只读)令牌会被服务端拒绝。

填写你自己的实例地址,请求由浏览器直接发往该地址。

POSThttp://localhost:3000/api/plugins/use

执行一个插件并返回结果。 如果用的是元数据插件,匹配到的档案不会在数据库中被修改。插件的更多说明见文档中对应的章节。

查询参数

idstring · min: 40 · max: 40 · pattern可选
要在其上执行插件的档案 ID。只有元数据插件才必须提供。
pluginstring可选
要使用的插件命名空间。
argstring可选
执行该插件时可选的 One-Shot 参数。

响应

200插件执行结果
{
  "data": {
    "new_tags": "pages:45"
  },
  "operation": "use_plugin",
  "success": 1,
  "type": "metadata"
}

该端点需要管理员令牌:访客(只读)令牌会被服务端拒绝。

填写你自己的实例地址,请求由浏览器直接发往该地址。