Files
Auto_Bangumi/docs/ja/dev/plugins.md
Estrella Pan 3258fcca4b docs(4.0-P7): 插件开发文档拆分为总览加每个扩展点一页,补齐中英日三语
- docs/dev/plugins.md 改为总览与导航,旧内容拆入 docs/dev/plugins/
- 新增核心概念、配置表单、事件、前端挂载点、命令行、签名与分发、内置插件、示例页
- 每个扩展点一页,侧边栏由页面表生成
- 改正旧文档中下载器配置、hardlink path_map 与补链按钮的过时描述
2026-10-08 14:51:00 +02:00

5.3 KiB
Raw Blame History

プラグイン開発

::: warning プレビュー版 SDK プラグイン SDK ab_sdk は 4.0 の間は 0.x 版で、互換性のない変更が入る場合があります。4.1 で 1.0 に固定され、以後はセマンティックバージョニングに従います。マニフェストの sdk フィールドで対応する SDK のバージョン範囲を宣言します。互換性のないプラグインは AB が読み込みを拒否します。 :::

プラグインは Python パッケージです(フロントエンドコンポーネントを付けることもできます)。AutoBangumi のプロセス内で動作します。ダウンローダー、通知チャンネル、検索サイト、リネーム方式を追加できます。パイプラインへのフック、イベントの購読、REST ルート、MCP ツール、設定ページの UI も提供できます。

5 分で始める

  1. SDK とコマンドラインをインストールします。wheel は 4.0 の各 beta / 正式版の GitHub Releases に添付されます(ファイル名は autobangumi_sdk-<バージョン>-py3-none-any.whl)。PyPI には公開しません。

    uv tool install ./autobangumi_sdk-0.5.0-py3-none-any.whl
    
  2. ひな形を作ってテストします。

    ab-plugin new my-rename --kind rename   # notifier、search も選べます
    cd my-rename && uv run pytest           # ひな形にはコントラクトテストが付いています
    
  3. ローカルの AutoBangumi にリンクし、ホットリロードを有効にします。先に AB を一度起動して、config/ に設定ファイルを作っておきます。

    ab-plugin dev .
    

    AB を一度再起動します。以後は、プラグインのファイルを変更すると自動でリロードされます。

  4. パッケージ化します。ab-plugin pack . で dist/my-rename-0.1.0.zip ができます。

ドキュメント一覧

基本

拡張ポイント

拡張ポイント 種類 用途
ダウンローダー downloader Provider 新しいダウンローダーのバックエンド
通知チャンネル notifier Provider 新しい通知チャンネル
LLM プロバイダー llm_provider Provider 新しい LLM 解析プロバイダー
検索サイト search_site Provider 検索ボックスのサイト
定期タスク scheduled_task Provider 定期的に実行するタスク
メタデータソース metadata_provider Provider RSS 購読の「パーサー」
リネーム方式 rename_strategy Provider ファイル名の生成規則
ファイル分類 media_files Provider トレント内のファイルを本編・字幕・無視に分類
バージョン競合ポリシー conflict_policy Provider 新旧のトレントが同じファイル名を取り合う場合
REST ルート api_router Provider プラグイン独自の HTTP エンドポイント
MCP ツールとリソース mcp_tool mcp_resource Provider MCP クライアントへの公開
トレントフィルター torrent.filter filter フック トレントをダウンロードするか判定
解析結果の補正 title.parsed transform フック タイトル解析結果の補正
追加リクエストの変更 torrent.adding transform フック 保存パス・カテゴリ・タグの変更
HTTP リクエスト http.request transform フック AB の GET リクエストに Cookie などを追加
通知メッセージテンプレート message_template transform フック プッシュ文面の書き換え

プラグインはイベントの購読(@subscribe)と、専用のキーバリューストア・データディレクトリも使えます。