mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-11-09 15:19:54 +08:00
25 lines
748 B
Python
25 lines
748 B
Python
"""中心服务订阅载荷的共享投影。"""
|
|
|
|
from __future__ import annotations
|
|
|
|
from collections.abc import Collection
|
|
from typing import Any
|
|
|
|
from app.schemas.media import resolve_media_identity
|
|
|
|
|
|
def build_subscribe_payload(
|
|
item: object,
|
|
fields: Collection[str],
|
|
) -> dict[str, Any] | None:
|
|
"""过滤本地订阅字段并规范化中心服务使用的媒体身份。"""
|
|
if not isinstance(item, dict):
|
|
return None
|
|
media_source, media_id = resolve_media_identity(media=item)
|
|
if not media_source or not media_id:
|
|
return None
|
|
payload = {key: value for key, value in item.items() if key in fields}
|
|
payload["media_source"] = str(media_source)
|
|
payload["media_id"] = media_id
|
|
return payload
|