Skip to content

サンプルプラグイン ​

サンプルはリポジトリの examples/plugins/ にあります。Docker イメージには含まれません。各サンプルに README とテストがあり、CI が 1 つずつ実行します。

サンプル内容
webhook-on-event@subscribe("*")、設定フォーム、secret_field。選んだイベントを URL に POST します。HMAC 署名は任意です
custom-rss-sitesearch_site Provider と http.request フック。プライベートサイトのリクエストに Cookie を付けます。SearchSiteContract
template-renamerename_strategy Provider。独自フィルター付きのファイル名テンプレート。RenameSkipped。RenameStrategyContract
nfo-writertorrent.organized を購読し、本編の隣に .nfo を書きます。パス変換。冪等
ntfy-notifiernotifier Provider。バックエンドが拒否したときは False を返します。NotifierContract
run-commandtorrent.organized / file.renamed を購読し、外部コマンドを実行します。引数リストはシェルを通しません。環境変数とプレースホルダー。タイムアウトで終了
strm-writertorrent.organized を購読し、メディアのフォルダー構成どおりに .strm を書きます。冪等
synology-chat-notifiernotifier Provider。フォームフィールド payload=<JSON> を送ります。HTTP 200 でも success: false なら False を返します
slack-notifiernotifier 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 <wheel のパス> を実行してから uv run pytest を実行します。

Jellyfin / Emby / Plex のライブラリ更新にプラグインを書く必要はありません。組み込みプラグイン media-server-refresh が対応しています。

AutoBangumiはMITライセンスの下で公開されています。(最新版: v3.3.2)