import sys, json, time, urllib.request

# 先装 websocket-client（用系统 pip）
try:
    from websocket import create_connection
except ImportError:
    import subprocess
    subprocess.run([sys.executable, "-m", "pip", "install", "-q", "websocket-client"], check=False)
    from websocket import create_connection

jwt = open("/tmp/p4_jwt.txt").read().strip()
ws = create_connection("ws://10.168.3.36:8081/api/user/friend-agent/ws",
                       header=["Authorization: Bearer " + jwt], timeout=25)
req = {"type":"req","request_id":"e2e-1","method":"chains.list","payload":{}}
ws.send(json.dumps(req))
t0=time.time()
result=None
while time.time()-t0 < 30:
    msg = json.loads(ws.recv())
    if msg.get("type")=="res" and msg.get("request_id")=="e2e-1":
        print("status:", msg.get("status"))
        r = msg.get("result")
        print("result:", json.dumps(r, ensure_ascii=False)[:400] if r else "(empty)")
        if msg.get("error"): print("error:", json.dumps(msg.get("error"), ensure_ascii=False)[:300])
        result = msg
        break
    else:
        print("other frame:", json.dumps(msg)[:150])
ws.close()
print("E2E_DONE" if result else "E2E_TIMEOUT")
