From 2644e5f096a4cead529602834460991218ce6797 Mon Sep 17 00:00:00 2001 From: hymbz Date: Thu, 25 Jul 2024 17:34:11 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20:bug:=20=E5=A2=9E=E5=8A=A0=E7=A6=81?= =?UTF-8?q?=E6=BC=AB=E5=9B=BE=E7=89=87=E5=8A=A0=E8=BD=BD=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .xo-config.cjs | 2 ++ src/site/jm.tsx | 19 ++++++++++++++----- vitest.config.ts | 1 + 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/.xo-config.cjs b/.xo-config.cjs index ced7c7b3..ccbcf091 100644 --- a/.xo-config.cjs +++ b/.xo-config.cjs @@ -55,6 +55,8 @@ module.exports = { "no-script-url": "off", // 允许 TODO 注释 "no-warning-comments": "off", + // 允许 return await + "no-return-await": "off", // 允许调用大写开头的函数 "new-cap": ["error", { "capIsNew": false }], // 允许使用复杂的数组解构 diff --git a/src/site/jm.tsx b/src/site/jm.tsx index 65409c23..53abe4fd 100644 --- a/src/site/jm.tsx +++ b/src/site/jm.tsx @@ -62,15 +62,24 @@ import { return; } + const downloadImg = async (url: string) => { + try { + // 使用 fetch 可以复用本地缓存,但有时候会报 cors 问题 + return await request(url, { responseType: 'blob', fetch: true }, 3); + } catch { + return await request( + url, + { responseType: 'blob', revalidate: true, fetch: false }, + 3, + ); + } + }; + const getImgUrl = async (imgEle: HTMLImageElement) => { if (imgEle.src.startsWith('blob:')) return imgEle.src; const originalUrl = imgEle.src; - const res = await request(imgEle.dataset.original!, { - responseType: 'blob', - revalidate: true, - fetch: false, - }); + const res = await downloadImg(imgEle.dataset.original!); if (res.response.size === 0) { toast.warn(`下载原图时出错: ${imgEle.dataset.page}`); return ''; diff --git a/vitest.config.ts b/vitest.config.ts index 3e9dd460..45d0c9fe 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -9,4 +9,5 @@ export default defineConfig({ test: { alias: { helper: resolve(__dirname, './src/helper') }, }, + define: { isDevMode: false }, });