Files
Auto_Bangumi/docs/ja/dev/plugins/points/metadata-provider.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

29 lines
1.5 KiB
Markdown

# メタデータソース (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 は元の値を保持し、失敗はブレーカーに数えられます。