fix 优化豆瓣匹配

This commit is contained in:
jxxghp 2023-10-11 16:32:34 +08:00
parent 860d55a0e2
commit 70ea398f14
2 changed files with 24 additions and 6 deletions

View File

@ -29,18 +29,33 @@ class DoubanChain(ChainBase):
""" """
根据豆瓣信息识别媒体信息 根据豆瓣信息识别媒体信息
""" """
# 使用原标题匹配 # 优先使用原标题匹配
meta = MetaInfo(title=doubaninfo.get("original_title") or doubaninfo.get("title")) season_meta = None
if doubaninfo.get("original_title"):
meta = MetaInfo(title=doubaninfo.get("original_title"))
season_meta = MetaInfo(title=doubaninfo.get("title"))
# 合并季
meta.begin_season = season_meta.begin_season
else:
meta = MetaInfo(title=doubaninfo.get("title"))
# 年份
if doubaninfo.get("year"):
meta.year = doubaninfo.get("year")
# 处理类型 # 处理类型
if isinstance(doubaninfo.get('media_type'), MediaType): if isinstance(doubaninfo.get('media_type'), MediaType):
meta.type = doubaninfo.get('media_type') meta.type = doubaninfo.get('media_type')
else: else:
meta.type = MediaType.MOVIE if doubaninfo.get("type") == "movie" else MediaType.TV meta.type = MediaType.MOVIE if doubaninfo.get("type") == "movie" else MediaType.TV
# 识别媒体信息 # 使用原标题识别媒体信息
mediainfo: MediaInfo = self.recognize_media(meta=meta, mtype=meta.type) mediainfo = self.recognize_media(meta=meta, mtype=meta.type)
if not mediainfo: if not mediainfo:
logger.warn(f'{meta.name} 未识别到TMDB媒体信息') logger.warn(f'{meta.name} 未识别到TMDB媒体信息')
return Context(meta_info=meta, media_info=MediaInfo(douban_info=doubaninfo)) if season_meta and season_meta.name != meta.name:
# 使用主标题识别媒体信息
mediainfo = self.recognize_media(meta=season_meta, mtype=season_meta.type)
if not mediainfo:
logger.warn(f'{season_meta.name} 未识别到TMDB媒体信息')
return Context(meta_info=season_meta, media_info=MediaInfo(douban_info=doubaninfo))
logger.info(f'识别到媒体信息:{mediainfo.type.value} {mediainfo.title_year} {meta.season}') logger.info(f'识别到媒体信息:{mediainfo.type.value} {mediainfo.title_year} {meta.season}')
mediainfo.set_douban_info(doubaninfo) mediainfo.set_douban_info(doubaninfo)
return Context(meta_info=meta, media_info=mediainfo) return Context(meta_info=meta, media_info=mediainfo)

View File

@ -63,7 +63,10 @@ class TheMovieDbModule(_ModuleBase):
# 直接查询详情 # 直接查询详情
info = self.tmdb.get_info(mtype=mtype, tmdbid=tmdbid) info = self.tmdb.get_info(mtype=mtype, tmdbid=tmdbid)
elif meta: elif meta:
logger.info(f"正在识别 {meta.name} ...") if meta.begin_season:
logger.info(f"正在识别 {meta.name}{meta.begin_season}季 ...")
else:
logger.info(f"正在识别 {meta.name} ...")
if meta.type == MediaType.UNKNOWN and not meta.year: if meta.type == MediaType.UNKNOWN and not meta.year:
info = self.tmdb.match_multi(meta.name) info = self.tmdb.match_multi(meta.name)
else: else: