From 354f3fd8e260452d531f83e86771aea34bf3fc89 Mon Sep 17 00:00:00 2001 From: xuncha <1658671838@qq.com> Date: Sun, 22 Mar 2026 09:18:57 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=9B=BE=E7=89=87=E8=A7=A3?= =?UTF-8?q?=E5=AF=86=E5=A4=B1=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- electron/services/exportService.ts | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/electron/services/exportService.ts b/electron/services/exportService.ts index 0a13243..e0f43f3 100644 --- a/electron/services/exportService.ts +++ b/electron/services/exportService.ts @@ -1000,6 +1000,26 @@ class ExportService { return `${localType}_${this.getStableMessageKey(msg)}` } + private getImageMissingRunCacheKey( + sessionId: string, + imageMd5?: unknown, + imageDatName?: unknown, + imageDeepSearchOnMiss = true + ): string | null { + const normalizedSessionId = String(sessionId || '').trim() + const normalizedImageMd5 = String(imageMd5 || '').trim().toLowerCase() + const normalizedImageDatName = String(imageDatName || '').trim().toLowerCase() + if (!normalizedSessionId) return null + if (!normalizedImageMd5 && !normalizedImageDatName) return null + + const primaryToken = normalizedImageMd5 || normalizedImageDatName + const secondaryToken = normalizedImageMd5 && normalizedImageDatName && normalizedImageDatName !== normalizedImageMd5 + ? normalizedImageDatName + : '' + const lookupMode = imageDeepSearchOnMiss ? 'deep' : 'hardlink' + return `${lookupMode}\u001f${normalizedSessionId}\u001f${primaryToken}\u001f${secondaryToken}` + } + private normalizeEmojiMd5(value: unknown): string | undefined { const md5 = String(value || '').trim().toLowerCase() if (!/^[a-f0-9]{32}$/.test(md5)) return undefined