Merge pull request #4902 from DDS-Derek/dev

This commit is contained in:
jxxghp
2025-09-05 20:06:42 +08:00
committed by GitHub

View File

@@ -195,6 +195,7 @@ class U115Pan(StorageBase, metaclass=WeakSingleton):
result = resp.json()
if result.get("code") != 0:
logger.warn(f"【115】刷新 access_token 失败:{result.get('code')} - {result.get('message')}")
return None
return result.get("data")
def _request_api(self, method: str, endpoint: str,
@@ -233,7 +234,12 @@ class U115Pan(StorageBase, metaclass=WeakSingleton):
# 返回数据
ret_data = resp.json()
if ret_data.get("code") != 0:
logger.warn(f"【115】{method} 请求 {endpoint} 出错:{ret_data.get('message')}")
error_msg = ret_data.get("message")
logger.warn(f"【115】{method} 请求 {endpoint} 出错:{error_msg}")
if "已达到当前访问上限" in error_msg:
time.sleep(70)
return self._request_api(method, endpoint, result_key, **kwargs)
return None
if result_key:
return ret_data.get(result_key)
@@ -259,8 +265,8 @@ class U115Pan(StorageBase, metaclass=WeakSingleton):
"""
自动延迟重试 get_item 模块
"""
for _ in range(2):
time.sleep(2)
for i in range(1, 4):
time.sleep(2 ** i)
fileitem = self.get_item(path)
if fileitem:
return fileitem
@@ -435,6 +441,9 @@ class U115Pan(StorageBase, metaclass=WeakSingleton):
)
if not init_resp:
return None
if not init_resp.get("state"):
logger.warn(f"【115】上传二次认证失败: {init_resp.get('error')}")
return None
# 二次认证结果
init_result = init_resp.get("data")
logger.debug(f"【115】上传 Step 2 二次认证结果: {init_result}")
@@ -787,8 +796,10 @@ class U115Pan(StorageBase, metaclass=WeakSingleton):
if resp["state"]:
new_path = Path(path) / fileitem.name
new_item = self._delay_get_item(new_path)
self.rename(new_item, new_name)
return True
if not new_item:
return False
if self.rename(new_item, new_name):
return True
return False
def move(self, fileitem: schemas.FileItem, path: Path, new_name: str) -> bool:
@@ -817,8 +828,10 @@ class U115Pan(StorageBase, metaclass=WeakSingleton):
if resp["state"]:
new_path = Path(path) / fileitem.name
new_file = self._delay_get_item(new_path)
self.rename(new_file, new_name)
return True
if not new_file:
return False
if self.rename(new_file, new_name):
return True
return False
def link(self, fileitem: schemas.FileItem, target_file: Path) -> bool: