From d96e4561e23c1c76f8bf74422902add4ba3b8d7f Mon Sep 17 00:00:00 2001 From: Edward <73746306+WangEdward@users.noreply.github.com> Date: Fri, 12 Apr 2024 14:20:41 +0000 Subject: [PATCH] fix: metainfo for manual transfer --- app/chain/__init__.py | 5 +++-- app/modules/douban/__init__.py | 2 +- app/modules/themoviedb/__init__.py | 6 +++++- app/modules/themoviedb/scraper.py | 6 +++--- 4 files changed, 12 insertions(+), 7 deletions(-) diff --git a/app/chain/__init__.py b/app/chain/__init__.py index 41e7094f..2329f22a 100644 --- a/app/chain/__init__.py +++ b/app/chain/__init__.py @@ -14,6 +14,7 @@ from app.core.context import Context from app.core.context import MediaInfo, TorrentInfo from app.core.event import EventManager from app.core.meta import MetaBase +from app.core.metainfo import MetaInfo from app.core.module import ModuleManager from app.db.message_oper import MessageOper from app.helper.message import MessageHelper @@ -477,7 +478,7 @@ class ChainBase(metaclass=ABCMeta): return self.run_module("post_torrents_message", message=message, torrents=torrents) def scrape_metadata(self, path: Path, mediainfo: MediaInfo, transfer_type: str, - force_nfo: bool = False, force_img: bool = False) -> None: + metainfo: MetaInfo = None, force_nfo: bool = False, force_img: bool = False) -> None: """ 刮削元数据 :param path: 媒体文件路径 @@ -488,7 +489,7 @@ class ChainBase(metaclass=ABCMeta): :return: 成功或失败 """ self.run_module("scrape_metadata", path=path, mediainfo=mediainfo, - transfer_type=transfer_type, force_nfo=force_nfo, force_img=force_img) + metainfo=metainfo, transfer_type=transfer_type, force_nfo=force_nfo, force_img=force_img) def register_commands(self, commands: Dict[str, dict]) -> None: """ diff --git a/app/modules/douban/__init__.py b/app/modules/douban/__init__.py index 78dc7a14..1b2cb3f3 100644 --- a/app/modules/douban/__init__.py +++ b/app/modules/douban/__init__.py @@ -629,7 +629,7 @@ class DoubanModule(_ModuleBase): return infos.get("subject_collection_items") def scrape_metadata(self, path: Path, mediainfo: MediaInfo, transfer_type: str, - force_nfo: bool = False, force_img: bool = False) -> None: + metainfo: MetaInfo = None, force_nfo: bool = False, force_img: bool = False) -> None: """ 刮削元数据 :param path: 媒体文件路径 diff --git a/app/modules/themoviedb/__init__.py b/app/modules/themoviedb/__init__.py index 578be5ad..a37c7abb 100644 --- a/app/modules/themoviedb/__init__.py +++ b/app/modules/themoviedb/__init__.py @@ -7,6 +7,7 @@ from app import schemas from app.core.config import settings from app.core.context import MediaInfo from app.core.meta import MetaBase +from app.core.metainfo import MetaInfo from app.log import logger from app.modules import _ModuleBase from app.modules.themoviedb.category import CategoryHelper @@ -262,7 +263,7 @@ class TheMovieDbModule(_ModuleBase): return [] def scrape_metadata(self, path: Path, mediainfo: MediaInfo, transfer_type: str, - force_nfo: bool = False, force_img: bool = False) -> None: + metainfo: MetaInfo = None, force_nfo: bool = False, force_img: bool = False) -> None: """ 刮削元数据 :param path: 媒体文件路径 @@ -282,6 +283,7 @@ class TheMovieDbModule(_ModuleBase): self.scraper.gen_scraper_files(mediainfo=mediainfo, file_path=scrape_path, transfer_type=transfer_type, + metainfo=metainfo, force_nfo=force_nfo, force_img=force_img) elif path.is_file(): @@ -290,6 +292,7 @@ class TheMovieDbModule(_ModuleBase): self.scraper.gen_scraper_files(mediainfo=mediainfo, file_path=path, transfer_type=transfer_type, + metainfo=metainfo, force_nfo=force_nfo, force_img=force_img) else: @@ -301,6 +304,7 @@ class TheMovieDbModule(_ModuleBase): self.scraper.gen_scraper_files(mediainfo=mediainfo, file_path=file, transfer_type=transfer_type, + metainfo=metainfo, force_nfo=force_nfo, force_img=force_img) logger.info(f"{path} 刮削完成") diff --git a/app/modules/themoviedb/scraper.py b/app/modules/themoviedb/scraper.py index 6c6661c5..45dba3c1 100644 --- a/app/modules/themoviedb/scraper.py +++ b/app/modules/themoviedb/scraper.py @@ -26,7 +26,7 @@ class TmdbScraper: self.tmdb = tmdb def gen_scraper_files(self, mediainfo: MediaInfo, file_path: Path, transfer_type: str, - force_nfo: bool = False, force_img: bool = False): + metainfo: MetaInfo = None, force_nfo: bool = False, force_img: bool = False): """ 生成刮削文件,包括NFO和图片,传入路径为文件路径 :param mediainfo: 媒体信息 @@ -75,8 +75,8 @@ class TmdbScraper: file_path=image_path) # 电视剧,路径为每一季的文件名 名称/Season xx/名称 SxxExx.xxx else: - # 识别 - meta = MetaInfo(file_path.stem) + # 如果有上游传入的元信息则使用,否则使用文件名识别 + meta = metainfo or MetaInfo(file_path.stem) # 根目录不存在时才处理 if self._force_nfo or not file_path.parent.with_name("tvshow.nfo").exists(): # 根目录描述文件