fix 优化豆瓣匹配
This commit is contained in:
parent
860d55a0e2
commit
70ea398f14
@ -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)
|
||||||
|
@ -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:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user