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) {