#!/usr/bin/env python3
"""Riset Threads tahap 3: (a) uji endpoint insights, (b) pelajari skrip balasan/engagement yang sudah ada."""
import json, os, re, sys, glob

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

NAMA = {getattr(ACC, n): n for n in dir(ACC) if not n.startswith("_")}
client = get_client()

print("=== A. uji endpoint insights per akun ===")
for label, aid in (("UKY_THREADS", ACC.UKY_THREADS), ("STUDIOSOFT_THREADS", ACC.STUDIOSOFT_THREADS),
                   ("TSLAW_THREADS", ACC.TSLAW_THREADS)):
    for param in (f"?accountId={aid}", f"/{aid}", f"?id={aid}&page=1&limit=1"):
        jalur = "/public/account/insights" + param
        try:
            d = client.get(jalur)
            print(f"   ✅ {label:<20} {jalur[:56]:<58} → {json.dumps(d)[:220]}")
            break
        except Exception as e:
            print(f"   ❌ {label:<20} {jalur[:56]:<58} → {str(e)[:90]}")

print("\n=== B. skrip yang sudah ada (untuk tidak mengulang pekerjaan) ===")
PENTING = ["batch_threads_replydriven.py", "analisa_reach_threads_20260930.py",
           "analisa_threads_volume.py", "analisa_dump_threads.py"]
for nama in PENTING:
    f = f"{WS}/{nama}"
    if not os.path.exists(f):
        print(f"\n   {nama} → tidak ada")
        continue
    isi = open(f).read()
    print(f"\n--- {nama} ({len(isi)} karakter)")
    # ambil docstring/kepala + beberapa baris kunci
    kepala = "\n".join(isi.split("\n")[:14])
    print("   " + kepala.replace("\n", "\n   ")[:900])

print("\n=== C. apakah ada skrip pelaporan engagement ===")
for f in sorted(glob.glob(f"{WS}/**/*engagement*", recursive=True)) + sorted(glob.glob(f"{WS}/scripts/*repliz*")):
    print("   " + f.replace(WS + "/", ""))
