#!/usr/bin/env python3
"""EveryBe: ambil caption Threads yang gagal (terlalu panjang) untuk dipendekkan."""
import json, sys
from collections import Counter

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

client = get_client()
semua, page = [], 1
while True:
    d = client.get_schedules(page=page, limit=100)
    rows = d.get("docs", []) if isinstance(d, dict) else []
    semua += rows
    if len(rows) < 100:
        break
    page += 1

gagal = [s for s in semua if s.get("accountId") == ACC.EVERYBE_THREADS and s.get("status") == "error"]
gagal.sort(key=lambda s: str(s.get("scheduleAt")))
print(f"postingan Threads gagal: {len(gagal)}\n")
panjang = []
for i, s in enumerate(gagal, 1):
    cap = str(s.get("description") or "")
    panjang.append(len(cap))
    print(f"--- {i}. {str(s.get('scheduleAt'))[:10]} | {len(cap)} karakter (batas 500) ---")
    print(cap[:700])
    print()
print("panjang caption gagal:", panjang)
print("kelebihan rata-rata:", round(sum(p - 500 for p in panjang) / len(panjang)) if panjang else 0, "karakter")

json.dump([{"id": s.get("_id"), "tanggal": str(s.get("scheduleAt"))[:10], "caption": str(s.get("description") or "")}
           for s in gagal], open(f"{WS}/drafts/everybe_threads_gagal.json", "w"), indent=1, ensure_ascii=False)
print(f"\n→ drafts/everybe_threads_gagal.json")
