元数据源(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表示不修改。 - 失败或超时时保留原值,并计入熔断。