#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""Probe jadwal 5 akun Threads: hari ini (5 Okt) + besok, semua status."""
import sys, datetime, json
sys.path.insert(0, "/home/mantapman/.hermes/profiles/atun/workspace")
from repliz_client import ReplizClient, ACC

WIB = datetime.timezone(datetime.timedelta(hours=7))
AKUN = {
    "studiosoft": ACC.STUDIOSOFT_THREADS,
    "uky": ACC.UKY_THREADS,
    "tslaw": ACC.TSLAW_THREADS,
    "tsc": ACC.TSC_THREADS,
    "das": ACC.DAS_THREADS,
}
NAMA_BALIK = {v: k for k, v in AKUN.items()}

cli = ReplizClient()
# fetch all pages, filter to our accounts
rows = []
page = 1
while True:
    d = cli.get(f"/public/schedule?page={page}&limit=100")
    for s in d.get("docs") or []:
        if s.get("accountId") in NAMA_BALIK:
            rows.append(s)
    if page >= (d.get("totalPages") or 1):
        break
    page += 1

print(f"total jadwal akun target (semua status) = {len(rows)}")
print("=" * 90)
out = []
for s in rows:
    iso = s.get("scheduleAt")
    if not iso:
        continue
    try:
        dt = datetime.datetime.fromisoformat(iso.replace("Z", "+00:00")).astimezone(WIB)
    except Exception:
        continue
    if dt.date() < datetime.date(2026, 10, 5) or dt.date() > datetime.date(2026, 10, 6):
        continue
    desc = s.get("description") or ""
    med = s.get("medias") or []
    urls = [m.get("url") for m in med if isinstance(m, dict)]
    out.append((dt, s.get("accountId"), s.get("status"), s.get("type"), s.get("title"),
                s.get("topic"), len(desc), (desc[:90].replace("\n", " ")), urls, s.get("_id"),
                len(s.get("replies") or [])))

out.sort(key=lambda r: (r[0], r[1]))
for dt, acc, st, typ, title, topic, ln, snippet, urls, sid, nrep in out:
    print(f"{dt.strftime('%Y-%m-%d %H:%M')} WIB | {NAMA_BALIK[acc]:<10} | {st:<9} | {typ or '-':<6} | "
          f"len={ln} rep={nrep} | {title}")
    print(f"     topic={topic} | id={sid}")
    print(f"     desc: {snippet}")
    if urls:
        print(f"     media: {urls}")
print("=" * 90)
print("Jumlah per akun (5-6 Okt):")
from collections import Counter
c = Counter(NAMA_BALIK[r[1]] for r in out)
print(dict(c))
