mirror of
https://github.com/EstrellaXD/Auto_Bangumi.git
synced 2026-10-29 11:46:17 +08:00
- ab-plugin new 与示例插件的 requires-python 改为 >=3.14,与 SDK 0.6.0 一致 - 示例插件 ntfy-notifier / webhook-on-event 改用 httpx2 - openai / anthropic / google-genai 下限改为实际需要的大版本 - 插件 MCP 工具的 input_schema 无效时计入熔断 - 复制 RSS 链接在 HTTP 部署下回退到 execCommand(useClipboard legacy) - CI 步骤名、PLAYWRIGHT_VERSION、README 徽章与 e2e 指南改为 Python 3.14 / Playwright 1.64.1
手动选种(示例插件)
前端挂载点的演示:番剧详情页多一个「手动选种」标签,列出规则的种子,点「选用」记录选择。
用到的能力:
- 清单
[[plugin.ui]],挂载点bangumi.detail.tab - 插件自己的
api_router(/api/v1/plugins/manual-pick/picks/<bangumi_id>) - 宿主的只读 API(
/api/v1/bangumi/<id>/torrents,经host.api.get) - 事件:路由发布
manual-pick.picked,组件用host.events.on订阅并刷新
构建前端
前端源码在 web-src/(TypeScript,Vite 库模式,模板来自 webui/packages/plugin-ui/template/),产物写到 web/index.js,即清单 [[plugin.ui]] 的 entry。web/ 提交在仓库里,供本地开发和 ab-plugin validate 使用;插件仓库的 CI 会丢弃它并重新构建。
cd web-src && pnpm install && pnpm build
@autobangumi/plugin-ui 以 link: 指向仓库内的 webui/packages/plugin-ui(只提供类型)。
测试
uv run pytest -q -c pyproject.toml --rootdir . tests # 在 backend/ 目录下运行
安装
cp -r examples/plugins/manual-pick config/plugins/local/
在「设置 → 插件」中开启「允许未签名插件」,再启用 manual-pick。
SDK 0.x 没有「让下载器下载指定种子」的接口,所以插件只记录选择,不触发下载。 示例不在 Docker 镜像内。