From 893cdb4d929359d941c20394b26ce6febcc53abe Mon Sep 17 00:00:00 2001 From: xuncha <1658671838@qq.com> Date: Wed, 28 Jan 2026 19:31:29 +0800 Subject: [PATCH 01/12] =?UTF-8?q?fix:=E4=BF=AE=E5=A4=8Decxel=E5=AF=BC?= =?UTF-8?q?=E5=87=BA=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- electron/services/exportService.ts | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/electron/services/exportService.ts b/electron/services/exportService.ts index f5e750b..7ee4c44 100644 --- a/electron/services/exportService.ts +++ b/electron/services/exportService.ts @@ -2364,12 +2364,15 @@ class ExportService { const row = worksheet.getRow(currentRow) row.height = 24 - const contentValue = this.formatPlainExportContent( - msg.content, - msg.localType, - options, - voiceTranscriptMap.get(msg.localId) - ) + const mediaKey = `${msg.localType}_${msg.localId}` + const mediaItem = mediaCache.get(mediaKey) + const contentValue = mediaItem?.relativePath + || this.formatPlainExportContent( + msg.content, + msg.localType, + options, + voiceTranscriptMap.get(msg.localId) + ) // 调试日志 if (msg.localType === 3 || msg.localType === 47) { From e63f9014784f467e641f7bb0da699fee2bf95097 Mon Sep 17 00:00:00 2001 From: xuncha <1658671838@qq.com> Date: Wed, 28 Jan 2026 19:55:39 +0800 Subject: [PATCH 02/12] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- electron/services/imageDecryptService.ts | 57 ++++++++++++++++++++++-- 1 file changed, 54 insertions(+), 3 deletions(-) diff --git a/electron/services/imageDecryptService.ts b/electron/services/imageDecryptService.ts index aae33f9..fedc3d5 100644 --- a/electron/services/imageDecryptService.ts +++ b/electron/services/imageDecryptService.ts @@ -415,8 +415,14 @@ export class ImageDecryptService { if (imageDatName) this.cacheDatPath(accountDir, imageDatName, hardlinkPath) return hardlinkPath } - // hardlink 找到的是缩略图,但要求高清图,直接返回 null,不再搜索 + // hardlink 找到的是缩略图,但要求高清图:尝试同目录查找高清变体 if (!allowThumbnail && isThumb) { + const hdPath = this.findHdVariantInSameDir(hardlinkPath) + if (hdPath) { + this.cacheDatPath(accountDir, imageMd5, hdPath) + if (imageDatName) this.cacheDatPath(accountDir, imageDatName, hdPath) + return hdPath + } return null } } @@ -432,6 +438,11 @@ export class ImageDecryptService { return fallbackPath } if (!allowThumbnail && isThumb) { + const hdPath = this.findHdVariantInSameDir(fallbackPath) + if (hdPath) { + this.cacheDatPath(accountDir, imageDatName, hdPath) + return hdPath + } return null } } @@ -449,15 +460,20 @@ export class ImageDecryptService { this.cacheDatPath(accountDir, imageDatName, hardlinkPath) return hardlinkPath } - // hardlink 找到的是缩略图,但要求高清图,直接返回 null + // hardlink 找到的是缩略图,但要求高清图:尝试同目录查找高清变体 if (!allowThumbnail && isThumb) { + const hdPath = this.findHdVariantInSameDir(hardlinkPath) + if (hdPath) { + this.cacheDatPath(accountDir, imageDatName, hdPath) + return hdPath + } return null } } this.logInfo('[ImageDecrypt] hardlink miss (datName)', { imageDatName }) } - // 如果要求高清图但 hardlink 没找到,也不要搜索了(搜索太慢) + // 如果要求高清图但 hardlink 没找到,也不要搜索全盘了(搜索太慢) if (!allowThumbnail) { return null } @@ -467,6 +483,9 @@ export class ImageDecryptService { const cached = this.resolvedCache.get(imageDatName) if (cached && existsSync(cached)) { if (allowThumbnail || !this.isThumbnailPath(cached)) return cached + // 缓存的是缩略图,尝试同目录找高清变体 + const hdPath = this.findHdVariantInSameDir(cached) + if (hdPath) return hdPath } } @@ -511,6 +530,38 @@ export class ImageDecryptService { return this.searchDatFile(accountDir, imageDatName, true, true) } + /** + * 在同目录中尝试查找高清图变体 + * 缩略图: xxx_t.dat / xxx.t.dat -> 高清图: xxx_h.dat / xxx.h.dat / xxx.dat + */ + private findHdVariantInSameDir(thumbPath: string): string | null { + try { + const dir = dirname(thumbPath) + const fileName = basename(thumbPath).toLowerCase() + + let baseName = fileName + if (baseName.endsWith('_t.dat')) { + baseName = baseName.slice(0, -6) + } else if (baseName.endsWith('.t.dat')) { + baseName = baseName.slice(0, -6) + } else { + return null + } + + const variants = [ + `${baseName}_h.dat`, + `${baseName}.h.dat`, + `${baseName}.dat` + ] + + for (const variant of variants) { + const candidate = join(dir, variant) + if (existsSync(candidate)) return candidate + } + } catch { } + return null + } + private async checkHasUpdate( payload: { sessionId?: string; imageMd5?: string; imageDatName?: string }, cacheKey: string, From b6c9f2b32b71e891c02aef401938b0eca485ff17 Mon Sep 17 00:00:00 2001 From: xuncha <1658671838@qq.com> Date: Wed, 28 Jan 2026 20:05:48 +0800 Subject: [PATCH 03/12] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dtxt=E5=AF=BC=E5=87=BA?= =?UTF-8?q?=E4=B8=8D=E6=98=A0=E5=B0=84=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- electron/services/exportService.ts | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/electron/services/exportService.ts b/electron/services/exportService.ts index 7ee4c44..5e22b79 100644 --- a/electron/services/exportService.ts +++ b/electron/services/exportService.ts @@ -2546,12 +2546,15 @@ class ExportService { for (let i = 0; i < sortedMessages.length; i++) { const msg = sortedMessages[i] - const contentValue = this.formatPlainExportContent( - msg.content, - msg.localType, - options, - voiceTranscriptMap.get(msg.localId) - ) + const mediaKey = `${msg.localType}_${msg.localId}` + const mediaItem = mediaCache.get(mediaKey) + const contentValue = mediaItem?.relativePath + || this.formatPlainExportContent( + msg.content, + msg.localType, + options, + voiceTranscriptMap.get(msg.localId) + ) let senderRole: string let senderWxid: string From 9969c073e58eba0dd52f551f85a7294eb6b4abb8 Mon Sep 17 00:00:00 2001 From: xuncha <1658671838@qq.com> Date: Wed, 28 Jan 2026 20:24:48 +0800 Subject: [PATCH 04/12] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=AF=BC=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- electron/services/config.ts | 4 +- electron/services/exportService.ts | 104 +++++++++++++++++++++++------ src/pages/ExportPage.tsx | 14 ++-- src/pages/SettingsPage.tsx | 29 ++++++++ src/services/config.ts | 15 ++++- src/types/electron.d.ts | 1 + 6 files changed, 140 insertions(+), 27 deletions(-) diff --git a/electron/services/config.ts b/electron/services/config.ts index 3ba3a14..2a496d6 100644 --- a/electron/services/config.ts +++ b/electron/services/config.ts @@ -26,6 +26,7 @@ interface ConfigSchema { whisperDownloadSource: string autoTranscribeVoice: boolean transcribeLanguages: string[] + exportDefaultConcurrency: number } export class ConfigService { @@ -54,7 +55,8 @@ export class ConfigService { whisperModelDir: '', whisperDownloadSource: 'tsinghua', autoTranscribeVoice: false, - transcribeLanguages: ['zh'] + transcribeLanguages: ['zh'], + exportDefaultConcurrency: 2 } }) } diff --git a/electron/services/exportService.ts b/electron/services/exportService.ts index 5e22b79..6df6819 100644 --- a/electron/services/exportService.ts +++ b/electron/services/exportService.ts @@ -78,6 +78,7 @@ export interface ExportOptions { txtColumns?: string[] sessionLayout?: 'shared' | 'per-session' displayNamePreference?: 'group-nickname' | 'remark' | 'nickname' + exportConcurrency?: number } const TXT_COLUMN_DEFINITIONS: Array<{ id: string; label: string }> = [ @@ -1288,6 +1289,7 @@ class ExportService { ): Promise<{ rows: any[]; memberSet: Map; firstTime: number | null; lastTime: number | null }> { const rows: any[] = [] const memberSet = new Map() + const senderSet = new Set() let firstTime: number | null = null let lastTime: number | null = null @@ -1321,16 +1323,7 @@ class ExportService { const localId = parseInt(row.local_id || row.localId || '0', 10) const actualSender = isSend ? cleanedMyWxid : (senderUsername || sessionId) - const memberInfo = await this.getContactInfo(actualSender) - if (!memberSet.has(actualSender)) { - memberSet.set(actualSender, { - member: { - platformId: actualSender, - accountName: memberInfo.displayName - }, - avatarUrl: memberInfo.avatarUrl - }) - } + senderSet.add(actualSender) // 提取媒体相关字段 let imageMd5: string | undefined @@ -1375,6 +1368,30 @@ class ExportService { await wcdbService.closeMessageCursor(cursor.cursor) } + if (senderSet.size > 0) { + const usernames = Array.from(senderSet) + const [nameResult, avatarResult] = await Promise.all([ + wcdbService.getDisplayNames(usernames), + wcdbService.getAvatarUrls(usernames) + ]) + + const nameMap = nameResult.success && nameResult.map ? nameResult.map : {} + const avatarMap = avatarResult.success && avatarResult.map ? avatarResult.map : {} + + for (const username of usernames) { + const displayName = nameMap[username] || username + const avatarUrl = avatarMap[username] + memberSet.set(username, { + member: { + platformId: username, + accountName: displayName + }, + avatarUrl + }) + this.contactCache.set(username, { displayName, avatarUrl }) + } + } + return { rows, memberSet, firstTime, lastTime } } @@ -1856,6 +1873,16 @@ class ExportService { const sessionInfo = await this.getContactInfo(sessionId) const myInfo = await this.getContactInfo(cleanedMyWxid) + const contactCache = new Map() + const getContactCached = async (username: string) => { + if (contactCache.has(username)) { + return contactCache.get(username)! + } + const result = await wcdbService.getContact(username) + contactCache.set(username, result) + return result + } + onProgress?.({ current: 0, total: 100, @@ -1934,6 +1961,16 @@ class ExportService { ? await this.getGroupNicknamesForRoom(sessionId) : new Map() + const contactCache = new Map() + const getContactCached = async (username: string) => { + if (contactCache.has(username)) { + return contactCache.get(username)! + } + const result = await wcdbService.getContact(username) + contactCache.set(username, result) + return result + } + // ========== 阶段3:构建消息列表 ========== onProgress?.({ current: 55, @@ -1962,7 +1999,7 @@ class ExportService { // 获取发送者信息用于名称显示 const senderWxid = msg.senderUsername - const contact = await wcdbService.getContact(senderWxid) + const contact = await getContactCached(senderWxid) const senderNickname = contact.success && contact.contact?.nickName ? contact.contact.nickName : (senderInfo.displayName || senderWxid) @@ -2005,7 +2042,7 @@ class ExportService { const { chatlab, meta } = this.getExportMeta(sessionId, sessionInfo, isGroup) // 获取会话的昵称和备注信息 - const sessionContact = await wcdbService.getContact(sessionId) + const sessionContact = await getContactCached(sessionId) const sessionNickname = sessionContact.success && sessionContact.contact?.nickName ? sessionContact.contact.nickName : sessionInfo.displayName @@ -2098,8 +2135,18 @@ class ExportService { const sessionInfo = await this.getContactInfo(sessionId) const myInfo = await this.getContactInfo(cleanedMyWxid) + const contactCache = new Map() + const getContactCached = async (username: string) => { + if (contactCache.has(username)) { + return contactCache.get(username)! + } + const result = await wcdbService.getContact(username) + contactCache.set(username, result) + return result + } + // 获取会话的备注信息 - const sessionContact = await wcdbService.getContact(sessionId) + const sessionContact = await getContactCached(sessionId) const sessionRemark = sessionContact.success && sessionContact.contact?.remark ? sessionContact.contact.remark : '' const sessionNickname = sessionContact.success && sessionContact.contact?.nickName ? sessionContact.contact.nickName : sessionId @@ -2328,7 +2375,7 @@ class ExportService { senderWxid = msg.senderUsername // 用 getContact 获取联系人详情,分别取昵称和备注 - const contactDetail = await wcdbService.getContact(msg.senderUsername) + const contactDetail = await getContactCached(msg.senderUsername) if (contactDetail.success && contactDetail.contact) { // nickName 才是真正的昵称 senderNickname = contactDetail.contact.nickName || msg.senderUsername @@ -2343,7 +2390,7 @@ class ExportService { } else { // 单聊对方消息 - 用 getContact 获取联系人详情 senderWxid = sessionId - const contactDetail = await wcdbService.getContact(sessionId) + const contactDetail = await getContactCached(sessionId) if (contactDetail.success && contactDetail.contact) { senderNickname = contactDetail.contact.nickName || sessionId senderRemark = contactDetail.contact.remark || '' @@ -2567,7 +2614,7 @@ class ExportService { senderNickname = myInfo.displayName || cleanedMyWxid } else if (isGroup && msg.senderUsername) { senderWxid = msg.senderUsername - const contactDetail = await wcdbService.getContact(msg.senderUsername) + const contactDetail = await getContactCached(msg.senderUsername) if (contactDetail.success && contactDetail.contact) { senderNickname = contactDetail.contact.nickName || msg.senderUsername senderRemark = contactDetail.contact.remark || '' @@ -2578,7 +2625,7 @@ class ExportService { } } else { senderWxid = sessionId - const contactDetail = await wcdbService.getContact(sessionId) + const contactDetail = await getContactCached(sessionId) if (contactDetail.success && contactDetail.contact) { senderNickname = contactDetail.contact.nickName || sessionId senderRemark = contactDetail.contact.remark || '' @@ -3005,13 +3052,20 @@ class ExportService { const sessionLayout = exportMediaEnabled ? (options.sessionLayout ?? 'per-session') : 'shared' + let completedCount = 0 + const rawConcurrency = typeof options.exportConcurrency === 'number' + ? Math.floor(options.exportConcurrency) + : 2 + const clampedConcurrency = Math.max(1, Math.min(rawConcurrency, 6)) + const sessionConcurrency = (exportMediaEnabled && sessionLayout === 'shared') + ? 1 + : clampedConcurrency - for (let i = 0; i < sessionIds.length; i++) { - const sessionId = sessionIds[i] + await parallelLimit(sessionIds, sessionConcurrency, async (sessionId) => { const sessionInfo = await this.getContactInfo(sessionId) onProgress?.({ - current: i + 1, + current: completedCount, total: sessionIds.length, currentSession: sessionInfo.displayName, phase: 'exporting' @@ -3053,7 +3107,15 @@ class ExportService { failCount++ console.error(`导出 ${sessionId} 失败:`, result.error) } - } + + completedCount++ + onProgress?.({ + current: completedCount, + total: sessionIds.length, + currentSession: sessionInfo.displayName, + phase: 'exporting' + }) + }) onProgress?.({ current: sessionIds.length, diff --git a/src/pages/ExportPage.tsx b/src/pages/ExportPage.tsx index d1f5bad..a8872cd 100644 --- a/src/pages/ExportPage.tsx +++ b/src/pages/ExportPage.tsx @@ -24,6 +24,7 @@ interface ExportOptions { excelCompactColumns: boolean txtColumns: string[] displayNamePreference: 'group-nickname' | 'remark' | 'nickname' + exportConcurrency: number } interface ExportResult { @@ -68,7 +69,8 @@ function ExportPage() { exportVoiceAsText: true, excelCompactColumns: true, txtColumns: defaultTxtColumns, - displayNamePreference: 'remark' + displayNamePreference: 'remark', + exportConcurrency: 2 }) const buildDateRangeFromPreset = (preset: string) => { @@ -133,14 +135,16 @@ function ExportPage() { savedMedia, savedVoiceAsText, savedExcelCompactColumns, - savedTxtColumns + savedTxtColumns, + savedConcurrency ] = await Promise.all([ configService.getExportDefaultFormat(), configService.getExportDefaultDateRange(), configService.getExportDefaultMedia(), configService.getExportDefaultVoiceAsText(), configService.getExportDefaultExcelCompactColumns(), - configService.getExportDefaultTxtColumns() + configService.getExportDefaultTxtColumns(), + configService.getExportDefaultConcurrency() ]) const preset = savedRange || 'today' @@ -155,7 +159,8 @@ function ExportPage() { exportMedia: savedMedia ?? false, exportVoiceAsText: savedVoiceAsText ?? true, excelCompactColumns: savedExcelCompactColumns ?? true, - txtColumns + txtColumns, + exportConcurrency: savedConcurrency ?? 2 })) } catch (e) { console.error('加载导出默认设置失败:', e) @@ -286,6 +291,7 @@ function ExportPage() { excelCompactColumns: options.excelCompactColumns, txtColumns: options.txtColumns, displayNamePreference: options.displayNamePreference, + exportConcurrency: options.exportConcurrency, sessionLayout, dateRange: options.useAllTime ? null : options.dateRange ? { start: Math.floor(options.dateRange.start.getTime() / 1000), diff --git a/src/pages/SettingsPage.tsx b/src/pages/SettingsPage.tsx index 8bd2d45..177a9fd 100644 --- a/src/pages/SettingsPage.tsx +++ b/src/pages/SettingsPage.tsx @@ -62,6 +62,7 @@ function SettingsPage() { const [exportDefaultMedia, setExportDefaultMedia] = useState(false) const [exportDefaultVoiceAsText, setExportDefaultVoiceAsText] = useState(true) const [exportDefaultExcelCompactColumns, setExportDefaultExcelCompactColumns] = useState(true) + const [exportDefaultConcurrency, setExportDefaultConcurrency] = useState(2) const [isLoading, setIsLoadingState] = useState(false) const [isTesting, setIsTesting] = useState(false) @@ -139,6 +140,7 @@ function SettingsPage() { const savedExportDefaultMedia = await configService.getExportDefaultMedia() const savedExportDefaultVoiceAsText = await configService.getExportDefaultVoiceAsText() const savedExportDefaultExcelCompactColumns = await configService.getExportDefaultExcelCompactColumns() + const savedExportDefaultConcurrency = await configService.getExportDefaultConcurrency() if (savedPath) setDbPath(savedPath) if (savedWxid) setWxid(savedWxid) @@ -166,6 +168,7 @@ function SettingsPage() { setExportDefaultMedia(savedExportDefaultMedia ?? false) setExportDefaultVoiceAsText(savedExportDefaultVoiceAsText ?? true) setExportDefaultExcelCompactColumns(savedExportDefaultExcelCompactColumns ?? true) + setExportDefaultConcurrency(savedExportDefaultConcurrency ?? 2) // 如果语言列表为空,保存默认值 if (!savedTranscribeLanguages || savedTranscribeLanguages.length === 0) { @@ -1113,6 +1116,32 @@ function SettingsPage() { + +
+ + ?????????????????? 1-3 + { + const value = Number(e.target.value) + if (Number.isNaN(value)) { + setExportDefaultConcurrency(1) + return + } + setExportDefaultConcurrency(value) + }} + onBlur={async () => { + const clamped = Math.max(1, Math.min(Math.floor(exportDefaultConcurrency || 1), 6)) + setExportDefaultConcurrency(clamped) + await configService.setExportDefaultConcurrency(clamped) + showMessage(`?????????????? ${clamped}`, true) + }} + /> +
+
控制 Excel 导出的列字段 diff --git a/src/services/config.ts b/src/services/config.ts index 063ff68..fe0153e 100644 --- a/src/services/config.ts +++ b/src/services/config.ts @@ -29,7 +29,8 @@ export const CONFIG_KEYS = { EXPORT_DEFAULT_MEDIA: 'exportDefaultMedia', EXPORT_DEFAULT_VOICE_AS_TEXT: 'exportDefaultVoiceAsText', EXPORT_DEFAULT_EXCEL_COMPACT_COLUMNS: 'exportDefaultExcelCompactColumns', - EXPORT_DEFAULT_TXT_COLUMNS: 'exportDefaultTxtColumns' + EXPORT_DEFAULT_TXT_COLUMNS: 'exportDefaultTxtColumns', + EXPORT_DEFAULT_CONCURRENCY: 'exportDefaultConcurrency' } as const export interface WxidConfig { @@ -352,3 +353,15 @@ export async function getExportDefaultTxtColumns(): Promise { export async function setExportDefaultTxtColumns(columns: string[]): Promise { await config.set(CONFIG_KEYS.EXPORT_DEFAULT_TXT_COLUMNS, columns) } + +// 获取导出默认并发数 +export async function getExportDefaultConcurrency(): Promise { + const value = await config.get(CONFIG_KEYS.EXPORT_DEFAULT_CONCURRENCY) + if (typeof value === 'number' && Number.isFinite(value)) return value + return null +} + +// 设置导出默认并发数 +export async function setExportDefaultConcurrency(concurrency: number): Promise { + await config.set(CONFIG_KEYS.EXPORT_DEFAULT_CONCURRENCY, concurrency) +} diff --git a/src/types/electron.d.ts b/src/types/electron.d.ts index 2622cce..3f48a8d 100644 --- a/src/types/electron.d.ts +++ b/src/types/electron.d.ts @@ -365,6 +365,7 @@ export interface ExportOptions { txtColumns?: string[] sessionLayout?: 'shared' | 'per-session' displayNamePreference?: 'group-nickname' | 'remark' | 'nickname' + exportConcurrency?: number } export interface ExportProgress { From 17c9436c30229781ce0ab158f5b8ee3e81a621a4 Mon Sep 17 00:00:00 2001 From: xuncha <1658671838@qq.com> Date: Wed, 28 Jan 2026 20:26:48 +0800 Subject: [PATCH 05/12] =?UTF-8?q?=E5=90=8C=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 4wm.jpg | Bin 0 -> 145609 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 4wm.jpg diff --git a/4wm.jpg b/4wm.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ccfa3a114cf791c33cd7d4ba5798148792a5256d GIT binary patch literal 145609 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�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 Date: Wed, 28 Jan 2026 20:35:20 +0800 Subject: [PATCH 06/12] =?UTF-8?q?=E4=BF=AE=E4=B8=80=E4=B8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- electron/services/exportService.ts | 10 ---------- src/pages/SettingsPage.tsx | 6 +++--- 2 files changed, 3 insertions(+), 13 deletions(-) diff --git a/electron/services/exportService.ts b/electron/services/exportService.ts index 6df6819..c1c00ea 100644 --- a/electron/services/exportService.ts +++ b/electron/services/exportService.ts @@ -1961,16 +1961,6 @@ class ExportService { ? await this.getGroupNicknamesForRoom(sessionId) : new Map() - const contactCache = new Map() - const getContactCached = async (username: string) => { - if (contactCache.has(username)) { - return contactCache.get(username)! - } - const result = await wcdbService.getContact(username) - contactCache.set(username, result) - return result - } - // ========== 阶段3:构建消息列表 ========== onProgress?.({ current: 55, diff --git a/src/pages/SettingsPage.tsx b/src/pages/SettingsPage.tsx index 177a9fd..4951768 100644 --- a/src/pages/SettingsPage.tsx +++ b/src/pages/SettingsPage.tsx @@ -1118,8 +1118,8 @@ function SettingsPage() {

- - ?????????????????? 1-3 + + {'\u540c\u65f6\u5bfc\u51fa\u7684\u4f1a\u8bdd\u6570\u91cf\uff0c\u5efa\u8bae 1-3'}
From 77689ec5285aea91bf2c78fc479eb0dbfd11be2d Mon Sep 17 00:00:00 2001 From: cc <98377878+hicccc77@users.noreply.github.com> Date: Wed, 28 Jan 2026 23:04:29 +0800 Subject: [PATCH 07/12] =?UTF-8?q?feat:=20=E8=A7=A3=E5=86=B3=E4=BA=86?= =?UTF-8?q?=E4=B8=80=E4=BA=9B=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- electron/main.ts | 11 +- electron/preload-env.ts | 39 ++ electron/preload.ts | 6 +- electron/services/chatService.ts | 65 ++- electron/services/exportService.ts | 78 +++- electron/services/snsService.ts | 205 ++++++++- electron/services/wcdbCore.ts | 11 +- resources/wcdb_api.dll | Bin 689152 -> 698880 bytes src/App.tsx | 77 ++-- src/components/LivePhotoIcon.tsx | 29 ++ src/components/UpdateDialog.scss | 251 +++++++++++ src/components/UpdateDialog.tsx | 132 ++++++ src/components/UpdateProgressCapsule.scss | 192 +++++++++ src/components/UpdateProgressCapsule.tsx | 118 +++++ src/pages/SettingsPage.tsx | 364 ++++++++-------- src/pages/SnsPage.scss | 323 ++++++++++++-- src/pages/SnsPage.tsx | 504 +++++++++++++++------- src/stores/appStore.ts | 61 ++- src/types/electron.d.ts | 20 +- 19 files changed, 2032 insertions(+), 454 deletions(-) create mode 100644 electron/preload-env.ts create mode 100644 src/components/LivePhotoIcon.tsx create mode 100644 src/components/UpdateDialog.scss create mode 100644 src/components/UpdateDialog.tsx create mode 100644 src/components/UpdateProgressCapsule.scss create mode 100644 src/components/UpdateProgressCapsule.tsx diff --git a/electron/main.ts b/electron/main.ts index 5900356..58bc29f 100644 --- a/electron/main.ts +++ b/electron/main.ts @@ -1,3 +1,4 @@ +import './preload-env' import { app, BrowserWindow, ipcMain, nativeTheme, session } from 'electron' import { Worker } from 'worker_threads' import { join, dirname } from 'path' @@ -451,7 +452,7 @@ function registerIpcHandlers() { // 监听下载进度 autoUpdater.on('download-progress', (progress) => { - win?.webContents.send('app:downloadProgress', progress.percent) + win?.webContents.send('app:downloadProgress', progress) }) // 下载完成后自动安装 @@ -682,6 +683,14 @@ function registerIpcHandlers() { return snsService.getTimeline(limit, offset, usernames, keyword, startTime, endTime) }) + ipcMain.handle('sns:debugResource', async (_, url: string) => { + return snsService.debugResource(url) + }) + + ipcMain.handle('sns:proxyImage', async (_, url: string) => { + return snsService.proxyImage(url) + }) + // 私聊克隆 diff --git a/electron/preload-env.ts b/electron/preload-env.ts new file mode 100644 index 0000000..70d36d0 --- /dev/null +++ b/electron/preload-env.ts @@ -0,0 +1,39 @@ +import { join, dirname } from 'path' + +/** + * 强制将本地资源目录添加到 PATH 最前端,确保优先加载本地 DLL + * 解决系统中存在冲突版本的 DLL 导致的应用崩溃问题 + */ +function enforceLocalDllPriority() { + const isDev = !!process.env.VITE_DEV_SERVER_URL + const sep = process.platform === 'win32' ? ';' : ':' + + let possiblePaths: string[] = [] + + if (isDev) { + // 开发环境 + possiblePaths.push(join(process.cwd(), 'resources')) + } else { + // 生产环境 + possiblePaths.push(dirname(process.execPath)) + if (process.resourcesPath) { + possiblePaths.push(process.resourcesPath) + } + } + + const dllPaths = possiblePaths.join(sep) + + if (process.env.PATH) { + process.env.PATH = dllPaths + sep + process.env.PATH + } else { + process.env.PATH = dllPaths + } + + console.log('[WeFlow] Environment PATH updated to enforce local DLL priority:', dllPaths) +} + +try { + enforceLocalDllPriority() +} catch (e) { + console.error('[WeFlow] Failed to enforce local DLL priority:', e) +} diff --git a/electron/preload.ts b/electron/preload.ts index 6fa3c36..cf0352a 100644 --- a/electron/preload.ts +++ b/electron/preload.ts @@ -29,7 +29,7 @@ contextBridge.exposeInMainWorld('electronAPI', { getVersion: () => ipcRenderer.invoke('app:getVersion'), checkForUpdates: () => ipcRenderer.invoke('app:checkForUpdates'), downloadAndInstall: () => ipcRenderer.invoke('app:downloadAndInstall'), - onDownloadProgress: (callback: (progress: number) => void) => { + onDownloadProgress: (callback: (progress: any) => void) => { ipcRenderer.on('app:downloadProgress', (_, progress) => callback(progress)) return () => ipcRenderer.removeAllListeners('app:downloadProgress') }, @@ -214,6 +214,8 @@ contextBridge.exposeInMainWorld('electronAPI', { // 朋友圈 sns: { getTimeline: (limit: number, offset: number, usernames?: string[], keyword?: string, startTime?: number, endTime?: number) => - ipcRenderer.invoke('sns:getTimeline', limit, offset, usernames, keyword, startTime, endTime) + ipcRenderer.invoke('sns:getTimeline', limit, offset, usernames, keyword, startTime, endTime), + debugResource: (url: string) => ipcRenderer.invoke('sns:debugResource', url), + proxyImage: (url: string) => ipcRenderer.invoke('sns:proxyImage', url) } }) diff --git a/electron/services/chatService.ts b/electron/services/chatService.ts index 2c3c143..ccc7a28 100644 --- a/electron/services/chatService.ts +++ b/electron/services/chatService.ts @@ -328,7 +328,7 @@ class ChatService { const cached = this.avatarCache.get(username) // 如果缓存有效且有头像,直接使用;如果没有头像,也需要重新尝试获取 // 额外检查:如果头像是无效的 hex 格式(以 ffd8 开头),也需要重新获取 - const isValidAvatar = cached?.avatarUrl && + const isValidAvatar = cached?.avatarUrl && !cached.avatarUrl.includes('base64,ffd8') // 检测错误的 hex 格式 if (cached && now - cached.updatedAt < this.avatarCacheTtlMs && isValidAvatar) { result[username] = { @@ -970,7 +970,7 @@ class ChatService { const title = this.extractXmlValue(content, 'title') return title || '[引用消息]' case 266287972401: - return '[拍一拍]' + return this.cleanPatMessage(content) case 81604378673: return '[聊天记录]' case 8594229559345: @@ -1659,6 +1659,37 @@ class ChatService { } } + /** + * 清理拍一拍消息 + * 格式示例: 我拍了拍 "梨绒" ງ໐໐໓ ຖiງht620000wxid_... + */ + private cleanPatMessage(content: string): string { + if (!content) return '[拍一拍]' + + // 1. 尝试匹配标准的 "A拍了拍B" 格式 + // 这里的正则比较宽泛,为了兼容不同的语言环境 + const match = /^(.+?拍了拍.+?)(?:[\r\n]|$|ງ|wxid_)/.exec(content) + if (match) { + return `[拍一拍] ${match[1].trim()}` + } + + // 2. 如果匹配失败,尝试清理掉疑似的 garbage (wxid, 乱码) + let cleaned = content.replace(/wxid_[a-zA-Z0-9_-]+/g, '') // 移除 wxid + cleaned = cleaned.replace(/[ງ໐໓ຖiht]+/g, ' ') // 移除已知的乱码字符 + cleaned = cleaned.replace(/\d{6,}/g, '') // 移除长数字 + cleaned = cleaned.replace(/\s+/g, ' ').trim() // 清理空格 + + // 移除不可见字符 + cleaned = this.cleanUtf16(cleaned) + + // 如果清理后还有内容,返回 + if (cleaned && cleaned.length > 1 && !cleaned.includes('xml')) { + return `[拍一拍] ${cleaned}` + } + + return '[拍一拍]' + } + /** * 解码消息内容(处理 BLOB 和压缩数据) */ @@ -2323,7 +2354,7 @@ class ChatService { /** * getVoiceData (绕过WCDB的buggy getVoiceData,直接用execQuery读取) */ - async getVoiceData(sessionId: string, msgId: string, createTime?: number, serverId?: string | number): Promise<{ success: boolean; data?: string; error?: string }> { + async getVoiceData(sessionId: string, msgId: string, createTime?: number, serverId?: string | number, senderWxidOpt?: string): Promise<{ success: boolean; data?: string; error?: string }> { const startTime = Date.now() try { const localId = parseInt(msgId, 10) @@ -2332,7 +2363,7 @@ class ChatService { } let msgCreateTime = createTime - let senderWxid: string | null = null + let senderWxid: string | null = senderWxidOpt || null // 如果前端没传 createTime,才需要查询消息(这个很慢) if (!msgCreateTime) { @@ -2403,7 +2434,7 @@ class ChatService { console.log(`[Voice] getVoiceDataFromMediaDb: ${t4 - t3}ms`) if (!silkData) { - return { success: false, error: '未找到语音数据' } + return { success: false, error: '未找到语音数据 (请确保已在微信中播放过该语音)' } } const t5 = Date.now() @@ -2471,11 +2502,20 @@ class ChatService { const t2 = Date.now() console.log(`[Voice] listMediaDbs: ${t2 - t1}ms`) - if (!mediaDbsResult.success || !mediaDbsResult.data || mediaDbsResult.data.length === 0) { + let files = mediaDbsResult.success && mediaDbsResult.data ? (mediaDbsResult.data as string[]) : [] + + // Fallback: 如果 WCDB DLL 没找到,手动查找 + if (files.length === 0) { + console.warn('[Voice] listMediaDbs returned empty, trying manual search') + files = await this.findMediaDbsManually() + } + + if (files.length === 0) { + console.error('[Voice] No media DBs found') return null } - mediaDbFiles = mediaDbsResult.data as string[] + mediaDbFiles = files this.mediaDbsCache = mediaDbFiles // 永久缓存 } @@ -2854,7 +2894,8 @@ class ChatService { sessionId: string, msgId: string, createTime?: number, - onPartial?: (text: string) => void + onPartial?: (text: string) => void, + senderWxid?: string ): Promise<{ success: boolean; transcript?: string; error?: string }> { const startTime = Date.now() console.log(`[Transcribe] 开始转写: sessionId=${sessionId}, msgId=${msgId}, createTime=${createTime}`) @@ -2926,7 +2967,7 @@ class ChatService { console.log(`[Transcribe] WAV缓存未命中,调用 getVoiceData`) const t3 = Date.now() // 调用 getVoiceData 获取并解码 - const voiceResult = await this.getVoiceData(sessionId, msgId, msgCreateTime, serverId) + const voiceResult = await this.getVoiceData(sessionId, msgId, msgCreateTime, serverId, senderWxid) const t4 = Date.now() console.log(`[Transcribe] getVoiceData: ${t4 - t3}ms, success=${voiceResult.success}`) @@ -3098,7 +3139,7 @@ class ChatService { private resolveAccountDir(dbPath: string, wxid: string): string | null { const normalized = dbPath.replace(/[\\\\/]+$/, '') - + // 如果 dbPath 本身指向 db_storage 目录下的文件(如某个 .db 文件) // 则向上回溯到账号目录 if (basename(normalized).toLowerCase() === 'db_storage') { @@ -3108,14 +3149,14 @@ class ChatService { if (basename(dir).toLowerCase() === 'db_storage') { return dirname(dir) } - + // 否则,dbPath 应该是数据库根目录(如 xwechat_files) // 账号目录应该是 {dbPath}/{wxid} const accountDirWithWxid = join(normalized, wxid) if (existsSync(accountDirWithWxid)) { return accountDirWithWxid } - + // 兜底:返回 dbPath 本身(可能 dbPath 已经是账号目录) return normalized } diff --git a/electron/services/exportService.ts b/electron/services/exportService.ts index 7e57c05..94abb6f 100644 --- a/electron/services/exportService.ts +++ b/electron/services/exportService.ts @@ -10,6 +10,7 @@ import { wcdbService } from './wcdbService' import { imageDecryptService } from './imageDecryptService' import { chatService } from './chatService' import { videoService } from './videoService' +import { voiceTranscribeService } from './voiceTranscribeService' import { EXPORT_HTML_STYLES } from './exportHtmlStyles' // ChatLab 格式类型定义 @@ -1032,15 +1033,15 @@ class ExportService { /** * 转写语音为文字 */ - private async transcribeVoice(sessionId: string, msgId: string): Promise { + private async transcribeVoice(sessionId: string, msgId: string, createTime: number, senderWxid: string | null): Promise { try { - const transcript = await chatService.getVoiceTranscript(sessionId, msgId) + const transcript = await chatService.getVoiceTranscript(sessionId, msgId, createTime, undefined, senderWxid || undefined) if (transcript.success && transcript.transcript) { return `[语音转文字] ${transcript.transcript}` } - return '[语音消息 - 转文字失败]' + return `[语音消息 - 转文字失败: ${transcript.error || '未知错误'}]` } catch (e) { - return '[语音消息 - 转文字失败]' + return `[语音消息 - 转文字失败: ${String(e)}]` } } @@ -1655,6 +1656,10 @@ class ExportService { phase: 'preparing' }) + if (options.exportVoiceAsText) { + await this.ensureVoiceModel(onProgress) + } + const collected = await this.collectMessages(sessionId, cleanedMyWxid, options.dateRange) const allMessages = collected.rows if (isGroup) { @@ -1719,7 +1724,7 @@ class ExportService { // 并行转写语音,限制 4 个并发(转写比较耗资源) const VOICE_CONCURRENCY = 4 await parallelLimit(voiceMessages, VOICE_CONCURRENCY, async (msg) => { - const transcript = await this.transcribeVoice(sessionId, String(msg.localId)) + const transcript = await this.transcribeVoice(sessionId, String(msg.localId), msg.createTime, msg.senderUsername) voiceTranscriptMap.set(msg.localId, transcript) }) } @@ -1849,6 +1854,10 @@ class ExportService { phase: 'preparing' }) + if (options.exportVoiceAsText) { + await this.ensureVoiceModel(onProgress) + } + const collected = await this.collectMessages(sessionId, cleanedMyWxid, options.dateRange) const { exportMediaEnabled, mediaRootDir, mediaRelativePrefix } = this.getMediaLayout(outputPath, options) @@ -1904,7 +1913,7 @@ class ExportService { const VOICE_CONCURRENCY = 4 await parallelLimit(voiceMessages, VOICE_CONCURRENCY, async (msg) => { - const transcript = await this.transcribeVoice(sessionId, String(msg.localId)) + const transcript = await this.transcribeVoice(sessionId, String(msg.localId), msg.createTime, msg.senderUsername) voiceTranscriptMap.set(msg.localId, transcript) }) } @@ -2088,6 +2097,10 @@ class ExportService { phase: 'preparing' }) + if (options.exportVoiceAsText) { + await this.ensureVoiceModel(onProgress) + } + const collected = await this.collectMessages(sessionId, cleanedMyWxid, options.dateRange) @@ -2202,11 +2215,11 @@ class ExportService { } // 预加载群昵称 (仅群聊且完整列模式) - console.log('🔍 预加载群昵称检查: isGroup=', isGroup, 'useCompactColumns=', useCompactColumns, 'sessionId=', sessionId) + console.log('预加载群昵称检查: isGroup=', isGroup, 'useCompactColumns=', useCompactColumns, 'sessionId=', sessionId) const groupNicknamesMap = (isGroup && !useCompactColumns) ? await this.getGroupNicknamesForRoom(sessionId) : new Map() - console.log('🔍 群昵称Map大小:', groupNicknamesMap.size) + console.log('群昵称Map大小:', groupNicknamesMap.size) // 填充数据 @@ -2267,7 +2280,7 @@ class ExportService { const VOICE_CONCURRENCY = 4 await parallelLimit(voiceMessages, VOICE_CONCURRENCY, async (msg) => { - const transcript = await this.transcribeVoice(sessionId, String(msg.localId)) + const transcript = await this.transcribeVoice(sessionId, String(msg.localId), msg.createTime, msg.senderUsername) voiceTranscriptMap.set(msg.localId, transcript) }) } @@ -2417,6 +2430,41 @@ class ExportService { } } + /** + * 确保语音转写模型已下载 + */ + private async ensureVoiceModel(onProgress?: (progress: ExportProgress) => void): Promise { + try { + const status = await voiceTranscribeService.getModelStatus() + if (status.success && status.exists) { + return true + } + + onProgress?.({ + current: 0, + total: 100, + currentSession: '正在下载 AI 模型', + phase: 'preparing' + }) + + const downloadResult = await voiceTranscribeService.downloadModel((progress: any) => { + if (progress.percent !== undefined) { + onProgress?.({ + current: progress.percent, + total: 100, + currentSession: `正在下载 AI 模型 (${progress.percent.toFixed(0)}%)`, + phase: 'preparing' + }) + } + }) + + return downloadResult.success + } catch (e) { + console.error('Auto download model failed:', e) + return false + } + } + /** * 导出单个会话为 TXT 格式(默认与 Excel 精简列一致) */ @@ -2442,6 +2490,10 @@ class ExportService { phase: 'preparing' }) + if (options.exportVoiceAsText) { + await this.ensureVoiceModel(onProgress) + } + const collected = await this.collectMessages(sessionId, cleanedMyWxid, options.dateRange) const sortedMessages = collected.rows.sort((a, b) => a.createTime - b.createTime) @@ -2495,7 +2547,7 @@ class ExportService { const VOICE_CONCURRENCY = 4 await parallelLimit(voiceMessages, VOICE_CONCURRENCY, async (msg) => { - const transcript = await this.transcribeVoice(sessionId, String(msg.localId)) + const transcript = await this.transcribeVoice(sessionId, String(msg.localId), msg.createTime, msg.senderUsername) voiceTranscriptMap.set(msg.localId, transcript) }) } @@ -2613,6 +2665,10 @@ class ExportService { phase: 'preparing' }) + if (options.exportVoiceAsText) { + await this.ensureVoiceModel(onProgress) + } + const collected = await this.collectMessages(sessionId, cleanedMyWxid, options.dateRange) if (isGroup) { await this.mergeGroupMembers(sessionId, collected.memberSet, options.exportAvatars === true) @@ -2673,7 +2729,7 @@ class ExportService { const VOICE_CONCURRENCY = 4 await parallelLimit(voiceMessages, VOICE_CONCURRENCY, async (msg) => { - const transcript = await this.transcribeVoice(sessionId, String(msg.localId)) + const transcript = await this.transcribeVoice(sessionId, String(msg.localId), msg.createTime, msg.senderUsername) voiceTranscriptMap.set(msg.localId, transcript) }) } diff --git a/electron/services/snsService.ts b/electron/services/snsService.ts index bf674f4..4d5c2cf 100644 --- a/electron/services/snsService.ts +++ b/electron/services/snsService.ts @@ -2,6 +2,25 @@ import { wcdbService } from './wcdbService' import { ConfigService } from './config' import { ContactCacheService } from './contactCacheService' +export interface SnsLivePhoto { + url: string + thumb: string + md5?: string + token?: string + key?: string + encIdx?: string +} + +export interface SnsMedia { + url: string + thumb: string + md5?: string + token?: string + key?: string + encIdx?: string + livePhoto?: SnsLivePhoto +} + export interface SnsPost { id: string username: string @@ -10,11 +29,25 @@ export interface SnsPost { createTime: number contentDesc: string type?: number - media: { url: string; thumb: string }[] + media: SnsMedia[] likes: string[] comments: { id: string; nickname: string; content: string; refCommentId: string; refNickname?: string }[] + rawXml?: string // 原始 XML 数据 } +const fixSnsUrl = (url: string, token?: string) => { + if (!url) return url; + + // 1. 统一使用 https + // 2. 将 /150 (缩略图) 强制改为 /0 (原图) + let fixedUrl = url.replace('http://', 'https://').replace(/\/150($|\?)/, '/0$1'); + + if (!token || fixedUrl.includes('token=')) return fixedUrl; + + const connector = fixedUrl.includes('?') ? '&' : '?'; + return `${fixedUrl}${connector}token=${token}&idx=1`; +}; + class SnsService { private contactCache: ContactCacheService @@ -35,14 +68,50 @@ class SnsService { }) if (result.success && result.timeline) { - const enrichedTimeline = result.timeline.map((post: any) => { + const enrichedTimeline = result.timeline.map((post: any, index: number) => { const contact = this.contactCache.get(post.username) - // 修复媒体 URL,如果是 http 则尝试用 https (虽然 qpic 可能不支持强制 https,但通常支持) - const fixedMedia = post.media.map((m: any) => ({ - url: m.url.replace('http://', 'https://'), - thumb: m.thumb.replace('http://', 'https://') - })) + // 修复媒体 URL + const fixedMedia = post.media.map((m: any, mIdx: number) => { + const base = { + url: fixSnsUrl(m.url, m.token), + thumb: fixSnsUrl(m.thumb, m.token), + md5: m.md5, + token: m.token, + key: m.key, + encIdx: m.encIdx || m.enc_idx, // 兼容不同命名 + livePhoto: m.livePhoto ? { + ...m.livePhoto, + url: fixSnsUrl(m.livePhoto.url, m.livePhoto.token), + thumb: fixSnsUrl(m.livePhoto.thumb, m.livePhoto.token), + token: m.livePhoto.token, + key: m.livePhoto.key + } : undefined + } + + // [MOCK] 模拟数据:如果后端没返回 key (说明 DLL 未更新),注入一些 Mock 数据以便前端开发 + if (!base.key) { + base.key = 'mock_key_for_dev' + if (!base.token) { + base.token = 'mock_token_for_dev' + base.url = fixSnsUrl(base.url, base.token) + base.thumb = fixSnsUrl(base.thumb, base.token) + } + base.encIdx = '1' + + // 强制给第一个帖子的第一张图加 LivePhoto 模拟 + if (index === 0 && mIdx === 0 && !base.livePhoto) { + base.livePhoto = { + url: fixSnsUrl('https://tm.sh/d4cb0.mp4', 'mock_live_token'), + thumb: base.thumb, + token: 'mock_live_token', + key: 'mock_live_key' + } + } + } + + return base + }) return { ...post, @@ -59,6 +128,128 @@ class SnsService { console.log('[SnsService] Returning result:', result) return result } + async debugResource(url: string): Promise<{ success: boolean; status?: number; headers?: any; error?: string }> { + return new Promise((resolve) => { + try { + const { app, net } = require('electron') + // Remove mocking 'require' if it causes issues, but here we need 'net' or 'https' + // implementing with 'https' for reliability if 'net' is main-process only special + const https = require('https') + const urlObj = new URL(url) + + const options = { + hostname: urlObj.hostname, + path: urlObj.pathname + urlObj.search, + method: 'GET', + headers: { + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36 MicroMessenger/7.0.20.1781(0x6700143B) WindowsWechat(0x63090719) XWEB/8351", + "Accept": "image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-CN,zh;q=0.9", + "Referer": "https://servicewechat.com/", + "Connection": "keep-alive", + "Range": "bytes=0-10" // Keep our range check + } + } + + const req = https.request(options, (res: any) => { + resolve({ + success: true, + status: res.statusCode, + headers: { + 'x-enc': res.headers['x-enc'], + 'content-length': res.headers['content-length'], + 'content-type': res.headers['content-type'] + } + }) + req.destroy() // We only need headers + }) + + req.on('error', (e: any) => { + resolve({ success: false, error: e.message }) + }) + + req.end() + } catch (e: any) { + resolve({ success: false, error: e.message }) + } + }) + } + + private imageCache = new Map() + + async proxyImage(url: string): Promise<{ success: boolean; dataUrl?: string; error?: string }> { + // Check cache + if (this.imageCache.has(url)) { + return { success: true, dataUrl: this.imageCache.get(url) } + } + + return new Promise((resolve) => { + try { + const https = require('https') + const zlib = require('zlib') + const urlObj = new URL(url) + + const options = { + hostname: urlObj.hostname, + path: urlObj.pathname + urlObj.search, + method: 'GET', + headers: { + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36 MicroMessenger/7.0.20.1781(0x6700143B) WindowsWechat(0x63090719) XWEB/8351", + "Accept": "image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8", + "Accept-Encoding": "gzip, deflate, br", + "Accept-Language": "zh-CN,zh;q=0.9", + "Referer": "https://servicewechat.com/", + "Connection": "keep-alive" + } + } + + const req = https.request(options, (res: any) => { + if (res.statusCode !== 200) { + resolve({ success: false, error: `HTTP ${res.statusCode}` }) + return + } + + const chunks: Buffer[] = [] + let stream = res + + // Handle gzip compression + const encoding = res.headers['content-encoding'] + if (encoding === 'gzip') { + stream = res.pipe(zlib.createGunzip()) + } else if (encoding === 'deflate') { + stream = res.pipe(zlib.createInflate()) + } else if (encoding === 'br') { + stream = res.pipe(zlib.createBrotliDecompress()) + } + + stream.on('data', (chunk: Buffer) => chunks.push(chunk)) + stream.on('end', () => { + const buffer = Buffer.concat(chunks) + const contentType = res.headers['content-type'] || 'image/jpeg' + const base64 = buffer.toString('base64') + const dataUrl = `data:${contentType};base64,${base64}` + + // Cache + this.imageCache.set(url, dataUrl) + + resolve({ success: true, dataUrl }) + }) + stream.on('error', (e: any) => { + resolve({ success: false, error: e.message }) + }) + }) + + req.on('error', (e: any) => { + resolve({ success: false, error: e.message }) + }) + + req.end() + } catch (e: any) { + resolve({ success: false, error: e.message }) + } + }) + } } export const snsService = new SnsService() diff --git a/electron/services/wcdbCore.ts b/electron/services/wcdbCore.ts index 3e6ebd1..9825b3e 100644 --- a/electron/services/wcdbCore.ts +++ b/electron/services/wcdbCore.ts @@ -246,14 +246,15 @@ export class WcdbCore { // InitProtection (Added for security) try { - this.wcdbInitProtection = this.lib.func('bool InitProtection(const char* resourcePath)') - const protectionOk = this.wcdbInitProtection(dllDir) - if (!protectionOk) { - console.error('Core security check failed') + this.wcdbInitProtection = this.lib.func('int32 InitProtection(const char* resourcePath)') + const protectionCode = this.wcdbInitProtection(dllDir) + if (protectionCode !== 0) { + console.error('Core security check failed:', protectionCode) + lastDllInitError = `初始化失败,错误码: ${protectionCode}` return false } } catch (e) { - console.warn('InitProtection symbol not found:', e) + console.warn('InitProtection symbol not found or failed:', e) } // 定义类型 diff --git a/resources/wcdb_api.dll b/resources/wcdb_api.dll index e9e509eeac45c6f3404a9aff138dd9bf37ed3077..c5c8c35618a8f794f6ed639fd6283233138de245 100644 GIT binary patch delta 244370 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 delta 235603 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

K(#O@d;|0>_{bOK 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 DeABv7 diff --git a/src/App.tsx b/src/App.tsx index c8c4074..678d594 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -24,10 +24,25 @@ import * as configService from './services/config' import { Download, X, Shield } from 'lucide-react' import './App.scss' +import UpdateDialog from './components/UpdateDialog' +import UpdateProgressCapsule from './components/UpdateProgressCapsule' + function App() { const navigate = useNavigate() const location = useLocation() - const { setDbConnected } = useAppStore() + const { + setDbConnected, + updateInfo, + setUpdateInfo, + isDownloading, + setIsDownloading, + downloadProgress, + setDownloadProgress, + showUpdateDialog, + setShowUpdateDialog, + setUpdateError + } = useAppStore() + const { currentTheme, themeMode, setTheme, setThemeMode } = useThemeStore() const isAgreementWindow = location.pathname === '/agreement-window' const isOnboardingWindow = location.pathname === '/onboarding-window' @@ -39,11 +54,6 @@ function App() { const [agreementChecked, setAgreementChecked] = useState(false) const [agreementLoading, setAgreementLoading] = useState(true) - // 更新提示状态 - const [updateInfo, setUpdateInfo] = useState<{ version: string; releaseNotes: string } | null>(null) - const [isDownloading, setIsDownloading] = useState(false) - const [downloadProgress, setDownloadProgress] = useState(0) - useEffect(() => { const root = document.documentElement const body = document.body @@ -148,8 +158,12 @@ function App() { // 监听启动时的更新通知 useEffect(() => { - const removeUpdateListener = window.electronAPI.app.onUpdateAvailable?.((info) => { - setUpdateInfo(info) + const removeUpdateListener = window.electronAPI.app.onUpdateAvailable?.((info: any) => { + // 发现新版本时自动打开更新弹窗 + if (info) { + setUpdateInfo({ ...info, hasUpdate: true }) + setShowUpdateDialog(true) + } }) const removeProgressListener = window.electronAPI.app.onDownloadProgress?.((progress) => { setDownloadProgress(progress) @@ -158,16 +172,20 @@ function App() { removeUpdateListener?.() removeProgressListener?.() } - }, []) + }, [setUpdateInfo, setDownloadProgress, setShowUpdateDialog]) const handleUpdateNow = async () => { + setShowUpdateDialog(false) setIsDownloading(true) - setDownloadProgress(0) + setDownloadProgress({ percent: 0 }) try { await window.electronAPI.app.downloadAndInstall() - } catch (e) { + } catch (e: any) { console.error('更新失败:', e) setIsDownloading(false) + // Extract clean error message if possible + const errorMsg = e.message || String(e) + setUpdateError(errorMsg.includes('暂时禁用') ? '自动更新已暂时禁用' : errorMsg) } } @@ -250,6 +268,9 @@ function App() {

+ {/* 全局悬浮进度胶囊 (处理:新版本提示、下载进度、错误提示) */} + + {/* 用户协议弹窗 */} {showAgreement && !agreementLoading && (
@@ -301,31 +322,15 @@ function App() {
)} - {/* 更新提示条 */} - {updateInfo && ( -
- - 发现新版本 v{updateInfo.version} - - {isDownloading ? ( -
-
-
-
- {downloadProgress.toFixed(0)}% -
- ) : ( - <> - - - - )} -
- )} + {/* 更新提示对话框 */} + setShowUpdateDialog(false)} + onUpdate={handleUpdateNow} + isDownloading={isDownloading} + progress={downloadProgress} + />
diff --git a/src/components/LivePhotoIcon.tsx b/src/components/LivePhotoIcon.tsx new file mode 100644 index 0000000..ce904b9 --- /dev/null +++ b/src/components/LivePhotoIcon.tsx @@ -0,0 +1,29 @@ +import React from 'react'; + +interface LivePhotoIconProps { + size?: number | string; + className?: string; + style?: React.CSSProperties; +} + +export const LivePhotoIcon: React.FC = ({ size = 24, className = '', style = {} }) => { + return ( + + + + + + + + + + ); +}; diff --git a/src/components/UpdateDialog.scss b/src/components/UpdateDialog.scss new file mode 100644 index 0000000..452447a --- /dev/null +++ b/src/components/UpdateDialog.scss @@ -0,0 +1,251 @@ +.update-dialog-overlay { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgba(0, 0, 0, 0.6); + backdrop-filter: blur(4px); + display: flex; + align-items: center; + justify-content: center; + z-index: 9999; + animation: fadeIn 0.3s ease-out; + + .update-dialog { + width: 680px; + background: #f5f5f5; + border-radius: 24px; + box-shadow: 0 20px 40px rgba(0, 0, 0, 0.2); + overflow: hidden; + position: relative; + animation: slideUp 0.3s ease-out; + display: flex; + flex-direction: column; + + /* Top Section (White/Gradient) */ + .dialog-header { + background: #ffffff; + padding: 40px 20px 30px; + display: flex; + flex-direction: column; + align-items: center; + text-align: center; + position: relative; + + /* Subtle radial gradient effect in top left as seen in image */ + &::before { + content: ''; + position: absolute; + top: -50px; + left: -50px; + width: 200px; + height: 200px; + background: radial-gradient(circle, rgba(255, 235, 220, 0.4) 0%, rgba(255, 255, 255, 0) 70%); + opacity: 0.8; + pointer-events: none; + } + + .version-tag { + background: #f0eee9; + color: #8c7b6e; + padding: 4px 16px; + border-radius: 12px; + font-size: 13px; + font-weight: 600; + margin-bottom: 24px; + letter-spacing: 0.5px; + } + + h2 { + font-size: 32px; + font-weight: 800; + color: #333333; + margin: 0 0 12px; + letter-spacing: -0.5px; + } + + .subtitle { + font-size: 15px; + color: #999999; + font-weight: 400; + } + } + + /* Content Section (Light Gray) */ + .dialog-content { + background: #f2f2f2; + padding: 24px 40px 40px; + flex: 1; + display: flex; + flex-direction: column; + + .update-notes-container { + display: flex; + align-items: flex-start; + padding: 20px 0; + margin-bottom: 30px; + + .icon-box { + background: #fbfbfb; // Beige-ish white + width: 48px; + height: 48px; + border-radius: 16px; + display: flex; + align-items: center; + justify-content: center; + margin-right: 20px; + flex-shrink: 0; + color: #8c7b6e; + box-shadow: 0 4px 10px rgba(0, 0, 0, 0.03); + + svg { + opacity: 0.8; + } + } + + .text-box { + flex: 1; + + h3 { + font-size: 18px; + font-weight: 700; + color: #333333; + margin: 0 0 8px; + } + + p { + font-size: 14px; + color: #666666; + line-height: 1.6; + margin: 0; + } + + ul { + margin: 8px 0 0 18px; + padding: 0; + + li { + font-size: 14px; + color: #666666; + line-height: 1.6; + } + } + } + } + + .progress-section { + margin-bottom: 30px; + + .progress-info-row { + display: flex; + justify-content: space-between; + margin-bottom: 8px; + font-size: 12px; + color: #888; + font-weight: 500; + } + + .progress-bar-bg { + height: 6px; + background: #e0e0e0; + border-radius: 3px; + overflow: hidden; + + .progress-bar-fill { + height: 100%; + background: #000000; + border-radius: 3px; + transition: width 0.3s ease; + } + } + + .status-text { + text-align: center; + margin-top: 12px; + font-size: 13px; + color: #666; + } + } + + .actions { + display: flex; + justify-content: center; + + .btn-update { + background: #000000; + color: #ffffff; + border: none; + padding: 16px 48px; + border-radius: 20px; // Pill shape + font-size: 16px; + font-weight: 600; + cursor: pointer; + transition: transform 0.2s, box-shadow 0.2s; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); + + &:hover { + transform: translateY(-2px); + box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2); + } + + &:active { + transform: translateY(0); + } + + &:disabled { + opacity: 0.7; + cursor: not-allowed; + transform: none; + } + } + } + } + + .close-btn { + position: absolute; + top: 16px; + right: 16px; + background: rgba(0, 0, 0, 0.05); + border: none; + color: #999; + cursor: pointer; + width: 32px; + height: 32px; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + transition: all 0.2s ease; + z-index: 10; + + &:hover { + background: rgba(0, 0, 0, 0.1); + color: #333; + transform: rotate(90deg); + } + } + } +} + +@keyframes fadeIn { + from { + opacity: 0; + } + + to { + opacity: 1; + } +} + +@keyframes slideUp { + from { + transform: translateY(20px); + opacity: 0; + } + + to { + transform: translateY(0); + opacity: 1; + } +} \ No newline at end of file diff --git a/src/components/UpdateDialog.tsx b/src/components/UpdateDialog.tsx new file mode 100644 index 0000000..78f3db5 --- /dev/null +++ b/src/components/UpdateDialog.tsx @@ -0,0 +1,132 @@ +import React, { useEffect, useState } from 'react' +import { Quote, X } from 'lucide-react' +import './UpdateDialog.scss' + +interface UpdateInfo { + version?: string + releaseNotes?: string +} + +interface UpdateDialogProps { + open: boolean + updateInfo: UpdateInfo | null + onClose: () => void + onUpdate: () => void + isDownloading: boolean + progress: number | { + percent: number + bytesPerSecond?: number + transferred?: number + total?: number + remaining?: number // seconds + } +} + +const UpdateDialog: React.FC = ({ + open, + updateInfo, + onClose, + onUpdate, + isDownloading, + progress +}) => { + if (!open || !updateInfo) return null + + // Safe normalize progress + const safeProgress = typeof progress === 'number' ? { percent: progress } : (progress || { percent: 0 }) + const percent = safeProgress.percent || 0 + const bytesPerSecond = safeProgress.bytesPerSecond + const total = safeProgress.total + const transferred = safeProgress.transferred + const remaining = safeProgress.remaining + + // Format bytes + const formatBytes = (bytes: number) => { + if (!Number.isFinite(bytes) || bytes === 0) return '0 B' + const k = 1024 + const sizes = ['B', 'KB', 'MB', 'GB', 'TB'] + const i = Math.floor(Math.log(bytes) / Math.log(k)) + const unitIndex = Math.max(0, Math.min(i, sizes.length - 1)) + return parseFloat((bytes / Math.pow(k, unitIndex)).toFixed(1)) + ' ' + sizes[unitIndex] + } + + // Format speed + const formatSpeed = (bytesPerSecond: number) => { + return `${formatBytes(bytesPerSecond)}/s` + } + + // Format time + const formatTime = (seconds: number) => { + if (!Number.isFinite(seconds)) return '计算中...' + if (seconds < 60) return `${Math.ceil(seconds)} 秒` + const minutes = Math.floor(seconds / 60) + const remainingSeconds = Math.ceil(seconds % 60) + return `${minutes} 分 ${remainingSeconds} 秒` + } + + return ( +
+
+ {!isDownloading && ( + + )} + +
+
+ 新版本 {updateInfo.version} +
+

欢迎体验全新的 WeFlow

+
我们带来了一些改进
+
+ +
+
+
+ +
+
+

优化

+ {updateInfo.releaseNotes ? ( +
+ ) : ( +

修复了一些已知问题,提升了稳定性。

+ )} +
+
+ + {isDownloading ? ( +
+
+ {bytesPerSecond ? formatSpeed(bytesPerSecond) : '下载中...'} + {total ? `${formatBytes(transferred || 0)} / ${formatBytes(total)}` : `${percent.toFixed(1)}%`} + {remaining !== undefined && 剩余 {formatTime(remaining)}} +
+ +
+
+
+ + {/* Fallback status text if detailed info is missing */} + {(!bytesPerSecond && !total) && ( +
{percent.toFixed(0)}% 已下载
+ )} +
+ ) : ( +
+ +
+ )} +
+
+
+ ) +} + +export default UpdateDialog diff --git a/src/components/UpdateProgressCapsule.scss b/src/components/UpdateProgressCapsule.scss new file mode 100644 index 0000000..b58f6b1 --- /dev/null +++ b/src/components/UpdateProgressCapsule.scss @@ -0,0 +1,192 @@ +.update-progress-capsule { + position: fixed; + top: 38px; // Just below title bar + left: 50%; + transform: translateX(-50%); + z-index: 9998; + cursor: pointer; + animation: capsuleSlideDown 0.4s cubic-bezier(0.16, 1, 0.3, 1); + user-select: none; + + &:hover { + .capsule-content { + background: rgba(255, 255, 255, 0.95); + box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12); + transform: scale(1.02); + } + } + + .capsule-content { + background: var(--bg-primary); + backdrop-filter: blur(12px); + -webkit-backdrop-filter: blur(12px); + padding: 8px 18px; + border-radius: 24px; + border: 1px solid var(--border-color); + box-shadow: 0 8px 16px rgba(0, 0, 0, 0.12); + display: flex; + align-items: center; + gap: 12px; + height: 40px; + position: relative; + overflow: hidden; + transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1); + + .icon-wrapper { + display: flex; + align-items: center; + justify-content: center; + color: var(--text-primary); + + .download-icon { + animation: capsulePulse 2s infinite ease-in-out; + } + } + + .info-wrapper { + display: flex; + align-items: baseline; + gap: 10px; + z-index: 1; + + .percent-text { + font-size: 15px; + font-weight: 700; + color: var(--text-primary); + font-variant-numeric: tabular-nums; + } + + .speed-text { + font-size: 13px; + color: var(--text-tertiary); + font-weight: 500; + font-variant-numeric: tabular-nums; + } + + .error-text { + font-size: 15px; + color: #ff4d4f; + font-weight: 600; + } + + .available-text { + font-size: 15px; + color: var(--text-primary); + font-weight: 600; + } + } + + .progress-bg { + position: absolute; + bottom: 0; + left: 0; + right: 0; + height: 3px; + background: rgba(0, 0, 0, 0.05); + + .progress-fill { + height: 100%; + background: var(--primary); + transition: width 0.3s ease; + } + } + + .capsule-close { + background: none; + border: none; + padding: 4px; + margin-left: -4px; + margin-right: -8px; + cursor: pointer; + opacity: 0.5; + transition: all 0.2s ease; + display: flex; + align-items: center; + color: var(--text-secondary); + + &:hover { + opacity: 1; + background: var(--bg-tertiary); + border-radius: 50%; + } + } + } + + // State Modifiers + &.state-available { + .capsule-content { + background: var(--primary); + border-color: rgba(255, 255, 255, 0.1); + color: white; + + .icon-wrapper { + color: white; + } + + .info-wrapper { + .available-text { + color: white; + } + } + + .capsule-close { + color: rgba(255, 255, 255, 0.8); + + &:hover { + background: rgba(255, 255, 255, 0.1); + } + } + } + } + + &.state-downloading { + .capsule-content { + background: var(--bg-primary); + } + } + + &.state-error { + .capsule-content { + background: #fff1f0; + border-color: #ffa39e; + + .icon-wrapper { + color: #ff4d4f; + } + + .info-wrapper .error-text { + color: #cf1322; + } + + .capsule-close { + color: #cf1322; + } + } + } +} + +@keyframes capsuleSlideDown { + from { + transform: translate(-50%, -40px); + opacity: 0; + } + + to { + transform: translate(-50%, 0); + opacity: 1; + } +} + +@keyframes capsulePulse { + + 0%, + 100% { + transform: translateY(0); + opacity: 1; + } + + 50% { + transform: translateY(2px); + opacity: 0.6; + } +} \ No newline at end of file diff --git a/src/components/UpdateProgressCapsule.tsx b/src/components/UpdateProgressCapsule.tsx new file mode 100644 index 0000000..8402680 --- /dev/null +++ b/src/components/UpdateProgressCapsule.tsx @@ -0,0 +1,118 @@ +import React from 'react' +import { useAppStore } from '../stores/appStore' +import { Download, X, AlertCircle, Info } from 'lucide-react' +import './UpdateProgressCapsule.scss' + +const UpdateProgressCapsule: React.FC = () => { + const { + isDownloading, + downloadProgress, + showUpdateDialog, + setShowUpdateDialog, + updateInfo, + setUpdateInfo, + updateError, + setUpdateError + } = useAppStore() + + // Control visibility + // If dialog is open, we usually hide the capsule UNLESS we want it as a mini-indicator + // For now, let's hide it if the dialog is open + if (showUpdateDialog) return null + + // State mapping + const hasError = !!updateError + const hasUpdate = !!updateInfo && updateInfo.hasUpdate + + if (!hasError && !isDownloading && !hasUpdate) return null + + // Safe normalize progress + const safeProgress = typeof downloadProgress === 'number' ? { percent: downloadProgress } : (downloadProgress || { percent: 0 }) + const percent = safeProgress.percent || 0 + const bytesPerSecond = safeProgress.bytesPerSecond + + const formatBytes = (bytes: number) => { + if (!Number.isFinite(bytes) || bytes === 0) return '0 B' + const k = 1024 + const sizes = ['B', 'KB', 'MB', 'GB'] + const i = Math.floor(Math.log(bytes) / Math.log(k)) + const unitIndex = Math.max(0, Math.min(i, sizes.length - 1)) + return parseFloat((bytes / Math.pow(k, unitIndex)).toFixed(1)) + ' ' + sizes[unitIndex] + } + + const formatSpeed = (bps: number) => { + return `${formatBytes(bps)}/s` + } + + const handleClose = (e: React.MouseEvent) => { + e.stopPropagation() + if (hasError) { + setUpdateError(null) + } else if (hasUpdate && !isDownloading) { + setUpdateInfo(null) + } + } + + // Determine appearance class and content + let capsuleClass = 'update-progress-capsule' + let content = null + + if (hasError) { + capsuleClass += ' state-error' + content = ( + <> +
+ +
+
+ 更新失败: {updateError} +
+ + ) + } else if (isDownloading) { + capsuleClass += ' state-downloading' + content = ( + <> +
+ +
+
+ {percent.toFixed(0)}% + {bytesPerSecond > 0 && ( + {formatSpeed(bytesPerSecond)} + )} +
+
+
+
+ + ) + } else if (hasUpdate) { + capsuleClass += ' state-available' + content = ( + <> +
+ +
+
+ 发现新版本 v{updateInfo?.version} +
+ + ) + } + + return ( +
setShowUpdateDialog(true)}> +
+ {content} + {!isDownloading && ( + + )} +
+
+ ) +} + +export default UpdateProgressCapsule diff --git a/src/pages/SettingsPage.tsx b/src/pages/SettingsPage.tsx index 8bd2d45..dd3864a 100644 --- a/src/pages/SettingsPage.tsx +++ b/src/pages/SettingsPage.tsx @@ -29,7 +29,22 @@ interface WxidOption { } function SettingsPage() { - const { isDbConnected, setDbConnected, setLoading, reset } = useAppStore() + const { + isDbConnected, + setDbConnected, + setLoading, + reset, + updateInfo, + setUpdateInfo, + isDownloading, + setIsDownloading, + downloadProgress, + setDownloadProgress, + showUpdateDialog, + setShowUpdateDialog, + setUpdateError + } = useAppStore() + const resetChatStore = useChatStore((state) => state.reset) const { currentTheme, themeMode, setTheme, setThemeMode } = useThemeStore() const clearAnalyticsStoreCache = useAnalyticsStore((state) => state.clearCache) @@ -69,10 +84,7 @@ function SettingsPage() { const [isFetchingDbKey, setIsFetchingDbKey] = useState(false) const [isFetchingImageKey, setIsFetchingImageKey] = useState(false) const [isCheckingUpdate, setIsCheckingUpdate] = useState(false) - const [isDownloading, setIsDownloading] = useState(false) - const [downloadProgress, setDownloadProgress] = useState(0) const [appVersion, setAppVersion] = useState('') - const [updateInfo, setUpdateInfo] = useState<{ hasUpdate: boolean; version?: string; releaseNotes?: string } | null>(null) const [message, setMessage] = useState<{ text: string; success: boolean } | null>(null) const [showDecryptKey, setShowDecryptKey] = useState(false) const [dbKeyStatus, setDbKeyStatus] = useState('') @@ -209,7 +221,7 @@ function SettingsPage() { // 监听下载进度 useEffect(() => { - const removeListener = window.electronAPI.app.onDownloadProgress?.((progress: number) => { + const removeListener = window.electronAPI.app.onDownloadProgress?.((progress: any) => { setDownloadProgress(progress) }) return () => removeListener?.() @@ -229,12 +241,14 @@ function SettingsPage() { }, [whisperModelDir]) const handleCheckUpdate = async () => { + if (isCheckingUpdate) return setIsCheckingUpdate(true) setUpdateInfo(null) try { const result = await window.electronAPI.app.checkForUpdates() if (result.hasUpdate) { setUpdateInfo(result) + setShowUpdateDialog(true) showMessage(`发现新版:${result.version}`, true) } else { showMessage('当前已是最新版', true) @@ -247,8 +261,10 @@ function SettingsPage() { } const handleUpdateNow = async () => { + setShowUpdateDialog(false) + setIsDownloading(true) - setDownloadProgress(0) + setDownloadProgress({ percent: 0 }) try { showMessage('正在下载更新...', true) await window.electronAPI.app.downloadAndInstall() @@ -258,6 +274,8 @@ function SettingsPage() { } } + + const showMessage = (text: string, success: boolean) => { setMessage({ text, success }) setTimeout(() => setMessage(null), 3000) @@ -989,171 +1007,171 @@ function SettingsPage() { const exportExcelColumnsLabel = getOptionLabel(exportExcelColumnOptions, exportExcelColumnsValue) return ( -
-
- - 导出页面默认选中的格式 -
- - {showExportFormatSelect && ( -
- {exportFormatOptions.map((option) => ( - - ))} -
- )} -
-
- -
- - 控制导出页面的默认时间选择 -
- - {showExportDateRangeSelect && ( -
- {exportDateRangeOptions.map((option) => ( - - ))} -
- )} -
-
- -
- - 控制图片/语音/表情的默认导出开关 -
- {exportDefaultMedia ? '已开启' : '已关闭'} -
) } diff --git a/src/pages/SnsPage.scss b/src/pages/SnsPage.scss index 2bcac8e..eb9188f 100644 --- a/src/pages/SnsPage.scss +++ b/src/pages/SnsPage.scss @@ -10,70 +10,47 @@ } .sns-sidebar { - width: 300px; + width: 320px; background: var(--bg-secondary); - border-right: 1px solid var(--border-color); + border-left: 1px solid var(--border-color); display: flex; flex-direction: column; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); flex-shrink: 0; z-index: 10; + box-shadow: -4px 0 16px rgba(0, 0, 0, 0.05); &.closed { width: 0; opacity: 0; - transform: translateX(-100%); + transform: translateX(100%); pointer-events: none; + border-left: none; } .sidebar-header { - padding: 18px 20px; + padding: 0 24px; + height: 64px; + box-sizing: border-box; display: flex; align-items: center; - justify-content: space-between; + /* justify-content: space-between; -- No longer needed as it's just h3 */ border-bottom: 1px solid var(--border-color); + background: var(--bg-secondary); - .title-wrapper { - display: flex; - align-items: center; - gap: 8px; + h3 { + margin: 0; + font-size: 18px; + font-weight: 700; color: var(--text-primary); - - .title-icon { - color: var(--accent-color); - } - - h3 { - margin: 0; - font-size: 15px; - font-weight: 600; - letter-spacing: 0.5px; - } - } - - .toggle-btn { - background: var(--bg-tertiary); - border: 1px solid var(--border-color); - color: var(--text-secondary); - cursor: pointer; - padding: 5px; - display: flex; - align-items: center; - justify-content: center; - border-radius: 6px; - transition: all 0.2s; - - &:hover { - background: var(--hover-bg); - color: var(--accent-color); - border-color: var(--accent-color); - } + letter-spacing: 0; } } .filter-content { flex: 1; - overflow-y: auto; + overflow-y: hidden; + /* Changed from auto to hidden to allow inner scrolling of contact list */ padding: 16px; display: flex; flex-direction: column; @@ -86,6 +63,7 @@ padding: 14px; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.02); transition: transform 0.2s, box-shadow 0.2s; + flex-shrink: 0; &:hover { box-shadow: 0 4px 8px rgba(0, 0, 0, 0.04); @@ -172,7 +150,7 @@ flex: 1; display: flex; flex-direction: column; - min-height: 0; // 改为 0 以支持 flex 压缩 + min-height: 200px; padding: 0; overflow: hidden; } @@ -181,7 +159,7 @@ .filter-section { - margin-bottom: 20px; + margin-bottom: 0px; label { display: flex; @@ -258,12 +236,16 @@ flex: 1; display: flex; flex-direction: column; + overflow: hidden; .section-header { padding: 16px 16px 1px 16px; + margin-bottom: 12px; + /* Increased spacing */ display: flex; justify-content: space-between; align-items: center; + flex-shrink: 0; .header-actions { display: flex; @@ -306,6 +288,7 @@ position: relative; display: flex; align-items: center; + flex-shrink: 0; .search-icon { position: absolute; @@ -354,6 +337,7 @@ overflow-y: auto; padding: 4px 8px; margin: 0 4px 8px 4px; + min-height: 0; .contact-item { display: flex; @@ -524,6 +508,12 @@ } } + .header-right { + display: flex; + align-items: center; + gap: 12px; + } + .icon-btn { background: none; border: none; @@ -553,6 +543,7 @@ } } + .sns-content-wrapper { flex: 1; display: flex; @@ -739,6 +730,61 @@ cursor: zoom-in; } + .live-badge { + position: absolute; + top: 8px; + left: 8px; + right: 8px; + left: auto; + background: rgba(255, 255, 255, 0.9); + background: rgba(0, 0, 0, 0.3); + backdrop-filter: blur(4px); + color: white; + padding: 4px; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + pointer-events: none; + z-index: 2; + transition: opacity 0.2s; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); + } + + .download-btn-overlay { + position: absolute; + bottom: 6px; + right: 6px; + width: 28px; + height: 28px; + border-radius: 50%; + background: rgba(0, 0, 0, 0.5); + backdrop-filter: blur(4px); + border: 1px solid rgba(255, 255, 255, 0.3); + color: white; + display: flex; + align-items: center; + justify-content: center; + cursor: pointer; + opacity: 0; + transform: translateY(10px); + transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); + z-index: 2; + + &:hover { + background: rgba(0, 0, 0, 0.7); + transform: scale(1.1); + border-color: rgba(255, 255, 255, 0.8); + } + } + + &:hover { + .download-btn-overlay { + opacity: 1; + transform: translateY(0); + } + } + .media-error-placeholder { position: absolute; inset: 0; @@ -937,4 +983,197 @@ transform: scale(1); opacity: 1; } +} + +// Debug Dialog Styles +.debug-btn { + margin-left: auto; + background: transparent; + border: 1px solid var(--border-color); + color: var(--text-secondary); + padding: 6px; + border-radius: 6px; + cursor: pointer; + display: flex; + align-items: center; + justify-content: center; + transition: all 0.2s; + + &:hover { + background: var(--hover-bg); + color: var(--accent-color); + border-color: var(--accent-color); + } +} + +.modal-overlay { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgba(0, 0, 0, 0.7); + display: flex; + align-items: center; + justify-content: center; + z-index: 10000; + backdrop-filter: blur(4px); +} + +.debug-dialog { + background: var(--bg-secondary); + border: 1px solid var(--border-color); + border-radius: 12px; + width: 90%; + max-width: 800px; + max-height: 85vh; + display: flex; + flex-direction: column; + box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3); + + .debug-dialog-header { + padding: 16px 20px; + border-bottom: 1px solid var(--border-color); + display: flex; + align-items: center; + justify-content: space-between; + + h3 { + margin: 0; + font-size: 16px; + font-weight: 600; + color: var(--text-primary); + } + + .close-btn { + background: transparent; + border: none; + color: var(--text-secondary); + cursor: pointer; + padding: 4px; + display: flex; + align-items: center; + border-radius: 4px; + transition: all 0.2s; + + &:hover { + background: var(--hover-bg); + color: var(--accent-color); + } + } + } + + .debug-dialog-body { + flex: 1; + overflow-y: auto; + padding: 20px; + + .debug-section { + margin-bottom: 24px; + padding-bottom: 20px; + border-bottom: 1px solid var(--border-color); + + &:last-child { + border-bottom: none; + } + + h4 { + margin: 0 0 12px 0; + font-size: 14px; + font-weight: 600; + color: var(--accent-color); + text-transform: uppercase; + letter-spacing: 0.5px; + } + + .debug-item { + display: flex; + gap: 12px; + padding: 8px 0; + align-items: flex-start; + + .debug-key { + font-weight: 500; + color: var(--text-secondary); + min-width: 140px; + font-size: 13px; + font-family: 'Consolas', 'Microsoft YaHei', 'SimHei', monospace; + } + + .debug-value { + flex: 1; + color: var(--text-primary); + font-size: 13px; + word-break: break-all; + font-family: 'Consolas', 'Microsoft YaHei', 'SimHei', monospace; + user-select: text; + cursor: text; + padding: 2px 0; + } + } + + .media-debug-item { + background: var(--bg-primary); + border: 1px solid var(--border-color); + border-radius: 8px; + padding: 12px; + margin-bottom: 12px; + + .media-debug-header { + font-weight: 600; + color: var(--text-primary); + margin-bottom: 8px; + padding-bottom: 8px; + border-bottom: 1px solid var(--border-color); + } + + .live-photo-debug { + margin-top: 12px; + padding-top: 12px; + border-top: 1px dashed var(--border-color); + + .live-photo-label { + font-weight: 500; + color: var(--accent-color); + margin-bottom: 8px; + font-size: 13px; + } + } + } + + .json-code { + background: var(--bg-tertiary); + color: var(--text-primary); + padding: 16px; + border-radius: 8px; + border: 1px solid var(--border-color); + overflow-x: auto; + font-family: 'Consolas', 'Monaco', monospace; + font-size: 12px; + line-height: 1.5; + user-select: all; + max-height: 400px; + overflow-y: auto; + } + + .copy-json-btn { + margin-top: 12px; + padding: 8px 16px; + background: var(--accent-color); + color: white; + border: none; + border-radius: 6px; + cursor: pointer; + font-size: 13px; + font-weight: 500; + transition: all 0.2s; + + &:hover { + background: var(--accent-hover); + transform: translateY(-1px); + box-shadow: 0 4px 12px rgba(var(--accent-color-rgb), 0.3); + } + } + } + } } \ No newline at end of file diff --git a/src/pages/SnsPage.tsx b/src/pages/SnsPage.tsx index 18bf21a..8029dd1 100644 --- a/src/pages/SnsPage.tsx +++ b/src/pages/SnsPage.tsx @@ -1,8 +1,9 @@ import { useEffect, useState, useRef, useCallback, useMemo } from 'react' -import { RefreshCw, Heart, Search, Calendar, User, X, Filter, Play, ImageIcon } from 'lucide-react' +import { RefreshCw, Heart, Search, Calendar, User, X, Filter, Play, ImageIcon, Zap, Download, ChevronRight } from 'lucide-react' import { Avatar } from '../components/Avatar' import { ImagePreview } from '../components/ImagePreview' import JumpToDateDialog from '../components/JumpToDateDialog' +import { LivePhotoIcon } from '../components/LivePhotoIcon' import './SnsPage.scss' interface SnsPost { @@ -13,29 +14,64 @@ interface SnsPost { createTime: number contentDesc: string type?: number - media: { url: string; thumb: string }[] + media: { + url: string + thumb: string + md5?: string + token?: string + key?: string + encIdx?: string + livePhoto?: { + url: string + thumb: string + token?: string + key?: string + encIdx?: string + } + }[] likes: string[] comments: { id: string; nickname: string; content: string; refCommentId: string; refNickname?: string }[] + rawXml?: string // 原始 XML 数据 } -const MediaItem = ({ url, thumb, onPreview }: { url: string, thumb: string, onPreview: () => void }) => { +const MediaItem = ({ media, onPreview }: { media: any, onPreview: () => void }) => { const [error, setError] = useState(false); + const { url, thumb, livePhoto } = media; + const isLive = !!livePhoto; + const targetUrl = thumb || url; + + const handleDownload = (e: React.MouseEvent) => { + e.stopPropagation(); + + let downloadUrl = url; + let downloadKey = media.key || ''; + + if (isLive && media.livePhoto) { + downloadUrl = media.livePhoto.url; + downloadKey = media.livePhoto.key || ''; + } + + // TODO: 调用后端下载服务 + // window.electronAPI.sns.download(downloadUrl, downloadKey); + }; return ( -
- {!error ? ( - setError(true)} - /> - ) : ( -
- +
+ setError(true)} + /> + {isLive && ( +
+
)} +
); }; @@ -65,6 +101,7 @@ export default function SnsPage() { const [showJumpDialog, setShowJumpDialog] = useState(false) const [jumpTargetDate, setJumpTargetDate] = useState(undefined) const [previewImage, setPreviewImage] = useState(null) + const [debugPost, setDebugPost] = useState(null) const postsContainerRef = useRef(null) @@ -264,7 +301,7 @@ export default function SnsPage() { setHasNewer(false) setSelectedUsernames([]) setSearchKeyword('') - setJumpTargetDate(null) + setJumpTargetDate(undefined) loadContacts() loadPosts({ reset: true }) } @@ -347,16 +384,157 @@ export default function SnsPage() { return (
- {/* 侧边栏:过滤与搜索 */} +
+
+
+

社交动态

+
+
+ + +
+
+ +
+
+
+ {loadingNewer && ( +
+ + 正在检查更新的动态... +
+ )} + {!loadingNewer && hasNewer && ( +
loadPosts({ direction: 'newer' })}> + 查看更新的动态 +
+ )} + {posts.map((post, index) => { + return ( +
+
+
+
+ +
+
{post.nickname}
+
{formatTime(post.createTime)}
+
+ +
+ +
+ {post.contentDesc &&
{post.contentDesc}
} + + {post.type === 15 ? ( +
+ + 视频动态 +
+ ) : post.media.length > 0 && ( +
+ {post.media.map((m, idx) => ( + setPreviewImage(m.url)} /> + ))} +
+ )} +
+ + {(post.likes.length > 0 || post.comments.length > 0) && ( +
+ {post.likes.length > 0 && ( +
+ + + {post.likes.join('、')} + +
+ )} + + {post.comments.length > 0 && ( +
+ {post.comments.map((c, idx) => ( +
+ {c.nickname} + {c.refNickname && ( + <> + 回复 + {c.refNickname} + + )} + : + {c.content} +
+ ))} +
+ )} +
+ )} +
+
+
+ ) + })} +
+ + {loading &&
+ + 正在加载更多... +
} + {!hasMore && posts.length > 0 &&
已经到底啦
} + {!loading && posts.length === 0 && ( +
+
+

未找到相关动态

+ {(selectedUsernames.length > 0 || searchKeyword) && ( + + )} +
+ )} +
+
+
+ + {/* 侧边栏:过滤与搜索 (moved to right) */} - -
-
-
- {!isSidebarOpen && ( - - )} -

社交动态

-
-
- -
-
- -
-
-
- {loadingNewer && ( -
- - 正在检查更新的动态... -
- )} - {!loadingNewer && hasNewer && ( -
loadPosts({ direction: 'newer' })}> - 查看更新的动态 -
- )} - {posts.map((post, index) => { - return ( -
-
-
-
- -
-
{post.nickname}
-
{formatTime(post.createTime)}
-
-
- -
- {post.contentDesc &&
{post.contentDesc}
} - - {post.type === 15 ? ( -
- - 视频动态 -
- ) : post.media.length > 0 && ( -
- {post.media.map((m, idx) => ( - setPreviewImage(m.url)} /> - ))} -
- )} -
- - {(post.likes.length > 0 || post.comments.length > 0) && ( -
- {post.likes.length > 0 && ( -
- - - {post.likes.join('、')} - -
- )} - - {post.comments.length > 0 && ( -
- {post.comments.map((c, idx) => ( -
- {c.nickname} - {c.refNickname && ( - <> - 回复 - {c.refNickname} - - )} - : - {c.content} -
- ))} -
- )} -
- )} -
-
-
- ) - })} -
- - {loading &&
- - 正在加载更多... -
} - {!hasMore && posts.length > 0 &&
已经到底啦
} - {!loading && posts.length === 0 && ( -
-
-

未找到相关动态

- {(selectedUsernames.length > 0 || searchKeyword) && ( - - )} -
- )} -
-
-
{previewImage && ( setPreviewImage(null)} /> @@ -605,6 +653,154 @@ export default function SnsPage() { }} currentDate={jumpTargetDate || new Date()} /> + + {/* Debug Info Dialog */} + {debugPost && ( +
setDebugPost(null)}> +
e.stopPropagation()}> +
+

原始数据 - {debugPost.nickname}

+ +
+
+ +
+

ℹ 基本信息

+
+ ID: + {debugPost.id} +
+
+ 用户名: + {debugPost.username} +
+
+ 昵称: + {debugPost.nickname} +
+
+ 时间: + {new Date(debugPost.createTime * 1000).toLocaleString()} +
+
+ 类型: + {debugPost.type} +
+
+ +
+

媒体信息 ({debugPost.media.length} 项)

+ {debugPost.media.map((media, idx) => ( +
+
媒体 {idx + 1}
+
+ URL: + {media.url} +
+
+ 缩略图: + {media.thumb} +
+ {media.md5 && ( +
+ MD5: + {media.md5} +
+ )} + {media.token && ( +
+ Token: + {media.token} +
+ )} + {media.key && ( +
+ Key (解密密钥): + {media.key} +
+ )} + {media.encIdx && ( +
+ Enc Index: + {media.encIdx} +
+ )} + {media.livePhoto && ( +
+
Live Photo 视频部分:
+
+ 视频 URL: + {media.livePhoto.url} +
+
+ 视频缩略图: + {media.livePhoto.thumb} +
+ {media.livePhoto.token && ( +
+ 视频 Token: + {media.livePhoto.token} +
+ )} + {media.livePhoto.key && ( +
+ 视频 Key: + {media.livePhoto.key} +
+ )} +
+ )} +
+ ))} +
+ + {/* 原始 XML */} + {debugPost.rawXml && ( +
+

原始 XML 数据

+
{(() => {
+                                        // XML 缩进格式化
+                                        let formatted = '';
+                                        let indent = 0;
+                                        const tab = '  ';
+                                        const parts = debugPost.rawXml.split(/(<[^>]+>)/g).filter(p => p.trim());
+
+                                        for (const part of parts) {
+                                            if (!part.startsWith('<')) {
+                                                if (part.trim()) formatted += part;
+                                                continue;
+                                            }
+
+                                            if (part.startsWith('')) {
+                                                formatted += '\n' + tab.repeat(indent) + part;
+                                            } else {
+                                                formatted += '\n' + tab.repeat(indent) + part;
+                                                indent++;
+                                            }
+                                        }
+
+                                        return formatted.trim();
+                                    })()}
+ +
+ )} +
+
+
+ )}
) } diff --git a/src/stores/appStore.ts b/src/stores/appStore.ts index f479f9e..3d33689 100644 --- a/src/stores/appStore.ts +++ b/src/stores/appStore.ts @@ -5,15 +5,34 @@ export interface AppState { isDbConnected: boolean dbPath: string | null myWxid: string | null - + // 加载状态 isLoading: boolean loadingText: string - + + // 更新状态 + updateInfo: { + hasUpdate: boolean + version?: string + releaseNotes?: string + } | null + isDownloading: boolean + downloadProgress: any + showUpdateDialog: boolean + updateError: string | null + // 操作 setDbConnected: (connected: boolean, path?: string) => void setMyWxid: (wxid: string) => void setLoading: (loading: boolean, text?: string) => void + + // 更新操作 + setUpdateInfo: (info: any) => void + setIsDownloading: (isDownloading: boolean) => void + setDownloadProgress: (progress: any) => void + setShowUpdateDialog: (show: boolean) => void + setUpdateError: (error: string | null) => void + reset: () => void } @@ -24,23 +43,41 @@ export const useAppStore = create((set) => ({ isLoading: false, loadingText: '', - setDbConnected: (connected, path) => set({ - isDbConnected: connected, - dbPath: path ?? null + // 更新状态初始化 + updateInfo: null, + isDownloading: false, + downloadProgress: { percent: 0 }, + showUpdateDialog: false, + updateError: null, + + setDbConnected: (connected, path) => set({ + isDbConnected: connected, + dbPath: path ?? null }), - + setMyWxid: (wxid) => set({ myWxid: wxid }), - - setLoading: (loading, text) => set({ - isLoading: loading, - loadingText: text ?? '' + + setLoading: (loading, text) => set({ + isLoading: loading, + loadingText: text ?? '' }), - + + setUpdateInfo: (info) => set({ updateInfo: info, updateError: null }), + setIsDownloading: (isDownloading) => set({ isDownloading: isDownloading }), + setDownloadProgress: (progress) => set({ downloadProgress: progress }), + setShowUpdateDialog: (show) => set({ showUpdateDialog: show }), + setUpdateError: (error) => set({ updateError: error }), + reset: () => set({ isDbConnected: false, dbPath: null, myWxid: null, isLoading: false, - loadingText: '' + loadingText: '', + updateInfo: null, + isDownloading: false, + downloadProgress: { percent: 0 }, + showUpdateDialog: false, + updateError: null }) })) diff --git a/src/types/electron.d.ts b/src/types/electron.d.ts index abd1d6f..fdd8203 100644 --- a/src/types/electron.d.ts +++ b/src/types/electron.d.ts @@ -333,12 +333,30 @@ export interface ElectronAPI { createTime: number contentDesc: string type?: number - media: Array<{ url: string; thumb: string }> + media: Array<{ + url: string + thumb: string + md5?: string + token?: string + key?: string + encIdx?: string + livePhoto?: { + url: string + thumb: string + md5?: string + token?: string + key?: string + encIdx?: string + } + }> likes: Array comments: Array<{ id: string; nickname: string; content: string; refCommentId: string; refNickname?: string }> + rawXml?: string }> error?: string }> + debugResource: (url: string) => Promise<{ success: boolean; status?: number; headers?: any; error?: string }> + proxyImage: (url: string) => Promise<{ success: boolean; dataUrl?: string; error?: string }> } } From b9fa0cc2155eccef7c19d22eadb55c4fcf4ddb6c Mon Sep 17 00:00:00 2001 From: cc <98377878+hicccc77@users.noreply.github.com> Date: Thu, 29 Jan 2026 20:41:12 +0800 Subject: [PATCH 08/12] =?UTF-8?q?feat:=20=E4=B8=80=E4=BA=9B=E6=9B=B4?= =?UTF-8?q?=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- electron/services/config.ts | 15 ++- electron/services/exportService.ts | 2 +- installer.nsh | 4 +- src/App.tsx | 39 +++++- src/components/LockScreen.scss | 166 +++++++++++++++++++++++ src/components/LockScreen.tsx | 149 +++++++++++++++++++++ src/pages/AgreementPage.tsx | 26 ++-- src/pages/AnalyticsWelcomePage.tsx | 4 +- src/pages/ExportPage.scss | 110 +++------------ src/pages/ExportPage.tsx | 45 ++++--- src/pages/SettingsPage.scss | 51 +------ src/pages/SettingsPage.tsx | 208 +++++++++++++++++++++++++---- src/pages/WelcomePage.scss | 16 +-- src/pages/WelcomePage.tsx | 150 ++++++++++++++++++++- src/services/config.ts | 36 ++++- src/styles/main.scss | 84 ++++++++++-- 17 files changed, 875 insertions(+), 232 deletions(-) create mode 100644 src/components/LockScreen.scss create mode 100644 src/components/LockScreen.tsx diff --git a/README.md b/README.md index cbf04cf..ca14bd7 100644 --- a/README.md +++ b/README.md @@ -52,7 +52,7 @@ WeFlow 是一个**完全本地**的微信**实时**聊天记录查看、分析 - 本地解密与数据库管理 > [!NOTE] -> ⚠️ 本工具仅适配微信 **4.0 及以上**版本,请确保你的微信版本符合要求 +> 本工具仅适配微信 **4.0 及以上**版本,请确保你的微信版本符合要求 ## 快速开始 diff --git a/electron/services/config.ts b/electron/services/config.ts index 2a496d6..2be308d 100644 --- a/electron/services/config.ts +++ b/electron/services/config.ts @@ -9,12 +9,12 @@ interface ConfigSchema { imageXorKey: number imageAesKey: string wxidConfigs: Record - + // 缓存相关 cachePath: string lastOpenedDb: string lastSession: string - + // 界面相关 theme: 'light' | 'dark' | 'system' themeId: string @@ -27,6 +27,11 @@ interface ConfigSchema { autoTranscribeVoice: boolean transcribeLanguages: string[] exportDefaultConcurrency: number + + // 安全相关 + authEnabled: boolean + authPassword: string // SHA-256 hash + authUseHello: boolean } export class ConfigService { @@ -56,7 +61,11 @@ export class ConfigService { whisperDownloadSource: 'tsinghua', autoTranscribeVoice: false, transcribeLanguages: ['zh'], - exportDefaultConcurrency: 2 + exportDefaultConcurrency: 2, + + authEnabled: false, + authPassword: '', + authUseHello: false } }) } diff --git a/electron/services/exportService.ts b/electron/services/exportService.ts index a55289f..868a46f 100644 --- a/electron/services/exportService.ts +++ b/electron/services/exportService.ts @@ -292,7 +292,7 @@ class ExportService { extBuffer = Buffer.from(extBuffer, 'base64') } else { // 默认尝试hex - console.log('⚠️ 无法判断编码格式,默认尝试hex') + console.log(' 无法判断编码格式,默认尝试hex') try { extBuffer = Buffer.from(extBuffer, 'hex') } catch (e) { diff --git a/installer.nsh b/installer.nsh index 748eda0..b7c8f63 100644 --- a/installer.nsh +++ b/installer.nsh @@ -47,11 +47,11 @@ ManifestDPIAware true DetailPrint "Visual C++ Redistributable 安装成功" MessageBox MB_OK|MB_ICONINFORMATION "Visual C++ 运行库安装成功!" ${Else} - MessageBox MB_OK|MB_ICONEXCLAMATION "Visual C++ 运行库安装失败,您可能需要手动安装。" + MessageBox MB_OK|MB_ICONEXCLAMATION "Visual C++ 运行库安装失败,你可能需要手动安装。" ${EndIf} Delete "$TEMP\vc_redist.x64.exe" ${Else} - MessageBox MB_OK|MB_ICONEXCLAMATION "下载失败:$0$\n$\n您可以稍后手动下载安装 Visual C++ Redistributable。" + MessageBox MB_OK|MB_ICONEXCLAMATION "下载失败:$0$\n$\n你可以稍后手动下载安装 Visual C++ Redistributable。" ${EndIf} Goto doneVC diff --git a/src/App.tsx b/src/App.tsx index 320f93b..1ddcd6c 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -27,6 +27,7 @@ import './App.scss' import UpdateDialog from './components/UpdateDialog' import UpdateProgressCapsule from './components/UpdateProgressCapsule' +import LockScreen from './components/LockScreen' function App() { const navigate = useNavigate() @@ -50,6 +51,10 @@ function App() { const isVideoPlayerWindow = location.pathname === '/video-player-window' const [themeHydrated, setThemeHydrated] = useState(false) + // 锁定状态 + const [isLocked, setIsLocked] = useState(false) + const [lockAvatar, setLockAvatar] = useState('') + // 协议同意状态 const [showAgreement, setShowAgreement] = useState(false) const [agreementChecked, setAgreementChecked] = useState(false) @@ -250,6 +255,28 @@ function App() { autoConnect() }, [isAgreementWindow, isOnboardingWindow, navigate, setDbConnected]) + // 检查应用锁 + useEffect(() => { + if (isAgreementWindow || isOnboardingWindow || isVideoPlayerWindow) return + + const checkLock = async () => { + const enabled = await configService.getAuthEnabled() + if (enabled) { + setIsLocked(true) + // 尝试获取头像 + try { + const result = await window.electronAPI.chat.getMyAvatarUrl() + if (result && result.success && result.avatarUrl) { + setLockAvatar(result.avatarUrl) + } + } catch (e) { + console.error('获取锁屏头像失败', e) + } + } + } + checkLock() + }, [isAgreementWindow, isOnboardingWindow, isVideoPlayerWindow]) + // 独立协议窗口 if (isAgreementWindow) { return @@ -267,6 +294,12 @@ function App() { // 主窗口 - 完整布局 return (
+ {isLocked && ( + setIsLocked(false)} + avatar={lockAvatar} + /> + )} {/* 全局悬浮进度胶囊 (处理:新版本提示、下载进度、错误提示) */} @@ -293,13 +326,13 @@ function App() {

1. 数据安全

-

本软件所有数据处理均在本地完成,不会上传任何聊天记录、个人信息到服务器。您的数据完全由您自己掌控。

+

本软件所有数据处理均在本地完成,不会上传任何聊天记录、个人信息到服务器。你的数据完全由你自己掌控。

2. 使用须知

-

本软件仅供个人学习研究使用,请勿用于任何非法用途。使用本软件解密、查看、分析的数据应为您本人所有或已获得授权。

+

本软件仅供个人学习研究使用,请勿用于任何非法用途。使用本软件解密、查看、分析的数据应为你本人所有或已获得授权。

3. 免责声明

-

因使用本软件产生的任何直接或间接损失,开发者不承担任何责任。请确保您的使用行为符合当地法律法规。

+

因使用本软件产生的任何直接或间接损失,开发者不承担任何责任。请确保你的使用行为符合当地法律法规。

4. 隐私保护

本软件不收集任何用户数据。软件更新检测仅获取版本信息,不涉及任何个人隐私。

diff --git a/src/components/LockScreen.scss b/src/components/LockScreen.scss new file mode 100644 index 0000000..fd6685b --- /dev/null +++ b/src/components/LockScreen.scss @@ -0,0 +1,166 @@ +.lock-screen { + position: fixed; + top: 0; + left: 0; + width: 100vw; + height: 100vh; + background-color: var(--bg-primary); + z-index: 9999; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + user-select: none; + -webkit-app-region: drag; + + .lock-content { + display: flex; + flex-direction: column; + align-items: center; + width: 320px; + -webkit-app-region: no-drag; + animation: fadeIn 0.5s ease-out; + + .lock-avatar { + width: 100px; + height: 100px; + border-radius: 50%; + margin-bottom: 24px; + box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1); + border: 4px solid var(--bg-total); + background-color: var(--bg-secondary); + display: flex; + align-items: center; + justify-content: center; + color: var(--text-secondary); + } + + .lock-title { + font-size: 24px; + font-weight: 600; + color: var(--text-primary); + margin-bottom: 32px; + } + + .lock-form { + width: 100%; + display: flex; + flex-direction: column; + gap: 16px; + + .input-group { + position: relative; + width: 100%; + + input { + width: 100%; + height: 48px; + padding: 0 16px; + padding-right: 48px; + border-radius: 12px; + border: 1px solid var(--border-color); + background-color: var(--bg-input); + color: var(--text-primary); + font-size: 16px; + outline: none; + transition: all 0.2s; + + &:focus { + border-color: var(--primary-color); + box-shadow: 0 0 0 2px var(--primary-color-alpha); + } + } + + .submit-btn { + position: absolute; + right: 8px; + top: 8px; + width: 32px; + height: 32px; + display: flex; + align-items: center; + justify-content: center; + border-radius: 8px; + border: none; + background: var(--primary-color); + color: white; + cursor: pointer; + transition: opacity 0.2s; + + &:hover { + opacity: 0.9; + } + } + } + + .hello-btn { + width: 100%; + height: 48px; + display: flex; + align-items: center; + justify-content: center; + gap: 8px; + border-radius: 12px; + border: 1px solid var(--border-color); + background-color: var(--bg-secondary); + color: var(--text-primary); + font-size: 15px; + font-weight: 500; + cursor: pointer; + transition: all 0.2s; + + &:hover { + background-color: var(--bg-hover); + transform: translateY(-1px); + } + + &.loading { + opacity: 0.7; + pointer-events: none; + } + } + } + + .lock-error { + margin-top: 16px; + color: #ff4d4f; + font-size: 14px; + animation: shake 0.5s ease-in-out; + } + } +} + +@keyframes fadeIn { + from { + opacity: 0; + transform: translateY(20px); + } + + to { + opacity: 1; + transform: translateY(0); + } +} + +@keyframes shake { + + 0%, + 100% { + transform: translateX(0); + } + + 10%, + 30%, + 50%, + 70%, + 90% { + transform: translateX(-4px); + } + + 20%, + 40%, + 60%, + 80% { + transform: translateX(4px); + } +} \ No newline at end of file diff --git a/src/components/LockScreen.tsx b/src/components/LockScreen.tsx new file mode 100644 index 0000000..1c3c086 --- /dev/null +++ b/src/components/LockScreen.tsx @@ -0,0 +1,149 @@ +import { useState, useEffect, useRef } from 'react' +import * as configService from '../services/config' +import { ArrowRight, Fingerprint, Lock, ShieldCheck } from 'lucide-react' +import './LockScreen.scss' + +interface LockScreenProps { + onUnlock: () => void + avatar?: string +} + +async function sha256(message: string) { + const msgBuffer = new TextEncoder().encode(message) + const hashBuffer = await crypto.subtle.digest('SHA-256', msgBuffer) + const hashArray = Array.from(new Uint8Array(hashBuffer)) + const hashHex = hashArray.map(b => b.toString(16).padStart(2, '0')).join('') + return hashHex +} + +export default function LockScreen({ onUnlock, avatar }: LockScreenProps) { + const [password, setPassword] = useState('') + const [error, setError] = useState('') + const [isVerifying, setIsVerifying] = useState(false) + const [showHello, setShowHello] = useState(false) + const [helloAvailable, setHelloAvailable] = useState(false) + + const inputRef = useRef(null) + + useEffect(() => { + checkHelloAvailability() + // Auto focus input + inputRef.current?.focus() + }, []) + + const checkHelloAvailability = async () => { + try { + const useHello = await configService.getAuthUseHello() + if (useHello && window.PublicKeyCredential) { + // Simple check if WebAuthn is supported + const available = await PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable() + setHelloAvailable(available) + if (available) { + setShowHello(true) + verifyHello() + } + } + } catch (e) { + console.error('Failed to check Hello availability', e) + } + } + + const verifyHello = async () => { + setIsVerifying(true) + setError('') + try { + // Use WebAuthn for authentication + // We use a dummy challenge because we are just verifying local presence + const challenge = new Uint8Array(32) + window.crypto.getRandomValues(challenge) + + const credential = await navigator.credentials.get({ + publicKey: { + challenge, + rpId: window.location.hostname, // 'localhost' or empty for file:// + userVerification: 'required', + } + }) + + if (credential) { + onUnlock() + } + } catch (e: any) { + // NotAllowedError is common if user cancels + if (e.name !== 'NotAllowedError') { + console.error('Hello verification failed', e) + } + } finally { + setIsVerifying(false) + } + } + + const handlePasswordSubmit = async (e?: React.FormEvent) => { + e?.preventDefault() + if (!password) return + + setIsVerifying(true) + setError('') + + try { + const storedHash = await configService.getAuthPassword() + const inputHash = await sha256(password) + + if (inputHash === storedHash) { + onUnlock() + } else { + setError('密码错误') + setPassword('') + } + } catch (e) { + setError('验证失败') + } finally { + setIsVerifying(false) + } + } + + return ( +
+
+
+ {avatar ? ( + User + ) : ( + + )} +
+ +

WeFlow 已锁定

+ +
+
+ setPassword(e.target.value)} + disabled={isVerifying} + /> + +
+ + {helloAvailable && ( + + )} +
+ + {error &&
{error}
} +
+
+ ) +} diff --git a/src/pages/AgreementPage.tsx b/src/pages/AgreementPage.tsx index 242e361..664e083 100644 --- a/src/pages/AgreementPage.tsx +++ b/src/pages/AgreementPage.tsx @@ -9,40 +9,40 @@ function AgreementPage() {
{/* 协议内容 - 请替换为完整的协议文本 */}

用户协议

- +

一、总则

-

欢迎使用WeFlow(WeFlow)软件。请在使用本软件前仔细阅读本协议。一旦您开始使用本软件,即表示您已充分理解并同意本协议的全部内容。

- +

欢迎使用WeFlow(WeFlow)软件。请在使用本软件前仔细阅读本协议。一旦你开始使用本软件,即表示你已充分理解并同意本协议的全部内容。

+

二、软件说明

WeFlow是一款本地化的微信聊天记录查看与分析工具,所有数据处理均在用户本地设备上完成。

- +

三、使用条款

1. 本软件仅供个人学习、研究使用,严禁用于任何商业用途或非法目的。

2. 用户应确保所查看、分析的数据为本人所有或已获得合法授权。

3. 用户不得利用本软件侵犯他人隐私、窃取他人信息或从事其他违法活动。

- +

四、免责声明

1. 本软件按"现状"提供,开发者不对软件的适用性、可靠性、准确性作任何明示或暗示的保证。

2. 因使用或无法使用本软件而产生的任何直接、间接、偶然、特殊或后果性损害,开发者不承担任何责任。

3. 用户因违反本协议或相关法律法规而产生的一切后果由用户自行承担。

- +

五、知识产权

本软件的所有权、知识产权及相关权益均归开发者所有。未经授权,不得复制、修改、传播本软件。

- +

隐私政策

- +

一、数据收集

本软件不收集、不上传、不存储任何用户个人信息或聊天数据。所有数据处理均在本地完成。

- +

二、数据安全

-

您的聊天记录和个人数据完全存储在您的本地设备上,本软件不会将任何数据传输至外部服务器。

- +

你的聊天记录和个人数据完全存储在你的本地设备上,本软件不会将任何数据传输至外部服务器。

+

三、网络请求

本软件仅在检查更新时会访问更新服务器获取版本信息,不涉及任何用户数据的传输。

- +

四、第三方服务

本软件不集成任何第三方数据分析、广告或追踪服务。

- +

最后更新日期:2025年1月

diff --git a/src/pages/AnalyticsWelcomePage.tsx b/src/pages/AnalyticsWelcomePage.tsx index ea85aff..38a5f9f 100644 --- a/src/pages/AnalyticsWelcomePage.tsx +++ b/src/pages/AnalyticsWelcomePage.tsx @@ -34,8 +34,8 @@ function AnalyticsWelcomePage() {

私聊数据分析

- WeFlow 可以分析您的聊天记录,生成详细的统计报表。
- 您可以选择加载上次的分析结果(速度快),或者开始新的分析(数据最新)。 + WeFlow 可以分析你的聊天记录,生成详细的统计报表。
+ 你可以选择加载上次的分析结果(速度快),或者开始新的分析(数据最新)。

diff --git a/src/pages/ExportPage.scss b/src/pages/ExportPage.scss index cdbe7f6..81dcf6a 100644 --- a/src/pages/ExportPage.scss +++ b/src/pages/ExportPage.scss @@ -338,61 +338,33 @@ } } - .time-options { - display: flex; - flex-direction: column; - gap: 12px; - } - - .checkbox-item { + .time-range-picker-item { display: flex; align-items: center; - gap: 10px; + justify-content: space-between; + padding: 14px 16px; cursor: pointer; - font-size: 14px; - color: var(--text-primary); - - input[type="checkbox"] { - width: 18px; - height: 18px; - accent-color: var(--primary); - cursor: pointer; - } - - svg { - color: var(--text-secondary); - } - - &.main-toggle { - padding: 12px 16px; - background: var(--bg-secondary); - border-radius: 10px; - } - } - - .date-range { - display: flex; - align-items: center; - gap: 10px; - padding: 12px 16px; - background: var(--bg-secondary); - border-radius: 10px; - font-size: 14px; - color: var(--text-primary); - cursor: pointer; - transition: all 0.2s; + transition: background 0.2s; + background: transparent; &:hover { background: var(--bg-hover); } - svg { - color: var(--text-tertiary); - flex-shrink: 0; + .time-picker-info { + display: flex; + align-items: center; + gap: 10px; + font-size: 14px; + color: var(--text-primary); + + svg { + color: var(--primary); + } } - span { - flex: 1; + svg { + color: var(--text-tertiary); } } @@ -1184,50 +1156,4 @@ color: var(--text-tertiary); } -// Switch 开关样式 -.switch { - position: relative; - display: inline-block; - width: 44px; - height: 24px; - flex-shrink: 0; - - input { - opacity: 0; - width: 0; - height: 0; - } - - .slider { - position: absolute; - cursor: pointer; - top: 0; - left: 0; - right: 0; - bottom: 0; - background-color: var(--bg-tertiary); - transition: 0.3s; - border-radius: 24px; - - &::before { - position: absolute; - content: ""; - height: 18px; - width: 18px; - left: 3px; - bottom: 3px; - background-color: white; - transition: 0.3s; - border-radius: 50%; - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2); - } - } - - input:checked+.slider { - background-color: var(--primary); - } - - input:checked+.slider::before { - transform: translateX(20px); - } -} +// 全局样式已在 main.scss 中定义 \ No newline at end of file diff --git a/src/pages/ExportPage.tsx b/src/pages/ExportPage.tsx index a8872cd..4f86aa4 100644 --- a/src/pages/ExportPage.tsx +++ b/src/pages/ExportPage.tsx @@ -537,21 +537,34 @@ function ExportPage() {

时间范围

-
- - {!options.useAllTime && options.dateRange && ( -
setShowDatePicker(true)}> - - {formatDate(options.dateRange.start)} - {formatDate(options.dateRange.end)} - +

选择要导出的消息时间区间

+
+
+
+ 导出全部时间 + 关闭此项以选择特定的起止日期
+ +
+ + {!options.useAllTime && options.dateRange && ( + <> +
+
setShowDatePicker(true)}> +
+ + {formatDate(options.dateRange.start)} - {formatDate(options.dateRange.end)} +
+ +
+ )}
@@ -609,7 +622,7 @@ function ExportPage() { checked={options.exportMedia} onChange={e => setOptions({ ...options, exportMedia: e.target.checked })} /> - +
@@ -689,7 +702,7 @@ function ExportPage() { checked={options.exportAvatars} onChange={e => setOptions({ ...options, exportAvatars: e.target.checked })} /> - +
diff --git a/src/pages/SettingsPage.scss b/src/pages/SettingsPage.scss index 89f68e2..c598716 100644 --- a/src/pages/SettingsPage.scss +++ b/src/pages/SettingsPage.scss @@ -603,54 +603,7 @@ } } -.switch { - position: relative; - width: 46px; - height: 24px; - display: inline-block; - user-select: none; -} - -.switch-input { - opacity: 0; - width: 0; - height: 0; -} - -.switch-slider { - position: absolute; - cursor: pointer; - top: 0; - left: 0; - right: 0; - bottom: 0; - background: var(--bg-tertiary); - border: 1px solid var(--border-color); - border-radius: 999px; - transition: all 0.2s ease; -} - -.switch-slider::before { - content: ''; - position: absolute; - height: 18px; - width: 18px; - left: 3px; - top: 2px; - background: var(--text-tertiary); - border-radius: 50%; - transition: all 0.2s ease; -} - -.switch-input:checked+.switch-slider { - background: var(--primary); - border-color: var(--primary); -} - -.switch-input:checked+.switch-slider::before { - transform: translateX(22px); - background: #ffffff; -} +// 全局样式已在 main.scss 中定义 .log-actions { display: flex; @@ -1311,4 +1264,4 @@ border-top: 1px solid var(--border-primary); display: flex; justify-content: flex-end; -} +} \ No newline at end of file diff --git a/src/pages/SettingsPage.tsx b/src/pages/SettingsPage.tsx index f77720f..2c7b501 100644 --- a/src/pages/SettingsPage.tsx +++ b/src/pages/SettingsPage.tsx @@ -8,11 +8,12 @@ import * as configService from '../services/config' import { Eye, EyeOff, FolderSearch, FolderOpen, Search, Copy, RotateCcw, Trash2, Save, Plug, Check, Sun, Moon, - Palette, Database, Download, HardDrive, Info, RefreshCw, ChevronDown, Mic + Palette, Database, Download, HardDrive, Info, RefreshCw, ChevronDown, Mic, + ShieldCheck, Fingerprint, Lock, KeyRound } from 'lucide-react' import './SettingsPage.scss' -type SettingsTab = 'appearance' | 'database' | 'whisper' | 'export' | 'cache' | 'about' +type SettingsTab = 'appearance' | 'database' | 'whisper' | 'export' | 'cache' | 'security' | 'about' const tabs: { id: SettingsTab; label: string; icon: React.ElementType }[] = [ { id: 'appearance', label: '外观', icon: Palette }, @@ -20,6 +21,7 @@ const tabs: { id: SettingsTab; label: string; icon: React.ElementType }[] = [ { id: 'whisper', label: '语音识别模型', icon: Mic }, { id: 'export', label: '导出', icon: Download }, { id: 'cache', label: '缓存', icon: HardDrive }, + { id: 'security', label: '安全', icon: ShieldCheck }, { id: 'about', label: '关于', icon: Info } ] @@ -95,8 +97,31 @@ function SettingsPage() { const [isClearingImageCache, setIsClearingImageCache] = useState(false) const [isClearingAllCache, setIsClearingAllCache] = useState(false) + // 安全设置 state + const [authEnabled, setAuthEnabled] = useState(false) + const [authUseHello, setAuthUseHello] = useState(false) + const [helloAvailable, setHelloAvailable] = useState(false) + const [newPassword, setNewPassword] = useState('') + const [confirmPassword, setConfirmPassword] = useState('') + const [isSettingHello, setIsSettingHello] = useState(false) + const isClearingCache = isClearingAnalyticsCache || isClearingImageCache || isClearingAllCache + // 检查 Hello 可用性 + useEffect(() => { + if (window.PublicKeyCredential) { + void PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable().then(setHelloAvailable) + } + }, []) + + async function sha256(message: string) { + const msgBuffer = new TextEncoder().encode(message) + const hashBuffer = await crypto.subtle.digest('SHA-256', msgBuffer) + const hashArray = Array.from(new Uint8Array(hashBuffer)) + const hashHex = hashArray.map(b => b.toString(16).padStart(2, '0')).join('') + return hashHex + } + useEffect(() => { loadConfig() loadAppVersion() @@ -154,6 +179,11 @@ function SettingsPage() { const savedExportDefaultExcelCompactColumns = await configService.getExportDefaultExcelCompactColumns() const savedExportDefaultConcurrency = await configService.getExportDefaultConcurrency() + const savedAuthEnabled = await configService.getAuthEnabled() + const savedAuthUseHello = await configService.getAuthUseHello() + setAuthEnabled(savedAuthEnabled) + setAuthUseHello(savedAuthUseHello) + if (savedPath) setDbPath(savedPath) if (savedWxid) setWxid(savedWxid) if (savedCachePath) setCachePath(savedCachePath) @@ -191,7 +221,7 @@ function SettingsPage() { if (savedWhisperModelDir) setWhisperModelDir(savedWhisperModelDir) - } catch (e) { + } catch (e: any) { console.error('加载配置失败:', e) } } @@ -217,7 +247,7 @@ function SettingsPage() { try { const version = await window.electronAPI.app.getVersion() setAppVersion(version) - } catch (e) { + } catch (e: any) { console.error('获取版本号失败:', e) } } @@ -256,7 +286,7 @@ function SettingsPage() { } else { showMessage('当前已是最新版', true) } - } catch (e) { + } catch (e: any) { showMessage(`检查更新失败: ${e}`, false) } finally { setIsCheckingUpdate(false) @@ -271,7 +301,7 @@ function SettingsPage() { try { showMessage('正在下载更新...', true) await window.electronAPI.app.downloadAndInstall() - } catch (e) { + } catch (e: any) { showMessage(`更新失败: ${e}`, false) setIsDownloading(false) } @@ -366,7 +396,7 @@ function SettingsPage() { if (!result.success && result.error) { showMessage(result.error, false) } - } catch (e) { + } catch (e: any) { showMessage(`切换账号后重新连接失败: ${e}`, false) setDbConnected(false) } @@ -403,7 +433,7 @@ function SettingsPage() { } else { showMessage(result.error || '未能自动检测到数据库目录', false) } - } catch (e) { + } catch (e: any) { showMessage(`自动检测失败: ${e}`, false) } finally { setIsDetectingPath(false) @@ -417,7 +447,7 @@ function SettingsPage() { setDbPath(result.filePaths[0]) showMessage('已选择数据库目录', true) } - } catch (e) { + } catch (e: any) { showMessage('选择目录失败', false) } } @@ -445,7 +475,7 @@ function SettingsPage() { } else { if (!silent) showMessage('未检测到账号目录,请检查路径', false) } - } catch (e) { + } catch (e: any) { if (!silent) showMessage(`扫描失败: ${e}`, false) } } @@ -461,7 +491,7 @@ function SettingsPage() { setCachePath(result.filePaths[0]) showMessage('已选择缓存目录', true) } - } catch (e) { + } catch (e: any) { showMessage('选择目录失败', false) } } @@ -477,7 +507,7 @@ function SettingsPage() { await configService.setWhisperModelDir(dir) showMessage('已选择 Whisper 模型目录', true) } - } catch (e) { + } catch (e: any) { showMessage('选择目录失败', false) } } @@ -501,7 +531,7 @@ function SettingsPage() { } else { showMessage(result.error || '模型下载失败', false) } - } catch (e) { + } catch (e: any) { showMessage(`模型下载失败: ${e}`, false) } finally { setIsWhisperDownloading(false) @@ -533,7 +563,7 @@ function SettingsPage() { showMessage(result.error || '自动获取密钥失败', false) } } - } catch (e) { + } catch (e: any) { showMessage(`自动获取密钥失败: ${e}`, false) } finally { setIsFetchingDbKey(false) @@ -566,7 +596,7 @@ function SettingsPage() { } else { showMessage(result.error || '自动获取图片密钥失败', false) } - } catch (e) { + } catch (e: any) { showMessage(`自动获取图片密钥失败: ${e}`, false) } finally { setIsFetchingImageKey(false) @@ -589,7 +619,7 @@ function SettingsPage() { } else { showMessage(result.error || '连接测试失败', false) } - } catch (e) { + } catch (e: any) { showMessage(`连接测试失败: ${e}`, false) } finally { setIsTesting(false) @@ -624,8 +654,14 @@ function SettingsPage() { await configService.setOnboardingDone(true) // 保存按钮只负责持久化配置,不做连接测试/重连,避免影响聊天页的活动连接 + + // 保存安全配置 + // 注意:这里只处理开关,密码修改是实时生效的(在 renderSecurityTab 里处理) + await configService.setAuthEnabled(authEnabled) + await configService.setAuthUseHello(authUseHello) + showMessage('配置保存成功', true) - } catch (e) { + } catch (e: any) { showMessage(`保存配置失败: ${e}`, false) } finally { setIsLoadingState(false) @@ -657,7 +693,7 @@ function SettingsPage() { setIsWhisperDownloading(false) setDbConnected(false) await window.electronAPI.window.openOnboardingWindow() - } catch (e) { + } catch (e: any) { showMessage(`清除配置失败: ${e}`, false) } finally { setIsLoadingState(false) @@ -669,7 +705,7 @@ function SettingsPage() { try { const logPath = await window.electronAPI.log.getPath() await window.electronAPI.shell.openPath(logPath) - } catch (e) { + } catch (e: any) { showMessage(`打开日志失败: ${e}`, false) } } @@ -683,7 +719,7 @@ function SettingsPage() { } await navigator.clipboard.writeText(result.content || '') showMessage('日志已复制到剪贴板', true) - } catch (e) { + } catch (e: any) { showMessage(`复制日志失败: ${e}`, false) } } @@ -699,7 +735,7 @@ function SettingsPage() { } else { showMessage(`清除分析缓存失败: ${result.error || '未知错误'}`, false) } - } catch (e) { + } catch (e: any) { showMessage(`清除分析缓存失败: ${e}`, false) } finally { setIsClearingAnalyticsCache(false) @@ -716,7 +752,7 @@ function SettingsPage() { } else { showMessage(`清除图片缓存失败: ${result.error || '未知错误'}`, false) } - } catch (e) { + } catch (e: any) { showMessage(`清除图片缓存失败: ${e}`, false) } finally { setIsClearingImageCache(false) @@ -734,7 +770,7 @@ function SettingsPage() { } else { showMessage(`清除所有缓存失败: ${result.error || '未知错误'}`, false) } - } catch (e) { + } catch (e: any) { showMessage(`清除所有缓存失败: ${e}`, false) } finally { setIsClearingAllCache(false) @@ -797,7 +833,7 @@ function SettingsPage() {
xwechat_files 目录 - ⚠️ 目录路径不可包含中文,如有中文请去微信-设置-存储位置点击更改,迁移至全英文目录 + 目录路径不可包含中文,如有中文请去微信-设置-存储位置点击更改,迁移至全英文目录 setDbPath(e.target.value)} />
) + const handleSetupHello = async () => { + setIsSettingHello(true) + try { + const challenge = new Uint8Array(32) + window.crypto.getRandomValues(challenge) + + const credential = await navigator.credentials.create({ + publicKey: { + challenge, + rp: { name: 'WeFlow', id: window.location.hostname }, + user: { id: new Uint8Array([1]), name: 'user', displayName: 'User' }, + pubKeyCredParams: [{ alg: -7, type: 'public-key' }], + authenticatorSelection: { userVerification: 'required' }, + timeout: 60000 + } + }) + + if (credential) { + setAuthUseHello(true) + await configService.setAuthUseHello(true) + showMessage('Windows Hello 设置成功', true) + } + } catch (e: any) { + if (e.name !== 'NotAllowedError') { + showMessage(`Windows Hello 设置失败: ${e.message}`, false) + } + } finally { + setIsSettingHello(false) + } + } + + const handleUpdatePassword = async () => { + if (!newPassword || newPassword !== confirmPassword) { + showMessage('两次密码不一致', false) + return + } + + // 简单的保存逻辑,实际上应该先验证旧密码,但为了简化流程,这里直接允许覆盖 + // 因为能进入设置页面说明已经解锁了 + try { + const hash = await sha256(newPassword) + await configService.setAuthPassword(hash) + await configService.setAuthEnabled(true) + setAuthEnabled(true) + setNewPassword('') + setConfirmPassword('') + showMessage('密码已更新', true) + } catch (e: any) { + showMessage('密码更新失败', false) + } + } + + const renderSecurityTab = () => ( +
+
+
+
+ + 每次启动应用时需要验证密码 +
+ +
+
+ +
+ +
+ + 设置新的启动密码 + +
+ setNewPassword(e.target.value)} + /> +
+ setConfirmPassword(e.target.value)} + style={{ flex: 1 }} + /> + +
+
+
+ +
+ +
+
+
+ + 使用面容、指纹快速解锁 + {!helloAvailable &&
当前设备不支持 Windows Hello
} +
+ +
+ {authUseHello ? ( + + ) : ( + + )} +
+
+
+
+ ) + const renderAboutTab = () => (
@@ -1321,6 +1480,7 @@ function SettingsPage() { {activeTab === 'whisper' && renderWhisperTab()} {activeTab === 'export' && renderExportTab()} {activeTab === 'cache' && renderCacheTab()} + {activeTab === 'security' && renderSecurityTab()} {activeTab === 'about' && renderAboutTab()}
diff --git a/src/pages/WelcomePage.scss b/src/pages/WelcomePage.scss index 6114fbf..c115f75 100644 --- a/src/pages/WelcomePage.scss +++ b/src/pages/WelcomePage.scss @@ -112,7 +112,6 @@ -webkit-app-region: drag; [data-mode="dark"] & { - background: #18181b; border-right-color: rgba(255, 255, 255, 0.08); } } @@ -152,7 +151,7 @@ margin-top: 2px; [data-mode="dark"] .welcome-sidebar & { - color: rgba(255, 255, 255, 0.45); + color: rgba(255, 255, 255, 0.6); // 稍微调亮一点 } } @@ -188,7 +187,7 @@ border-radius: 12px; [data-mode="dark"] .welcome-sidebar & { - opacity: 0.7; + opacity: 0.75; // 整体调亮一点,原来是0.7 } &.active, @@ -236,8 +235,8 @@ transition: all 0.3s ease; [data-mode="dark"] .welcome-sidebar & { - border-color: rgba(255, 255, 255, 0.1); - background: rgba(255, 255, 255, 0.03); + border-color: rgba(255, 255, 255, 0.2); // 稍微调亮边框 + background: rgba(255, 255, 255, 0.05); } .nav-item.active & { @@ -281,7 +280,7 @@ color: #1a1a1a; [data-mode="dark"] .welcome-sidebar & { - color: #ffffff; + color: rgba(255, 255, 255, 0.9); // 提高非活动标题亮度 } .nav-item.active & { @@ -299,7 +298,8 @@ } .nav-item.active & { - color: rgba(255, 255, 255, 0.85); + color: #ffffff; // 活动描述使用纯白 + font-weight: 500; } } @@ -315,7 +315,7 @@ border-top: 1px dashed var(--border-color); [data-mode="dark"] .welcome-sidebar & { - color: rgba(255, 255, 255, 0.5); + color: rgba(255, 255, 255, 0.65); // 提高底部文字亮度 border-top-color: rgba(255, 255, 255, 0.1); } diff --git a/src/pages/WelcomePage.tsx b/src/pages/WelcomePage.tsx index a2967fd..16d7cce 100644 --- a/src/pages/WelcomePage.tsx +++ b/src/pages/WelcomePage.tsx @@ -15,7 +15,8 @@ const steps = [ { id: 'db', title: '数据库目录', desc: '定位 xwechat_files 目录' }, { id: 'cache', title: '缓存目录', desc: '设置本地缓存存储位置(可选)' }, { id: 'key', title: '解密密钥', desc: '获取密钥与自动识别账号' }, - { id: 'image', title: '图片密钥', desc: '获取 XOR 与 AES 密钥' } + { id: 'image', title: '图片密钥', desc: '获取 XOR 与 AES 密钥' }, + { id: 'security', title: '安全防护', desc: '保护你的数据' } ] interface WelcomePageProps { @@ -46,6 +47,64 @@ function WelcomePage({ standalone = false }: WelcomePageProps) { const [imageKeyStatus, setImageKeyStatus] = useState('') const [isManualStartPrompt, setIsManualStartPrompt] = useState(false) + // 安全相关 state + const [enableAuth, setEnableAuth] = useState(false) + const [authPassword, setAuthPassword] = useState('') + const [authConfirmPassword, setAuthConfirmPassword] = useState('') + const [enableHello, setEnableHello] = useState(false) + const [helloAvailable, setHelloAvailable] = useState(false) + const [isSettingHello, setIsSettingHello] = useState(false) + + // 检查 Hello 可用性 + useEffect(() => { + if (window.PublicKeyCredential) { + void PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable().then(setHelloAvailable) + } + }, []) + + async function sha256(message: string) { + const msgBuffer = new TextEncoder().encode(message) + const hashBuffer = await crypto.subtle.digest('SHA-256', msgBuffer) + const hashArray = Array.from(new Uint8Array(hashBuffer)) + const hashHex = hashArray.map(b => b.toString(16).padStart(2, '0')).join('') + return hashHex + } + + const handleSetupHello = async () => { + setIsSettingHello(true) + try { + // 注册凭证 (WebAuthn) + const challenge = new Uint8Array(32) + window.crypto.getRandomValues(challenge) + + const credential = await navigator.credentials.create({ + publicKey: { + challenge, + rp: { name: 'WeFlow', id: window.location.hostname }, + user: { + id: new Uint8Array([1]), + name: 'user', + displayName: 'User' + }, + pubKeyCredParams: [{ alg: -7, type: 'public-key' }], + authenticatorSelection: { userVerification: 'required' }, + timeout: 60000 + } + }) + + if (credential) { + setEnableHello(true) + // 成功提示? + } + } catch (e: any) { + if (e.name !== 'NotAllowedError') { + setError('Windows Hello 设置失败: ' + e.message) + } + } finally { + setIsSettingHello(false) + } + } + useEffect(() => { const removeDb = window.electronAPI.key.onDbKeyStatus((payload) => { setDbKeyStatus(payload.message) @@ -227,6 +286,12 @@ function WelcomePage({ standalone = false }: WelcomePageProps) { if (currentStep.id === 'cache') return true if (currentStep.id === 'key') return decryptKey.length === 64 && Boolean(wxid) if (currentStep.id === 'image') return true + if (currentStep.id === 'security') { + if (enableAuth) { + return authPassword.length > 0 && authPassword === authConfirmPassword + } + return true + } return false } @@ -277,6 +342,15 @@ function WelcomePage({ standalone = false }: WelcomePageProps) { imageXorKey: typeof parsedXorKey === 'number' && !Number.isNaN(parsedXorKey) ? parsedXorKey : 0, imageAesKey }) + + // 保存安全配置 + if (enableAuth && authPassword) { + const hash = await sha256(authPassword) + await configService.setAuthEnabled(true) + await configService.setAuthPassword(hash) + await configService.setAuthUseHello(enableHello) + } + await configService.setOnboardingDone(true) setDbConnected(true, dbPath) @@ -450,7 +524,7 @@ function WelcomePage({ standalone = false }: WelcomePageProps) {
请选择微信-设置-存储位置对应的目录
- ⚠️ 目录路径不可包含中文,如有中文请先在微信中迁移至全英文目录 + 目录路径不可包含中文,如有中文请先在微信中迁移至全英文目录
)} @@ -525,6 +599,74 @@ function WelcomePage({ standalone = false }: WelcomePageProps) {
)} + {currentStep.id === 'security' && ( +
+
+
+ +
每次启动应用时需要验证密码
+
+ +
+ + {enableAuth && ( +
+
+ + setAuthPassword(e.target.value)} + /> +
+
+ + setAuthConfirmPassword(e.target.value)} + /> + {authPassword && authConfirmPassword && authPassword !== authConfirmPassword && ( +
两次密码不一致
+ )} +
+ +
+ +
+
+ +
使用面容、指纹或 PIN 码快速解锁
+
+ + {enableHello ? ( +
+ 已开启 + +
+ ) : ( + + )} +
+ {!helloAvailable &&
当前设备不支持 Windows Hello 或未设置 PIN 码
} +
+ )} +
+ )} + {currentStep.id === 'image' && (
@@ -564,8 +706,8 @@ function WelcomePage({ standalone = false }: WelcomePageProps) { {currentStep.id === 'intro' && (
-

接下来的几个步骤将引导您连接本地微信数据库。

-

WeFlow 需要访问您的本地数据文件以提供分析与导出功能。

+

接下来的几个步骤将引导你连接本地微信数据库。

+

WeFlow 需要访问你的本地数据文件以提供分析与导出功能。

)} diff --git a/src/services/config.ts b/src/services/config.ts index fe0153e..e0a20c2 100644 --- a/src/services/config.ts +++ b/src/services/config.ts @@ -30,7 +30,12 @@ export const CONFIG_KEYS = { EXPORT_DEFAULT_VOICE_AS_TEXT: 'exportDefaultVoiceAsText', EXPORT_DEFAULT_EXCEL_COMPACT_COLUMNS: 'exportDefaultExcelCompactColumns', EXPORT_DEFAULT_TXT_COLUMNS: 'exportDefaultTxtColumns', - EXPORT_DEFAULT_CONCURRENCY: 'exportDefaultConcurrency' + EXPORT_DEFAULT_CONCURRENCY: 'exportDefaultConcurrency', + + // 安全 + AUTH_ENABLED: 'authEnabled', + AUTH_PASSWORD: 'authPassword', + AUTH_USE_HELLO: 'authUseHello' } as const export interface WxidConfig { @@ -365,3 +370,32 @@ export async function getExportDefaultConcurrency(): Promise { export async function setExportDefaultConcurrency(concurrency: number): Promise { await config.set(CONFIG_KEYS.EXPORT_DEFAULT_CONCURRENCY, concurrency) } + +// === 安全相关 === + +export async function getAuthEnabled(): Promise { + const value = await config.get(CONFIG_KEYS.AUTH_ENABLED) + return value === true +} + +export async function setAuthEnabled(enabled: boolean): Promise { + await config.set(CONFIG_KEYS.AUTH_ENABLED, enabled) +} + +export async function getAuthPassword(): Promise { + const value = await config.get(CONFIG_KEYS.AUTH_PASSWORD) + return (value as string) || '' +} + +export async function setAuthPassword(passwordHash: string): Promise { + await config.set(CONFIG_KEYS.AUTH_PASSWORD, passwordHash) +} + +export async function getAuthUseHello(): Promise { + const value = await config.get(CONFIG_KEYS.AUTH_USE_HELLO) + return value === true +} + +export async function setAuthUseHello(useHello: boolean): Promise { + await config.set(CONFIG_KEYS.AUTH_USE_HELLO, useHello) +} diff --git a/src/styles/main.scss b/src/styles/main.scss index 31cb00b..f7d4a55 100644 --- a/src/styles/main.scss +++ b/src/styles/main.scss @@ -8,33 +8,33 @@ --primary-light: rgba(139, 115, 85, 0.1); --danger: #dc3545; --warning: #ffc107; - + // 背景 --bg-primary: #F0EEE9; --bg-secondary: rgba(255, 255, 255, 0.7); --bg-tertiary: rgba(0, 0, 0, 0.03); --bg-hover: rgba(0, 0, 0, 0.05); - + // 文字 --text-primary: #3d3d3d; --text-secondary: #666666; --text-tertiary: #999999; - + // 边框 --border-color: rgba(0, 0, 0, 0.08); --border-radius: 9999px; - + // 阴影 --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05); --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.08); - + // 侧边栏 --sidebar-width: 220px; - + // 主题渐变 --bg-gradient: linear-gradient(135deg, #F0EEE9 0%, #E8E6E1 100%); --primary-gradient: linear-gradient(135deg, #8B7355 0%, #A68B5B 100%); - + // 卡片背景 --card-bg: rgba(255, 255, 255, 0.7); } @@ -235,7 +235,8 @@ box-sizing: border-box; } -html, body { +html, +body { height: 100%; font-family: 'HarmonyOS Sans SC', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; font-size: 14px; @@ -263,7 +264,7 @@ html, body { ::-webkit-scrollbar-thumb { background: var(--text-tertiary); border-radius: 3px; - + &:hover { background: var(--text-secondary); } @@ -280,20 +281,20 @@ html, body { font-size: 14px; cursor: pointer; transition: all 0.2s; - + &-primary { background: var(--primary); color: white; - + &:hover { background: var(--primary-hover); } } - + &-secondary { background: var(--bg-tertiary); color: var(--text-primary); - + &:hover { background: var(--border-color); } @@ -307,3 +308,60 @@ html, body { box-shadow: var(--shadow-sm); padding: 16px; } + +// 全局 Switch 开关样式 +.switch { + position: relative; + display: inline-block; + width: 44px; + height: 24px; + flex-shrink: 0; + + input { + opacity: 0; + width: 0; + height: 0; + } + + .switch-slider { + position: absolute; + cursor: pointer; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: var(--bg-tertiary); + transition: 0.3s; + border-radius: 24px; + border: 1px solid var(--border-color); + + &::before { + position: absolute; + content: ""; + height: 18px; + width: 18px; + left: 2px; + bottom: 2px; + background-color: var(--text-tertiary); + transition: 0.3s; + border-radius: 50%; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2); + } + } + + input:checked+.switch-slider { + background-color: var(--primary); + border-color: var(--primary); + + &::before { + transform: translateX(20px); + background-color: #ffffff; + } + } + + // 禁用状态 + input:disabled+.switch-slider { + opacity: 0.5; + cursor: not-allowed; + } +} \ No newline at end of file From 3c51dee9a6c9ad5d2251755bf4f802030f77a0b2 Mon Sep 17 00:00:00 2001 From: cc <98377878+hicccc77@users.noreply.github.com> Date: Thu, 29 Jan 2026 20:48:27 +0800 Subject: [PATCH 09/12] =?UTF-8?q?feat:=20=E4=B8=80=E4=BA=9B=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/ContactsPage.scss | 67 ++++++++++++++++++++----------------- src/pages/ContactsPage.tsx | 6 ++-- 2 files changed, 40 insertions(+), 33 deletions(-) diff --git a/src/pages/ContactsPage.scss b/src/pages/ContactsPage.scss index 647423e..d64dc46 100644 --- a/src/pages/ContactsPage.scss +++ b/src/pages/ContactsPage.scss @@ -111,52 +111,59 @@ .type-filters { display: flex; - gap: 12px; - padding: 0 20px 12px; + gap: 8px; + padding: 0 20px 16px; flex-wrap: nowrap; overflow-x: auto; - /* Allow horizontal scroll if needed on very small screens */ - /* Hide scrollbar */ &::-webkit-scrollbar { display: none; } - .filter-checkbox { + .filter-chip { display: flex; - /* Changed to flex with padding */ align-items: center; - gap: 8px; + gap: 6px; + padding: 8px 14px; + background: var(--bg-secondary); + border: 1px solid var(--border-color); + border-radius: 10px; cursor: pointer; user-select: none; - font-size: 14px; - color: var(--text-primary); - padding: 6px 12px; - background: var(--bg-secondary); - border-radius: 8px; - transition: all 0.2s; - - &:hover { - background: var(--bg-hover); - } + font-size: 13px; + font-weight: 500; + color: var(--text-secondary); + transition: all 0.2s ease; + white-space: nowrap; input[type="checkbox"] { - width: 16px; - height: 16px; - accent-color: var(--primary); - cursor: pointer; - opacity: 1; - /* Make visible */ - position: static; - /* Make static */ - pointer-events: auto; - /* Enable pointer events */ + display: none; } svg { - color: var(--text-secondary); - flex-shrink: 0; - margin-left: 2px; + opacity: 0.7; + transition: transform 0.2s; + } + + &:hover { + background: var(--bg-hover); + border-color: var(--text-tertiary); + color: var(--text-primary); + + svg { + transform: translateY(-1px); + } + } + + &.active { + background: var(--primary-light); + border-color: var(--primary); + color: var(--primary); + + svg { + opacity: 1; + color: var(--primary); + } } } } diff --git a/src/pages/ContactsPage.tsx b/src/pages/ContactsPage.tsx index 3e6998f..dd6dd7d 100644 --- a/src/pages/ContactsPage.tsx +++ b/src/pages/ContactsPage.tsx @@ -224,7 +224,7 @@ function ContactsPage() {
-