From ddfcdf9ce2c7c043d7e6e3b8823dbf11d3a5e0b5 Mon Sep 17 00:00:00 2001 From: jxxghp Date: Thu, 26 Sep 2024 08:36:08 +0800 Subject: [PATCH] =?UTF-8?q?fix=20115=E7=BD=91=E7=9B=98=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 | 26 ++++++++---------------- app/modules/filemanager/storages/u115.py | 24 ++++++++++++---------- requirements.in | 2 +- requirements.txt | 2 +- 4 files changed, 23 insertions(+), 31 deletions(-) diff --git a/app/modules/filemanager/__init__.py b/app/modules/filemanager/__init__.py index f754518f..7daed5df 100644 --- a/app/modules/filemanager/__init__.py +++ b/app/modules/filemanager/__init__.py @@ -320,7 +320,7 @@ class FileManagerModule(_ModuleBase): fileitem=fileitem, message="未找到有效的媒体库目录") - logger.info(f"获取整理目标路径:{target_path}") + logger.info(f"获取整理目标路径:【{target_storage}】{target_path}") # 整理 return self.transfer_media(fileitem=fileitem, in_meta=meta, @@ -377,7 +377,6 @@ class FileManagerModule(_ModuleBase): if (fileitem.storage != target_storage and fileitem.storage != "local" and target_storage != "local"): - logger.error(f"不支持 {fileitem.storage} 到 {target_storage} 的文件整理") return None, f"不支持 {fileitem.storage} 到 {target_storage} 的文件整理" # 源操作对象 @@ -385,7 +384,6 @@ class FileManagerModule(_ModuleBase): # 目的操作对象 target_oper: StorageBase = self.__get_storage_oper(target_storage) if not source_oper or not target_oper: - logger.error(f"不支持的存储类型:{fileitem.storage} 或 {target_storage}") return None, f"不支持的存储类型:{fileitem.storage} 或 {target_storage}" # 加锁 @@ -406,12 +404,11 @@ class FileManagerModule(_ModuleBase): if state: return __get_targetitem(target_file), "" else: - return None, f"{fileitem.path} {transfer_type}失败" + return None, f"{fileitem.path} {transfer_type} 失败" elif fileitem.storage == "local" and target_storage != "local": # 本地到网盘 filepath = Path(fileitem.path) if not filepath.exists(): - logger.error(f"文件 {filepath} 不存在") return None, f"文件 {filepath} 不存在" if transfer_type == "copy": # 复制 @@ -606,10 +603,10 @@ class FileManagerModule(_ModuleBase): target_file=new_file, transfer_type=transfer_type) if new_item: - logger.info(f"字幕 {sub_item.name} {transfer_type}完成") + logger.info(f"字幕 {sub_item.name} 整理完成") break else: - logger.error(f"字幕 {sub_item.name} {transfer_type}失败:{errmsg}") + logger.error(f"字幕 {sub_item.name} 整理失败:{errmsg}") return False, errmsg except Exception as error: logger.info(f"字幕 {new_file} 出错了,原因: {str(error)}") @@ -637,7 +634,6 @@ class FileManagerModule(_ModuleBase): pending_file_list: List[FileItem] = [file for file in file_list if Path(file.name).stem == org_path.name and f".{file.extension.lower()}" in settings.RMT_AUDIOEXT] if len(pending_file_list) == 0: - logger.debug(f"{dir_name} 目录下没有找到匹配的音轨文件") return True, f"{dir_name} 目录下没有找到匹配的音轨文件" logger.debug("音轨文件清单:" + str(pending_file_list)) for track_file in pending_file_list: @@ -650,11 +646,11 @@ class FileManagerModule(_ModuleBase): target_file=new_track_file, transfer_type=transfer_type) if new_item: - logger.info(f"音轨文件 {file_name} {transfer_type}完成") + logger.info(f"音轨文件 {file_name} 整理完成") else: - logger.error(f"音轨文件 {file_name} {transfer_type}失败:{errmsg}") + logger.error(f"音轨文件 {file_name} 整理失败:{errmsg}") except Exception as error: - logger.error(f"音轨文件 {file_name} {transfer_type}失败:{str(error)}") + logger.error(f"音轨文件 {file_name} 整理失败:{str(error)}") return True, "" def __transfer_dir(self, fileitem: FileItem, transfer_type: str, @@ -669,13 +665,11 @@ class FileManagerModule(_ModuleBase): # 获取目标目录 target_oper: StorageBase = self.__get_storage_oper(target_storage) if not target_oper: - logger.error(f"不支持到 {target_storage} 的文件整理") return None, f"不支持的文件存储:{target_storage}" - logger.info(f"正在{transfer_type}目录:{fileitem.path} 到 {target_path}") + logger.info(f"正在整理目录:{fileitem.path} 到 {target_path}") target_item = target_oper.get_folder(target_path) if not target_item: - logger.info(f"获取目标目录失败:{target_path}") return None, f"获取目标目录失败:{target_path}" # 处理所有文件 state, errmsg = self.__transfer_dir_files(fileitem=fileitem, @@ -683,10 +677,8 @@ class FileManagerModule(_ModuleBase): target_path=target_path, transfer_type=transfer_type) if state: - logger.info(f"文件 {fileitem.path} {transfer_type}完成") return target_item, errmsg else: - logger.error(f"文件{fileitem.path} {transfer_type}失败:{errmsg}") return None, errmsg def __transfer_dir_files(self, fileitem: FileItem, transfer_type: str, @@ -750,7 +742,6 @@ class FileManagerModule(_ModuleBase): target_file=target_file, transfer_type=transfer_type) if new_item: - logger.debug(f"文件 {fileitem.path} {transfer_type}完成") # 处理其他相关文件 self.__transfer_other_files(fileitem=fileitem, target_storage=target_storage, @@ -758,7 +749,6 @@ class FileManagerModule(_ModuleBase): transfer_type=transfer_type) return new_item, errmsg - logger.error(f"文件 {fileitem.path} {transfer_type}失败:{errmsg}") return None, errmsg @staticmethod diff --git a/app/modules/filemanager/storages/u115.py b/app/modules/filemanager/storages/u115.py index 750d6f0b..2b8697ea 100644 --- a/app/modules/filemanager/storages/u115.py +++ b/app/modules/filemanager/storages/u115.py @@ -340,10 +340,11 @@ class U115Pan(StorageBase, metaclass=Singleton): logger.warn(f"115请求上传出错") return None elif ticket.is_done: - logger.warn(f"115请求上传失败:文件已存在") - return None + file_path = Path(fileitem.path) / path.name + logger.warn(f"115上传:{file_path} 文件已存在") + return self.get_item(file_path) else: - auth = oss2.Auth(**ticket.oss_token) + auth = oss2.StsAuth(**ticket.oss_token) bucket = oss2.Bucket( auth=auth, endpoint=ticket.oss_endpoint, @@ -356,18 +357,19 @@ class U115Pan(StorageBase, metaclass=Singleton): ) result = por.resp.response.json() if result: - fileitem = result.get('data') - logger.info(f"115上传文件成功:{fileitem}") + result_data = result.get('data') + logger.info(f"115上传文件成功:{result_data.get('file_name')}") return schemas.FileItem( storage=self.schema.value, - fileid=fileitem.get('file_id'), + fileid=result_data.get('file_id'), parent_fileid=fileitem.fileid, type="file", - name=fileitem.get('file_name'), - path=f"{fileitem.path}{fileitem.get('file_name')}", - size=fileitem.get('file_size'), - extension=Path(fileitem.get('file_name')).suffix[1:], - pickcode=fileitem.get('pickcode') + name=result_data.get('file_name'), + basename=Path(result_data.get('file_name')).stem, + path=f"{fileitem.path}{result_data.get('file_name')}", + size=result_data.get('file_size'), + extension=Path(result_data.get('file_name')).suffix[1:], + pickcode=result_data.get('pickcode') ) else: logger.warn(f"115上传文件失败:{por.resp.response.text}") diff --git a/requirements.in b/requirements.in index 4b6e0ade..85babab9 100644 --- a/requirements.in +++ b/requirements.in @@ -59,6 +59,6 @@ pystray~=0.19.5 pyotp~=2.9.0 Pinyin2Hanzi~=0.1.1 pywebpush~=2.0.0 -py115j~=0.0.6 +py115j~=0.0.7 oss2~=2.18.6 aligo~=6.2.4 \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index c3ebf4e1..5d220da2 100644 --- a/requirements.txt +++ b/requirements.txt @@ -164,7 +164,7 @@ psutil==5.9.8 # via -r requirements.in py-vapid==1.9.1 # via pywebpush -py115j==0.0.6 +py115j==0.0.7 # via -r requirements.in pycparser==2.22 # via cffi