#!/usr/bin/env python3
"""Cek slot 08:00 WIB (01:00 UTC) Threads @ukyhandoko yang bebas, >= besok."""
import sys, json
from datetime import datetime, timezone, timedelta
sys.path.insert(0, "/home/mantapman/.openclaw/workspace-atun")
from repliz_client import get_client, ACC

UKY_T = ACC.UKY_THREADS
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"])
print("total docs:", len(docs))

now = datetime.now(timezone.utc)
print("now UTC:", now.isoformat())

taken = {}
alluky = []
for d in docs:
    acc = d.get("account") or {}
    if (d.get("accountId") or acc.get("id") or acc.get("_id")) != UKY_T:
        continue
    st = (d.get("scheduleAt") or "")[:19]
    try:
        dt = datetime.fromisoformat(st).replace(tzinfo=timezone.utc)
    except Exception:
        continue
    alluky.append((dt, d.get("status"), d.get("id"), d.get("type"), (d.get("medias") or [{}])[0].get("url","") if d.get("medias") else ""))
    if d.get("status") == "pending":
        taken.setdefault(dt.strftime("%Y-%m-%dT%H:%M"), []).append(d.get("id"))

alluky.sort()
print("\n== uky Threads: jadwal pending 12 Sep ke atas ==")
for dt, status, sid, typ, u in alluky:
    wib = dt + timedelta(hours=7)
    if wib.date() >= datetime(2026, 9, 12).date() and status == "pending":
        print(f"  {wib.strftime('%Y-%m-%d %H:%M')} WIB  {typ:6} {sid}  {u.split('/')[-1][:40]}")

print("\n== slot 08:00 WIB bebas (cek 12 Sep - 30 Sep) ==")
free = []
for i in range(0, 20):
    day = datetime(2026, 9, 12).date() + timedelta(days=i)
    key = f"{day}T01:00"
    if key not in taken:
        free.append(day)
print("free:", [str(x) for x in free[:6]])
