From 35c68fe30d46db37a78d44dc877d66b24171f8a8 Mon Sep 17 00:00:00 2001 From: Aqr-K <95741669+Aqr-K@users.noreply.github.com> Date: Thu, 26 Sep 2024 20:56:33 +0800 Subject: [PATCH 1/3] feat: transType API MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 针对查询可用整理方式的API --- app/api/endpoints/storage.py | 17 +++++++++++++++++ app/chain/storage.py | 6 ++++++ app/modules/filemanager/__init__.py | 10 ++++++++++ app/schemas/file.py | 5 +++++ 4 files changed, 38 insertions(+) diff --git a/app/api/endpoints/storage.py b/app/api/endpoints/storage.py index 69384e48..78b292a3 100644 --- a/app/api/endpoints/storage.py +++ b/app/api/endpoints/storage.py @@ -205,3 +205,20 @@ def usage(name: str, _: User = Depends(get_current_active_superuser)) -> Any: if ret: return ret return schemas.StorageUsage() + + +@router.get("/transtype/{name}", summary="支持的整理方式获取", response_model=schemas.StorageTransType) +def transtype(name: str, _: User = Depends(get_current_active_superuser)) -> Any: + """ + 查询支持的整理方式 + """ + ret = {} + try: + ret = StorageChain().support_transtype(name) + if ret: + return schemas.StorageTransType(transtype=ret) + return schemas.StorageTransType() + except Exception as e: + pass + finally: + print(schemas.StorageTransType(transtype=ret if ret else [])) diff --git a/app/chain/storage.py b/app/chain/storage.py index f238ebcb..f7515ec9 100644 --- a/app/chain/storage.py +++ b/app/chain/storage.py @@ -85,3 +85,9 @@ class StorageChain(ChainBase): 存储使用情况 """ return self.run_module("storage_usage", storage=storage) + + def support_transtype(self, storage: str) -> Optional[str]: + """ + 获取支持的整理方式 + """ + return self.run_module("support_transtype", storage=storage) diff --git a/app/modules/filemanager/__init__.py b/app/modules/filemanager/__init__.py index 7daed5df..1271ddf6 100644 --- a/app/modules/filemanager/__init__.py +++ b/app/modules/filemanager/__init__.py @@ -89,6 +89,16 @@ class FileManagerModule(_ModuleBase): def init_setting(self) -> Tuple[str, Union[str, bool]]: pass + def support_transtype(self, storage: str) -> Optional[Dict[str, str]]: + """ + 支持的整理方式 + """ + storage_oper = self.__get_storage_oper(storage) + if not storage_oper: + logger.error(f"不支持 {storage} 的整理方式获取") + return None + return storage_oper.support_transtype() + def recommend_name(self, meta: MetaBase, mediainfo: MediaInfo) -> Optional[str]: """ 获取重命名后的名称 diff --git a/app/schemas/file.py b/app/schemas/file.py index 5cc2d55d..6c9781f0 100644 --- a/app/schemas/file.py +++ b/app/schemas/file.py @@ -41,3 +41,8 @@ class StorageUsage(BaseModel): total: float = 0.0 # 剩余空间 available: float = 0.0 + + +class StorageTransType(BaseModel): + # 传输类型 + transtype: Optional[dict] = {} From d1abc23cbdbc124bb72930d0ac07cd4e173f30ed Mon Sep 17 00:00:00 2001 From: Aqr-K <95741669+Aqr-K@users.noreply.github.com> Date: Thu, 26 Sep 2024 21:00:21 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20storage.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/endpoints/storage.py | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/app/api/endpoints/storage.py b/app/api/endpoints/storage.py index 78b292a3..7396f772 100644 --- a/app/api/endpoints/storage.py +++ b/app/api/endpoints/storage.py @@ -212,13 +212,7 @@ def transtype(name: str, _: User = Depends(get_current_active_superuser)) -> Any """ 查询支持的整理方式 """ - ret = {} - try: - ret = StorageChain().support_transtype(name) - if ret: - return schemas.StorageTransType(transtype=ret) - return schemas.StorageTransType() - except Exception as e: - pass - finally: - print(schemas.StorageTransType(transtype=ret if ret else [])) + ret = StorageChain().support_transtype(name) + if ret: + return schemas.StorageTransType(transtype=ret) + return schemas.StorageTransType() From 255c05daf9dc957d2975e69fde2bebaa42bdfcac Mon Sep 17 00:00:00 2001 From: Aqr-K <95741669+Aqr-K@users.noreply.github.com> Date: Thu, 26 Sep 2024 23:14:55 +0800 Subject: [PATCH 3/3] fix: method name spelling error --- app/modules/filemanager/storages/u115.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/modules/filemanager/storages/u115.py b/app/modules/filemanager/storages/u115.py index 2b8697ea..d5f023db 100644 --- a/app/modules/filemanager/storages/u115.py +++ b/app/modules/filemanager/storages/u115.py @@ -73,7 +73,7 @@ class U115Pan(StorageBase, metaclass=Singleton): return None return Credential.from_dict(cookie_dict.dict().get("config")) - def __save_credentail(self, credential: Credential): + def __save_credential(self, credential: Credential): """ 设置115认证参数 """ @@ -117,7 +117,7 @@ class U115Pan(StorageBase, metaclass=Singleton): status = self.cloud.qrcode_poll(self._session) if status == QrcodeStatus.Done: # 确认完成,保存认证信息 - self.__save_credentail(self.cloud.export_credentail()) + self.__save_credential(self.cloud.export_credentail()) result = { "status": 1, "tip": "登录成功!"