Files

46 lines
1.5 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# -*- coding: utf-8 -*-
"""实测 sender_idget_messages 与 Listener 回调两条路径的真实值"""
import sys, os, tempfile, time, threading
BASE = r"C:\Users\Administrator\wechatauto-replica"
os.chdir(BASE)
sys.path.insert(0, BASE)
try:
sys.stdout.reconfigure(encoding="utf-8", errors="replace")
except AttributeError:
pass
from wechatauto.db import WeChatDB, Listener
wd = tempfile.mkdtemp(prefix="diag_sid_")
db = WeChatDB(workdir=wd)
info = db.get_self_info()
self_wxid = info.get("username")
print("SELF wxid:", self_wxid, "| nick:", info.get("nick_name"))
# 路径1get_messages 的 sender_id
who = "wxid_yxnyrj5sul1g22"
try:
msgs = db.get_messages(who, limit=12)
print("\n[get_messages] 好友", who, "最近", len(msgs), "条:")
for m in reversed(msgs):
sid = str(m.get("sender_id"))
me = "★自己" if (sid == "1" or sid == self_wxid) else "对方"
print(f" sender_id={sid!r} {me} | {m.get('type')} | {str(m.get('content'))[:28]}")
except Exception as e:
print("get_messages ERR:", repr(e))
# 路径2Listener 回调的 sender_id(真实监听一条,看回调字段)
print("\n[Listener] 用 add_listener 监听该好友,等 3s 观察 watermark 初始化…")
seen = {}
lst = Listener(db, interval=1.0)
def on_msg(m, l):
sid = str(m.get("sender_id"))
print(" Listener 回调 sender_id=%r | content=%r" % (sid, str(m.get("content"))[:30]))
lst.add_listener(who, on_msg)
lst.start()
time.sleep(3)
lst.stop()
print("[Listener] 结束(若无新消息则无回调输出,属正常)")