mirror of
https://github.com/EstrellaXD/Auto_Bangumi.git
synced 2026-10-29 19:57:14 +08:00
40 lines
2.5 KiB
Markdown
40 lines
2.5 KiB
Markdown
# 示例插件
|
||
|
||
示例在仓库的 [`examples/plugins/`](https://github.com/EstrellaXD/Auto_Bangumi/tree/main/examples/plugins) 下,不包含在 Docker 镜像里。每个示例都有自己的 README 和测试,CI 逐个运行。
|
||
|
||
| 示例 | 演示的能力 |
|
||
| --- | --- |
|
||
| `webhook-on-event` | `@subscribe("*")`、配置表单、`secret_field`;把选中的事件 POST 到一个 URL,可选 HMAC 签名 |
|
||
| `custom-rss-site` | `search_site` Provider 加 `http.request` 钩子;为私有站的请求附带 Cookie;`SearchSiteContract` |
|
||
| `template-rename` | `rename_strategy` Provider,自带过滤器的文件名模板;`RenameSkipped`;`RenameStrategyContract` |
|
||
| `nfo-writer` | 订阅 `torrent.organized`,在正片旁写 `.nfo`;路径映射;幂等 |
|
||
| `ntfy-notifier` | `notifier` Provider;后端拒绝时返回 `False`;`NotifierContract` |
|
||
| `wpush-notifier` | `notifier` Provider;WPUSH 多渠道推送,按返回 JSON 的 `code` 判断成败 |
|
||
| `onebot-notifier` | `notifier` Provider;OneBot v11 私聊 / 群消息,消息段附带海报 `poster_url` |
|
||
| `apprise-notifier` | `notifier` Provider;调用 Apprise API 服务器,支持 URL 列表与配置键两种方式 |
|
||
| `run-command` | 订阅 `torrent.organized` / `file.renamed`,运行外部命令;参数列表不经过 shell;环境变量与占位符;超时终止 |
|
||
| `strm-writer` | 订阅 `torrent.organized`,按媒体目录结构写 `.strm`;幂等 |
|
||
| `synology-chat-notifier` | `notifier` Provider;表单字段 `payload=<JSON>`;HTTP 200 但 `success: false` 时返回 `False` |
|
||
| `slack-notifier` | `notifier` Provider;mrkdwn 转义;带海报时附图片块 |
|
||
| `manual-pick` | 前端挂载点 `bangumi.detail.tab`、插件路由、插件 KV、事件 |
|
||
|
||
## 安装一个示例
|
||
|
||
```bash
|
||
cp -r examples/plugins/ntfy-notifier config/plugins/local/
|
||
```
|
||
|
||
在 设置 → 插件 中开启「允许未签名插件」,再启用该插件。
|
||
|
||
## 运行示例的测试
|
||
|
||
在仓库根目录运行,脚本逐个校验示例的清单并运行它的测试(与 CI 相同):
|
||
|
||
```bash
|
||
scripts/test_example_plugins.sh
|
||
```
|
||
|
||
脚本在 `backend/` 的环境里运行,SDK 以可编辑方式装在那里。示例的 `pyproject.toml` 依赖 `autobangumi-sdk`,PyPI 上没有这个包;把示例复制到仓库外单独测试时,先在示例目录里 `uv add <轮子路径>`,再 `uv run pytest`。
|
||
|
||
刷新 Jellyfin / Emby / Plex 媒体库不需要写插件:内置插件 `media-server-refresh` 已经支持。
|