commit
9c20d1a270
@ -132,6 +132,11 @@ class TheMovieDbModule(_ModuleBase):
|
|||||||
else:
|
else:
|
||||||
logger.info(f"{tmdbid} 识别结果:{mediainfo.type.value} "
|
logger.info(f"{tmdbid} 识别结果:{mediainfo.type.value} "
|
||||||
f"{mediainfo.title_year}")
|
f"{mediainfo.title_year}")
|
||||||
|
|
||||||
|
# 补充剧集年份
|
||||||
|
episode_years = self.tmdb.get_tv_episode_years(info.get("id"))
|
||||||
|
if episode_years:
|
||||||
|
mediainfo.season_years = episode_years
|
||||||
return mediainfo
|
return mediainfo
|
||||||
else:
|
else:
|
||||||
logger.info(f"{meta.name if meta else tmdbid} 未匹配到媒体信息")
|
logger.info(f"{meta.name if meta else tmdbid} 未匹配到媒体信息")
|
||||||
|
@ -1167,3 +1167,35 @@ class TmdbHelper:
|
|||||||
清除缓存
|
清除缓存
|
||||||
"""
|
"""
|
||||||
self.tmdb.cache_clear()
|
self.tmdb.cache_clear()
|
||||||
|
|
||||||
|
def get_tv_episode_years(self, tv_id: int):
|
||||||
|
"""
|
||||||
|
查询剧集组年份
|
||||||
|
"""
|
||||||
|
episode_groups = self.tv.episode_groups(tv_id)
|
||||||
|
if not episode_groups:
|
||||||
|
return {}
|
||||||
|
try:
|
||||||
|
episode_years = {}
|
||||||
|
for episode_group in episode_groups:
|
||||||
|
logger.info(f"正在获取剧集组年份:{episode_group.get('id')}...")
|
||||||
|
if episode_group.get('type') != 6:
|
||||||
|
# 只处理剧集部分
|
||||||
|
continue
|
||||||
|
group_episodes = self.tv.group_episodes(episode_group.get('id'))
|
||||||
|
if not group_episodes:
|
||||||
|
continue
|
||||||
|
for group_episode in group_episodes:
|
||||||
|
order = group_episode.get('order')
|
||||||
|
episodes = group_episode.get('episodes')
|
||||||
|
if not episodes or not order:
|
||||||
|
continue
|
||||||
|
# 当前季第一季时间
|
||||||
|
first_date = episodes[0].get("air_date")
|
||||||
|
if not first_date and str(first_date).split("-") != 3:
|
||||||
|
continue
|
||||||
|
episode_years[order] = str(first_date).split("-")[0]
|
||||||
|
return episode_years
|
||||||
|
except Exception as e:
|
||||||
|
print(str(e))
|
||||||
|
return {}
|
||||||
|
@ -33,6 +33,7 @@ class TV(TMDb):
|
|||||||
"on_the_air": "/tv/on_the_air",
|
"on_the_air": "/tv/on_the_air",
|
||||||
"popular": "/tv/popular",
|
"popular": "/tv/popular",
|
||||||
"top_rated": "/tv/top_rated",
|
"top_rated": "/tv/top_rated",
|
||||||
|
"group_episodes": "/tv/episode_group/%s",
|
||||||
}
|
}
|
||||||
|
|
||||||
def details(self, tv_id, append_to_response="videos,trailers,images,credits,translations"):
|
def details(self, tv_id, append_to_response="videos,trailers,images,credits,translations"):
|
||||||
@ -130,6 +131,17 @@ class TV(TMDb):
|
|||||||
key="results"
|
key="results"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def group_episodes(self, group_id):
|
||||||
|
"""
|
||||||
|
查询剧集组所有剧集
|
||||||
|
:param group_id: int
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
|
return self._request_obj(
|
||||||
|
self._urls["group_episodes"] % group_id,
|
||||||
|
key="groups"
|
||||||
|
)
|
||||||
|
|
||||||
def external_ids(self, tv_id):
|
def external_ids(self, tv_id):
|
||||||
"""
|
"""
|
||||||
Get the external ids for a TV show.
|
Get the external ids for a TV show.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user