diff --git a/app/agent/tools/impl/search_media.py b/app/agent/tools/impl/search_media.py index 63ee3243..b1abf57a 100644 --- a/app/agent/tools/impl/search_media.py +++ b/app/agent/tools/impl/search_media.py @@ -63,7 +63,7 @@ class SearchMediaTool(MoviePilotTool): if media_type: if result.type != MediaType(media_type): continue - if season and result.season != season: + if season is not None and result.season != season: continue filtered_results.append(result) diff --git a/app/agent/tools/impl/search_torrents.py b/app/agent/tools/impl/search_torrents.py index bedfdb2a..15a8957e 100644 --- a/app/agent/tools/impl/search_torrents.py +++ b/app/agent/tools/impl/search_torrents.py @@ -80,7 +80,7 @@ class SearchTorrentsTool(MoviePilotTool): if media_type and torrent.media_info: if torrent.media_info.type != MediaType(media_type): 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 # 使用正则表达式过滤标题(分辨率、质量等关键字) if regex_pattern and torrent.torrent_info and torrent.torrent_info.title: diff --git a/app/api/endpoints/media.py b/app/api/endpoints/media.py index eddef82b..69fbc1bb 100644 --- a/app/api/endpoints/media.py +++ b/app/api/endpoints/media.py @@ -195,7 +195,7 @@ async def seasons(mediaid: Optional[str] = None, tmdbid = int(mediaid[5:]) seasons_info = await TmdbChain().async_tmdb_seasons(tmdbid=tmdbid) if seasons_info: - if season: + if season is not None: return [sea for sea in seasons_info if sea.season_number == season] return seasons_info if title: @@ -207,11 +207,11 @@ async def seasons(mediaid: Optional[str] = None, if settings.RECOGNIZE_SOURCE == "themoviedb": seasons_info = await TmdbChain().async_tmdb_seasons(tmdbid=mediainfo.tmdb_id) if seasons_info: - if season: + if season is not None: return [sea for sea in seasons_info if sea.season_number == season] return seasons_info else: - sea = season or 1 + sea = season if season is not None else 1 return [schemas.MediaSeason( season_number=sea, poster_path=mediainfo.poster_path, diff --git a/app/api/endpoints/subscribe.py b/app/api/endpoints/subscribe.py index 7d31491c..4a331f9a 100644 --- a/app/api/endpoints/subscribe.py +++ b/app/api/endpoints/subscribe.py @@ -199,7 +199,7 @@ async def subscribe_mediaid( # 使用名称检查订阅 if title_check and title: meta = MetaInfo(title) - if season: + if season is not None: meta.begin_season = season result = await Subscribe.async_get_by_title(db, title=meta.name, season=meta.begin_season) diff --git a/app/chain/media.py b/app/chain/media.py index 220e7161..8eae13c5 100644 --- a/app/chain/media.py +++ b/app/chain/media.py @@ -958,10 +958,10 @@ class MediaChain(ChainBase): year = None if tmdbinfo.get('release_date'): 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']: season_number = seainfo.get("season_number") - if not season_number: + if season_number is None: continue air_date = seainfo.get("air_date") if air_date and season_number == season: diff --git a/app/modules/douban/scraper.py b/app/modules/douban/scraper.py index 9b2ad984..5fc4afab 100644 --- a/app/modules/douban/scraper.py +++ b/app/modules/douban/scraper.py @@ -21,7 +21,7 @@ class DoubanScraper: # 电影元数据文件 doc = self.__gen_movie_nfo_file(mediainfo=mediainfo) else: - if season: + if season is not None: # 季元数据文件 doc = self.__gen_tv_season_nfo_file(mediainfo=mediainfo, season=season) else: @@ -41,7 +41,7 @@ class DoubanScraper: :param episode: 集号 """ ret_dict = {} - if season: + if season is not None: # 豆瓣无季图片 return {} if episode: diff --git a/app/modules/themoviedb/__init__.py b/app/modules/themoviedb/__init__.py index 4cfd494d..4ee52c2e 100644 --- a/app/modules/themoviedb/__init__.py +++ b/app/modules/themoviedb/__init__.py @@ -798,7 +798,7 @@ class TheMovieDbModule(_ModuleBase): if not tmdb_info: return [] 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]: """ @@ -1168,7 +1168,7 @@ class TheMovieDbModule(_ModuleBase): if not tmdb_info: return [] 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]: """ diff --git a/app/modules/themoviedb/tmdbapi.py b/app/modules/themoviedb/tmdbapi.py index 417a5931..f0519d95 100644 --- a/app/modules/themoviedb/tmdbapi.py +++ b/app/modules/themoviedb/tmdbapi.py @@ -697,7 +697,7 @@ class TmdbApi: return {} ret_seasons = {} 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 ret_seasons[season_info.get("season_number")] = season_info return ret_seasons