From 2e61902556e17c128b725aba4a09a7bb20cb0c9b Mon Sep 17 00:00:00 2001 From: xuncha <102988462+xunchahaha@users.noreply.github.com> Date: Sun, 25 Jan 2026 18:05:15 +0800 Subject: [PATCH 1/5] =?UTF-8?q?fix:=E4=BC=98=E5=8C=96=E8=A1=A8=E8=BF=B0=20?= =?UTF-8?q?(#96)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- electron/services/exportService.ts | 5 +++++ src/pages/WelcomePage.tsx | 15 +++++++++------ 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/electron/services/exportService.ts b/electron/services/exportService.ts index 7e57c05..99aa31f 100644 --- a/electron/services/exportService.ts +++ b/electron/services/exportService.ts @@ -2006,6 +2006,11 @@ class ExportService { ) const detailedExport: any = { + weflow: { + version: '1.0.3', + exportedAt: Math.floor(Date.now() / 1000), + generator: 'WeFlow' + }, session: { wxid: sessionId, nickname: sessionNickname, diff --git a/src/pages/WelcomePage.tsx b/src/pages/WelcomePage.tsx index a2967fd..8c7b12e 100644 --- a/src/pages/WelcomePage.tsx +++ b/src/pages/WelcomePage.tsx @@ -453,7 +453,10 @@ function WelcomePage({ standalone = false }: WelcomePageProps) { ⚠️ 目录路径不可包含中文,如有中文请先在微信中迁移至全英文目录 - )} +
请选择微信-设置-存储位置对应的目录
+
⚠️ 目录路径不可包含中文,如有中文请去微信-设置-存储位置点击更改,迁移至全英文目录
+ + )} {currentStep.id === 'cache' && (
@@ -554,11 +557,11 @@ function WelcomePage({ standalone = false }: WelcomePageProps) { {isFetchingImageKey ? '扫描中...' : '自动获取图片密钥'} - {imageKeyStatus &&
{imageKeyStatus}
} -
请在微信中打开几张图片后再点击获取
-
- )} - + {dbKeyStatus &&
{dbKeyStatus}
} +
获取密钥会自动识别最近登录的账号
+
点击自动获取后微信将重新启动,当页面提示hook安装成功,现在登录微信后再点击登录
+ + )} {error &&
{error}
} From b9d1ea316f75a2c0fdb445b73e567032da1490f3 Mon Sep 17 00:00:00 2001 From: xuncha <102988462+xunchahaha@users.noreply.github.com> Date: Sun, 25 Jan 2026 18:19:06 +0800 Subject: [PATCH 2/5] =?UTF-8?q?Revert=20"fix:=E4=BC=98=E5=8C=96=E8=A1=A8?= =?UTF-8?q?=E8=BF=B0=20(#96)"=20(#97)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 2e61902556e17c128b725aba4a09a7bb20cb0c9b. --- electron/services/exportService.ts | 5 ----- src/pages/WelcomePage.tsx | 15 ++++++--------- 2 files changed, 6 insertions(+), 14 deletions(-) diff --git a/electron/services/exportService.ts b/electron/services/exportService.ts index 99aa31f..7e57c05 100644 --- a/electron/services/exportService.ts +++ b/electron/services/exportService.ts @@ -2006,11 +2006,6 @@ class ExportService { ) const detailedExport: any = { - weflow: { - version: '1.0.3', - exportedAt: Math.floor(Date.now() / 1000), - generator: 'WeFlow' - }, session: { wxid: sessionId, nickname: sessionNickname, diff --git a/src/pages/WelcomePage.tsx b/src/pages/WelcomePage.tsx index 8c7b12e..a2967fd 100644 --- a/src/pages/WelcomePage.tsx +++ b/src/pages/WelcomePage.tsx @@ -453,10 +453,7 @@ function WelcomePage({ standalone = false }: WelcomePageProps) { ⚠️ 目录路径不可包含中文,如有中文请先在微信中迁移至全英文目录 -
请选择微信-设置-存储位置对应的目录
-
⚠️ 目录路径不可包含中文,如有中文请去微信-设置-存储位置点击更改,迁移至全英文目录
- - )} + )} {currentStep.id === 'cache' && (
@@ -557,11 +554,11 @@ function WelcomePage({ standalone = false }: WelcomePageProps) { {isFetchingImageKey ? '扫描中...' : '自动获取图片密钥'} - {dbKeyStatus &&
{dbKeyStatus}
} -
获取密钥会自动识别最近登录的账号
-
点击自动获取后微信将重新启动,当页面提示hook安装成功,现在登录微信后再点击登录
-
- )} + {imageKeyStatus &&
{imageKeyStatus}
} +
请在微信中打开几张图片后再点击获取
+ + )} + {error &&
{error}
} From 9f31ac0529ee1a606935d4066bd88327082d63da Mon Sep 17 00:00:00 2001 From: xuncha <102988462+xunchahaha@users.noreply.github.com> Date: Sun, 25 Jan 2026 18:29:50 +0800 Subject: [PATCH 3/5] Dev (#98) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix:优化表述 * fix:修复了json导出的格式 --- electron/services/exportService.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/electron/services/exportService.ts b/electron/services/exportService.ts index 7e57c05..6f6eefe 100644 --- a/electron/services/exportService.ts +++ b/electron/services/exportService.ts @@ -1605,6 +1605,14 @@ class ExportService { } } + private getWeflowHeader(): { version: string; exportedAt: number; generator: string } { + return { + version: '1.0.3', + exportedAt: Math.floor(Date.now() / 1000), + generator: 'WeFlow' + } + } + /** * 生成通用的导出元数据 (参考 ChatLab 格式) */ @@ -2005,7 +2013,9 @@ class ExportService { options.displayNamePreference || 'remark' ) + const weflow = this.getWeflowHeader() const detailedExport: any = { + weflow, session: { wxid: sessionId, nickname: sessionNickname, From b66fc32068977963b401763090567e3bafcd649c Mon Sep 17 00:00:00 2001 From: xuncha <102988462+xunchahaha@users.noreply.github.com> Date: Tue, 27 Jan 2026 17:35:52 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=BA=AFjson=E5=AF=BC?= =?UTF-8?q?=E5=87=BA=E6=A0=BC=E5=BC=8F=20(#111)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix:优化表述 * fix:修复了json导出的格式 From 3405f26d10d4b969825a47f635131d3cd49ea959 Mon Sep 17 00:00:00 2001 From: xuncha <102988462+xunchahaha@users.noreply.github.com> Date: Tue, 27 Jan 2026 17:46:49 +0800 Subject: [PATCH 5/5] Dev (#112) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix:优化表述 * fix:修复了json导出的格式 * fix:修复群聊分析白屏 * fix:修复当天没有会话也依旧会产生导出文件的问题 --- electron/services/exportService.ts | 28 ++++++++++++++++++++++++++++ src/pages/GroupAnalyticsPage.tsx | 2 +- 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/electron/services/exportService.ts b/electron/services/exportService.ts index 6f6eefe..f5e750b 100644 --- a/electron/services/exportService.ts +++ b/electron/services/exportService.ts @@ -1665,6 +1665,12 @@ class ExportService { const collected = await this.collectMessages(sessionId, cleanedMyWxid, options.dateRange) const allMessages = collected.rows + + // 如果没有消息,不创建文件 + if (allMessages.length === 0) { + return { success: false, error: '该会话在指定时间范围内没有消息' } + } + if (isGroup) { await this.mergeGroupMembers(sessionId, collected.memberSet, options.exportAvatars === true) } @@ -1858,6 +1864,12 @@ class ExportService { }) const collected = await this.collectMessages(sessionId, cleanedMyWxid, options.dateRange) + + // 如果没有消息,不创建文件 + if (collected.rows.length === 0) { + return { success: false, error: '该会话在指定时间范围内没有消息' } + } + const { exportMediaEnabled, mediaRootDir, mediaRelativePrefix } = this.getMediaLayout(outputPath, options) // ========== 阶段1:并行导出媒体文件 ========== @@ -2100,6 +2112,10 @@ class ExportService { const collected = await this.collectMessages(sessionId, cleanedMyWxid, options.dateRange) + // 如果没有消息,不创建文件 + if (collected.rows.length === 0) { + return { success: false, error: '该会话在指定时间范围内没有消息' } + } onProgress?.({ current: 30, @@ -2453,6 +2469,12 @@ class ExportService { }) const collected = await this.collectMessages(sessionId, cleanedMyWxid, options.dateRange) + + // 如果没有消息,不创建文件 + if (collected.rows.length === 0) { + return { success: false, error: '该会话在指定时间范围内没有消息' } + } + const sortedMessages = collected.rows.sort((a, b) => a.createTime - b.createTime) const { exportMediaEnabled, mediaRootDir, mediaRelativePrefix } = this.getMediaLayout(outputPath, options) @@ -2624,6 +2646,12 @@ class ExportService { }) const collected = await this.collectMessages(sessionId, cleanedMyWxid, options.dateRange) + + // 如果没有消息,不创建文件 + if (collected.rows.length === 0) { + return { success: false, error: '该会话在指定时间范围内没有消息' } + } + if (isGroup) { await this.mergeGroupMembers(sessionId, collected.memberSet, options.exportAvatars === true) } diff --git a/src/pages/GroupAnalyticsPage.tsx b/src/pages/GroupAnalyticsPage.tsx index 3cb07c1..1a8dfe1 100644 --- a/src/pages/GroupAnalyticsPage.tsx +++ b/src/pages/GroupAnalyticsPage.tsx @@ -56,7 +56,7 @@ function GroupAnalyticsPage() { useEffect(() => { loadGroups() - }, [loadGroups]) + }, []) useEffect(() => { if (searchQuery) {