#!/usr/bin/env python3
"""Recon 15 Okt 2026: jadwal hari ini per akun + stok link artikel fresh."""
import json, re, sys, time
from datetime import datetime, timedelta, timezone

sys.path.insert(0, "/home/mantapman/.hermes/profiles/atun/workspace")
from repliz_client import get_client, ACC

WIB = timezone(timedelta(hours=7))
DATE = "2026-10-15"

client = get_client()
ACCOUNTS = {
    "studiosoft": ACC.STUDIOSOFT_THREADS,
    "uky": ACC.UKY_THREADS,
    "tslaw": ACC.TSLAW_THREADS,
    "tsc": ACC.TSC_THREADS,
    "das": ACC.DAS_THREADS,
}

def wib_key(s):
    if not s:
        return None
    try:
        dt = datetime.fromisoformat(str(s).replace("Z", "+00:00")).astimezone(WIB)
    except Exception:
        return None
    return (dt.strftime("%Y-%m-%d"), dt.hour, dt.minute)

docs = []
for p in range(1, 60):
    got = None
    for i in range(8):
        try:
            got = client.get_schedules(page=p, limit=100)
            break
        except Exception as e:
            print("retry", p, i, str(e)[:50])
            time.sleep(3 + 3 * i)
    if got is None:
        raise SystemExit("API gagal")
    b = got.get("docs", [])
    if not b:
        break
    docs.extend(b)
    if len(b) < 100:
        break
print("TOTAL JADWAL:", len(docs))

by_acc = {}
for d in docs:
    by_acc.setdefault(d.get("accountId"), []).append(d)

for k, aid in ACCOUNTS.items():
    todays = [d for d in by_acc.get(aid, []) if (wib_key(d.get("scheduleAt")) or ("",))[0] == DATE]
    todays.sort(key=lambda d: wib_key(d.get("scheduleAt"))[1:])
    print(f"\n=== {k} ({len(todays)} jadwal {DATE}) ===")
    for d in todays:
        wk = wib_key(d.get("scheduleAt"))
        desc = d.get("description") or ""
        links = re.findall(r"https?://\S+", desc)
        print(f"  {wk[1]:02d}:{wk[2]:02d} | {d.get('status')} | type={d.get('type')} | replies={len(d.get('replies') or [])} | title={d.get('title')!r} | topic={d.get('topic')!r} | links={links}")
        print(f"        desc[:120]={desc[:120]!r}")

# semua link yang pernah dipakai (log + semua jadwal)
used_log = set()
lg = json.load(open("/home/mantapman/.hermes/profiles/atun/workspace/log_threads_harian.json"))
for dt, per in (lg.get("threads_used_links") or {}).items():
    for acc, items in per.items():
        for it in items:
            used_log.add(it["url"].rstrip("/"))
used_api = set()
for d in docs:
    for u in re.findall(r"https?://\S+", d.get("description") or ""):
        used_api.add(u.rstrip("/").rstrip(".,)"))
print("\nused_log:", len(used_log), "used_api:", len(used_api))
json.dump({"used_log": sorted(used_log), "used_api": sorted(used_api)}, open("/home/mantapman/.hermes/profiles/atun/workspace/_recon_used_links.json", "w"), indent=1)
