From 116f3d5c280883fec66f858edb7f15e3e22f2123 Mon Sep 17 00:00:00 2001 From: x1ao4 Date: Wed, 9 Jul 2025 22:35:04 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=A4=A7=E9=87=8F?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E8=BD=AC=E5=AD=98=E6=97=B6=E7=9A=84=E7=B4=A2?= =?UTF-8?q?=E5=BC=95=E8=B6=8A=E7=95=8C=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加安全检查防止访问 save_as_top_fids 时索引越界 - 当索引超出范围时使用原始文件 fid 作为备用值 --- quark_auto_save.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/quark_auto_save.py b/quark_auto_save.py index 5451bff..591c87d 100644 --- a/quark_auto_save.py +++ b/quark_auto_save.py @@ -2752,6 +2752,7 @@ class Quark: if query_task_return["code"] == 0: # 建立目录树 saved_files = [] + for index, item in enumerate(need_save_list): icon = ( "📁" @@ -2779,12 +2780,16 @@ class Quark: saved_files.append(format_file_display("", icon, display_name)) # 检查节点是否已存在于树中,避免重复添加 if not tree.contains(item["fid"]): + # 安全地获取save_as_top_fids中的fid,防止索引越界 + save_as_top_fids = query_task_return.get('data', {}).get('save_as', {}).get('save_as_top_fids', []) + saved_fid = save_as_top_fids[index] if index < len(save_as_top_fids) else item["fid"] + tree.create_node( display_name, # 只存储文件名,不包含图标 item["fid"], parent=pdir_fid, data={ - "fid": f"{query_task_return['data']['save_as']['save_as_top_fids'][index]}", + "fid": f"{saved_fid}", "path": f"{savepath}/{item['save_name']}", "is_dir": item["dir"], "icon": icon, # 将图标存储在data中 From 4ad08bae91be0f356b61422adc3af23f58673ddb Mon Sep 17 00:00:00 2001 From: x1ao4 Date: Wed, 9 Jul 2025 23:01:47 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E5=BF=BD=E7=95=A5=E5=88=86=E4=BA=AB?= =?UTF-8?q?=E9=93=BE=E6=8E=A5=E6=A3=80=E6=9F=A5=E6=97=B6=E7=9A=84=20reques?= =?UTF-8?q?t=20error=20=E7=BD=91=E7=BB=9C=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修复网络不稳定时误报 request error 状态的问题 - 在分享链接检查中忽略网络错误,避免误导用户 --- app/templates/index.html | 39 ++++++++++++++++++++++++++++++--------- 1 file changed, 30 insertions(+), 9 deletions(-) diff --git a/app/templates/index.html b/app/templates/index.html index 29d7af6..fa2bde8 100644 --- a/app/templates/index.html +++ b/app/templates/index.html @@ -2453,7 +2453,7 @@ checkShareUrlStatus() { // 只在任务列表页面检查 if (this.activeTab !== 'tasklist') return; - + // 遍历所有任务 this.formData.tasklist.forEach((task, index) => { // 如果任务有分享链接且没有设置shareurl_ban @@ -2463,7 +2463,13 @@ .then(response => { const share_detail = response.data.data; if (!response.data.success) { - // 使用格式化函数处理错误信息 + // 检查是否是 request error,如果是则忽略 + if (share_detail.error && share_detail.error.includes("request error")) { + // 忽略 request error,不设置 shareurl_ban + console.log('检查分享链接时出现网络错误,忽略此错误:', share_detail.error); + return; + } + // 使用格式化函数处理其他错误信息 this.$set(task, "shareurl_ban", this.formatShareUrlBanMessage(share_detail.error)); } else if (share_detail.list !== undefined && share_detail.list.length === 0) { // 检查文件列表是否为空,确保列表存在且为空 @@ -2471,8 +2477,8 @@ } }) .catch(error => { - // 错误处理 - console.error('检查分享链接状态失败:', error); + // 网络请求失败,忽略错误,不设置 shareurl_ban + console.log('检查分享链接状态时网络请求失败,忽略此错误:', error); }); } }); @@ -3173,8 +3179,15 @@ return; } } - - // 使用格式化函数处理错误信息 + + // 检查是否是 request error,如果是则忽略 + if (share_detail.error && share_detail.error.includes("request error")) { + // 忽略 request error,不设置 shareurl_ban + console.log('修改分享链接时出现网络错误,忽略此错误:', share_detail.error); + return; + } + + // 使用格式化函数处理其他错误信息 this.$set(task, "shareurl_ban", this.formatShareUrlBanMessage(share_detail.error)); } else { // 检查文件列表是否为空 @@ -3188,7 +3201,8 @@ } }) .catch(error => { - // 错误处理 + // 网络请求失败,忽略错误,不设置 shareurl_ban + console.log('修改分享链接时网络请求失败,忽略此错误:', error); }); }, clearData(target) { @@ -3401,14 +3415,21 @@ // 检查是否包含已知的失效原因 const error = response.data.data.error || ""; let isInvalid = false; - + + // 如果是 request error,视为有效(网络问题,不是资源问题) + if (error.includes("request error")) { + this.smart_param.validateProgress.valid++; + resolve(link); + return; + } + for (const term of invalidTerms) { if (error.includes(term)) { isInvalid = true; break; } } - + // 如果不是已知的失效原因,保留该结果 if (!isInvalid) { this.smart_param.validateProgress.valid++; From 19f63e45041f67f9c532b7f48816db86c71a1f83 Mon Sep 17 00:00:00 2001 From: x1ao4 <112841659+x1ao4@users.noreply.github.com> Date: Wed, 9 Jul 2025 23:25:44 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E8=A7=84=E8=8C=83=20Docker=20Compose=20?= =?UTF-8?q?=E6=A0=BC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 1e55ef3..053c5c1 100644 --- a/README.md +++ b/README.md @@ -75,7 +75,7 @@ docker run -d \ x1ao4/quark-auto-save-x:latest ``` -Docker Compose +Docker Compose(推荐) ```yaml version: "3.3" @@ -89,7 +89,6 @@ services: - /自定义配置文件的存储目录/quark-auto-save-x/config:/app/config - /自定义生成文件的存储目录:/media # 可选,插件 alist_strm_gen 生成 strm 使用 restart: unless-stopped -networks: {} ``` 默认管理地址:http://yourhost:5005