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

View File

@@ -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()

View File

@@ -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
)