Files
Auto_Bangumi/docs/feature/plugins.md
Estrella Pan 4bcc6443fd docs: 用 4.0 界面重拍文档截图,中英文分开,新增插件与下载器截图
- 25 张截图按 4.0 界面重拍(1280x800):中文站用 zh-CN 界面,en/ja 站用 docs/public/image/en/ 下的英文界面
- 首页预览图按站点语言切换
- 新增下载器页、插件市场、插件配置、插件设置 4 张截图
- 修正文档:插件目录在插件市场页;API 令牌在用户与访问控制中管理(security.login_tokens/mcp_tokens 为启动时导入的旧项);默认搜索源含 anibt
2026-10-22 09:10:54 +02:00

110 lines
5.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 插件
从 4.0 开始,AB 的许多功能由插件提供:重命名方式、下载器、通知渠道、种子过滤、整理后的处理等。插件可以在 WebUI 中添加界面。本页说明如何使用插件;编写插件请参阅 [插件开发](/dev/plugins)。
## 内置插件
以下插件随 AB 发布,无需安装:
| 插件 | id | 默认 | 作用 |
| --- | --- | --- | --- |
| 重命名 | `rename` | 启用 | 提供重命名方式 `pn`、`advance`、`template`。见 [文件重命名](./rename.md) |
| 种子过滤 | `ingest-filters` | 启用 | 全局「包含过滤」:只下载名称匹配任一表达式的种子。留空时不过滤 |
| 媒体库刷新 | `media-server-refresh` | 启用 | 整理完成后请求 Jellyfin、Emby 或 Plex 刷新媒体库。地址或 API Key 未填写时不做任何事 |
| 硬链接到媒体库 | `hardlink` | 停用 | 把整理好的文件链接到媒体库目录。见 [硬链接到媒体库](./hardlink.md) |
qBittorrent、aria2 下载器与各通知渠道由 AB 自带,不能停用,也不出现在插件列表中。
## 插件设置页
打开 **设置 → 插件**。每个插件显示为一张卡片:
- **名称、id 与版本**。
- **启用** 开关。
- **状态**:「运行中」、「未启用」或「错误」。
- **来源**:「内置」、「本地」或「pip」。未签名的插件另有「未签名」标记。
- **错误原因**:插件加载失败或被自动停用时显示。
- **声明的权限**:插件在清单中声明的权限,如 `fs.write`、`network`。这只是说明,AB 不据此限制插件。
- **配置**:展开后显示插件的设置表单。
插件卡片上的改动不参与设置页底部的全局保存。启停开关与 **保存配置** 按钮立即写入 `config.json`,并立即生效,无需重启。
### 配置插件
![插件配置表单](/image/feature/plugin-config.png)
1. 展开插件卡片上的 **配置**。
2. 填写表单。列表类型的字段可以 **添加一行** 或 **删除** 一行。
3. 点击 **保存配置**。
AB 在保存前校验配置。不合法时保存失败,原配置保持不变。内置插件与签名插件在启用前就可以填写配置,所以有必填项的插件(如「硬链接到媒体库」)应先填写、保存,再启用。
表单不能编辑的字段显示「该字段类型暂不支持在界面中编辑」,请直接修改 `config.json` 的 `plugins.options.<插件 id>`。
### 插件出错
插件的代码连续 5 次出错或超时后,AB 自动停用它,卡片状态变为「错误」并显示原因。AB 其余部分照常运行:例如「重命名」插件被停用后,所有番剧按 `none` 处理。
修正原因后(例如修改配置并保存),或重启 AB,插件会重新加载。
## 插件来源与信任
插件在 AB 进程内运行,拥有与 AB 相同的权限。AB 按来源决定是否信任插件:
| 来源 | 位置 | 签名 | 如何启用 |
| --- | --- | --- | --- |
| 内置 | AB 自带 | 随 AB 发布 | 默认可用 |
| 签名目录 | `config/plugins/<id>/<版本>/` | AB 校验 ed25519 签名 | 安装即启用 |
| 本地 | `config/plugins/local/<id>/` | 无 | 开启「允许未签名插件」后启用 |
| pip | Python 包,entry point `autobangumi.plugins` | 无 | 同上 |
同一 id 出现在多个来源时,按 内置 > 签名目录 > 本地 > pip 的顺序取一个。
### 未签名插件
本地目录与 pip 安装的插件没有签名。在 **设置 → 插件** 中打开 **允许未签名插件** 之前,AB 不会执行这些插件的任何代码,它们也不显示配置表单。
::: warning
只启用你信任的插件。未签名插件可以读写 AB 能访问的所有文件和网络。
:::
安装本地插件:
1. 把插件目录复制到 `config/plugins/local/`,目录名与插件 id 相同。
2. 重启 AB。
3. 在 **设置 → 插件** 中打开 **允许未签名插件**,再启用该插件。
### 签名目录
AB 从 GitHub release `plugins` 读取签名插件目录。AB 在安装前校验目录与插件包的签名和 sha256,拒绝未签名或签名错误的包。从目录安装的插件视为已签名,不需要开启「允许未签名插件」。
| 请求 | 说明 |
| --- | --- |
| `GET /api/v1/plugins/catalog` | 列出目录中的插件与本机已安装的版本 |
| `POST /api/v1/plugins/{id}/install` | 安装或升级插件,并启用它 |
| `DELETE /api/v1/plugins/{id}` | 卸载从目录安装的插件。本地插件不受影响 |
在 **插件市场** 页面可以浏览目录,并安装、更新与卸载插件。在 **设置 → 插件** 中点「打开插件市场」进入该页面。签名与上架流程见 [签名与分发](/dev/plugins/signing)。
![插件市场](/image/feature/plugin-market.png)
## 插件界面
插件可以在 WebUI 的以下位置加入自己的界面。只有运行中的插件才显示界面。
| 位置 | 你看到的内容 |
| --- | --- |
| 设置页 | 设置分区列表末尾多出插件的分区,可以在侧栏与搜索中找到。例如「硬链接到媒体库」的「硬链接补链」 |
| 番剧编辑弹窗 | 弹窗顶部出现分段标签。「规则」是原有的编辑表单,其它标签由插件提供 |
| 番剧卡片 | 卡片标题下方的操作条 |
| 番剧列表页 | 页面顶部的小组件网格 |
| 侧边栏 | 拼图图标的入口,位于「设置」之前,打开地址 `/plugins/<插件 id>` |
手机的底部导航栏没有插件页入口。在手机上请直接打开地址。
插件界面出错时,该插件的所有界面显示「插件组件加载失败。」,其它插件与页面不受影响。重新打开页面会重新加载插件界面。
## 事件与自动化
插件可以订阅 AB 的事件,例如种子整理完成、下载器连接异常。插件也可以提供自己的 REST 接口(`/api/v1/plugins/<插件 id>/…`)与 MCP 工具。详见 [插件开发](/dev/plugins)。