diff --git a/app/modules/themoviedb/scraper.py b/app/modules/themoviedb/scraper.py index 0b085924..47ad30d1 100644 --- a/app/modules/themoviedb/scraper.py +++ b/app/modules/themoviedb/scraper.py @@ -76,7 +76,7 @@ class TmdbScraper: """ images = {} if season is not None: - # 只需要集的图片 + # 只需要季集的图片 if episode: # 集的图片 if mediainfo.episode_group: @@ -100,25 +100,25 @@ class TmdbScraper: images[poster_name] = poster_url return images else: - # 主媒体图片 - _mediainfo = self.original_tmdb(mediainfo).get_info(mediainfo.type, mediainfo.tmdb_id) - if _mediainfo: - for attr_name, attr_value in _mediainfo.items(): - if attr_name.endswith("_path") and attr_value is not None: - image_url = f"https://{settings.TMDB_IMAGE_DOMAIN}/t/p/original{attr_value}" - image_name = attr_name.replace("_path", "") + Path(image_url).suffix - images[image_name] = image_url - return images - else: - for attr_name, attr_value in vars(mediainfo).items(): - if attr_value \ - and attr_name.endswith("_path") \ - and attr_value \ - and isinstance(attr_value, str) \ - and attr_value.startswith("http"): - image_name = attr_name.replace("_path", "") + Path(attr_value).suffix - images[image_name] = attr_value - return images + # 获取媒体信息中原有图片(TheMovieDb或Fanart) + for attr_name, attr_value in vars(mediainfo).items(): + if attr_value \ + and attr_name.endswith("_path") \ + and attr_value \ + and isinstance(attr_value, str) \ + and attr_value.startswith("http"): + image_name = attr_name.replace("_path", "") + Path(attr_value).suffix + images[image_name] = attr_value + # 替换原语言Poster + if settings.TMDB_SCRAP_ORIGINAL_IMAGE: + _mediainfo = self.original_tmdb(mediainfo).get_info(mediainfo.type, mediainfo.tmdb_id) + if _mediainfo: + for attr_name, attr_value in _mediainfo.items(): + if attr_name.endswith("_path") and attr_value is not None: + image_url = f"https://{settings.TMDB_IMAGE_DOMAIN}/t/p/original{attr_value}" + image_name = attr_name.replace("_path", "") + Path(image_url).suffix + images[image_name] = image_url + return images @staticmethod def get_season_poster(seasoninfo: dict, season: int) -> Tuple[str, str]: diff --git a/app/modules/themoviedb/tmdbapi.py b/app/modules/themoviedb/tmdbapi.py index a172f2eb..9e74eda1 100644 --- a/app/modules/themoviedb/tmdbapi.py +++ b/app/modules/themoviedb/tmdbapi.py @@ -25,29 +25,17 @@ class TmdbApi: def __init__(self, language: Optional[str] = None): # TMDB主体 - self.tmdb = TMDb() - # 域名 - self.tmdb.domain = settings.TMDB_API_DOMAIN - # 开启缓存 - self.tmdb.cache = True - # APIKEY - self.tmdb.api_key = settings.TMDB_API_KEY - # 语种 - self.tmdb.language = language or settings.TMDB_LOCALE - # 代理 - self.tmdb.proxies = settings.PROXY - # 调试模式 - self.tmdb.debug = False + self.tmdb = TMDb(language=language) # TMDB查询对象 - self.search = Search() - self.movie = Movie() - self.tv = TV() - self.season_obj = Season() - self.episode_obj = Episode() - self.discover = Discover() - self.trending = Trending() - self.person = Person() - self.collection = Collection() + self.search = Search(language=language) + self.movie = Movie(language=language) + self.tv = TV(language=language) + self.season_obj = Season(language=language) + self.episode_obj = Episode(language=language) + self.discover = Discover(language=language) + self.trending = Trending(language=language) + self.person = Person(language=language) + self.collection = Collection(language=language) def search_multiis(self, title: str) -> List[dict]: """ diff --git a/app/modules/themoviedb/tmdbv3api/tmdb.py b/app/modules/themoviedb/tmdbv3api/tmdb.py index 30b694d9..27cf77bd 100644 --- a/app/modules/themoviedb/tmdbv3api/tmdb.py +++ b/app/modules/themoviedb/tmdbv3api/tmdb.py @@ -19,15 +19,15 @@ class TMDb(object): _req = None _session = None - def __init__(self, obj_cached=True, session=None): - self._api_key = None - self._language = "en-US" + def __init__(self, obj_cached=True, session=None, language=None): + self._api_key = settings.TMDB_API_KEY + self._language = language or settings.TMDB_LOCALE or "en-US" self._session_id = None self._wait_on_rate_limit = True self._debug_enabled = False - self._cache_enabled = True - self._proxies = None - self._domain = None + self._cache_enabled = obj_cached + self._proxies = settings.PROXY + self._domain = settings.TMDB_API_DOMAIN self._page = None self._total_results = None self._total_pages = None