From 1751caef62b92336524cd87ec7a2854876722719 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=99=AF=E5=A4=A7=E4=BE=A0?= Date: Sat, 31 Jan 2026 15:22:07 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=A1=A5=E5=85=85=E5=87=A0=E5=A4=84seas?= =?UTF-8?q?on=E7=9A=84=E5=88=A4=E7=A9=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/agent/tools/impl/search_media.py | 2 +- app/agent/tools/impl/search_torrents.py | 2 +- app/api/endpoints/media.py | 6 +++--- app/api/endpoints/subscribe.py | 2 +- app/chain/media.py | 4 ++-- app/modules/douban/scraper.py | 4 ++-- app/modules/themoviedb/__init__.py | 4 ++-- app/modules/themoviedb/tmdbapi.py | 2 +- 8 files changed, 13 insertions(+), 13 deletions(-) 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