From 9646745181edd5a0055a8716ec03c583fc190084 Mon Sep 17 00:00:00 2001 From: yangyux Date: Wed, 19 Feb 2025 17:27:38 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20mtype=E4=B8=BA=E7=A9=BA=E4=B8=94tmdbid?= =?UTF-8?q?=E5=9C=A8movie=E5=92=8Ctv=E4=B8=AD=E9=83=BD=E5=AD=98=E5=9C=A8?= =?UTF-8?q?=E6=97=B6=E7=9A=84=E8=AF=86=E5=88=AB=E9=94=99=E8=AF=AF=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/modules/themoviedb/__init__.py | 5 +++-- app/modules/themoviedb/tmdbapi.py | 19 +++++++++++++------ 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/app/modules/themoviedb/__init__.py b/app/modules/themoviedb/__init__.py index 35b18abc..34b5d679 100644 --- a/app/modules/themoviedb/__init__.py +++ b/app/modules/themoviedb/__init__.py @@ -118,11 +118,12 @@ class TheMovieDbModule(_ModuleBase): # 识别匹配 if not cache_info or not cache: + info = None # 缓存没有或者强制不使用缓存 if tmdbid: # 直接查询详情 info = self.tmdb.get_info(mtype=mtype, tmdbid=tmdbid) - elif meta: + if not info and meta: info = {} # 简体名称 zh_name = zhconv.convert(meta.cn_name, "zh-hans") if meta.cn_name else None @@ -173,7 +174,7 @@ class TheMovieDbModule(_ModuleBase): info = self.tmdb.get_info(mtype=info.get("media_type"), tmdbid=info.get("id")) else: - logger.error("识别媒体信息时未提供元数据或tmdbid") + logger.error("识别媒体信息时未提供元数据或唯一且有效的tmdbid") return None # 保存到缓存 diff --git a/app/modules/themoviedb/tmdbapi.py b/app/modules/themoviedb/tmdbapi.py index 391ecdfe..7ecda58a 100644 --- a/app/modules/themoviedb/tmdbapi.py +++ b/app/modules/themoviedb/tmdbapi.py @@ -578,7 +578,7 @@ class TmdbApi: genre_ids.append(genre.get('id')) return genre_ids - # 查询TMDB详ngeq + # 查询TMDB详情 if mtype == MediaType.MOVIE: tmdb_info = self.__get_movie_detail(tmdbid) if tmdb_info: @@ -588,13 +588,20 @@ class TmdbApi: if tmdb_info: tmdb_info['media_type'] = MediaType.TV else: - tmdb_info = self.__get_tv_detail(tmdbid) - if tmdb_info: + tmdb_info_tv = self.__get_tv_detail(tmdbid) + tmdb_info_movie = self.__get_movie_detail(tmdbid) + if tmdb_info_tv and tmdb_info_movie: + tmdb_info = None + logger.warn(f"无法判断tmdb_id:{tmdbid} 是电影还是电视剧") + elif tmdb_info_tv: + tmdb_info = tmdb_info_tv tmdb_info['media_type'] = MediaType.TV + elif tmdb_info_movie: + tmdb_info = tmdb_info_movie + tmdb_info['media_type'] = MediaType.MOVIE else: - tmdb_info = self.__get_movie_detail(tmdbid) - if tmdb_info: - tmdb_info['media_type'] = MediaType.MOVIE + tmdb_info = None + logger.warn(f"tmdb_id:{tmdbid} 未查询到媒体信息") if tmdb_info: # 转换genreid