feat(export): 增加微信聊天增量 JSON 导出 (#122)
新增 export_all_chats --delta-only 按时间窗口导出每个会话的增量 JSON. - --delta-only 写入 deltas/<run_id>/manifest.json + 有消息的会话文件, 便于后续按批次消费 - 沿用现有 CSV plan 选择逻辑, 可通过 --from-plan-csv 控制范围 - 空时间窗口会话直接跳过, 不再生成 message_count=0 的 delta 文件 - 增量 JSON 保留会话级 metadata, 不改变现有 CSV 导出默认流程 - manifest.json 只记录实际有消息的会话, 无法解析的留在 errors 中便于定位 测试: tests/test_export_all_chats_delta.py 7 个 case (run_id 时间戳形状 / 文件名安全化 / msg_uid 哈希组成 / 写窗口不覆盖全量 JSON / 空窗口跳过 / CLI 参数校验 / manifest 记录文件). 跟 #114 (CSV plan) 互补 — CSV plan 选 "哪些会话" 而 delta 选 "哪个时间窗口".
This commit is contained in:
@@ -16,9 +16,14 @@
|
||||
.\WeChatDecrypt.exe status
|
||||
.\WeChatDecrypt.exe decrypt
|
||||
.\WeChatDecrypt.exe export --from-plan-csv export_plan.csv
|
||||
.\WeChatDecrypt.exe export-all output_dir --delta-only --start "2026-05-26 00:00:00" --end "2026-05-26 08:00:00"
|
||||
.\WeChatDecrypt.exe export-all --write-plan-csv export_plan.csv
|
||||
```
|
||||
|
||||
`--delta-only` 只写入时间窗口内的 delta JSON,不读取或覆盖已有完整 JSON。
|
||||
输出里每条消息包含 `msg_uid`,下游可以用它做去重;时间窗口内没有消息的会话会跳过,
|
||||
不生成空的 `*.delta.json` 文件。
|
||||
|
||||
无参数或 `web` 子命令仍启动 Web UI:
|
||||
|
||||
```powershell
|
||||
@@ -99,6 +104,7 @@ wechat_files/<wxid>/ ← 导出的聊天记录 (按 wxid + 联系人分
|
||||
朋友圈图片/ ← 朋友圈缓存图片解密后
|
||||
data/ ← 语音转 MP3 输出 (有的话)
|
||||
exported_chats/ ← 用 ③ 导出全部聊天 (JSON) 时的输出 (export_all_chats.py)
|
||||
deltas/<run_id>/ ← --delta-only 输出 manifest.json + 非空 chats/*.delta.json
|
||||
wxwork_export/ ← 企微聊天导出
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user