#!/usr/bin/env python3
"""Dump jadwal Threads 5 akun pada tanggal WIB tertentu + URL terpakai global."""
import json, re, sys
from datetime import datetime, timedelta, timezone

WIB = timezone(timedelta(hours=7))
TARGET = sys.argv[1] if len(sys.argv) > 1 else "2026-10-19"
docs = json.load(open("/tmp/all_schedules.json"))
TH = {"studiosoft": "6a335b9ec5ff4ce3a3225c2a", "uky": "6a334e89c5ff4ce3a3225a48",
      "tslaw": "6a35f8b7c5ff4ce3a322b2ed", "tsc": "6a4bbc5920e4f4f195e52960",
      "das": "6a39e461c5ff4ce3a3233e09"}

for name, aid in TH.items():
    print("=" * 70)
    print(name)
    rows = []
    for d in docs:
        if d.get("accountId") != aid:
            continue
        sa = d.get("scheduleAt") or ""
        try:
            dt = datetime.fromisoformat(sa.replace("Z", "+00:00")).astimezone(WIB)
        except Exception:
            continue
        if dt.strftime("%Y-%m-%d") == TARGET:
            rows.append((dt, d))
    for dt, d in sorted(rows, key=lambda x: x[0]):
        desc = d.get("description") or ""
        urls = re.findall(r"https?://[^\s\)\]\"']+", desc)
        print(f"  {dt:%H:%M} {d.get('status')} type={d.get('type')} topic={d.get('topic')!r} title={d.get('title')!r}")
        print(f"     len={len(desc)} urls={urls}")
        print("      " + desc[:300].replace("\n", " | "))
    if not rows:
        print("   (tidak ada)")

# URL terpakai per akun (semua status) + global
used = {}
glob = set()
for name, aid in TH.items():
    s = set()
    for d in docs:
        if d.get("accountId") != aid:
            continue
        blob = " ".join([d.get("description") or "", d.get("title") or ""])
        for u in re.findall(r"https?://[^\s\)\]\"']+", blob):
            s.add(u.rstrip("/.,)").lower())
    used[name] = s
    glob |= s
json.dump({**{k: sorted(v) for k, v in used.items()}, "_global": sorted(glob)},
          open("/tmp/threads_used_now.json", "w"), indent=1)
print("\nURL terpakai per akun:", {k: len(v) for k, v in used.items()})
print("global:", len(glob))
