Files
Auto_Bangumi/docs/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.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 元数据源(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` 表示不修改。
- 失败或超时时保留原值,并计入熔断。