Skip to content

Commit a18b569

Browse files
committed
添加文章
1 parent 09de84e commit a18b569

9 files changed

Lines changed: 226 additions & 9 deletions

File tree

docs/.vuepress/client.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import PageContextMenu from 'vuepress-theme-plume/features/PageContextMenu.vue'
66
import AsideNav from './theme/components/AsideNav.vue'
77
import GitHubCard from './theme/components/GitHubCard.vue'
88
import ItemGrid from './theme/components/ItemGrid.vue'
9+
import Douyin from './theme/components/Douyin.vue'
910

1011
import './theme/styles/custom.css'
1112

@@ -15,6 +16,7 @@ export default defineClientConfig({
1516
app.component('AsideNav', AsideNav)
1617
app.component('GitHubCard', GitHubCard)
1718
app.component('ItemGrid', ItemGrid)
19+
app.component('Douyin', Douyin)
1820
},
1921

2022
layouts: {

docs/.vuepress/plume.config.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import { defineThemeConfig } from 'vuepress-theme-plume'
22
import navbar from './navbar'
33

4+
const currentYear = new Date().getFullYear()
5+
46
export default defineThemeConfig({
57
logo: '/favicon.ico',
68
appearance: true,
@@ -42,7 +44,7 @@ export default defineThemeConfig({
4244

4345
/* 页脚 */
4446
footer: {
45-
message: 'Powered by <a target="_blank" href="https://v2.vuepress.vuejs.org/">VuePress</a> & <a target="_blank" href="https://theme-plume.vuejs.press">vuepress-theme-plume</a> | Copyright © 2026 Jursin',
47+
message: `Powered by <a target="_blank" href="https://v2.vuepress.vuejs.org/">VuePress</a> & <a target="_blank" href="https://theme-plume.vuejs.press">vuepress-theme-plume</a> | Copyright © 2025-${currentYear} Jursin`,
4648
copyright: '<img src="/icon/miit.png" width="14" height="14" style="margin-right: 5px; display: inline-block; vertical-align: middle;"><a href="http://beian.miit.gov.cn/" target="_blank" >鄂ICP备2025157296号-1</a> | <img src="/icon/mps.png" width="14" height="14" style="margin-right: 5px; display: inline-block; vertical-align: middle;"><a href="https://beian.mps.gov.cn/#/query/webSearch" target="_blank">鄂公网安备42100302000228号</a>',
4749
},
4850

96.4 KB
Loading
248 KB
Loading
82.3 KB
Loading
94.2 KB
Loading
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
<template>
2+
<div class="douyin">
3+
<iframe
4+
:src="`https://open.douyin.com/player/video?vid=${vid}&autoplay=${autoplay ? 1 : 0}`"
5+
frameborder="0"
6+
referrerpolicy="unsafe-url"
7+
:allowfullscreen="allowFullscreen"
8+
></iframe>
9+
</div>
10+
</template>
11+
12+
<script>
13+
export default {
14+
name: 'Douyin',
15+
props: {
16+
vid: {
17+
type: String,
18+
required: true,
19+
default: ''
20+
},
21+
autoplay: {
22+
type: Boolean,
23+
default: false
24+
},
25+
allowFullscreen: {
26+
type: Boolean,
27+
default: true
28+
}
29+
}
30+
}
31+
</script>
32+
33+
<style scoped>
34+
.douyin {
35+
width: max(730px, 100%);
36+
margin-inline: auto;
37+
padding: 0.5rem 0;
38+
}
39+
40+
.douyin iframe {
41+
aspect-ratio: 1.778;
42+
width: 100%;
43+
border: none;
44+
}
45+
</style>

docs/.vuepress/theme/components/GitHubCard.vue

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,19 +21,19 @@
2121

2222
<div class="stats">
2323
<div class="stat-item" @click="starRepo">
24-
<Icon name="octicon:star-fill-16" size="1.2em" color="#E3B341" />
24+
<Icon name="octicon:star-fill-16" size="0.8em" color="#E3B341" />
2525
<span>星标 {{ repoData.stargazers_count }}</span>
2626
</div>
2727
<div class="stat-item" @click="issueRepo">
28-
<Icon name="octicon:issue-opened-16" size="1.2em" color="#3FB950" />
28+
<Icon name="octicon:issue-opened-16" size="0.8em" color="#3FB950" />
2929
<span>议题 {{ repoData.open_issues_count }}</span>
3030
</div>
3131
<div class="stat-item" @click="watchRepo">
32-
<Icon name="octicon:eye-16" size="1.2em" color="#3FB950" />
32+
<Icon name="octicon:eye-16" size="0.8em" color="#3FB950" />
3333
<span>关注 {{ repoData.subscribers_count }}</span>
3434
</div>
3535
<div class="stat-item" v-if="repoData.license" @click="viewLicense">
36-
<Icon name="lucide:scale" size="1.2em" />
36+
<Icon name="lucide:scale" size="0.8em" />
3737
<span>{{ repoData.license.spdx_id }}</span>
3838
</div>
3939
</div>
@@ -45,15 +45,15 @@
4545
</span>
4646
<div class="dates" :class="{ 'no-language': !repoData.language }">
4747
<span class="created">
48-
<Icon name="octicon:clock-16" />
48+
<Icon name="octicon:clock-16" size="0.8em" />
4949
创建于:{{ formatDate(repoData.created_at) }}
5050
</span>
5151
<span class="updated">
52-
<Icon name="material-symbols:update-rounded" size="1.3em" />
52+
<Icon name="material-symbols:update-rounded" size="1em" />
5353
更新于:{{ formatDate(repoData.updated_at) }}
5454
</span>
5555
<span class="branch">
56-
<Icon name="octicon:git-branch-16" />
56+
<Icon name="octicon:git-branch-16" size="0.8em" />
5757
默认分支:{{ repoData.default_branch }}
5858
</span>
5959
</div>
@@ -78,6 +78,7 @@ export default {
7878
'CSS': '#563d7c',
7979
'JavaScript': '#f1e05a',
8080
'TypeScript': '#3178c6',
81+
'Vue': '#41b883',
8182
'Python': '#3572A5',
8283
'Java': '#b07219',
8384
'Go': '#00ADD8',
@@ -88,7 +89,12 @@ export default {
8889
'C#': '#178600',
8990
'Shell': '#89e051',
9091
'Markdown': '#083FA1',
91-
'MDX': '#FCB32C'
92+
'MDX': '#FCB32C',
93+
'React': '#61dafb',
94+
'Swift': '#ffac45',
95+
'Kotlin': '#F18E33',
96+
'Rust': '#dea584',
97+
'Dart': '#00B4AB'
9298
}
9399
}
94100
},

docs/blog/echotrace.md

Lines changed: 162 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,162 @@
1+
---
2+
title: EchoTrace:开源微信聊天记录分析工具,支持数据分析、群聊分析与导出记录
3+
createTime: 2026/01/05 16:46:54
4+
tags:
5+
- 微信
6+
- 数据导出
7+
- 年度报告
8+
copyright:
9+
author:
10+
name: "ycccccccy"
11+
url: "https://github.com/ycccccccy"
12+
creation: "reprint"
13+
source: "https://github.com/ycccccccy/echotrace/blob/main/docs/beginner_guide.md"
14+
---
15+
16+
> 本文根据项目文档编写,仅供参考。遇到问题请在 GitHub 提交 Issue 或向他人请教,也建议有能力的人给该项目一个 Star 鼓励作者 🌟
17+
18+
::: tip
19+
**适用平台**:Windows 10+
20+
21+
**发行版下载**[https://github.com/ycccccccy/echotrace/releases](https://github.com/ycccccccy/echotrace/releases)
22+
23+
**镜像下载**<Badge text="国内推荐" />:[https://openlist.jursin.top/@s/S7Frr60o](https://openlist.jursin.top/@s/S7Frr60o)
24+
:::
25+
26+
<GitHubCard owner="ycccccccy" repo="echotrace" />
27+
28+
---
29+
30+
## 准备工作
31+
- **下载 EchoTrace**:点击`发行版`链接跳转后下载最新版本的 `zip` 压缩包,或访问我提供的 **OpenList** 分享链接下载(使用 GitHub 第三方镜像加速文件下载)
32+
- **运行**:解压后双击运行文件夹下的 `echotrace.exe`
33+
34+
::: file-tree
35+
- echotrace-windows-vx.x.x
36+
- data/
37+
- ...
38+
- audioplayers_windows_plugin.dll
39+
- **echotrace.exe**
40+
- file_saver_plugin.dll
41+
- flutter_windows.dll
42+
- go_decrypt.dll
43+
- mp3lame.dll
44+
- sqlite3.x64.windows.dll
45+
- url_launcher_windows_plugin.dll
46+
- zstd_native.dll
47+
- zstd.dll
48+
:::
49+
50+
::: warning
51+
**不要**将软件文件夹放在任何包含**中文**的目录下,**不建议**解压到**桌面**后运行!
52+
:::
53+
54+
## 基础配置
55+
56+
点击侧边栏左下角设置,按顺序完成以下配置:
57+
58+
### 填写解密密钥
59+
- **解密密钥**:点击`自动获取获取密钥`以自动填充,如果应用内无法获取可下载 [密钥获取工具](https://github.com/ycccccccy/wx_key/releases) 以获取数据库密钥,再手动填写
60+
61+
![wx_key](/images/echotrace/wx_key.png)
62+
63+
- 建议点击右上角`测试连接`按钮,确保密钥正确。
64+
65+
### 选择数据库根目录
66+
- 点击`自动检测`按钮,系统通常会自动定位到 `xwechat_files` 目录。
67+
- 若检测失败,可点击`手动选择`选择微信数据存储目录下的 `xwechat_files` 文件夹。
68+
69+
### 确认账号
70+
- 选择路径后会自动检测出wxid,如果检测到多个微信登录过的账号,系统会提示选择 `wxid`,通常选择最新登录的即可。
71+
72+
完成以上步骤后,点击右上角的`保存配置`
73+
74+
![设置页面](/images/echotrace/setting.png)
75+
76+
::: note 微信图片解密配置<Badge text="可选" />
77+
- 填写 XOR 和 AES 密钥。
78+
- 不填不影响文字聊天记录导出,但应用内无法渲染图片,导出暂不支持附带图片。
79+
:::
80+
81+
## 解密数据库
82+
83+
配置完成后,需要让软件读取并解密你的聊天数据。
84+
85+
### 批量解密
86+
87+
::: steps
88+
1. 点击侧边栏`数据管理`
89+
2. 自动切换到`数据库`页面
90+
3. 点击`批量解密`按钮
91+
4. **耐心等待**程序自动处理所有数据(根据记录多少和性能好坏,耗时一到数十分钟不等)
92+
5. 弹出`批量解密完成`提示即表示解密成功
93+
:::
94+
95+
![数据管理](/images/echotrace/manage_db.png)
96+
97+
::: tip
98+
- 可以先在手机微信上使用 **“迁移与备份 -> 迁移到电脑”** 功能,将手机聊天记录合并到电脑上,然后再运行 EchoTrace 的解密功能,这样就能得到一份数据详实的年度报告了!
99+
- **增量更新**:如果你之后又聊了很多天,只需再次点击`增量更新`,无需重新批量解密。
100+
:::
101+
102+
## 玩转数据(分析与导出)
103+
104+
解密完成后,你可以选择直接在软件内查看分析报告,或者将数据导出以使用 [@hellodigua](https://github.com/hellodigua)[ChatLab](https://chatlab.fun/) 进行更深入的分析。
105+
106+
### A. 数据分析(可视化报告)
107+
点击侧边栏`数据分析`按钮:
108+
- `查看详细年度报告`:深度分析你的聊天数据,发现更多有趣洞察
109+
- `查看双人报告`:选择一位好友,生成专属的双人聊天报告
110+
111+
下方还可以直接查看一些统计数据
112+
113+
### B. 导出聊天记录(UI 界面)
114+
点击侧边栏`导出记录`按钮:
115+
1. **选择会话**:勾选你想要导出的好友或群聊(支持顶部搜索)。
116+
2. **设置参数**
117+
- **导出位置**:选择一个文件夹用于存放结果(必选)。
118+
- **日期范围**:可指定时间段,或勾选“导出全部时间”。
119+
- **导出格式**
120+
- `HTML`**推荐**,类似网页版微信,适合阅读。
121+
- `Excel`:适合做表格统计。
122+
- `JSON`:适合开发者进行二次开发。
123+
- `PostgreSQL`:生成 SQL 文件导入数据库。
124+
3. 点击 **开始导出**
125+
4. 开始导出后应用将索引并排列会话中所有的消息,若消息量太大页面可能会卡住一会,这是正常现象
126+
127+
![导出记录](/images/echotrace/output.png)
128+
129+
## 进阶功能:命令行导出 (CLI)
130+
131+
如果你需要编写脚本自动备份,可以使用命令行模式。(需先在 UI 界面完成配置和解密)
132+
133+
打开 PowerShell 或 CMD,在程序所在目录执行:
134+
135+
```powershell
136+
# 场景 1:导出所有会话为 HTML 网页
137+
.\echotrace.exe -e C:\MyBackup --format html --all
138+
139+
# 场景 2:仅导出 2024 年的数据(默认格式为 JSON)
140+
.\echotrace.exe -e C:\MyBackup --start 2024-01-01 --end 2024-12-31
141+
```
142+
143+
**参数说明:**
144+
- `-e <目录>`:必填,指定导出路径。
145+
- `--format`:可选 `json` / `html` / `excel`
146+
- `--all`:导出所有已解密的数据。
147+
- `--start` / `--end`:指定日期范围 (YYYY-MM-DD)。
148+
149+
## 常见问题 (FAQ)
150+
151+
**Q: 提示“未找到 db_storage”或“数据库目录不存在”?**
152+
153+
> A: 请回到设置页,确认“数据库根目录”选择的是 `xwechat_files` 这一层级,不要选到里面的 `all_users``wxid_xx` 文件夹。
154+
155+
**Q: 导出时列表是空的?**
156+
157+
> A: 必须先在“数据管理”页面点击 **批量解密** 且进度条走完后,导出页面才会显示会话列表。
158+
159+
## 视频教程
160+
<Douyin vid="7590668016951081307" />
161+
162+
<Douyin vid="7590759984041729957" />

0 commit comments

Comments
 (0)