From a3872d5bb525316ff8fd74864ba29fef44130607 Mon Sep 17 00:00:00 2001 From: jxxghp Date: Sat, 13 Sep 2025 08:50:20 +0800 Subject: [PATCH] =?UTF-8?q?fix=EF=BC=9A=E5=9C=A8fork=E8=BF=9B=E7=A8=8B?= =?UTF-8?q?=E4=B8=AD=E6=89=A7=E8=A1=8C=E6=96=87=E4=BB=B6=E6=95=B4=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/modules/filemanager/__init__.py | 9 ++++----- app/modules/filemanager/transhandler.py | 14 +++++--------- 2 files changed, 9 insertions(+), 14 deletions(-) diff --git a/app/modules/filemanager/__init__.py b/app/modules/filemanager/__init__.py index 5ecf1cfa..6ecfc456 100644 --- a/app/modules/filemanager/__init__.py +++ b/app/modules/filemanager/__init__.py @@ -130,15 +130,14 @@ class FileManagerModule(_ModuleBase): return None return storage_oper.support_transtype() - @staticmethod - def recommend_name(meta: MetaBase, mediainfo: MediaInfo) -> Optional[str]: + def recommend_name(self, meta: MetaBase, mediainfo: MediaInfo) -> Optional[str]: """ 获取重命名后的名称 :param meta: 元数据 :param mediainfo: 媒体信息 :return: 重命名后的名称(含目录) """ - handler = TransHandler() + handler = TransHandler(self._storage_schemas) # 重命名格式 rename_format = settings.RENAME_FORMAT(mediainfo.type) # 获取集信息 @@ -414,7 +413,7 @@ class FileManagerModule(_ModuleBase): :param target_oper: 目标存储操作对象 :return: {path, target_path, message} """ - handler = TransHandler() + handler = TransHandler(self._storage_schemas) # 检查目录路径 if fileitem.storage == "local" and not Path(fileitem.path).exists(): return TransferInfo(success=False, @@ -520,7 +519,7 @@ class FileManagerModule(_ModuleBase): 获取对应媒体的媒体库文件列表 :param mediainfo: 媒体信息 """ - handler = TransHandler() + handler = TransHandler(self._storage_schemas) ret_fileitems = [] # 检查本地媒体库 dest_dirs = DirectoryHelper().get_library_dirs() diff --git a/app/modules/filemanager/transhandler.py b/app/modules/filemanager/transhandler.py index 23f27421..c51b1d9b 100644 --- a/app/modules/filemanager/transhandler.py +++ b/app/modules/filemanager/transhandler.py @@ -14,7 +14,6 @@ from app.core.meta import MetaBase from app.core.metainfo import MetaInfoPath from app.helper.directory import DirectoryHelper from app.helper.message import TemplateHelper -from app.helper.module import ModuleHelper from app.log import logger from app.modules.filemanager.storages import StorageBase from app.schemas import TransferInfo, TmdbEpisode, TransferDirectoryConf, FileItem, TransferInterceptEventData, \ @@ -31,11 +30,7 @@ def _transfer_command_worker(args): :param args: 包含所有必要参数的元组 """ # 解包参数 - (fileitem_dict, target_storage, target_file_str, transfer_type, result_queue) = args - - # 重新创建存储操作对象 - storage_schemas = ModuleHelper.load('app.modules.filemanager.storages', - filter_func=lambda _, obj: hasattr(obj, 'schema') and obj.schema) + (fileitem_dict, target_storage, target_file_str, transfer_type, storage_schemas, result_queue) = args def __get_storage_oper(_storage: str, _func: Optional[str] = None) -> Optional[StorageBase]: """ @@ -109,7 +104,8 @@ class TransHandler: inner_lock: Lock = Lock() - def __init__(self): + def __init__(self, storage_schemas: List[StorageBase]): + self.storage_schemas = storage_schemas self.result = None def __reset_result(self): @@ -390,8 +386,7 @@ class TransHandler: finally: self.result = None - @staticmethod - def __transfer_command(fileitem: FileItem, target_storage: str, + def __transfer_command(self, fileitem: FileItem, target_storage: str, source_oper: StorageBase, target_oper: StorageBase, target_file: Path, transfer_type: str, ) -> Tuple[Optional[FileItem], str]: @@ -428,6 +423,7 @@ class TransHandler: target_storage, str(target_file), transfer_type, + self.storage_schemas, result_queue )