Files
AgentsMeeting/gateway/scripts/mohe_watcher.py
T
hmo 1b2b935832 Initial: multi-agent XMPP communication system with dashboard
- Platform-based architecture (Windows/Linux/Mac)
- Agent instance registry (agents.yaml)
- Management dashboard with cross-platform monitoring
- xmpp_bot with HTTP bridge + health endpoints
- wechat_agent with WeChat-Hermes bridging
- Platform services: ProcessGuardian, HealthProbe, APIRouter, ChannelBridge
- Deployment: systemd (Linux) + PowerShell (Windows)
- Monitoring: SSH+ejabberdctl for cross-platform presence
2026-06-12 21:51:36 +08:00

41 lines
1.2 KiB
Python

"""
Mohe reply watcher — polls HTTP bridge every 30s for new mohe messages.
Logs new replies to logs/mohe_inbox.log. Runs as persistent background process.
Start: python mohe_watcher.py
"""
import os, sys, time, json, urllib.request
PROJECT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
LOG = os.path.join(PROJECT, "logs", "mohe_inbox.log")
os.makedirs(os.path.dirname(LOG), exist_ok=True)
def log(msg: str):
ts = time.strftime("%Y-%m-%d %H:%M:%S")
with open(LOG, "a", encoding="utf-8") as f:
f.write(f"{ts} {msg}\n")
last_ts = ""
log("mohe_watcher started")
while True:
try:
url = "http://127.0.0.1:5802/messages?from=mohe"
resp = urllib.request.urlopen(url, timeout=5)
data = json.loads(resp.read())
msgs = data.get("messages", [])
new = [m for m in msgs if m["ts"] > last_ts]
if new:
for m in new:
log(f"[{m['ts']}] mohe: {m['body']}")
last_ts = new[-1]["ts"]
elif msgs and not last_ts:
# First run — record last timestamp but don't replay old messages
last_ts = msgs[-1]["ts"]
except Exception as e:
log(f"(poll error: {e})")
time.sleep(30)