H3CoF6
|
0a47b4d3be
|
feat: add sns cover for user
|
2026-02-14 00:25:58 +08:00 |
|
H3CoF6
|
bcf918e7e8
|
fix: use two type to find path correctly
|
2026-02-13 23:56:42 +08:00 |
|
H3CoF6
|
0a2d98b406
|
fix: fix post type error
|
2026-02-13 23:42:06 +08:00 |
|
H3CoF6
|
7bf57a1475
|
feat: self nickname and head img for sns
|
2026-02-13 22:19:25 +08:00 |
|
H3CoF6
|
7cc7ff8628
|
feat: calc sns video file path
|
2026-02-13 20:41:48 +08:00 |
|
H3CoF6
|
372deaf060
|
feat: parse some other media like article
|
2026-02-13 19:56:13 +08:00 |
|
H3CoF6
|
086d8468e1
|
feat: calc img path for sns!
|
2026-02-13 05:01:23 +08:00 |
|
H3CoF6
|
35656540d5
|
fix: fix the request error when next_action_id changed
|
2026-02-12 22:39:57 +08:00 |
|
H3CoF6
|
b9e954ef3e
|
refactor: remove useless code
|
2026-02-12 22:25:26 +08:00 |
|
2977094657
|
548f3cf2c8
|
improvement(chat): 完善会话置顶与消息卡片解析展示
- 后端:会话列表支持置顶识别(isTop)并按置顶优先排序
- 后端:修正群聊 XML 发送者提取,避免 refermsg 嵌套误识别
- 后端:完善转账状态后处理与视频缩略图 MD5 回填(packed_info_data)
- 后端:补充 quoteThumbUrl/linkType/linkStyle 字段链路
- 前端:新增置顶会话背景态、引用链接缩略图预览与 LinkCard cover 样式
- 测试:新增转账、置顶、引用解析与视频缩略图相关回归用例
|
2026-02-11 21:57:43 +08:00 |
|
2977094657
|
814abba2f9
|
feat(chat): 群聊预览补齐群名片并完善系统消息解析
- 新增系统撤回消息解析:优先提取 replacemsg,并统一清洗文本
- 群聊会话预览文本规范化([表情] -> [动画表情]),并支持发送者前缀展示名替换
- 群名片解析来源扩展:contact.db ext_buffer + WCDB realtime(可选新 DLL 接口)
- 图片接口增强:支持 server_id + username 反查消息提取 md5,提升引用图片命中
|
2026-02-09 18:31:00 +08:00 |
|
H3CoF6
|
c9f378cb70
|
Merge remote-tracking branch 'upstream/main' into feat/wx-key
|
2026-02-09 03:35:04 +08:00 |
|
H3CoF6
|
b3d12fd95f
|
refactor: fmt code
|
2026-02-09 03:33:08 +08:00 |
|
H3CoF6
|
05dbc47ffa
|
feat: support get image key!!
|
2026-02-09 03:30:24 +08:00 |
|
H3CoF6
|
67c1b1af1f
|
fix: fix fetch error and db key is ok !!!
|
2026-02-09 01:16:47 +08:00 |
|
H3CoF6
|
b766e051ed
|
feat: add warning card for db key
|
2026-02-09 00:59:13 +08:00 |
|
H3CoF6
|
d13e1dcfc6
|
feat: add new router for db key
|
2026-02-09 00:26:53 +08:00 |
|
2977094657
|
a20df89ee7
|
improvement(chat): 优化导出筛选与目录选择体验
|
2026-02-09 00:15:47 +08:00 |
|
2977094657
|
62f396e55b
|
feat(contacts): 新增联系人列表与导出能力
|
2026-02-09 00:15:07 +08:00 |
|
2977094657
|
36d9af2b28
|
feat(chat-media): 新增头像缓存并统一头像出口
|
2026-02-09 00:14:32 +08:00 |
|
2977094657
|
94e6e89f35
|
improvement(wrapped): 概览卡片补充年度新增好友统计
- 后端 Card#0 增加 addedFriends 字段(基于系统消息关键字 best-effort 识别新好友)
- 前端概览文案在 addedFriends>0 时展示新增好友数
- bump wrapped cache version,避免旧缓存导致字段缺失
|
2026-02-04 16:25:29 +08:00 |
|
2977094657
|
175ed20a5f
|
fix(chat): proxy_image 增强防盗链请求头以提升图片命中率
- 为部分 CDN 增加更兼容的 User-Agent/Referer/Origin 等兜底策略
|
2026-02-03 16:31:51 +08:00 |
|
2977094657
|
3297f24f52
|
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
|
625526ff3b
|
feat(wrapped): 新增回复速度卡片 #3(秒回置顶关心)
- 新增年度总结卡片 #3:回复速度/置顶关心统计与排行\n- 前端新增 Card03 渲染与交互(含抽奖揭晓/Top 列表)\n- 更新年度总结卡片清单并加入评分单测
|
2026-02-03 16:31:04 +08:00 |
|
2977094657
|
18957be354
|
feat(wrapped): 添加最早最晚消息展示功能
|
2026-02-01 15:26:33 +08:00 |
|
2977094657
|
e5ba16abc0
|
improvement(wrapped): 调整年度总结卡片标题文案为提问式
- 更新 wrapped card manifest 与卡片 title,使标题更具引导性
|
2026-01-31 20:00:31 +08:00 |
|
2977094657
|
77a60bde70
|
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
|
519e9e9299
|
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
|
891d4b8a1b
|
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
|
ba9eb5e267
|
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
|
d0d518aed9
|
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
|
93ad7b7a1c
|
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 |
|
2977094657
|
c523036a10
|
fix(chat): 链接卡片补全公众号来源并解决缩略图防盗链
- appmsg 解析补全 from/fromUsername,并规范化 url/thumbUrl
- contact.db 兜底反查 fromUsername(仅有 sourcedisplayname 时)
- 新增 /api/chat/media/proxy_image,仅允许 qpic/qlogo,带 mp.weixin.qq.com Referer(10MB 限制)
- 前端 LinkCard 增加来源头像/host 兜底,qpic/qlogo 预览图走代理;头像加载失败回退
- 导出消息补充 from 字段
|
2026-01-24 10:51:35 +08:00 |
|
2977094657
|
848847c162
|
feat(api): 支持挂载 Nuxt 静态 UI 并统一桌面端运行参数
- 若存在 WECHAT_TOOL_UI_DIR 或 frontend/.output/public,则在 / 挂载静态站点并支持 SPA 路由回退
- API 根端点调整为 /api,避免与静态 UI 冲突
- 新增 WECHAT_TOOL_DATA_DIR 输出目录约定,统一 databases/key store 等路径
- host/port 支持通过 WECHAT_TOOL_HOST / WECHAT_TOOL_PORT 配置,并打印可访问地址
- 新增 backend_entry.py 作为 PyInstaller 入口,减少动态导入识别问题
|
2026-01-17 18:23:35 +08:00 |
|
2977094657
|
ea0547eab3
|
fix(chat): 群聊发送者解析支持 alias 并避免覆盖 sender_username
- _split_group_sender_prefix 支持传入已知 sender(username/alias),弱特征场景避免误拆前缀
- 群聊消息按需读取 contact.db 的 alias 辅助解析昵称:\n前缀(带缓存)
- 仅在 sender 缺失时回填前缀,避免昵称覆盖 sender id
|
2026-01-04 14:03:52 +08:00 |
|
2977094657
|
03af287aea
|
fix(chat): 合并转发记录的图片/表情解析与媒体兜底
- 前端:recordItem XML 清理非法控制字符并转义裸 &,补齐 fromnewmsgid/cdnurlstring/aeskey 等字段
- 前端:图片接口追加 server_id;表情接口透传 emoji_url/aes_key
- 后端:/api/chat/media/image 支持 server_id,从 message_resource.db 反查 packed_info 资源 md5 并优先定位
- 后端:/api/chat/media/emoji 支持 emoji_url/aes_key,本地缺失时安全下载并尝试 AES-CBC 解密识别
|
2026-01-02 22:10:23 +08:00 |
|
2977094657
|
57ffcd3aa0
|
feat(chat): 支持聊天记录实时更新(WCDB + SSE)
- 新增 WCDB realtime 连接管理与 DLL 依赖,并在 shutdown 释放资源
- 新增实时状态/变更 SSE 与增量同步接口(单会话/全会话)
- sessions/messages 支持 source=realtime,增强内容解码与 packed_info md5 提取
- wheel 打包包含 WCDB.dll / wcdb_api.dll
|
2026-01-01 23:23:01 +08:00 |
|
2977094657
|
d37131bf96
|
feat(chat): 合并转发聊天记录支持预览与弹窗查看
- appmsg(type=19) 解析为 renderType=chatHistory,并透传 recordItem(recorditem 原文)
- 修复 recorditem CDATA 内包含 <refermsg> 时误判为引用消息的问题
- 列表/导出路径统一带上 recordItem,并避免已解析的 appmsg 被二次 XML 解析覆盖
- 前端聊天页新增聊天记录卡片 + 弹窗,支持按条展示及图片/视频/引用内容预览
- 会话列表与摘要统一显示为 [聊天记录]
|
2026-01-01 16:30:05 +08:00 |
|
2977094657
|
c1712ba6dd
|
feat(keys): 自动保存密钥并支持前端回填
- 新增 output/account_keys.json 账号密钥存储(db_key / image_xor_key / image_aes_key)
- 新增 /api/keys 查询已保存密钥;缺失时兜底从账号目录 _media_keys.json 读取图片密钥
- 数据库解密成功后按账号写入 db_key;保存图片密钥时同步写入 store(失败静默不影响主流程)
- 前端解密页进入图片密钥步骤自动回填;进入下一步/跳过时自动保存一次
|
2026-01-01 16:29:16 +08:00 |
|
2977094657
|
67358deeef
|
improvement(chat): packed_info md5 提取优先匹配 .dat 文件名
- packed_info 同时包含多个 32hex 时,优先从形如 xxx_t.dat/.t.dat 的文件名中提取 md5;无匹配再回退到原 32hex 众数策略
- 对齐 echotrace 的选择思路,降低取错 md5 概率
|
2025-12-31 11:35:51 +08:00 |
|
2977094657
|
0349d89def
|
fix(chat): 图片消息优先使用资源 md5 修复 _t.dat 缩略图不显示
- 图片消息(local_type=3)优先使用 message_resource.db 的资源 md5,避免 XML md5 与本地 *_t.dat 基名不一致导致 /api/chat/media/image 404
- 同步覆盖消息合并/导出/列表三处解析路径
refs #12
|
2025-12-31 11:34:28 +08:00 |
|
2977094657
|
23dd59ed4d
|
fix(media): 聊天图片增加会话 attach 快速兜底定位
- get_chat_image 在 hardlink 缺失/不完整时,按会话 attach 目录快速探测 *_t.dat/*_h.dat,避免默认 deep_scan=0 直接 404 造成破图
- md5 参数非 32 位时自动按 file_id 处理,覆盖部分版本的图片标识
|
2025-12-30 11:15:20 +08:00 |
|
2977094657
|
97ceed58b6
|
fix(chat): 修复导出 ZIP 写入冲突并支持按消息类型导出
- 修复导出时 ZIP entry 写句柄冲突(messages 先写临时文件再写入 ZIP)\n- 新增 message_types 过滤,进度/统计按所选类型计数\n- manifest.json 记录 messageTypes,避免导出含义歧义
|
2025-12-29 13:40:36 +08:00 |
|
2977094657
|
46e535dde7
|
perf(media): 媒体缺失查询默认快速 404(支持 deep_scan)
- image/video/video_thumb 增加 deep_scan 开关,默认避免昂贵递归扫描\n- video/video_thumb 增加常见路径快速探测,减少切换筛选时慢 404
|
2025-12-29 13:40:19 +08:00 |
|
2977094657
|
8488c1aa53
|
feat(chat): 会话消息列表支持按类型筛选
- /api/chat/messages 支持 render_types(逗号分隔,多类型)\n- 统一 renderType 归一化(如 redPacket -> redpacket),避免筛选命中问题
|
2025-12-29 13:40:02 +08:00 |
|
2977094657
|
69fe7fbf88
|
improvement(media): 提升图片/表情资源解密稳定性并自愈缓存
- 增加图片有效性校验并优化 JPEG/WebP 识别,降低 XOR 解密误判
- 图片资源按变体(b/h/c/t)与大小排序尝试多个候选,提高命中率
- 发现损坏缓存文件时自动删除并重建(单张获取与批量解密均生效)
- 表情本地解密失败时支持从 emoticon.db 安全回退下载,并支持 AES-CBC 解密
|
2025-12-26 21:46:07 +08:00 |
|
2977094657
|
761648f15a
|
fix(chat): 解析 XML 的 cdn 链接时进行反转义
- 新增 _normalize_xml_url 统一处理 & 等转义字符
- 图片/视频/表情消息的 cdn URL 解析统一规范化,避免误判为 file_id
|
2025-12-26 21:45:40 +08:00 |
|
2977094657
|
e7d977ae94
|
improvement(chat): 会话列表改用 session_last_message 缓存表
- 用 session.db::session_last_message 缓存会话最后一条消息预览,减少会话列表查询开销
- 增加缓存表构建/状态接口,列表缺失时自动补建
- 解密阶段支持自动构建,环境变量切换为 WECHAT_TOOL_BUILD_SESSION_LAST_MESSAGE
- 移除 session_preview_index 实现
|
2025-12-25 23:08:50 +08:00 |
|
2977094657
|
fa08937ebd
|
feat(chat): 增加消息搜索索引与会话预览索引
- 新增 chat_search_index.db:提供索引状态/构建/发送者接口
- 新增 session_preview.db:会话最新消息预览索引,支持指纹校验与过期重建
- 解密完成后默认预构建会话预览索引(WECHAT_TOOL_BUILD_SESSION_PREVIEW=0 可关闭)
|
2025-12-25 20:27:31 +08:00 |
|
2977094657
|
7a7069dcf7
|
improvement(media): 移除进程提取密钥并优化媒体解密
- 移除 pymem/yara-python 依赖,明确仅使用 wx_key 获取密钥
- 删除 media_key_finder.py,简化媒体密钥与资源定位逻辑
- 更新媒体接口/脚本与导出说明,避免误导进程提取能力
|
2025-12-25 20:26:56 +08:00 |
|