fix: 补充几处season的判空

This commit is contained in:
景大侠
2026-02-02 15:01:12 +08:00
parent 17773913ae
commit 1751caef62
8 changed files with 13 additions and 13 deletions
+1 -1
View File
@@ -63,7 +63,7 @@ class SearchMediaTool(MoviePilotTool):
if media_type: if media_type:
if result.type != MediaType(media_type): if result.type != MediaType(media_type):
continue continue
if season and result.season != season: if season is not None and result.season != season:
continue continue
filtered_results.append(result) filtered_results.append(result)
+1 -1
View File
@@ -80,7 +80,7 @@ class SearchTorrentsTool(MoviePilotTool):
if media_type and torrent.media_info: if media_type and torrent.media_info:
if torrent.media_info.type != MediaType(media_type): if torrent.media_info.type != MediaType(media_type):
continue continue
if season and torrent.meta_info and torrent.meta_info.begin_season != season: if season is not None and torrent.meta_info and torrent.meta_info.begin_season != season:
continue continue
# 使用正则表达式过滤标题(分辨率、质量等关键字) # 使用正则表达式过滤标题(分辨率、质量等关键字)
if regex_pattern and torrent.torrent_info and torrent.torrent_info.title: if regex_pattern and torrent.torrent_info and torrent.torrent_info.title:
+3 -3
View File
@@ -195,7 +195,7 @@ async def seasons(mediaid: Optional[str] = None,
tmdbid = int(mediaid[5:]) tmdbid = int(mediaid[5:])
seasons_info = await TmdbChain().async_tmdb_seasons(tmdbid=tmdbid) seasons_info = await TmdbChain().async_tmdb_seasons(tmdbid=tmdbid)
if seasons_info: if seasons_info:
if season: if season is not None:
return [sea for sea in seasons_info if sea.season_number == season] return [sea for sea in seasons_info if sea.season_number == season]
return seasons_info return seasons_info
if title: if title:
@@ -207,11 +207,11 @@ async def seasons(mediaid: Optional[str] = None,
if settings.RECOGNIZE_SOURCE == "themoviedb": if settings.RECOGNIZE_SOURCE == "themoviedb":
seasons_info = await TmdbChain().async_tmdb_seasons(tmdbid=mediainfo.tmdb_id) seasons_info = await TmdbChain().async_tmdb_seasons(tmdbid=mediainfo.tmdb_id)
if seasons_info: if seasons_info:
if season: if season is not None:
return [sea for sea in seasons_info if sea.season_number == season] return [sea for sea in seasons_info if sea.season_number == season]
return seasons_info return seasons_info
else: else:
sea = season or 1 sea = season if season is not None else 1
return [schemas.MediaSeason( return [schemas.MediaSeason(
season_number=sea, season_number=sea,
poster_path=mediainfo.poster_path, poster_path=mediainfo.poster_path,
+1 -1
View File
@@ -199,7 +199,7 @@ async def subscribe_mediaid(
# 使用名称检查订阅 # 使用名称检查订阅
if title_check and title: if title_check and title:
meta = MetaInfo(title) meta = MetaInfo(title)
if season: if season is not None:
meta.begin_season = season meta.begin_season = season
result = await Subscribe.async_get_by_title(db, title=meta.name, season=meta.begin_season) result = await Subscribe.async_get_by_title(db, title=meta.name, season=meta.begin_season)
+2 -2
View File
@@ -958,10 +958,10 @@ class MediaChain(ChainBase):
year = None year = None
if tmdbinfo.get('release_date'): if tmdbinfo.get('release_date'):
year = tmdbinfo['release_date'][:4] year = tmdbinfo['release_date'][:4]
elif tmdbinfo.get('seasons') and season: elif tmdbinfo.get('seasons') and season is not None:
for seainfo in tmdbinfo['seasons']: for seainfo in tmdbinfo['seasons']:
season_number = seainfo.get("season_number") season_number = seainfo.get("season_number")
if not season_number: if season_number is None:
continue continue
air_date = seainfo.get("air_date") air_date = seainfo.get("air_date")
if air_date and season_number == season: if air_date and season_number == season:
+2 -2
View File
@@ -21,7 +21,7 @@ class DoubanScraper:
# 电影元数据文件 # 电影元数据文件
doc = self.__gen_movie_nfo_file(mediainfo=mediainfo) doc = self.__gen_movie_nfo_file(mediainfo=mediainfo)
else: else:
if season: if season is not None:
# 季元数据文件 # 季元数据文件
doc = self.__gen_tv_season_nfo_file(mediainfo=mediainfo, season=season) doc = self.__gen_tv_season_nfo_file(mediainfo=mediainfo, season=season)
else: else:
@@ -41,7 +41,7 @@ class DoubanScraper:
:param episode: 集号 :param episode: 集号
""" """
ret_dict = {} ret_dict = {}
if season: if season is not None:
# 豆瓣无季图片 # 豆瓣无季图片
return {} return {}
if episode: if episode:
+2 -2
View File
@@ -798,7 +798,7 @@ class TheMovieDbModule(_ModuleBase):
if not tmdb_info: if not tmdb_info:
return [] return []
return [schemas.TmdbSeason(**sea) return [schemas.TmdbSeason(**sea)
for sea in tmdb_info.get("seasons", []) if sea.get("season_number")] for sea in tmdb_info.get("seasons", []) if sea.get("season_number") is not None]
def tmdb_group_seasons(self, group_id: str) -> List[schemas.TmdbSeason]: def tmdb_group_seasons(self, group_id: str) -> List[schemas.TmdbSeason]:
""" """
@@ -1168,7 +1168,7 @@ class TheMovieDbModule(_ModuleBase):
if not tmdb_info: if not tmdb_info:
return [] return []
return [schemas.TmdbSeason(**sea) return [schemas.TmdbSeason(**sea)
for sea in tmdb_info.get("seasons", []) if sea.get("season_number")] for sea in tmdb_info.get("seasons", []) if sea.get("season_number") is not None]
async def async_tmdb_group_seasons(self, group_id: str) -> List[schemas.TmdbSeason]: async def async_tmdb_group_seasons(self, group_id: str) -> List[schemas.TmdbSeason]:
""" """
+1 -1
View File
@@ -697,7 +697,7 @@ class TmdbApi:
return {} return {}
ret_seasons = {} ret_seasons = {}
for season_info in tv_info.get("seasons") or []: for season_info in tv_info.get("seasons") or []:
if not season_info.get("season_number"): if season_info.get("season_number") is None:
continue continue
ret_seasons[season_info.get("season_number")] = season_info ret_seasons[season_info.get("season_number")] = season_info
return ret_seasons return ret_seasons