#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""verif_car10_05okt.py — baca-balik carousel feed IG StudioSoft slot 5 Okt 2026 08:30 WIB."""
import datetime
import json
import sys
import time

WS = "/home/mantapman/.hermes/profiles/atun/workspace"
sys.path.insert(0, WS)
from repliz_client import get_client, ACC  # noqa: E402

IG_SS = ACC.STUDIOSOFT_IG
WIB = datetime.timezone(datetime.timedelta(hours=7))
TARGET = "2026-10-05"
JAM = 8


def semua(c):
    docs, page = [], 1
    while page <= 80:
        r = None
        for a in range(5):
            try:
                r = c.get_schedules(page=page, limit=100)
                break
            except Exception:
                time.sleep(3 + 3 * a)
        if r is None:
            raise SystemExit("gagal baca jadwal")
        b = r.get("docs") or []
        docs += b
        if len(b) < 100:
            break
        page += 1
    return docs


def main():
    c = get_client()
    docs = semua(c)
    json.dump(docs, open("/tmp/ss_all_20261005.json", "w"), ensure_ascii=False)
    print("total jadwal:", len(docs))
    rows = []
    for d in docs:
        if d.get("accountId") != IG_SS:
            continue
        try:
            dt = datetime.datetime.fromisoformat(
                str(d.get("scheduleAt") or "").replace("Z", "+00:00")).astimezone(WIB)
        except Exception:
            continue
        if dt.strftime("%Y-%m-%d") == TARGET:
            rows.append((dt, d))
    rows.sort(key=lambda x: x[0])
    print(f"\n== IG StudioSoft {TARGET} WIB: {len(rows)} jadwal")
    for dt, d in rows:
        med = [(x.get("url") or "").split("/")[-1] for x in (d.get("medias") or [])]
        print(f"  {dt:%H:%M} | {str(d.get('status')):8s} | {str(d.get('type')):6s} | "
              f"{len(med)} media | {d.get('_id')} | {d.get('title')}")
        if dt.hour == JAM:
            desc = d.get("description") or ""
            print("  --- ALBUM SLOT 08:30 ---")
            print("  status      :", d.get("status"))
            print("  scheduleAt  :", d.get("scheduleAt"))
            print("  akun        :", (d.get("account") or {}).get("name"))
            print("  type        :", d.get("type"))
            print("  topic       :", d.get("topic"))
            print("  title       :", d.get("title"))
            print("  replies     :", len(d.get("replies") or []))
            print("  jumlah media:", len(med))
            for i, n in enumerate(med, 1):
                print(f"    {i:2d}. {n}")
            print(f"  panjang caption: {len(desc)}")
            print("  caption:")
            print("  " + desc.replace("\n", "\n  "))
    print("\nid slot 08:30:")
    for dt, d in rows:
        if dt.hour == JAM:
            print("  ", d.get("_id"))


if __name__ == "__main__":
    main()
