Skip to content

更新日志

v1.1.0 (2026-08-13)

新增

  • auto_accept_new_friend(func) — 自动通过好友申请,支持条件过滤和自定义设置
  • send_pat(nickname) — 发送拍一拍
  • Event.PAT / Event.APP_READER — 新增拍一拍和读书笔记事件类型
  • PatMessage / AppReaderMessage — 新增消息类型支持
  • chat_with_contact(nickname) / chat_with_room(nickname) / chat_with_contact_or_room(nickname) / chat_with_official_account(nickname) / chat_with_service_account(nickname) — 按分类精确搜索会话
  • get_messages_lazy(nickname) — 轻量模式获取消息(不截图识别发送者,性能更高)
  • iter_messages(nickname, count) — 生成器逐条获取最近消息(从最新到最旧)
  • get_recently_messages(nickname, count) — 获取最近消息列表
  • get_labels() / iter_labels() / add_label() / rename_label() / delete_label() — 标签管理
  • get_rooms() / iter_rooms() — 获取最近群聊列表
  • open_contacts_manager() / close_contacts_manager() — 通讯录管理窗口
  • get_wechat_contacts() / get_wework_contacts() / get_official_accounts() / get_service_accounts() — 完整版联系人列表
  • get_wechat_contacts_brief() / get_wework_contacts_brief() 等 — 轻量版联系人列表(仅昵称)
  • iter_wechat_contacts() / iter_wework_contacts() 等 — 生成器逐条获取
  • get_new_friends() / iter_new_friends() — 获取"新的朋友"列表
  • iter_sessions(count, speed) — 生成器逐条获取会话列表
  • get_unread_sessions() / iter_unread_sessions() — 获取未读会话
  • get_selected_session() — 获取当前选中的会话
  • ✨ 会话操作快捷方法:pin_session / unpin_session / mark_session_as_read / mark_session_as_unread / mute_session / unmute_session / separate_session / hide_session / delete_session
  • scroll_session_to_top() / scroll_session_to_bottom() — 会话列表滚动
  • scroll_chat_to_bottom(nickname) — 消息列表滚动到底部
  • clear_chat_input(nickname) / paste_chat_input(nickname, content) / cancel_chat_quote(nickname) — 输入框操作快捷方法
  • separate_chat(nickname) — 打开独立窗口快捷方法
  • is_chat_pinned(nickname) / is_chat_muted(nickname) — 查询会话状态
  • open_moments() / close_moments() / refresh_moments() — 朋友圈窗口管理
  • get_visible_moments() / get_center_moment() / scroll_to_next_moment() — 朋友圈细粒度操作
  • iter_files(count, speed, category) / get_visible_files() / get_file_by_id() — 文件管理器增强
  • get_file_category() / get_file_order_by() — 查询文件管理器筛选状态
  • download_file() / download_file_to() / save_file_as() / delete_file() — 文件操作快捷方法
  • iter_collections(category, count, speed) / get_visible_collections() — 收藏管理增强
  • open_collections(category) — 打开收藏并切换分类
  • check_new_messages() / check_new_contacts() / check_new_moments() — 通过红点像素检测新通知
  • Weixin.status 属性 — 获取微信状态 ("online" / "locked" / "login" / "offline")
  • Weixin.processes / Weixin.all_pids — 获取微信进程及子进程信息
  • exit_room(nickname, clear_history) — 退出群聊,可选是否清空记录
  • auto_scan 参数 — UI 监听模式下自动发现并注册新打开的独立聊天窗口
  • contour_debug_dir 全局开关 + save_contour_debug(), 可输出"中间轮廓 + 分类结果"标注图,用于排查头像/昵称/正文的识别问题
  • ✨ 设置操作大幅扩充:翻译语言、只读文件、搜索历史、语音转文字、系统浏览器、截图保留窗口、演示隐藏、通知声音、朋友圈/游戏通知标记等
  • get_plugins() / download_plugin() — 插件管理
  • get_about_info() / check_update() — 关于与更新

修复

  • 🐛 @locked 的锁查找链只认 self._op_lockself.wx._op_lock, 而 Message.chat / SessionItem.session / MomentItem.moment / Forward._parent 等 17 个类的父对象命名各不相同,导致约 160 个方法的线程互斥静默失效。 改为沿父对象逐级向上查找并缓存结果
  • 🐛 Weixin(lock_input=True) 未同时指定 idle_wait 时,PIM.lock_input 不会被设置, 锁定物理输入的开关静默失效。现在两个参数各自独立生效
  • 🐛 朋友圈/消息的轮廓识别中,min_area 原先比较的是连通域边缘像素数(约等于周长), 导致边长小于约 50px 的头像被误滤掉。改为按 bbox 面积过滤,边长 24px 起均可识别
  • 🐛 连通域标注由 4-连通改为 8-连通,圆角和斜边不再被切碎成上百个碎片
  • 🐛 MomentItem.headimg_rect 现在会保留识别结果(原先只是内部局部变量)

优化

  • ⚡ 轮廓识别改用 cv2.connectedComponentsWithStats 替代逐像素 flood fill, 消息气泡识别快约 9 倍,朋友圈九宫格快约 13 倍
  • _find_contour_rects 不再生成无人使用的红框标注图,返回值简化为矩形列表, 省掉一次绘制和 PNG 编码。需要标注图改用 save_contour_debug()

v1.0.0 (2026-06-23)

新增

  • ✨ 后台模式(background=True)— 通过 SendMessage 实现后台自动化
  • offscreen 参数 — 窗口移到屏幕外,不干扰用户操作
  • WeixinManager 多开管理 — 统一管理多个微信客户端
  • ✨ 消息监听机制 — 基于事件驱动的 @wx.on(Event.TEXT) 装饰器
  • ✨ 朋友圈操作 — 浏览、点赞、评论、发布图文/视频
  • ✨ PIM 物理输入监控 — 人机协同保护,避免自动化与用户操作冲突
  • ✨ 群聊管理 — 设置群名/公告/备注、添加/移除成员
  • ✨ 联系人管理 — 设置标签/备注/星标/黑名单
  • ✨ 收藏管理 — 浏览、搜索、转发收藏内容
  • ✨ 文件管理器 — 搜索、下载、遍历聊天文件
  • ✨ 设置操作 — 读取和修改微信各项设置
  • ✨ 语音/视频通话控制
  • ✨ 笔记编辑器
  • ✨ 多种消息类型支持:文本、图片、视频、文件、语音、引用、表情、位置、链接、卡片、红包、转账等
  • ✨ 基础消息发送(文本、文件、图片)
  • ✨ 会话列表操作
  • ✨ 消息读取
  • ✨ 支持微信 4.x

特性

  • 🔧 消息发送状态检测(MessageStatus
  • 🔧 OCR 双引擎支持(wcocr / rapidocr)
  • 🔧 DPI 缩放自适应
  • 🔧 剪贴板保存/恢复机制

最后更新于: