Commit Graph
85 Commits
Author SHA1 Message Date
2977094657 13febebee7 fix(chat): 修复 list_chat_messages 中 re 作用域遮蔽
- 移除函数内局部 import re,避免遮蔽模块级 re。

- 保持 emojiUrl 处理后续正则逻辑可稳定执行。

- 新增回归测试,覆盖模板解析路径,防止同类作用域问题复发。
2026-02-22 18:59:08 +08:00
2977094657 9254d46802 improvement(sns-media): 悬停展示朋友圈媒体来源阶段
- SNS 页面在封面/媒体悬停时显示来源阶段标识

- 后端媒体接口补充 X-SNS-Source 响应头标记命中来源

- CORS 暴露 X-SNS-Source / X-SNS-Hit-Type / X-SNS-X-Enc 供前端读取
2026-02-22 11:56:45 +08:00
2977094657 d5927156f7 feat(chat-edit-backend): 新增消息编辑快照、回滚与修复接口
- 新增 message_edits 存储,记录首次快照、编辑次数与已修改字段

- 新增消息编辑链路:raw 查询、编辑、修改状态、按消息/会话恢复

- 新增发送者修复与 packed_info_data 方向反转能力

- 编辑流程支持 output/db_storage 双写与失败回滚

- path_fix 改为按需校验 db_storage_path,并缓存 body 避免重复读取问题

- 补充 chat_edit_store 单元测试覆盖核心行为
2026-02-22 11:55:47 +08:00
2977094657 abc8e3e828 improvement(sns): 优化视频号卡片样式(页面/导出)
- sns.vue:视频号 card 改为正方形封面(无图用文字占位),并移除 source/显示计数

- sns_export_service:HTML 导出同步相同布局与播放按钮样式
2026-02-19 20:01:29 +08:00
2977094657 ffa6491ed4 feat(wrapped): 增加月度好友墙卡片
- 新增月度好友墙卡片(chat/monthly_best_friends_wall):按月评选聊天搭子并输出评分维度

- 前端新增拍立得墙展示 12 个月获胜者与指标条,支持头像失败降级

- Wrapped deck 插入新卡片;emoji 卡片 id 顺延为 5,并同步更新测试

- Wrapped 页面默认展示上一年;切换年份时保持当前页并按需懒加载卡片

- WrappedCardShell(slide)支持 wide 布局;更新 wrapped cache version
2026-02-19 20:01:11 +08:00
2977094657 a79eb35a8e improvement(wrapped): 回复速度排行支持收发拆分
- 后端按 sender_username 拆分 outgoing/incoming,并输出累计序列用于动画

- 前端条形图改为分段堆叠(我发/对方),补充图例与容错降级逻辑

- 文案更新为 我发 + 对方
2026-02-19 20:00:48 +08:00
2977094657 e7122ecffd improvement(wrapped): 全局概览改为年度日历热力图
- card_00_global_overview 输出 annualHeatmap(dailyCounts + highlights)

- 新增 AnnualCalendarHeatmap:横向滚动网格 + 气泡 tooltip + 高光日文案

- GlobalOverviewChart 从 Radar 重构为 Heatmap;Card00 slide 下微调间距

- MessageCharsChart 复用 msg-bubble 样式,统一气泡外观
2026-02-19 20:00:21 +08:00
2977094657 1dca69a797 improvement(sns-media): 统一朋友圈远程媒体下载/解密/缓存逻辑
- 新增 sns_media 模块:CDN URL 归一化、远程下载、图片 wcdb_api 解密、视频 WxIsaac64(WeFlow WASM)/ISAAC64 兜底解密与缓存

- routers/sns 与 sns_export_service 复用该模块,收敛重复实现

- 调整 ISAAC64 兜底实现:明确 keystream 生成与字节序格式,作为 WASM 不可用时的 best-effort

- 增加单测覆盖:URL 改写、视频异或解密、缓存命中/升级、解密失败
2026-02-18 16:55:00 +08:00
2977094657 3d989e4a17 feat(decrypt): 解密支持 SSE 实时进度
- 新增 /api/decrypt_stream(GET + SSE):扫描 db_storage,逐库解密并推送 start/progress/complete/error

- 前端解密页优先使用 SSE 展示实时进度,不支持时回退到原 POST(无进度)

- 增加流式接口单测:验证事件序列与输出落盘
2026-02-18 16:54:25 +08:00
2977094657 9b9d42d02e chore(release): v1.3.0 2026-02-18 01:18:16 +08:00
2977094657 c95930275b Update wcdb_api.dll for SNS image decrypt 2026-02-18 00:59:49 +08:00
2977094657 fc8c7120df feat(sns-export): 支持朋友圈 HTML 离线导出(ZIP)
- 新增导出任务:创建/查询/取消/下载 ZIP
- 提供 SSE 进度流 /api/sns/exports/{id}/events(用于前端实时展示进度)
- 复用聊天导出 CSS/emoji 能力,导出媒体优先本地缓存,必要时远程下载解密
- 后端 app 注册 sns_export 路由
2026-02-17 23:40:36 +08:00
2977094657 e9766ba8fa feat(sns): 增强朋友圈时间线/媒体获取与实时同步
- 新增 /api/sns/users:按发圈数统计联系人(支持 keyword/limit)
- 新增 /api/sns/realtime/sync_latest:WCDB 实时增量同步到解密库(append-only),并持久化 sync state
- 朋友圈媒体优先走“远程下载+解密”:图片支持 wcdb_decrypt_sns_image,视频/实况支持 ISAAC64(WeFlow 逻辑)
- 增加 WeFlow WASM keystream(Node) 优先 + Python ISAAC64 fallback,提升兼容性
- wcdb_api.dll 支持多路径自动发现/环境变量覆盖,并在状态信息中回传实际使用路径
2026-02-17 23:40:10 +08:00
2977094657 c6cbb933e7 feat(contacts): 联系人支持拼音分组并补充性别/签名
- 解析 extra_buffer 补齐 gender/signature\n- 返回 pinyinKey/pinyinInitial,前端按 A-Z/# 分组排序展示\n- tests: 更新联系人导出用例覆盖新增字段
2026-02-15 14:33:28 +08:00
2977094657 fcfea031e3 feat(chat): 聊天页支持日历定位/卡片解析/HTML导出分页
- 新增 /api/chat/messages/daily_counts 与 /api/chat/messages/anchor,用于月度热力图与按日/首条定位\n- messages/around 支持跨 message 分片定位,定位更稳定\n- 新增 /api/chat/chat_history/resolve 与 /api/chat/appmsg/resolve,合并转发/链接卡片可按 server_id 补全\n- 新增 /api/chat/media/favicon,并补齐 link 本地缩略图处理\n- HTML 导出支持分页加载(html_page_size),避免大聊天单文件卡顿\n- tests: 覆盖 heatmap/anchor、favicon 缓存、HTML 分页导出
2026-02-15 14:32:47 +08:00
H3CoF6 05089e8ea0 Merge branch 'main' into feat/sns-media 2026-02-14 00:27:52 +08:00
H3CoF6 89c4579633 feat: add sns cover for user 2026-02-14 00:25:58 +08:00
H3CoF6 8b91bbf2c1 fix: use two type to find path correctly 2026-02-13 23:56:42 +08:00
H3CoF6 2b9003a996 fix: fix post type error 2026-02-13 23:42:06 +08:00
2977094657 616778bf1a feat(wrapped): 新增梗图年鉴(Emoji Universe)卡片
- 后端新增 card_04_emoji_universe:统计表情包/emoji 使用与画像

- 前端新增 Card04EmojiUniverse + VueBits Stack/ImageTrail 交互展示

- 更新 Wrapped manifest/Hero 预览与用例覆盖
2026-02-13 22:40:39 +08:00
2977094657 d3034b1fe0 feat(chat-export): 支持 HTML 导出(合并消息/远程缩略图可选下载)
- 导出格式新增 html:生成 index.html + 会话 messages.html,离线浏览

- 支持 chatHistory(合并消息)解析/渲染与弹窗查看

- 图片资源解析增强:MessageResourceInfo 优先 + md5/hdmd5 兜底

- HTML 导出可选下载远程缩略图(仅公网主机/图片类型/5MB 限制)

- 修复拍一拍误判、公众号封面样式识别;转账过期状态与前端展示
2026-02-13 22:39:48 +08:00
H3CoF6 e36fe397c2 feat: self nickname and head img for sns 2026-02-13 22:19:25 +08:00
H3CoF6 2279503406 feat: calc sns video file path 2026-02-13 20:41:48 +08:00
H3CoF6 7cd45b8e4b feat: parse some other media like article 2026-02-13 19:56:13 +08:00
H3CoF6 695875f486 feat: calc img path for sns! 2026-02-13 05:01:23 +08:00
H3CoF6 1df1b76df3 fix: fix the request error when next_action_id changed 2026-02-12 22:39:57 +08:00
H3CoF6 b6cd2d7a70 refactor: remove useless code 2026-02-12 22:25:26 +08:00
2977094657 d8d21395ee improvement(chat): 完善会话置顶与消息卡片解析展示
- 后端:会话列表支持置顶识别(isTop)并按置顶优先排序

- 后端:修正群聊 XML 发送者提取,避免 refermsg 嵌套误识别

- 后端:完善转账状态后处理与视频缩略图 MD5 回填(packed_info_data)

- 后端:补充 quoteThumbUrl/linkType/linkStyle 字段链路

- 前端:新增置顶会话背景态、引用链接缩略图预览与 LinkCard cover 样式

- 测试:新增转账、置顶、引用解析与视频缩略图相关回归用例
2026-02-11 21:57:43 +08:00
2977094657 b6710d4218 feat(chat): 群聊预览补齐群名片并完善系统消息解析
- 新增系统撤回消息解析:优先提取 replacemsg,并统一清洗文本

- 群聊会话预览文本规范化([表情] -> [动画表情]),并支持发送者前缀展示名替换

- 群名片解析来源扩展:contact.db ext_buffer + WCDB realtime(可选新 DLL 接口)

- 图片接口增强:支持 server_id + username 反查消息提取 md5,提升引用图片命中
2026-02-09 18:31:00 +08:00
H3CoF6 177299887d Merge remote-tracking branch 'upstream/main' into feat/wx-key 2026-02-09 03:35:04 +08:00
H3CoF6 8d10c7ed5b refactor: fmt code 2026-02-09 03:33:08 +08:00
H3CoF6 94068485d3 feat: support get image key!! 2026-02-09 03:30:24 +08:00
H3CoF6 78b3a5b9fb fix: fix fetch error and db key is ok !!! 2026-02-09 01:16:47 +08:00
H3CoF6 13e870894e feat: add warning card for db key 2026-02-09 00:59:13 +08:00
H3CoF6 2d3a321254 feat: add new router for db key 2026-02-09 00:26:53 +08:00
2977094657 a38d99aa0b improvement(chat): 优化导出筛选与目录选择体验 2026-02-09 00:15:47 +08:00
2977094657 5901b8ae2a feat(contacts): 新增联系人列表与导出能力 2026-02-09 00:15:07 +08:00
2977094657 1091f9b4f5 feat(chat-media): 新增头像缓存并统一头像出口 2026-02-09 00:14:32 +08:00
2977094657 205832c57a improvement(wrapped): 概览卡片补充年度新增好友统计
- 后端 Card#0 增加 addedFriends 字段(基于系统消息关键字 best-effort 识别新好友)

- 前端概览文案在 addedFriends>0 时展示新增好友数

- bump wrapped cache version,避免旧缓存导致字段缺失
2026-02-04 16:25:29 +08:00
2977094657 1f9174cc0c fix(chat): proxy_image 增强防盗链请求头以提升图片命中率
- 为部分 CDN 增加更兼容的 User-Agent/Referer/Origin 等兜底策略
2026-02-03 16:31:51 +08:00
2977094657 e43afd7c01 improvement(chat): 增强 realtime 增量同步并补充消息搜索索引接口
- 新增后台 autosync:监听 db_storage 变化后触发 realtime -> decrypted 增量同步(去抖/限频)\n- 优化 WCDB realtime 关闭:支持锁超时,避免 busy 时强行 shutdown\n- 新增消息搜索索引相关接口(status/build/senders)\n- 前端关闭 realtime 前改为 sync_all,减少切回解密库后的列表/消息落后\n- 增加解密库消息表/索引创建相关单测
2026-02-03 16:31:31 +08:00
2977094657 011903ed2c feat(wrapped): 新增回复速度卡片 #3(秒回置顶关心)
- 新增年度总结卡片 #3:回复速度/置顶关心统计与排行\n- 前端新增 Card03 渲染与交互(含抽奖揭晓/Top 列表)\n- 更新年度总结卡片清单并加入评分单测
2026-02-03 16:31:04 +08:00
2977094657 477125c29f feat(wrapped): 添加最早最晚消息展示功能 2026-02-01 15:26:33 +08:00
2977094657 648d03aea3 improvement(wrapped): 调整年度总结卡片标题文案为提问式
- 更新 wrapped card manifest 与卡片 title,使标题更具引导性
2026-01-31 20:00:31 +08:00
2977094657 4bc7688c7a feat(wrapped): 年度总结支持目录/单卡片接口,新增卡片#0/#2
- 新增 /api/wrapped/annual/meta 与 /api/wrapped/annual/cards/{card_id},用于前端懒加载单页卡片
- 增加卡片 manifest / 缓存版本控制 / 并发锁,避免重复计算与旧缓存串数据
- 新增 Card#0「年度全局概览」:活跃天数、top 联系人/群、常用表达/金句/表情等汇总
- 新增 Card#2「年度消息字数」:收发字数统计 + 类比呈现 + 键盘敲击统计
- 完善 Card#1 赛博作息表:支持更快的索引计算与更丰富的叙事文案
2026-01-31 14:54:11 +08:00
2977094657 cfe58ae45c feat(wrapped): 新增年度总结接口与卡片 #1(赛博作息表)
- 新增 /api/wrapped/annual(year/account/refresh),统计在 worker thread 中执行

- 实现卡片#1:按 周×小时 聚合消息量,默认过滤 biz_message*.db

- 增加 _wrapped/cache JSON 缓存(global_<year>_upto_1.json),refresh 支持强制重算
2026-01-30 16:26:04 +08:00
2977094657 6df8284458 improvement(chat): WCDB 回退补全昵称/头像
- contact.db 缺失(企业/开放平台/openim/群等)时,回退 WCDB realtime 查询 displayName/avatarUrl

- 覆盖消息/会话:senderDisplayName/senderAvatar、link card from、quoteTitle、会话列表 name/avatar

- realtime 场景尽量复用已建立的 WCDB 连接;best-effort,失败不影响主流程
2026-01-28 18:19:38 +08:00
2977094657 51e2a1196b feat(sns): 增加朋友圈时间线与图片本地缓存接口
- 新增 /api/sns/timeline:优先走 WCDB realtime 读取 sns.db,支持分页/用户过滤/关键字

- 新增 /api/sns/media:本地缓存(cache/.../Sns/Img)解密优先,支持手动 pick/避开重复

- 新增 /api/sns/media_candidates 与 /api/sns/media_picks:候选 key 列表与本机持久化匹配表

- wcdb_realtime 增加 exec_query/get_sns_timeline 封装,并在连接时 set_my_wxid 上下文

- 更新 wcdb_api.dll 并补齐 MSVC runtime 依赖
2026-01-27 16:27:19 +08:00
2977094657 32a05cfc60 fix(chat): proxy_image 兼容 tc.qq.com 并增强防盗链 Referer
- proxy_image 放开 .tc.qq.com 白名单,兼容朋友圈/CDN 图片

- 下载时按多组 Referer/Origin 轮询,提高成功率

- 保持 host 校验与 10MB 限制
2026-01-27 16:26:53 +08:00
2977094657 1e74ad8e4f improvement(chat): realtime 直读 WCDB 并完善追踪日志
- SSE 变更扫描改用 asyncio.to_thread,避免阻塞事件循环

- sessions/messages 支持 source=realtime;realtime 下会话预览改用 session 信息避免缓存陈旧

- realtime sync/sync_all 增加 trace_id 与关键步骤日志,便于定位卡顿/锁竞争

- 支持通过 WECHAT_TOOL_LOG_LEVEL 环境变量覆盖日志级别
2026-01-24 18:47:06 +08:00