fix douban scraper

This commit is contained in:
jxxghp 2023-11-19 09:05:58 +08:00
parent b6ac5f0f84
commit 11d65e7527
3 changed files with 27 additions and 5 deletions

View File

@ -81,7 +81,7 @@ class DoubanChain(ChainBase, metaclass=Singleton):
""" """
return self.run_module("douban_movie_credits", doubanid=doubanid, page=page) return self.run_module("douban_movie_credits", doubanid=doubanid, page=page)
def tv_credits(self, doubanid: int, page: int = 1) -> List[dict]: def tv_credits(self, doubanid: str, page: int = 1) -> List[dict]:
""" """
根据TMDBID查询电视剧演职人员 根据TMDBID查询电视剧演职人员
:param doubanid: 豆瓣ID :param doubanid: 豆瓣ID

View File

@ -618,10 +618,17 @@ class DoubanModule(_ModuleBase):
else: else:
doubaninfo = self.douban_info(doubanid=mediainfo.douban_id, doubaninfo = self.douban_info(doubanid=mediainfo.douban_id,
mtype=mediainfo.type) mtype=mediainfo.type)
if not doubaninfo:
logger(f"未获取到 {mediainfo.douban_id} 的豆瓣媒体信息,无法刮削!")
return
# 豆瓣媒体信息
mediainfo = MediaInfo(douban_info=doubaninfo)
# 补充图片
self.obtain_images(mediainfo)
# 刮削路径 # 刮削路径
scrape_path = path / path.name scrape_path = path / path.name
self.scraper.gen_scraper_files(meta=meta, self.scraper.gen_scraper_files(meta=meta,
mediainfo=MediaInfo(douban_info=doubaninfo), mediainfo=mediainfo,
file_path=scrape_path, file_path=scrape_path,
transfer_type=transfer_type) transfer_type=transfer_type)
else: else:
@ -649,9 +656,16 @@ class DoubanModule(_ModuleBase):
else: else:
doubaninfo = self.douban_info(doubanid=mediainfo.douban_id, doubaninfo = self.douban_info(doubanid=mediainfo.douban_id,
mtype=mediainfo.type) mtype=mediainfo.type)
if not doubaninfo:
logger(f"未获取到 {mediainfo.douban_id} 的豆瓣媒体信息,无法刮削!")
continue
# 豆瓣媒体信息
mediainfo = MediaInfo(douban_info=doubaninfo)
# 补充图片
self.obtain_images(mediainfo)
# 刮削 # 刮削
self.scraper.gen_scraper_files(meta=meta, self.scraper.gen_scraper_files(meta=meta,
mediainfo=MediaInfo(douban_info=doubaninfo), mediainfo=mediainfo,
file_path=file, file_path=file,
transfer_type=transfer_type) transfer_type=transfer_type)
except Exception as e: except Exception as e:
@ -726,14 +740,14 @@ class DoubanModule(_ModuleBase):
else: else:
return [] return []
def douban_movie_recommend(self, doubanid: int) -> List[dict]: def douban_movie_recommend(self, doubanid: str) -> List[dict]:
""" """
根据豆瓣ID查询推荐电影 根据豆瓣ID查询推荐电影
:param doubanid: 豆瓣ID :param doubanid: 豆瓣ID
""" """
return self.doubanapi.movie_recommendations(subject_id=doubanid) or [] return self.doubanapi.movie_recommendations(subject_id=doubanid) or []
def douban_tv_recommend(self, doubanid: int) -> List[dict]: def douban_tv_recommend(self, doubanid: str) -> List[dict]:
""" """
根据豆瓣ID查询推荐电视剧 根据豆瓣ID查询推荐电视剧
:param doubanid: 豆瓣ID :param doubanid: 豆瓣ID

View File

@ -41,6 +41,10 @@ class DoubanScraper:
# 生成电影图片 # 生成电影图片
self.__save_image(url=mediainfo.poster_path, self.__save_image(url=mediainfo.poster_path,
file_path=file_path.with_name(f"poster{Path(mediainfo.poster_path).suffix}")) file_path=file_path.with_name(f"poster{Path(mediainfo.poster_path).suffix}"))
# 背景图
if mediainfo.backdrop_path:
self.__save_image(url=mediainfo.backdrop_path,
file_path=file_path.with_name(f"backdrop{Path(mediainfo.backdrop_path).suffix}"))
# 电视剧 # 电视剧
else: else:
# 不存在时才处理 # 不存在时才处理
@ -51,6 +55,10 @@ class DoubanScraper:
# 生成根目录图片 # 生成根目录图片
self.__save_image(url=mediainfo.poster_path, self.__save_image(url=mediainfo.poster_path,
file_path=file_path.with_name(f"poster{Path(mediainfo.poster_path).suffix}")) file_path=file_path.with_name(f"poster{Path(mediainfo.poster_path).suffix}"))
# 背景图
if mediainfo.backdrop_path:
self.__save_image(url=mediainfo.backdrop_path,
file_path=file_path.with_name(f"backdrop{Path(mediainfo.backdrop_path).suffix}"))
# 季目录NFO # 季目录NFO
if not file_path.with_name("season.nfo").exists(): if not file_path.with_name("season.nfo").exists():
self.__gen_tv_season_nfo_file(mediainfo=mediainfo, self.__gen_tv_season_nfo_file(mediainfo=mediainfo,