mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-03-19 19:46:55 +08:00
Revert "refactor(helper): 将LLMHelper StorageHelper的相关方法改为静态方法,移除实例调用"
This reverts commit 9f381b3c73.
This commit is contained in:
@@ -317,7 +317,7 @@ async def get_llm_models(provider: str, api_key: str, base_url: Optional[str] =
|
|||||||
获取LLM模型列表
|
获取LLM模型列表
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
models = LLMHelper.get_models(provider, api_key, base_url)
|
models = LLMHelper().get_models(provider, api_key, base_url)
|
||||||
return schemas.Response(success=True, data=models)
|
return schemas.Response(success=True, data=models)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
return schemas.Response(success=False, message=str(e))
|
return schemas.Response(success=False, message=str(e))
|
||||||
|
|||||||
@@ -71,14 +71,13 @@ class LLMHelper:
|
|||||||
openai_proxy=settings.PROXY_HOST
|
openai_proxy=settings.PROXY_HOST
|
||||||
)
|
)
|
||||||
|
|
||||||
@staticmethod
|
def get_models(self, provider: str, api_key: str, base_url: str = None) -> List[str]:
|
||||||
def get_models(provider: str, api_key: str, base_url: str = None) -> List[str]:
|
|
||||||
"""获取模型列表"""
|
"""获取模型列表"""
|
||||||
logger.info(f"获取 {provider} 模型列表...")
|
logger.info(f"获取 {provider} 模型列表...")
|
||||||
if provider == "google":
|
if provider == "google":
|
||||||
return LLMHelper._get_google_models(api_key)
|
return self._get_google_models(api_key)
|
||||||
else:
|
else:
|
||||||
return LLMHelper._get_openai_compatible_models(provider, api_key, base_url)
|
return self._get_openai_compatible_models(provider, api_key, base_url)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _get_google_models(api_key: str) -> List[str]:
|
def _get_google_models(api_key: str) -> List[str]:
|
||||||
|
|||||||
@@ -20,23 +20,21 @@ class StorageHelper:
|
|||||||
return []
|
return []
|
||||||
return [schemas.StorageConf(**s) for s in storage_confs]
|
return [schemas.StorageConf(**s) for s in storage_confs]
|
||||||
|
|
||||||
@staticmethod
|
def get_storage(self, storage: str) -> Optional[schemas.StorageConf]:
|
||||||
def get_storage(storage: str) -> Optional[schemas.StorageConf]:
|
|
||||||
"""
|
"""
|
||||||
获取指定存储配置
|
获取指定存储配置
|
||||||
"""
|
"""
|
||||||
storagies = StorageHelper.get_storagies()
|
storagies = self.get_storagies()
|
||||||
for s in storagies:
|
for s in storagies:
|
||||||
if s.type == storage:
|
if s.type == storage:
|
||||||
return s
|
return s
|
||||||
return None
|
return None
|
||||||
|
|
||||||
@staticmethod
|
def set_storage(self, storage: str, conf: dict):
|
||||||
def set_storage(storage: str, conf: dict):
|
|
||||||
"""
|
"""
|
||||||
设置存储配置
|
设置存储配置
|
||||||
"""
|
"""
|
||||||
storagies = StorageHelper.get_storagies()
|
storagies = self.get_storagies()
|
||||||
if not storagies:
|
if not storagies:
|
||||||
storagies = [
|
storagies = [
|
||||||
schemas.StorageConf(
|
schemas.StorageConf(
|
||||||
@@ -51,12 +49,11 @@ class StorageHelper:
|
|||||||
break
|
break
|
||||||
SystemConfigOper().set(SystemConfigKey.Storages, [s.model_dump() for s in storagies])
|
SystemConfigOper().set(SystemConfigKey.Storages, [s.model_dump() for s in storagies])
|
||||||
|
|
||||||
@staticmethod
|
def add_storage(self, storage: str, name: str, conf: dict):
|
||||||
def add_storage(storage: str, name: str, conf: dict):
|
|
||||||
"""
|
"""
|
||||||
添加存储配置
|
添加存储配置
|
||||||
"""
|
"""
|
||||||
storagies = StorageHelper.get_storagies()
|
storagies = self.get_storagies()
|
||||||
if not storagies:
|
if not storagies:
|
||||||
storagies = [
|
storagies = [
|
||||||
schemas.StorageConf(
|
schemas.StorageConf(
|
||||||
@@ -73,12 +70,11 @@ class StorageHelper:
|
|||||||
))
|
))
|
||||||
SystemConfigOper().set(SystemConfigKey.Storages, [s.model_dump() for s in storagies])
|
SystemConfigOper().set(SystemConfigKey.Storages, [s.model_dump() for s in storagies])
|
||||||
|
|
||||||
@staticmethod
|
def reset_storage(self, storage: str):
|
||||||
def reset_storage(storage: str):
|
|
||||||
"""
|
"""
|
||||||
重置存储配置
|
重置存储配置
|
||||||
"""
|
"""
|
||||||
storagies = StorageHelper.get_storagies()
|
storagies = self.get_storagies()
|
||||||
for s in storagies:
|
for s in storagies:
|
||||||
if s.type == storage:
|
if s.type == storage:
|
||||||
s.config = {}
|
s.config = {}
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ from app.core.context import MediaInfo
|
|||||||
from app.core.meta import MetaBase
|
from app.core.meta import MetaBase
|
||||||
from app.core.metainfo import MetaInfo
|
from app.core.metainfo import MetaInfo
|
||||||
from app.helper.directory import DirectoryHelper
|
from app.helper.directory import DirectoryHelper
|
||||||
|
from app.helper.message import MessageHelper
|
||||||
from app.helper.module import ModuleHelper
|
from app.helper.module import ModuleHelper
|
||||||
from app.log import logger
|
from app.log import logger
|
||||||
from app.modules import _ModuleBase
|
from app.modules import _ModuleBase
|
||||||
@@ -25,6 +26,11 @@ class FileManagerModule(_ModuleBase):
|
|||||||
_storage_schemas = []
|
_storage_schemas = []
|
||||||
_support_storages = []
|
_support_storages = []
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
super().__init__()
|
||||||
|
self.directoryhelper = DirectoryHelper()
|
||||||
|
self.messagehelper = MessageHelper()
|
||||||
|
|
||||||
def init_module(self) -> None:
|
def init_module(self) -> None:
|
||||||
# 加载模块
|
# 加载模块
|
||||||
self._storage_schemas = ModuleHelper.load('app.modules.filemanager.storages',
|
self._storage_schemas = ModuleHelper.load('app.modules.filemanager.storages',
|
||||||
@@ -65,7 +71,7 @@ class FileManagerModule(_ModuleBase):
|
|||||||
测试模块连接性
|
测试模块连接性
|
||||||
"""
|
"""
|
||||||
# 检查目录
|
# 检查目录
|
||||||
dirs = DirectoryHelper.get_dirs()
|
dirs = self.directoryhelper.get_dirs()
|
||||||
if not dirs:
|
if not dirs:
|
||||||
return False, "未设置任何目录"
|
return False, "未设置任何目录"
|
||||||
for d in dirs:
|
for d in dirs:
|
||||||
@@ -132,6 +138,7 @@ class FileManagerModule(_ModuleBase):
|
|||||||
:param mediainfo: 媒体信息
|
:param mediainfo: 媒体信息
|
||||||
:return: 重命名后的名称(含目录)
|
:return: 重命名后的名称(含目录)
|
||||||
"""
|
"""
|
||||||
|
handler = TransHandler()
|
||||||
# 重命名格式
|
# 重命名格式
|
||||||
rename_format = settings.RENAME_FORMAT(mediainfo.type)
|
rename_format = settings.RENAME_FORMAT(mediainfo.type)
|
||||||
# 获取集信息
|
# 获取集信息
|
||||||
@@ -151,9 +158,9 @@ class FileManagerModule(_ModuleBase):
|
|||||||
episode_group=mediainfo.episode_group,
|
episode_group=mediainfo.episode_group,
|
||||||
)
|
)
|
||||||
# 获取重命名后的名称
|
# 获取重命名后的名称
|
||||||
path = TransHandler.get_rename_path(
|
path = handler.get_rename_path(
|
||||||
template_string=rename_format,
|
template_string=rename_format,
|
||||||
rename_dict=TransHandler.get_naming_dict(meta=meta,
|
rename_dict=handler.get_naming_dict(meta=meta,
|
||||||
mediainfo=mediainfo,
|
mediainfo=mediainfo,
|
||||||
episodes_info=episodes_info,
|
episodes_info=episodes_info,
|
||||||
file_ext=Path(meta.title).suffix)
|
file_ext=Path(meta.title).suffix)
|
||||||
@@ -417,6 +424,7 @@ class FileManagerModule(_ModuleBase):
|
|||||||
:param target_oper: 目标存储操作对象
|
:param target_oper: 目标存储操作对象
|
||||||
:return: {path, target_path, message}
|
:return: {path, target_path, message}
|
||||||
"""
|
"""
|
||||||
|
handler = TransHandler()
|
||||||
# 检查目录路径
|
# 检查目录路径
|
||||||
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,
|
||||||
@@ -451,7 +459,7 @@ class FileManagerModule(_ModuleBase):
|
|||||||
# 是否需要刮削
|
# 是否需要刮削
|
||||||
need_scrape = target_directory.scraping if scrape is None else scrape
|
need_scrape = target_directory.scraping if scrape is None else scrape
|
||||||
# 拼装媒体库一、二级子目录
|
# 拼装媒体库一、二级子目录
|
||||||
target_path = TransHandler.get_dest_dir(mediainfo=mediainfo, target_dir=target_directory,
|
target_path = handler.get_dest_dir(mediainfo=mediainfo, target_dir=target_directory,
|
||||||
need_type_folder=library_type_folder,
|
need_type_folder=library_type_folder,
|
||||||
need_category_folder=library_category_folder)
|
need_category_folder=library_category_folder)
|
||||||
elif target_path:
|
elif target_path:
|
||||||
@@ -460,7 +468,7 @@ class FileManagerModule(_ModuleBase):
|
|||||||
need_notify = False
|
need_notify = False
|
||||||
overwrite_mode = "never"
|
overwrite_mode = "never"
|
||||||
# 手动整理的场景,有自定义目标路径
|
# 手动整理的场景,有自定义目标路径
|
||||||
target_path = TransHandler.get_dest_path(mediainfo=mediainfo, target_path=target_path,
|
target_path = handler.get_dest_path(mediainfo=mediainfo, target_path=target_path,
|
||||||
need_type_folder=library_type_folder,
|
need_type_folder=library_type_folder,
|
||||||
need_category_folder=library_category_folder)
|
need_category_folder=library_category_folder)
|
||||||
else:
|
else:
|
||||||
@@ -503,7 +511,7 @@ class FileManagerModule(_ModuleBase):
|
|||||||
|
|
||||||
# 整理
|
# 整理
|
||||||
logger.info(f"获取整理目标路径:【{target_storage}】{target_path}")
|
logger.info(f"获取整理目标路径:【{target_storage}】{target_path}")
|
||||||
return TransHandler.transfer_media(fileitem=fileitem,
|
return handler.transfer_media(fileitem=fileitem,
|
||||||
in_meta=meta,
|
in_meta=meta,
|
||||||
mediainfo=mediainfo,
|
mediainfo=mediainfo,
|
||||||
target_storage=target_storage,
|
target_storage=target_storage,
|
||||||
@@ -522,6 +530,7 @@ class FileManagerModule(_ModuleBase):
|
|||||||
获取对应媒体的媒体库文件列表
|
获取对应媒体的媒体库文件列表
|
||||||
:param mediainfo: 媒体信息
|
:param mediainfo: 媒体信息
|
||||||
"""
|
"""
|
||||||
|
handler = TransHandler()
|
||||||
ret_fileitems = []
|
ret_fileitems = []
|
||||||
# 检查本地媒体库
|
# 检查本地媒体库
|
||||||
dest_dirs = DirectoryHelper.get_library_dirs()
|
dest_dirs = DirectoryHelper.get_library_dirs()
|
||||||
@@ -532,7 +541,7 @@ class FileManagerModule(_ModuleBase):
|
|||||||
if not storage_oper:
|
if not storage_oper:
|
||||||
continue
|
continue
|
||||||
# 媒体分类路径
|
# 媒体分类路径
|
||||||
dir_path = TransHandler.get_dest_dir(mediainfo=mediainfo, target_dir=dest_dir)
|
dir_path = handler.get_dest_dir(mediainfo=mediainfo, target_dir=dest_dir)
|
||||||
# 重命名格式
|
# 重命名格式
|
||||||
rename_format = settings.RENAME_FORMAT(mediainfo.type)
|
rename_format = settings.RENAME_FORMAT(mediainfo.type)
|
||||||
# 元数据补上常用属性,尽可能确保重命名后的路径不出现空白
|
# 元数据补上常用属性,尽可能确保重命名后的路径不出现空白
|
||||||
@@ -546,10 +555,10 @@ class FileManagerModule(_ModuleBase):
|
|||||||
if meta.begin_episode is None:
|
if meta.begin_episode is None:
|
||||||
meta.begin_episode = 1
|
meta.begin_episode = 1
|
||||||
# 获取路径(重命名路径)
|
# 获取路径(重命名路径)
|
||||||
target_path = TransHandler.get_rename_path(
|
target_path = handler.get_rename_path(
|
||||||
path=dir_path,
|
path=dir_path,
|
||||||
template_string=rename_format,
|
template_string=rename_format,
|
||||||
rename_dict=TransHandler.get_naming_dict(meta=meta,
|
rename_dict=handler.get_naming_dict(meta=meta,
|
||||||
mediainfo=mediainfo)
|
mediainfo=mediainfo)
|
||||||
)
|
)
|
||||||
# 获取重命名后的媒体文件根路径
|
# 获取重命名后的媒体文件根路径
|
||||||
|
|||||||
@@ -44,6 +44,9 @@ class StorageBase(metaclass=ABCMeta):
|
|||||||
transtype = {}
|
transtype = {}
|
||||||
snapshot_check_folder_modtime = True
|
snapshot_check_folder_modtime = True
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
self.storagehelper = StorageHelper()
|
||||||
|
|
||||||
@abstractmethod
|
@abstractmethod
|
||||||
def init_storage(self):
|
def init_storage(self):
|
||||||
"""
|
"""
|
||||||
@@ -67,7 +70,7 @@ class StorageBase(metaclass=ABCMeta):
|
|||||||
"""
|
"""
|
||||||
获取配置
|
获取配置
|
||||||
"""
|
"""
|
||||||
return StorageHelper.get_storage(self.schema.value)
|
return self.storagehelper.get_storage(self.schema.value)
|
||||||
|
|
||||||
def get_conf(self) -> dict:
|
def get_conf(self) -> dict:
|
||||||
"""
|
"""
|
||||||
@@ -80,7 +83,7 @@ class StorageBase(metaclass=ABCMeta):
|
|||||||
"""
|
"""
|
||||||
设置配置
|
设置配置
|
||||||
"""
|
"""
|
||||||
StorageHelper.set_storage(self.schema.value, conf)
|
self.storagehelper.set_storage(self.schema.value, conf)
|
||||||
self.init_storage()
|
self.init_storage()
|
||||||
|
|
||||||
def support_transtype(self) -> dict:
|
def support_transtype(self) -> dict:
|
||||||
@@ -99,7 +102,7 @@ class StorageBase(metaclass=ABCMeta):
|
|||||||
"""
|
"""
|
||||||
重置置配置
|
重置置配置
|
||||||
"""
|
"""
|
||||||
StorageHelper.reset_storage(self.schema.value)
|
self.storagehelper.reset_storage(self.schema.value)
|
||||||
self.init_storage()
|
self.init_storage()
|
||||||
|
|
||||||
@abstractmethod
|
@abstractmethod
|
||||||
|
|||||||
@@ -24,6 +24,9 @@ class TransHandler:
|
|||||||
文件转移整理类
|
文件转移整理类
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
pass
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def __update_result(result: TransferInfo, **kwargs):
|
def __update_result(result: TransferInfo, **kwargs):
|
||||||
"""
|
"""
|
||||||
@@ -53,8 +56,8 @@ class TransHandler:
|
|||||||
current_value = value
|
current_value = value
|
||||||
setattr(result, key, current_value)
|
setattr(result, key, current_value)
|
||||||
|
|
||||||
@staticmethod
|
def transfer_media(self,
|
||||||
def transfer_media(fileitem: FileItem,
|
fileitem: FileItem,
|
||||||
in_meta: MetaBase,
|
in_meta: MetaBase,
|
||||||
mediainfo: MediaInfo,
|
mediainfo: MediaInfo,
|
||||||
target_storage: str,
|
target_storage: str,
|
||||||
@@ -122,17 +125,17 @@ class TransHandler:
|
|||||||
if fileitem.type == "dir":
|
if fileitem.type == "dir":
|
||||||
# 整理整个目录,一般为蓝光原盘
|
# 整理整个目录,一般为蓝光原盘
|
||||||
if need_rename:
|
if need_rename:
|
||||||
new_path = TransHandler.get_rename_path(
|
new_path = self.get_rename_path(
|
||||||
path=target_path,
|
path=target_path,
|
||||||
template_string=rename_format,
|
template_string=rename_format,
|
||||||
rename_dict=TransHandler.get_naming_dict(meta=in_meta,
|
rename_dict=self.get_naming_dict(meta=in_meta,
|
||||||
mediainfo=mediainfo)
|
mediainfo=mediainfo)
|
||||||
)
|
)
|
||||||
new_path = DirectoryHelper.get_media_root_path(
|
new_path = DirectoryHelper.get_media_root_path(
|
||||||
rename_format, rename_path=new_path
|
rename_format, rename_path=new_path
|
||||||
)
|
)
|
||||||
if not new_path:
|
if not new_path:
|
||||||
TransHandler.__update_result(
|
self.__update_result(
|
||||||
result=result,
|
result=result,
|
||||||
success=False,
|
success=False,
|
||||||
message="重命名格式无效",
|
message="重命名格式无效",
|
||||||
@@ -151,7 +154,7 @@ class TransHandler:
|
|||||||
file.size for file in source_oper.list(stream_fileitem) or []
|
file.size for file in source_oper.list(stream_fileitem) or []
|
||||||
)
|
)
|
||||||
# 整理目录
|
# 整理目录
|
||||||
new_diritem, errmsg = TransHandler.__transfer_dir(fileitem=fileitem,
|
new_diritem, errmsg = self.__transfer_dir(fileitem=fileitem,
|
||||||
mediainfo=mediainfo,
|
mediainfo=mediainfo,
|
||||||
source_oper=source_oper,
|
source_oper=source_oper,
|
||||||
target_oper=target_oper,
|
target_oper=target_oper,
|
||||||
@@ -161,7 +164,7 @@ class TransHandler:
|
|||||||
result=result)
|
result=result)
|
||||||
if not new_diritem:
|
if not new_diritem:
|
||||||
logger.error(f"文件夹 {fileitem.path} 整理失败:{errmsg}")
|
logger.error(f"文件夹 {fileitem.path} 整理失败:{errmsg}")
|
||||||
TransHandler.__update_result(result=result,
|
self.__update_result(result=result,
|
||||||
success=False,
|
success=False,
|
||||||
message=errmsg,
|
message=errmsg,
|
||||||
fileitem=fileitem,
|
fileitem=fileitem,
|
||||||
@@ -171,7 +174,7 @@ class TransHandler:
|
|||||||
|
|
||||||
logger.info(f"文件夹 {fileitem.path} 整理成功")
|
logger.info(f"文件夹 {fileitem.path} 整理成功")
|
||||||
# 返回整理后的路径
|
# 返回整理后的路径
|
||||||
TransHandler.__update_result(result=result,
|
self.__update_result(result=result,
|
||||||
success=True,
|
success=True,
|
||||||
fileitem=fileitem,
|
fileitem=fileitem,
|
||||||
target_item=new_diritem,
|
target_item=new_diritem,
|
||||||
@@ -186,7 +189,7 @@ class TransHandler:
|
|||||||
# 电视剧
|
# 电视剧
|
||||||
if in_meta.begin_episode is None:
|
if in_meta.begin_episode is None:
|
||||||
logger.warn(f"文件 {fileitem.path} 整理失败:未识别到文件集数")
|
logger.warn(f"文件 {fileitem.path} 整理失败:未识别到文件集数")
|
||||||
TransHandler.__update_result(result=result,
|
self.__update_result(result=result,
|
||||||
success=False,
|
success=False,
|
||||||
message="未识别到文件集数",
|
message="未识别到文件集数",
|
||||||
fileitem=fileitem,
|
fileitem=fileitem,
|
||||||
@@ -207,10 +210,10 @@ class TransHandler:
|
|||||||
|
|
||||||
# 目的文件名
|
# 目的文件名
|
||||||
if need_rename:
|
if need_rename:
|
||||||
new_file = TransHandler.get_rename_path(
|
new_file = self.get_rename_path(
|
||||||
path=target_path,
|
path=target_path,
|
||||||
template_string=rename_format,
|
template_string=rename_format,
|
||||||
rename_dict=TransHandler.get_naming_dict(
|
rename_dict=self.get_naming_dict(
|
||||||
meta=in_meta,
|
meta=in_meta,
|
||||||
mediainfo=mediainfo,
|
mediainfo=mediainfo,
|
||||||
episodes_info=episodes_info,
|
episodes_info=episodes_info,
|
||||||
@@ -220,14 +223,14 @@ class TransHandler:
|
|||||||
|
|
||||||
# 针对字幕文件,文件名中补充额外标识信息
|
# 针对字幕文件,文件名中补充额外标识信息
|
||||||
if __is_subtitle_file(fileitem):
|
if __is_subtitle_file(fileitem):
|
||||||
new_file = TransHandler.__rename_subtitles(fileitem, new_file)
|
new_file = self.__rename_subtitles(fileitem, new_file)
|
||||||
|
|
||||||
# 文件目录
|
# 文件目录
|
||||||
folder_path = DirectoryHelper.get_media_root_path(
|
folder_path = DirectoryHelper.get_media_root_path(
|
||||||
rename_format, rename_path=new_file
|
rename_format, rename_path=new_file
|
||||||
)
|
)
|
||||||
if not folder_path:
|
if not folder_path:
|
||||||
TransHandler.__update_result(
|
self.__update_result(
|
||||||
result=result,
|
result=result,
|
||||||
success=False,
|
success=False,
|
||||||
message="重命名格式无效",
|
message="重命名格式无效",
|
||||||
@@ -245,7 +248,7 @@ class TransHandler:
|
|||||||
target_diritem = target_oper.get_folder(folder_path)
|
target_diritem = target_oper.get_folder(folder_path)
|
||||||
if not target_diritem:
|
if not target_diritem:
|
||||||
logger.error(f"目标目录 {folder_path} 获取失败")
|
logger.error(f"目标目录 {folder_path} 获取失败")
|
||||||
TransHandler.__update_result(result=result,
|
self.__update_result(result=result,
|
||||||
success=False,
|
success=False,
|
||||||
message=f"目标目录 {folder_path} 获取失败",
|
message=f"目标目录 {folder_path} 获取失败",
|
||||||
fileitem=fileitem,
|
fileitem=fileitem,
|
||||||
@@ -279,7 +282,7 @@ class TransHandler:
|
|||||||
logger.info(f"目标文件文件大小更小,将覆盖:{new_file}")
|
logger.info(f"目标文件文件大小更小,将覆盖:{new_file}")
|
||||||
overflag = True
|
overflag = True
|
||||||
else:
|
else:
|
||||||
TransHandler.__update_result(result=result,
|
self.__update_result(result=result,
|
||||||
success=False,
|
success=False,
|
||||||
message=f"媒体库存在同名文件,且质量更好",
|
message=f"媒体库存在同名文件,且质量更好",
|
||||||
fileitem=fileitem,
|
fileitem=fileitem,
|
||||||
@@ -291,7 +294,7 @@ class TransHandler:
|
|||||||
return result
|
return result
|
||||||
elif overwrite_mode == 'never':
|
elif overwrite_mode == 'never':
|
||||||
# 存在不覆盖
|
# 存在不覆盖
|
||||||
TransHandler.__update_result(result=result,
|
self.__update_result(result=result,
|
||||||
success=False,
|
success=False,
|
||||||
message=f"媒体库存在同名文件,当前覆盖模式为不覆盖",
|
message=f"媒体库存在同名文件,当前覆盖模式为不覆盖",
|
||||||
fileitem=fileitem,
|
fileitem=fileitem,
|
||||||
@@ -310,13 +313,13 @@ class TransHandler:
|
|||||||
# 文件不存在,但仅保留最新版本
|
# 文件不存在,但仅保留最新版本
|
||||||
logger.info(
|
logger.info(
|
||||||
f"当前整理覆盖模式设置为 {overwrite_mode},仅保留最新版本,正在删除已有版本文件 ...")
|
f"当前整理覆盖模式设置为 {overwrite_mode},仅保留最新版本,正在删除已有版本文件 ...")
|
||||||
TransHandler.__delete_version_files(target_oper, new_file)
|
self.__delete_version_files(target_oper, new_file)
|
||||||
else:
|
else:
|
||||||
# 附加文件 总是需要覆盖
|
# 附加文件 总是需要覆盖
|
||||||
overflag = True
|
overflag = True
|
||||||
|
|
||||||
# 整理文件
|
# 整理文件
|
||||||
new_item, err_msg = TransHandler.__transfer_file(fileitem=fileitem,
|
new_item, err_msg = self.__transfer_file(fileitem=fileitem,
|
||||||
mediainfo=mediainfo,
|
mediainfo=mediainfo,
|
||||||
target_storage=target_storage,
|
target_storage=target_storage,
|
||||||
target_file=new_file,
|
target_file=new_file,
|
||||||
@@ -327,7 +330,7 @@ class TransHandler:
|
|||||||
result=result)
|
result=result)
|
||||||
if not new_item:
|
if not new_item:
|
||||||
logger.error(f"文件 {fileitem.path} 整理失败:{err_msg}")
|
logger.error(f"文件 {fileitem.path} 整理失败:{err_msg}")
|
||||||
TransHandler.__update_result(result=result,
|
self.__update_result(result=result,
|
||||||
success=False,
|
success=False,
|
||||||
message=err_msg,
|
message=err_msg,
|
||||||
fileitem=fileitem,
|
fileitem=fileitem,
|
||||||
@@ -337,7 +340,7 @@ class TransHandler:
|
|||||||
return result
|
return result
|
||||||
|
|
||||||
logger.info(f"文件 {fileitem.path} 整理成功")
|
logger.info(f"文件 {fileitem.path} 整理成功")
|
||||||
TransHandler.__update_result(result=result,
|
self.__update_result(result=result,
|
||||||
success=True,
|
success=True,
|
||||||
fileitem=fileitem,
|
fileitem=fileitem,
|
||||||
target_item=new_item,
|
target_item=new_item,
|
||||||
@@ -542,8 +545,7 @@ class TransHandler:
|
|||||||
|
|
||||||
return new_file.with_name(new_file.stem + new_sub_tag + file_ext)
|
return new_file.with_name(new_file.stem + new_sub_tag + file_ext)
|
||||||
|
|
||||||
@staticmethod
|
def __transfer_dir(self, fileitem: FileItem, mediainfo: MediaInfo,
|
||||||
def __transfer_dir(fileitem: FileItem, mediainfo: MediaInfo,
|
|
||||||
source_oper: StorageBase, target_oper: StorageBase,
|
source_oper: StorageBase, target_oper: StorageBase,
|
||||||
transfer_type: str, target_storage: str, target_path: Path,
|
transfer_type: str, target_storage: str, target_path: Path,
|
||||||
result: TransferInfo) -> Tuple[Optional[FileItem], str]:
|
result: TransferInfo) -> Tuple[Optional[FileItem], str]:
|
||||||
@@ -578,7 +580,7 @@ class TransHandler:
|
|||||||
f"Reason: {event_data.reason}")
|
f"Reason: {event_data.reason}")
|
||||||
return None, event_data.reason
|
return None, event_data.reason
|
||||||
# 处理所有文件
|
# 处理所有文件
|
||||||
state, errmsg = TransHandler.__transfer_dir_files(fileitem=fileitem,
|
state, errmsg = self.__transfer_dir_files(fileitem=fileitem,
|
||||||
target_storage=target_storage,
|
target_storage=target_storage,
|
||||||
source_oper=source_oper,
|
source_oper=source_oper,
|
||||||
target_oper=target_oper,
|
target_oper=target_oper,
|
||||||
@@ -590,8 +592,7 @@ class TransHandler:
|
|||||||
else:
|
else:
|
||||||
return None, errmsg
|
return None, errmsg
|
||||||
|
|
||||||
@staticmethod
|
def __transfer_dir_files(self, fileitem: FileItem, target_storage: str,
|
||||||
def __transfer_dir_files(fileitem: FileItem, target_storage: str,
|
|
||||||
source_oper: StorageBase, target_oper: StorageBase,
|
source_oper: StorageBase, target_oper: StorageBase,
|
||||||
transfer_type: str, target_path: Path,
|
transfer_type: str, target_path: Path,
|
||||||
result: TransferInfo) -> Tuple[bool, str]:
|
result: TransferInfo) -> Tuple[bool, str]:
|
||||||
@@ -610,7 +611,7 @@ class TransHandler:
|
|||||||
if item.type == "dir":
|
if item.type == "dir":
|
||||||
# 递归整理目录
|
# 递归整理目录
|
||||||
new_path = target_path / item.name
|
new_path = target_path / item.name
|
||||||
state, errmsg = TransHandler.__transfer_dir_files(fileitem=item,
|
state, errmsg = self.__transfer_dir_files(fileitem=item,
|
||||||
target_storage=target_storage,
|
target_storage=target_storage,
|
||||||
source_oper=source_oper,
|
source_oper=source_oper,
|
||||||
target_oper=target_oper,
|
target_oper=target_oper,
|
||||||
@@ -622,7 +623,7 @@ class TransHandler:
|
|||||||
else:
|
else:
|
||||||
# 整理文件
|
# 整理文件
|
||||||
new_file = target_path / item.name
|
new_file = target_path / item.name
|
||||||
new_item, errmsg = TransHandler.__transfer_command(fileitem=item,
|
new_item, errmsg = self.__transfer_command(fileitem=item,
|
||||||
target_storage=target_storage,
|
target_storage=target_storage,
|
||||||
source_oper=source_oper,
|
source_oper=source_oper,
|
||||||
target_oper=target_oper,
|
target_oper=target_oper,
|
||||||
@@ -630,7 +631,7 @@ class TransHandler:
|
|||||||
transfer_type=transfer_type)
|
transfer_type=transfer_type)
|
||||||
if not new_item:
|
if not new_item:
|
||||||
return False, errmsg
|
return False, errmsg
|
||||||
TransHandler.__update_result(
|
self.__update_result(
|
||||||
result=result,
|
result=result,
|
||||||
file_list=[item.path],
|
file_list=[item.path],
|
||||||
file_list_new=[new_item.path],
|
file_list_new=[new_item.path],
|
||||||
@@ -638,8 +639,7 @@ class TransHandler:
|
|||||||
# 返回成功
|
# 返回成功
|
||||||
return True, ""
|
return True, ""
|
||||||
|
|
||||||
@staticmethod
|
def __transfer_file(self, fileitem: FileItem, mediainfo: MediaInfo,
|
||||||
def __transfer_file(fileitem: FileItem, mediainfo: MediaInfo,
|
|
||||||
source_oper: StorageBase, target_oper: StorageBase,
|
source_oper: StorageBase, target_oper: StorageBase,
|
||||||
target_storage: str, target_file: Path,
|
target_storage: str, target_file: Path,
|
||||||
transfer_type: str, result: TransferInfo,
|
transfer_type: str, result: TransferInfo,
|
||||||
@@ -695,14 +695,14 @@ class TransHandler:
|
|||||||
logger.info(f"正在删除已存在的文件:【{target_storage}】{target_file}")
|
logger.info(f"正在删除已存在的文件:【{target_storage}】{target_file}")
|
||||||
target_oper.delete(exists_item)
|
target_oper.delete(exists_item)
|
||||||
# 执行文件整理命令
|
# 执行文件整理命令
|
||||||
new_item, errmsg = TransHandler.__transfer_command(fileitem=fileitem,
|
new_item, errmsg = self.__transfer_command(fileitem=fileitem,
|
||||||
target_storage=target_storage,
|
target_storage=target_storage,
|
||||||
source_oper=source_oper,
|
source_oper=source_oper,
|
||||||
target_oper=target_oper,
|
target_oper=target_oper,
|
||||||
target_file=target_file,
|
target_file=target_file,
|
||||||
transfer_type=transfer_type)
|
transfer_type=transfer_type)
|
||||||
if new_item:
|
if new_item:
|
||||||
TransHandler.__update_result(
|
self.__update_result(
|
||||||
result=result,
|
result=result,
|
||||||
file_list=[fileitem.path],
|
file_list=[fileitem.path],
|
||||||
file_list_new=[new_item.path],
|
file_list_new=[new_item.path],
|
||||||
|
|||||||
Reference in New Issue
Block a user