Files
CipherTalk/electron/services
ILoveBingLu 14b41e9d4e fix: 增强视频定位能力,支持从 rawContent 提取备用 MD5
问题:部分视频消息的 videoMd5 字段为空或与实际文件名不匹配,
导致视频显示「不可用」。

变更内容:

electron/services/videoService.ts
- getVideoInfo 新增 rawContent 参数,从消息原始 XML 中提取
  newmd5 / rawmd5 等备用 MD5 字段作为候选
- 返回 diagnostics 诊断信息(candidateMd5s、matchedMd5、reason、summary 等),
  便于前端展示失败原因和调试

electron/services/chatService.ts
- extractVideoMd5 新增对 newmd5 / rawmd5 XML 字段的提取支持

electron/services/exportService.ts / httpApiFacade.ts / httpApiService.ts
- getVideoInfo 调用处透传 rawContent 参数

electron/services/mcp/readService.ts
- getVideoLocalPath 支持 rawContent 为空时 videoMd5 也为空的情况

electron/services/imageDecryptService.ts
- 新增 hdNotFoundCache,避免高清图重复查询

electron/main.ts / electron/preload.ts / src/types/electron.d.ts
- IPC 接口同步更新,透传 rawContent 和 diagnostics

src/pages/ChatPage.tsx
- 视频缓存 key 改为 videoMd5 || local:localId,兼容无 MD5 的消息
- 视频不可用时展示 diagnostics.summary 诊断文案
- 详情面板新增关闭动画(closing 状态 + 220ms 延迟)
- 视频播放按钮图标调整

src/pages/ChatPage.scss
- 详情面板改为绝对定位浮层,新增 slideOutRight 关闭动画
- 工具栏按钮改为圆形,悬停加 scale 效果
- 视频不可用区域新增 .video-reason 样式

src/pages/VideoWindow.tsx
- 播放图标尺寸调整
2026-04-21 21:35:22 +08:00
..