feat: 微信自动化客服(wechatauto-replica) 干净历史导入 - AI 自动回复/语音收发/朋友圈发布

This commit is contained in:
2026-09-16 10:12:49 +08:00
commit c3b98f4c4e
69 changed files with 19828 additions and 0 deletions
+95
View File
@@ -0,0 +1,95 @@
# -*- coding: utf-8 -*-
"""wechatauto 复刻版 —— 坐标 + OCR 发送消息示例程序
针对微信 4.1.12+ 自绘聊天界面(UIA 方案失效)的发送路线:
定位窗口 → 打开会话 → 点击输入框 → 剪贴板粘贴 → 点击发送。
使用前提:
1. 微信 4.x 已登录、桌面已解锁;
2. 已安装依赖:pip install -e .
若使用拼音回退输入,另需:pip install pypinyin
用法:
python demo_guia.py
"""
from __future__ import annotations
import os
import sys
import time
try:
os.system("chcp 65001 >nul 2>&1")
except Exception:
pass
try:
sys.stdout.reconfigure(encoding="utf-8", errors="replace")
except AttributeError:
pass
from wechatauto.guia import WeChatGUI
def main():
print("=" * 60)
print("wechatauto 复刻版 —— 坐标 + OCR 发送消息示例")
print("=" * 60)
wx = WeChatGUI()
if not wx.desktop_available():
print("\n[错误] 微信窗口不可见(可能处于锁屏/断开的会话),"
"请先解锁桌面后重试。")
sys.exit(1)
wx.bring_to_front()
print(f"已连接到微信主窗口(hwnd={wx.main_hwnd}")
# 1. 列出当前可见会话(OCR
print("\n--- 当前可见会话 ---")
for row in wx.get_sessions()[:10]:
print(f" {row['name']}")
# 2. 打开会话
who = "文件传输助手"
print(f"\n--- 打开会话:{who} ---")
wx.open_chat(who)
time.sleep(0.5)
# 3. 检测输入框
box = wx.get_input_box()
if box:
x0, y0, x1, y1 = box
print(f"检测到输入框(相对坐标):x[{x0}..{x1}] y[{y0}..{y1}]")
else:
print("未检测到输入框")
# 4. 发送消息
text = "这是 wechatauto 复刻版坐标+OCR 自动化测试消息"
print(f"\n--- 发送消息 ---")
print(f"内容:{text}")
result = wx.send_msg(text, verify=True)
print(f"结果:{result}")
if not result:
sys.exit(1)
# 5. 读取最近消息(数据库路线,交叉验证)
try:
from wechatauto.db import WeChatDB
db = WeChatDB()
hits = db.search_contact(who)
if hits:
msgs = db.get_messages(hits[0]["username"], limit=3)
print("\n--- 数据库读回最近 3 条 ---")
for m in reversed(msgs):
sender = "" if m["sender_id"] == 2 else "对方"
t = time.strftime("%H:%M:%S", time.localtime(m["create_time"]))
print(f" [{t}] {sender} {m['content'][:40]}")
except Exception as e:
print(f"(数据库读回失败:{e}")
print("\n完成。")
if __name__ == "__main__":
main()