fix:在fork进程中执行文件整理

This commit is contained in:
jxxghp
2025-09-13 08:50:20 +08:00
parent a123ff2c04
commit a3872d5bb5
2 changed files with 9 additions and 14 deletions
+4 -5
View File
@@ -130,15 +130,14 @@ class FileManagerModule(_ModuleBase):
return None return None
return storage_oper.support_transtype() return storage_oper.support_transtype()
@staticmethod def recommend_name(self, meta: MetaBase, mediainfo: MediaInfo) -> Optional[str]:
def recommend_name(meta: MetaBase, mediainfo: MediaInfo) -> Optional[str]:
""" """
获取重命名后的名称 获取重命名后的名称
:param meta: 元数据 :param meta: 元数据
:param mediainfo: 媒体信息 :param mediainfo: 媒体信息
:return: 重命名后的名称(含目录) :return: 重命名后的名称(含目录)
""" """
handler = TransHandler() handler = TransHandler(self._storage_schemas)
# 重命名格式 # 重命名格式
rename_format = settings.RENAME_FORMAT(mediainfo.type) rename_format = settings.RENAME_FORMAT(mediainfo.type)
# 获取集信息 # 获取集信息
@@ -414,7 +413,7 @@ class FileManagerModule(_ModuleBase):
:param target_oper: 目标存储操作对象 :param target_oper: 目标存储操作对象
:return: {path, target_path, message} :return: {path, target_path, message}
""" """
handler = TransHandler() handler = TransHandler(self._storage_schemas)
# 检查目录路径 # 检查目录路径
if fileitem.storage == "local" and not Path(fileitem.path).exists(): if fileitem.storage == "local" and not Path(fileitem.path).exists():
return TransferInfo(success=False, return TransferInfo(success=False,
@@ -520,7 +519,7 @@ class FileManagerModule(_ModuleBase):
获取对应媒体的媒体库文件列表 获取对应媒体的媒体库文件列表
:param mediainfo: 媒体信息 :param mediainfo: 媒体信息
""" """
handler = TransHandler() handler = TransHandler(self._storage_schemas)
ret_fileitems = [] ret_fileitems = []
# 检查本地媒体库 # 检查本地媒体库
dest_dirs = DirectoryHelper().get_library_dirs() dest_dirs = DirectoryHelper().get_library_dirs()
+5 -9
View File
@@ -14,7 +14,6 @@ from app.core.meta import MetaBase
from app.core.metainfo import MetaInfoPath from app.core.metainfo import MetaInfoPath
from app.helper.directory import DirectoryHelper from app.helper.directory import DirectoryHelper
from app.helper.message import TemplateHelper from app.helper.message import TemplateHelper
from app.helper.module import ModuleHelper
from app.log import logger from app.log import logger
from app.modules.filemanager.storages import StorageBase from app.modules.filemanager.storages import StorageBase
from app.schemas import TransferInfo, TmdbEpisode, TransferDirectoryConf, FileItem, TransferInterceptEventData, \ from app.schemas import TransferInfo, TmdbEpisode, TransferDirectoryConf, FileItem, TransferInterceptEventData, \
@@ -31,11 +30,7 @@ def _transfer_command_worker(args):
:param args: 包含所有必要参数的元组 :param args: 包含所有必要参数的元组
""" """
# 解包参数 # 解包参数
(fileitem_dict, target_storage, target_file_str, transfer_type, result_queue) = args (fileitem_dict, target_storage, target_file_str, transfer_type, storage_schemas, result_queue) = args
# 重新创建存储操作对象
storage_schemas = ModuleHelper.load('app.modules.filemanager.storages',
filter_func=lambda _, obj: hasattr(obj, 'schema') and obj.schema)
def __get_storage_oper(_storage: str, _func: Optional[str] = None) -> Optional[StorageBase]: def __get_storage_oper(_storage: str, _func: Optional[str] = None) -> Optional[StorageBase]:
""" """
@@ -109,7 +104,8 @@ class TransHandler:
inner_lock: Lock = Lock() inner_lock: Lock = Lock()
def __init__(self): def __init__(self, storage_schemas: List[StorageBase]):
self.storage_schemas = storage_schemas
self.result = None self.result = None
def __reset_result(self): def __reset_result(self):
@@ -390,8 +386,7 @@ class TransHandler:
finally: finally:
self.result = None self.result = None
@staticmethod def __transfer_command(self, fileitem: FileItem, target_storage: str,
def __transfer_command(fileitem: FileItem, target_storage: str,
source_oper: StorageBase, target_oper: StorageBase, source_oper: StorageBase, target_oper: StorageBase,
target_file: Path, transfer_type: str, target_file: Path, transfer_type: str,
) -> Tuple[Optional[FileItem], str]: ) -> Tuple[Optional[FileItem], str]:
@@ -428,6 +423,7 @@ class TransHandler:
target_storage, target_storage,
str(target_file), str(target_file),
transfer_type, transfer_type,
self.storage_schemas,
result_queue result_queue
) )