Skip to content

feat(chat-export): 支持聊天记录增量目录导出与修复 - #120

Open
xiaoshengbao wants to merge 1 commit into
LifeArchiveProject:mainfrom
xiaoshengbao:main
Open

feat(chat-export): 支持聊天记录增量目录导出与修复#120
xiaoshengbao wants to merge 1 commit into
LifeArchiveProject:mainfrom
xiaoshengbao:main

Conversation

@xiaoshengbao

Copy link
Copy Markdown
Contributor

功能说明

在原有完整 ZIP 导出的基础上,新增聊天记录“增量目录”导出模式。

再次导出到同一目录时,会根据基线文件识别发生变化的会话,复用未变化的文件,只更新需要同步或修复的内容,减少重复导出大量聊天记录和媒体文件的开销。

主要改动

增量导出

  • 新增完整 ZIP、增量目录两种输出模式
  • 在导出目录中维护 .wechat-chat-export.json 基线文件
  • 根据消息水位、历史指纹及会话信息判断会话是否发生变化
  • 复用未变化会话,仅重新导出需要更新的会话
  • 保留本次未选择但已存在于导出目录中的会话

HTML 增量更新

  • 满足条件时仅查询并渲染新增消息
  • 合并原有分页、媒体索引和会话目录
  • 历史消息发生变化时生成修复候选,由用户确认后重建
  • 无法安全追加时自动回退为当前会话完整重建

JSON、TXT、Excel 格式同样支持增量判断,变化的会话会重新生成,未变化的会话继续复用。

文件与媒体修复

  • 检测导出目录中丢失或大小异常的受管文件
  • 支持重新探测缺失媒体并恢复可修复内容
  • 记录共享媒体的会话归属,避免删除仍被其他会话使用的资源
  • 对无法从本地恢复的媒体进行区分,避免重复提示无效修复

安全与兼容性

  • 校验基线所属账号及导出配置,避免误用其他导出目录
  • 拒绝不安全路径、损坏基线及来源不明的非空目录
  • 桌面端通过临时目录和原子替换更新文件
  • 浏览器端在全部文件写入完成后再提交基线及清理旧文件
  • 隐私模式下不在基线和报告中记录明文账号或会话名称
  • 保留原有行为,不影响现有使用方式
  • 增量目录模式暂不支持加密导出

前端与接口

  • 增加增量目录模式选择及目录状态展示
  • 展示新增消息、更新会话、复用会话和恢复文件数量
  • 增加历史变化修复和缺失媒体重新探测入口
  • 增加浏览器端文件清单、文件下载和提交清理接口
  • 增加浏览器写入进度及失败重试提示

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant