From a918ffa06214b905b5f9ba7b0eeefbd0b00a4f77 Mon Sep 17 00:00:00 2001 From: x1ao4 Date: Thu, 18 Sep 2025 00:56:23 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=90=8E=E7=AB=AF=E5=9C=A8?= =?UTF-8?q?=E5=AE=9A=E6=97=B6=E8=BF=90=E8=A1=8C=E4=BB=BB=E5=8A=A1=E6=97=B6?= =?UTF-8?q?=E5=B0=86=E5=8F=AF=E6=81=A2=E5=A4=8D=E6=80=A7=E7=BD=91=E7=BB=9C?= =?UTF-8?q?=E9=94=99=E8=AF=AF=E8=AF=AF=E5=88=A4=E4=B8=BA=E8=B5=84=E6=BA=90?= =?UTF-8?q?=E5=A4=B1=E6=95=88=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - do_save_task:为 get_stoken/get_detail 失败添加可恢复错误判断(inner error/request error/网络/服务端临时/timeout/connection 等) - 可恢复错误:仅打印“(网络异常)”,不设置 shareurl_ban,不触发通知;下次定时继续尝试 - 不可恢复错误:设置 shareurl_ban,并仅通过 add_notify 通知(移除重复 print) - 保持前端逻辑不变,与 UI 的可恢复错误处理一致,避免正常资源被误标记为失效 --- quark_auto_save.py | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/quark_auto_save.py b/quark_auto_save.py index b3ec69d..9b06370 100644 --- a/quark_auto_save.py +++ b/quark_auto_save.py @@ -2066,11 +2066,29 @@ class Quark: # 获取分享详情 is_sharing, stoken = self.get_stoken(pwd_id, passcode) if not is_sharing: + # 如果是可恢复错误(网络/临时),不要设置为失效资源 + try: + error_text = str(stoken or "") + if self.is_recoverable_error(error_text): + print(f"分享详情获取失败(网络异常): {error_text}") + return # 直接返回,不设置 shareurl_ban + except Exception: + pass + # 非可恢复错误,按失效处理 task["shareurl_ban"] = stoken - print(f"分享详情获取失败: {stoken}") add_notify(f"❗《{task['taskname']}》分享详情获取失败: {stoken}\n") return share_detail = self.get_detail(pwd_id, stoken, pdir_fid, _fetch_share=1) + # 如果获取详情返回错误,按可恢复性判断 + if isinstance(share_detail, dict) and share_detail.get("error"): + error_text = str(share_detail.get("error") or "") + if self.is_recoverable_error(error_text): + print(f"获取分享详情失败(网络异常): {error_text}") + return # 直接返回,不设置 shareurl_ban + else: + task["shareurl_ban"] = self.format_unrecoverable_error(error_text) if hasattr(self, 'format_unrecoverable_error') else error_text + add_notify(f"❗《{task['taskname']}》获取分享详情失败: {task['shareurl_ban']}\n") + return # 获取保存路径fid savepath = task["savepath"] if not self.savepath_fid.get(savepath):