メタデータソース (metadata_provider)
新しい作品のルールを保存する前に、AB は RSS 購読の「パーサー」の値でメタデータソースを選びます。ソースは正式タイトル、シーズン、年、ポスターを補完します。mikan と tmdb が組み込みです。@provider(points.METADATA_PROVIDER, id=...) で新しい値を追加できます。購読の追加時に、「パーサー」の一覧に表示されます。
python
from dataclasses import replace
from ab_sdk import Plugin, points, provider
from ab_sdk.ingest import Metadata, MetadataRequest
class BangumiTv:
async def enrich(self, request: MetadataRequest) -> Metadata | None:
info = await search(request.current.official_title) # 自前の実装
if info is None:
return None # 変更なし
return replace(request.current, official_title=info.name, poster_link=info.cover)
class MyPlugin(Plugin):
@provider(points.METADATA_PROVIDER, id="bangumi-tv")
def bgm(self):
return BangumiTv()request.kindは作品(bangumi)と映画(movie)を区別します。request.torrent.homepageはトレントの詳細ページ、request.languageは言語設定です。- 完全な新しい
Metadataを返します。通常はrequest.currentを変更して作ります。Noneは変更なしです。 - 失敗またはタイムアウトの場合、AB は元の値を保持し、失敗はブレーカーに数えられます。