import json, sys
from datetime import datetime, timedelta, timezone
sys.path.insert(0, "/home/mantapman/.hermes/profiles/atun/workspace")
from repliz_client import get_client, ACC
import repliz_openssl_transport
repliz_openssl_transport.install(verbose=False)

c = get_client()
r = c.get_schedules(page=1, limit=100)
pages = (r["totalDocs"] + 99) // 100
docs = list(r["docs"])
for p in range(2, pages + 1):
    docs.extend(c.get_schedules(page=p, limit=100)["docs"])

out = []
for d in docs:
    acc = d.get("account") or {}
    aid = d.get("accountId") or acc.get("id") or acc.get("_id")
    if aid != ACC.UKY_THREADS:
        continue
    at = d.get("scheduleAt")
    if not at:
        continue
    wib = datetime.fromisoformat(at.replace("Z", "+00:00")) + timedelta(hours=7)
    if wib.date() >= datetime(2026, 10, 6).date():
        out.append((wib, d))
out.sort(key=lambda t: t[0])
print("FUTURE uky threads:", len(out))
for wib, d in out:
    med = ",".join((m.get("url") or "").rsplit("/", 1)[-1] for m in (d.get("medias") or [])) or "(text)"
    print(wib.strftime("%m-%d %H:%M"), d.get("status"), (d.get("type") or "")[:6], d.get("id"), med[:60])
print("=== quote items ===")
for d in docs:
    acc = d.get("account") or {}
    aid = d.get("accountId") or acc.get("id") or acc.get("_id")
    if aid != ACC.UKY_THREADS:
        continue
    for m in (d.get("medias") or []):
        base = (m.get("url") or "").rsplit("/", 1)[-1]
        if base.startswith("uky_quote_"):
            at = d.get("scheduleAt") or ""
            wib = datetime.fromisoformat(at.replace("Z", "+00:00")) + timedelta(hours=7)
            print(wib.strftime("%Y-%m-%d %H:%M"), d.get("status"), d.get("id"), base)
