#!/usr/bin/env python3
"""Wait until ComfyUI :8188 queue is fully drained (2 consecutive empty checks).
Exit 0 = drained; nonzero = timeout."""
import json, sys, time, urllib.request

URL = "http://127.0.0.1:8188/queue"
deadline = time.time() + int(sys.argv[1] if len(sys.argv) > 1 else 1500)
empty_streak = 0
while time.time() < deadline:
    try:
        q = json.load(urllib.request.urlopen(URL, timeout=10))
        n = len(q.get("queue_running", [])) + len(q.get("queue_pending", []))
    except Exception as e:
        print("poll_error:", e, flush=True)
        n = -1
    print(f"{time.strftime('%H:%M:%S')} queue_items={n}", flush=True)
    if n == 0:
        empty_streak += 1
        if empty_streak >= 2:
            print("DRAINED", flush=True)
            sys.exit(0)
    else:
        empty_streak = 0
    time.sleep(45)
print("TIMEOUT", flush=True)
sys.exit(3)
