#!/usr/bin/env python3
"""Probe jadwal carousel feed IG SS 15 Okt 2026 08:30 WIB (read-only)."""
import re, sys, json, collections, datetime
sys.path.insert(0, "/home/mantapman/.hermes/profiles/atun/workspace")
from repliz_client import ReplizClient, ACC

c = ReplizClient()
acc = ACC.STUDIOSOFT_IG
target = "2026-10-15T01:30:00.000Z"

rows = []
page = 1
while True:
    r = c.get_schedules(page=page, limit=100)
    docs = r.get("docs") or r.get("data") or []
    if not docs:
        break
    for d in docs:
        a = d.get("account") or {}
        if (a.get("_id") or a.get("id")) == acc:
            rows.append(d)
    if not r.get("hasNextPage"):
        break
    page += 1
    if page > 40:
        break

print("total jadwal akun IG SS:", len(rows))
hit = [d for d in rows if d.get("scheduleAt") == target]
print("jadwal di slot 15 Okt 01:30Z:", len(hit))
for d in hit:
    desc = d.get("description") or ""
    media = [m.get("url") for m in (d.get("medias") or [])]
    print("=" * 70)
    print("id        :", d.get("_id") or d.get("id"))
    print("status    :", d.get("status"))
    print("scheduleAt:", d.get("scheduleAt"))
    print("type      :", d.get("type"))
    print("title     :", d.get("title"))
    print("topic     :", d.get("topic"))
    print("account   :", (d.get("account") or {}).get("name"))
    print("replies   :", len(d.get("replies") or []))
    print("medias    :", len(media))
    for u in media:
        print("   ", u)
    print("panjang caption:", len(desc))
    print("--- caption ---")
    print(desc)
    print("--- cek ---")
    tags = re.findall(r"#(\w+)", desc)
    print("hashtag:", tags, "| ada huruf besar:", [t for t in tags if t != t.lower()])
    print("CTA:", bool(re.search(r"komentar|diskusi|pendapat|tulis di|share|pengalaman|menurut", desc, re.I)))
    print("mention:", re.findall(r"@\w+", desc))
    cjk = re.findall(r"[\u3000-\u9fff\uac00-\ud7af]", desc)
    print("CJK:", cjk)
    print("link:", re.findall(r"https?://\S+", desc))
    err = d.get("errorMessage")
    if err:
        print("errorMessage:", err)

print()
print("=== 8 jadwal berikutnya (semua tipe, pending) IG SS ===")
now = datetime.datetime(2026, 10, 14, 19, 30, tzinfo=datetime.timezone.utc)
dep = []
for d in rows:
    if d.get("status") != "pending":
        continue
    sa = d.get("scheduleAt") or ""
    try:
        dt = datetime.datetime.fromisoformat(sa.replace("Z", "+00:00"))
    except Exception:
        continue
    if dt < now:
        continue
    dep.append((dt, d))
dep.sort(key=lambda x: x[0])
for dt, d in dep[:8]:
    wib = dt + datetime.timedelta(hours=7)
    m = [x.get("url", "").rsplit("/", 1)[-1] for x in (d.get("medias") or [])]
    print(f"  {wib:%Y-%m-%d %H:%M} WIB | {d.get('type'):6} | {len(m)} media | {d.get('title')} | {m[:2]}")
print("total pending ke depan:", len(dep))
