#!/usr/bin/env python3
"""Peta jadwal TS Law ke depan + story mirror + caption lengkap deck 14 Okt."""
import sys, json, re
from datetime import datetime, timezone, timedelta

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

WIB = timezone(timedelta(hours=7))
c = ReplizClient()
AKUN = {"ig": ACC.TSLAW_IG, "fb": ACC.TSLAW_FB, "threads": ACC.TSLAW_THREADS,
        "linkedin": ACC.TSLAW_LINKEDIN, "tiktok": "6a8bb2a362caae1e04048d47"}
now = datetime.now(timezone.utc)


def ambil():
    rows, page = [], 1
    while True:
        r = c.get(f"/public/schedule?page={page}&limit=100")
        d = r.get("docs", [])
        if not d:
            break
        rows += d
        if page >= r.get("totalPages", 1):
            break
        page += 1
    return rows


rows = ambil()
print("=== JADWAL TS LAW KE DEPAN (pending, per akun) ===")
pending_lain = []
for nama, aid in AKUN.items():
    ups = [d for d in rows if d.get("accountId") == aid and d.get("status") == "pending"]
    ups = [d for d in ups if d.get("scheduleAt")]
    fut = [d for d in ups if datetime.fromisoformat(d["scheduleAt"].replace("Z", "+00:00")) >= now]
    fut.sort(key=lambda x: x["scheduleAt"])
    print(f"\n--- {nama}: {len(fut)} pending ke depan")
    for d in fut[:20]:
        dt = datetime.fromisoformat(d["scheduleAt"].replace("Z", "+00:00")).astimezone(WIB)
        print(f"  {dt:%Y-%m-%d %H:%M} [{d.get('type')}] {len(d.get('medias') or [])}media "
              f"{(d.get('title') or '')[:60]}")
    if len(fut) > 20:
        print(f"  ... +{len(fut)-20} lagi (terakhir {datetime.fromisoformat(fut[-1]['scheduleAt'].replace('Z','+00:00')).astimezone(WIB):%Y-%m-%d})")
    if nama == "ig":
        pending_lain = fut

print("\n=== CAPTION LENGKAP deck 14 Okt (3 kanal) ===")
for d in rows:
    if d.get("_id") in ("6ac35397173307838558141e", "6ac3539707008e0e9104842f", "6ac3539707008e0e91048445"):
        ch = {ACC.TSLAW_IG: "IG", ACC.TSLAW_FB: "FB", ACC.TSLAW_THREADS: "Threads"}.get(d["accountId"], d["accountId"])
        print(f"\n----- {ch} ({len(d.get('description') or '')} char) -----")
        print(d.get("description"))
        print("medias:", [m.get("url", "").split("/")[-1] for m in (d.get("medias") or [])])
