Files
Estrella Pan 124b156b7a fix: 修复 4.0 工具链升级审查问题
- 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
2026-10-20 12:12:58 +02:00
..

手动选种(示例插件)

前端挂载点的演示:番剧详情页多一个「手动选种」标签,列出规则的种子,点「选用」记录选择。

用到的能力:

  • 清单 [[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 镜像内。