From 1bbfb8cf0f1b0c0d427a140c343adb92dba686f8 Mon Sep 17 00:00:00 2001 From: UCPr <2032385471@qq.com> Date: Fri, 18 Jul 2025 04:33:39 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=9B=B4=E6=96=B0=E9=9D=A2?= =?UTF-8?q?=E6=9D=BF=E5=BC=82=E5=B8=B8=E5=9B=9E=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/panel.js | 33 +++++++++++++++++++-------------- resources/panel/card.html | 2 +- 2 files changed, 20 insertions(+), 15 deletions(-) diff --git a/apps/panel.js b/apps/panel.js index 9c276a3..8d747aa 100644 --- a/apps/panel.js +++ b/apps/panel.js @@ -66,7 +66,6 @@ export class Panel extends ZZZPlugin { const isEnka = this.e.msg.includes('展柜') || !(await getCk(this.e)) let result if (isEnka) { - await this.reply('正在更新面板列表,请稍候...'); const data = await refreshPanelFromEnka(uid) .catch(err => err) if (data instanceof Error) { @@ -82,22 +81,28 @@ export class Panel extends ZZZPlugin { result = await mergePanel(uid, panelList) await this.getPlayerInfo(playerInfo) } else if (typeof data === 'number') { - return this.reply(`Enka服务调用失败,状态码:${data}${data === 424 ? '\n版本更新后,须等待一段时间才可正常使用enka服务' : ''}`); + return this.reply(`Enka服务调用失败,状态码:${data}`) } } else { - const { api, deviceFp } = await this.getAPI(); - await this.reply('正在更新面板列表,请稍候...\n账号异常时,可尝试%更新展柜面板(所更新角色数据与实际不一致时,请提issue)'); - await this.getPlayerInfo(); - await redis.set(`ZZZ:PANEL:${uid}:LASTTIME`, Date.now()); - result = await refreshPanelFunction(api, deviceFp).catch(e => { - this.reply(e.message); - throw e; - }); - } - if (!result) { - await this.reply('面板列表更新失败,请稍后再试'); - return false; + const oriReply = this.reply.bind(this); + let errorMsg = ''; + this.reply = (msg) => errorMsg += '\n' + msg; + try { + const { api, deviceFp } = await this.getAPI(); + await oriReply('正在更新面板列表,请稍候...'); + await this.getPlayerInfo(); + await redis.set(`ZZZ:PANEL:${uid}:LASTTIME`, Date.now()); + result = await refreshPanelFunction(api, deviceFp); + } catch (err) { + logger.error('面板列表更新失败:', err); + errorMsg = (err.message || '') + errorMsg; + } + this.reply = oriReply; + if (errorMsg && !result) { + return this.reply(`面板列表更新失败,请稍后再试或尝试%更新展柜面板:\n${errorMsg.trim()}`); + } } + if (!result) return false; const newChar = result.filter(item => item.isNew); const finalData = { newChar: newChar.length, diff --git a/resources/panel/card.html b/resources/panel/card.html index c7d63a1..02b18cd 100644 --- a/resources/panel/card.html +++ b/resources/panel/card.html @@ -222,7 +222,7 @@
{{if prop.score !== false}} -
+
{{else}}
{{/if}}