feat: unify media source identity flow (#6129)

This commit is contained in:
jxxghp
2026-07-21 20:20:09 +08:00
parent 6f8b6cfbc9
commit 3b709b7f2e
78 changed files with 2519 additions and 1121 deletions
+9 -1
View File
@@ -67,6 +67,14 @@ class MetaInfo(BaseModel):
media_source: Optional[str] = None
# 显式媒体数据源原生ID
media_id: Optional[str] = None
# TMDB ID
tmdbid: Optional[int] = None
# 豆瓣 ID
doubanid: Optional[str] = None
# Bangumi ID
bangumiid: Optional[int] = None
# AniList ID
anilistid: Optional[int] = None
class MediaInfo(BaseModel):
@@ -318,7 +326,7 @@ class Context(BaseModel):
torrent_info: Optional[TorrentInfo] = None
# 候选资源来源:rss、spider、search、unknown
resource_source: Optional[str] = "unknown"
# 候选匹配来源:tmdbid、doubanid、imdbid、title、plugin、unknown
# 候选匹配来源:tmdbid、doubanid、bangumiid、anilistid、imdbid、title、plugin、unknown
match_source: Optional[str] = "unknown"
# 候选自身是否已经识别出有效媒体 ID
candidate_recognized: Optional[bool] = False
+4
View File
@@ -593,6 +593,10 @@ class SubscribeEpisodesRefreshEventData(ChainEventData):
# 输入参数
tmdbid: Optional[int] = Field(default=None, description="TMDB ID")
doubanid: Optional[str] = Field(default=None, description="豆瓣 ID")
bangumiid: Optional[int] = Field(default=None, description="Bangumi ID")
anilistid: Optional[int] = Field(default=None, description="AniList ID")
media_source: Optional[str] = Field(default=None, description="媒体数据源")
media_id: Optional[str] = Field(default=None, description="数据源原生 ID")
season: Optional[int] = Field(default=None, description="季号")
mediainfo: Any = Field(default=None, description="媒体信息")
current_total_episode: int = Field(default=0, description="主程序本次识别到的 TMDB 当前季总集数")
+12
View File
@@ -22,6 +22,14 @@ class DownloadHistory(BaseModel):
tvdbid: Optional[int] = None
# 豆瓣ID
doubanid: Optional[str] = None
# Bangumi ID
bangumiid: Optional[int] = None
# AniList ID
anilistid: Optional[int] = None
# 媒体数据源
media_source: Optional[str] = None
# 数据源原生ID
media_id: Optional[str] = None
# 季Sxx
seasons: Optional[str] = None
# 集Exx
@@ -83,6 +91,10 @@ class TransferHistory(BaseModel):
tvdbid: Optional[int] = None
# 豆瓣ID
doubanid: Optional[str] = None
# Bangumi ID
bangumiid: Optional[int] = None
# AniList ID
anilistid: Optional[int] = None
# 媒体数据源
media_source: Optional[str] = None
# 数据源原生ID
+6
View File
@@ -62,7 +62,10 @@ class Subscribe(BaseModel):
tmdbid: Optional[int] = None
doubanid: Optional[str] = None
bangumiid: Optional[int] = None
anilistid: Optional[int] = None
mediaid: Optional[str] = None
media_source: Optional[str] = None
media_id: Optional[str] = None
# 季号
season: Optional[int] = None
# 海报
@@ -171,6 +174,9 @@ class SubscribeShare(BaseModel):
tmdbid: Optional[int] = None
doubanid: Optional[str] = None
bangumiid: Optional[int] = None
anilistid: Optional[int] = None
media_source: Optional[str] = None
media_id: Optional[str] = None
# 季号
season: Optional[int] = None
# 海报
+4
View File
@@ -215,6 +215,10 @@ class ManualTransferItem(BaseModel):
tmdbid: Optional[int] = None
# 豆瓣ID
doubanid: Optional[str] = None
# Bangumi ID
bangumiid: Optional[int] = None
# AniList ID
anilistid: Optional[int] = None
# 媒体数据源
media_source: Optional[
Literal["themoviedb", "douban", "bangumi", "anilist"]