From b98c0f205d5df58fb8589e283d3ed8eeb2e81bf7 Mon Sep 17 00:00:00 2001 From: jxxghp Date: Sat, 22 Jun 2024 20:58:24 +0800 Subject: [PATCH] fix scrape --- app/api/endpoints/aliyun.py | 2 +- app/chain/__init__.py | 2 +- app/chain/media.py | 2 +- app/helper/aliyun.py | 10 ++++++++++ app/modules/douban/__init__.py | 4 ++-- app/modules/themoviedb/__init__.py | 4 ++-- 6 files changed, 17 insertions(+), 7 deletions(-) diff --git a/app/api/endpoints/aliyun.py b/app/api/endpoints/aliyun.py index 7f30d907..04ec0f20 100644 --- a/app/api/endpoints/aliyun.py +++ b/app/api/endpoints/aliyun.py @@ -190,7 +190,7 @@ def image_aliyun(fileid: str, _: schemas.TokenPayload = Depends(verify_uri_token """ if not fileid: return schemas.Response(success=False) - url = AliyunHelper().download_url(fileid) + url = AliyunHelper().download(fileid) if url: # 重定向 return Response(status_code=302, headers={"Location": url}) diff --git a/app/chain/__init__.py b/app/chain/__init__.py index 186b3165..43cc812e 100644 --- a/app/chain/__init__.py +++ b/app/chain/__init__.py @@ -522,7 +522,7 @@ class ChainBase(metaclass=ABCMeta): self.run_module("scrape_metadata", path=path, mediainfo=mediainfo, metainfo=metainfo, transfer_type=transfer_type, force_nfo=force_nfo, force_img=force_img) - def metadata_img(self, mediainfo: MediaInfo, season: int = None) -> dict: + def metadata_img(self, mediainfo: MediaInfo, season: int = None) -> Optional[dict]: """ 获取图片名称和url :param mediainfo: 媒体信息 diff --git a/app/chain/media.py b/app/chain/media.py index 944d68fe..df500c92 100644 --- a/app/chain/media.py +++ b/app/chain/media.py @@ -464,7 +464,7 @@ class MediaChain(ChainBase, metaclass=Singleton): for file in files: self.manual_scrape(storage=storage, fileitem=file, meta=meta, mediainfo=mediainfo, - init_folder=False) + init_folder=True if file.type == "dir" else False) # 生成目录的nfo和图片 if init_folder: # 识别文件夹名称 diff --git a/app/helper/aliyun.py b/app/helper/aliyun.py index c0a13239..a6832d5b 100644 --- a/app/helper/aliyun.py +++ b/app/helper/aliyun.py @@ -571,6 +571,16 @@ class AliyunHelper: return None # 获取上传参数 result = res.json() + if result.get("'exist'"): + logger.info(f"文件{result.get('file_name')}已存在,无需上传") + return schemas.FileItem( + drive_id=result.get("drive_id"), + fileid=result.get("file_id"), + parent_fileid=result.get("parent_file_id"), + type="file", + name=result.get("file_name"), + path=f"{file_path.parent}/{result.get('file_name')}" + ) file_id = result.get("file_id") upload_id = result.get("upload_id") part_info_list = result.get("part_info_list") diff --git a/app/modules/douban/__init__.py b/app/modules/douban/__init__.py index 237cd46c..9c6e87fa 100644 --- a/app/modules/douban/__init__.py +++ b/app/modules/douban/__init__.py @@ -775,13 +775,13 @@ class DoubanModule(_ModuleBase): return None return self.scraper.get_metadata_nfo(mediainfo=mediainfo, season=season) - def metadata_img(self, mediainfo: MediaInfo, **kwargs) -> dict: + def metadata_img(self, mediainfo: MediaInfo, **kwargs) -> Optional[dict]: """ 获取图片名称和url :param mediainfo: 媒体信息 """ if settings.SCRAP_SOURCE != "douban": - return {} + return None return self.scraper.get_metadata_img(mediainfo=mediainfo) def obtain_images(self, mediainfo: MediaInfo) -> Optional[MediaInfo]: diff --git a/app/modules/themoviedb/__init__.py b/app/modules/themoviedb/__init__.py index 54da2671..8a70e490 100644 --- a/app/modules/themoviedb/__init__.py +++ b/app/modules/themoviedb/__init__.py @@ -349,14 +349,14 @@ class TheMovieDbModule(_ModuleBase): return None return self.scraper.get_metadata_nfo(meta=meta, mediainfo=mediainfo, season=season, episode=episode) - def metadata_img(self, mediainfo: MediaInfo, season: int = None) -> dict: + def metadata_img(self, mediainfo: MediaInfo, season: int = None) -> Optional[dict]: """ 获取图片名称和url :param mediainfo: 媒体信息 :param season: 季号 """ if settings.SCRAP_SOURCE != "themoviedb": - return {} + return None return self.scraper.get_metadata_img(mediainfo=mediainfo, season=season) def tmdb_discover(self, mtype: MediaType, sort_by: str, with_genres: str, with_original_language: str,