From 53a2887717d9c1ee00a6125c11a34a256318e75e Mon Sep 17 00:00:00 2001 From: jxxghp Date: Sun, 3 Sep 2023 14:14:41 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E8=93=9D=E5=85=89=E5=8E=9F=E7=9B=98?= =?UTF-8?q?=E5=88=AE=E5=89=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/modules/douban/__init__.py | 56 +++++++++++++++++++--------- app/modules/douban/scraper.py | 2 +- app/modules/filetransfer/__init__.py | 2 + app/modules/themoviedb/__init__.py | 22 +++++++---- app/modules/themoviedb/scraper.py | 4 +- 5 files changed, 58 insertions(+), 28 deletions(-) diff --git a/app/modules/douban/__init__.py b/app/modules/douban/__init__.py index 6b100914..314aa9c8 100644 --- a/app/modules/douban/__init__.py +++ b/app/modules/douban/__init__.py @@ -166,22 +166,42 @@ class DoubanModule(_ModuleBase): """ if settings.SCRAP_SOURCE != "douban": return None - # 目录下的所有文件 - for file in SystemUtils.list_files(path, settings.RMT_MEDIAEXT): - if not file: - continue - logger.info(f"开始刮削媒体库文件:{file} ...") - try: - meta = MetaInfo(file.stem) - if not meta.name: + if SystemUtils.is_bluray_dir(path): + # 蓝光原盘 + logger.info(f"开始刮削蓝光原盘:{path} ...") + meta = MetaInfo(path.stem) + if not meta.name: + return + # 根据名称查询豆瓣数据 + doubaninfo = self.__match(name=mediainfo.title, year=mediainfo.year, season=meta.begin_season) + if not doubaninfo: + logger.warn(f"未找到 {mediainfo.title} 的豆瓣信息") + return + scrape_path = path / path.name + self.scraper.gen_scraper_files(meta=meta, + mediainfo=MediaInfo(douban_info=doubaninfo), + file_path=scrape_path) + else: + # 目录下的所有文件 + for file in SystemUtils.list_files(path, settings.RMT_MEDIAEXT): + if not file: continue - # 根据名称查询豆瓣数据 - doubaninfo = self.__match(name=mediainfo.title, year=mediainfo.year, season=meta.begin_season) - if not doubaninfo: - logger.warn(f"未找到 {mediainfo.title} 的豆瓣信息") - break - # 刮削 - self.scraper.gen_scraper_files(meta, MediaInfo(douban_info=doubaninfo), file) - except Exception as e: - logger.error(f"刮削文件 {file} 失败,原因:{e}") - logger.info(f"{file} 刮削完成") + logger.info(f"开始刮削媒体库文件:{file} ...") + try: + meta = MetaInfo(file.stem) + if not meta.name: + continue + # 根据名称查询豆瓣数据 + doubaninfo = self.__match(name=mediainfo.title, + year=mediainfo.year, + season=meta.begin_season) + if not doubaninfo: + logger.warn(f"未找到 {mediainfo.title} 的豆瓣信息") + break + # 刮削 + self.scraper.gen_scraper_files(meta=meta, + mediainfo=MediaInfo(douban_info=doubaninfo), + file_path=file) + except Exception as e: + logger.error(f"刮削文件 {file} 失败,原因:{e}") + logger.info(f"{path} 刮削完成") diff --git a/app/modules/douban/scraper.py b/app/modules/douban/scraper.py index 4e532822..5dfb8c75 100644 --- a/app/modules/douban/scraper.py +++ b/app/modules/douban/scraper.py @@ -17,7 +17,7 @@ class DoubanScraper: 生成刮削文件 :param meta: 元数据 :param mediainfo: 媒体信息 - :param file_path: 文件路径 + :param file_path: 文件路径或者目录路径 """ try: diff --git a/app/modules/filetransfer/__init__.py b/app/modules/filetransfer/__init__.py index 4b05af06..c2d80ef3 100644 --- a/app/modules/filetransfer/__init__.py +++ b/app/modules/filetransfer/__init__.py @@ -368,6 +368,8 @@ class FileTransferModule(_ModuleBase): # 转移整个目录 # 是否蓝光原盘 bluray_flag = SystemUtils.is_bluray_dir(in_path) + if bluray_flag: + logger.info(f"{in_path} 是蓝光原盘文件夹") # 目的路径 new_path = self.get_rename_path( path=target_dir, diff --git a/app/modules/themoviedb/__init__.py b/app/modules/themoviedb/__init__.py index ab444067..70685dad 100644 --- a/app/modules/themoviedb/__init__.py +++ b/app/modules/themoviedb/__init__.py @@ -187,14 +187,22 @@ class TheMovieDbModule(_ModuleBase): """ if settings.SCRAP_SOURCE != "themoviedb": return None - # 目录下的所有文件 - for file in SystemUtils.list_files(path, settings.RMT_MEDIAEXT): - if not file: - continue - logger.info(f"开始刮削媒体库文件:{file} ...") + + if SystemUtils.is_bluray_dir(path): + # 蓝光原盘 + logger.info(f"开始刮削蓝光原盘:{path} ...") + scrape_path = path / path.name self.scraper.gen_scraper_files(mediainfo=mediainfo, - file_path=file) - logger.info(f"{file} 刮削完成") + file_path=scrape_path) + else: + # 目录下的所有文件 + for file in SystemUtils.list_files(path, settings.RMT_MEDIAEXT): + if not file: + continue + logger.info(f"开始刮削媒体库文件:{file} ...") + self.scraper.gen_scraper_files(mediainfo=mediainfo, + file_path=file) + logger.info(f"{path} 刮削完成") def tmdb_discover(self, mtype: MediaType, sort_by: str, with_genres: str, with_original_language: str, page: int = 1) -> Optional[List[dict]]: diff --git a/app/modules/themoviedb/scraper.py b/app/modules/themoviedb/scraper.py index 5652f600..1b998523 100644 --- a/app/modules/themoviedb/scraper.py +++ b/app/modules/themoviedb/scraper.py @@ -22,7 +22,7 @@ class TmdbScraper: """ 生成刮削文件 :param mediainfo: 媒体信息 - :param file_path: 文件路径 + :param file_path: 文件路径或者目录路径 """ def __get_episode_detail(_seasoninfo: dict, _episode: int): @@ -37,7 +37,7 @@ class TmdbScraper: try: # 电影 if mediainfo.type == MediaType.MOVIE: - # 强制或者不已存在时才处理 + # 不已存在时才处理 if not file_path.with_name("movie.nfo").exists() \ and not file_path.with_suffix(".nfo").exists(): # 生成电影描述文件