From 1a5fc8d1ef812d5c2c95d578908ff958b0edd67c Mon Sep 17 00:00:00 2001 From: q Date: Sat, 30 May 2026 01:16:17 +0800 Subject: [PATCH] feat: truncate long error msg, fix lanzou folder regex, bump version to 0.3.4 --- .../main/java/cn/qaiu/parser/impl/LzTool.java | 4 +- pom.xml | 2 +- web-front/src/views/Home.vue | 69 ++++++++++++++----- 3 files changed, 53 insertions(+), 22 deletions(-) diff --git a/parser/src/main/java/cn/qaiu/parser/impl/LzTool.java b/parser/src/main/java/cn/qaiu/parser/impl/LzTool.java index 4a2e2dc..cfa3b2f 100644 --- a/parser/src/main/java/cn/qaiu/parser/impl/LzTool.java +++ b/parser/src/main/java/cn/qaiu/parser/impl/LzTool.java @@ -355,8 +355,8 @@ public class LzTool extends PanBase { } private void handleFileListParse(String html, String pwd, String sUrl, Promise> promise) { - // 检测是否为文件分享链接 (不含 /s/、/b/ 路径段且不含 b0 开头的路径段) - if (!sUrl.matches(".*/(s|b)/[^/]+.*") && !sUrl.matches(".*/b0[^/]+.*")) { + // 检测是否为文件分享链接 (不含 /s/、/b/ 路径段且不含 b 开头的路径段) + if (!sUrl.matches(".*/(s|b)/[^/]+.*") && !sUrl.matches(".*/b[^/]+.*")) { promise.fail(baseMsg() + "该链接为蓝奏云文件分享,请使用文件解析接口"); return; } diff --git a/pom.xml b/pom.xml index 4a00f07..e41a5fd 100644 --- a/pom.xml +++ b/pom.xml @@ -17,7 +17,7 @@ - 0.2.1 + 0.3.4 17 17 17 diff --git a/web-front/src/views/Home.vue b/web-front/src/views/Home.vue index 8456887..f095ce5 100644 --- a/web-front/src/views/Home.vue +++ b/web-front/src/views/Home.vue @@ -257,28 +257,44 @@ - -
- 反馈错误详情>> -
+ + +
+ + 解析出错 + + + +
+
- - + + - +
+ +
@@ -607,7 +623,9 @@ export default { autoReadClipboard: true, isDarkMode: false, isLoading: false, - + errorBadgeVisible: false, + errorMsgExpanded: false, + // 输入数据 link: "", password: "", @@ -1149,6 +1167,7 @@ export default { // 统一API调用(自动添加认证参数) async callAPI(endpoint, params = {}) { this.errorButtonVisible = false + this.errorBadgeVisible = false try { this.isLoading = true // 添加认证参数(异步获取) @@ -1160,11 +1179,14 @@ export default { if (response.data.code === 200) { // this.$message.success(response.data.msg || '操作成功') + this.errorBadgeVisible = false return response.data } else { - // 在页面右下角显示一个”查看详情”按钮 可以查看原json + // 解析失败,显示徽章和弹窗 this.errorDetail = response?.data this.errorButtonVisible = true + this.errorBadgeVisible = true + this.errorDialogVisible = true throw new Error(response.data.msg || '操作失败') } } catch (error) { @@ -1172,9 +1194,13 @@ export default { if (error.response?.data?.msg) { this.errorDetail = error.response.data this.errorButtonVisible = true + this.errorBadgeVisible = true + this.errorDialogVisible = true this.$message.error(error.response.data.msg) throw new Error(error.response.data.msg) } + this.errorBadgeVisible = true + this.errorDialogVisible = true this.$message.error(error.message || '网络错误') throw error } finally { @@ -1472,6 +1498,11 @@ export default { }) }, + truncateMsg(msg) { + if (!msg) return '' + return msg.length > 150 ? msg.slice(0, 150) + '...' : msg + }, + copyErrorDetails() { const text = `分享链接:${this.link} 分享密码:${this.password || ''}