#!/usr/bin/env python3
"""Otterly: petakan endpoint yang tersedia + lihat isi akun (prompt, hasil audit GEO)."""
import json, re, urllib.error, urllib.request

KUNCI = json.load(open("/home/mantapman/.hermes/profiles/atun/workspace/.otterly_token.json"))["key"]
BASE = "https://data.otterly.ai"
H = {"Authorization": f"Bearer {KUNCI}", "Accept": "application/json", "User-Agent": "Mozilla/5.0"}


def panggil(jalur, timeout=90):
    try:
        r = urllib.request.urlopen(urllib.request.Request(BASE + jalur, headers=H), timeout=timeout)
        return r.status, r.read().decode("utf-8", "replace")
    except urllib.error.HTTPError as e:
        return e.code, e.read().decode("utf-8", "replace")[:150]
    except Exception as e:
        return 0, str(e)[:80]


print("=== ringkasan akun ===")
st, isi = panggil("/v1/accounts/info")
if st == 200:
    d = json.loads(isi)
    print(f"   paket         : {d.get('subscriptionPlan')} (berakhir {str(d.get('subscriptionEndDate'))[:10]})")
    print(f"   prompt        : {d.get('promptsUsedCount')}/{d.get('promptsMaxCount')}")
    print(f"   audit GEO     : {d.get('geoAuditUsedCount')}/{d.get('geoAuditMaxCount')}")
    print(f"   permintaan API: {d.get('apiRequestsUsedCount')}/{d.get('apiRequestsMaxCount')} (periode sampai {d.get('apiRequestsPeriodEnd')})")
    print(f"   kunci mentah  : {json.dumps({k: v for k, v in d.items() if 'mcp' in k.lower()})}")

print("\n=== endpoint yang bisa dipanggil ===")
KANDIDAT = ["/v1/prompts", "/v1/prompts?limit=5", "/v1/brands", "/v1/results", "/v1/reports",
            "/v1/audits/geo", "/v1/audits/geo/content-checks", "/v1/audits/geo/crawlability-checks",
            "/v1/audits/query-fan-outs", "/v1/engines?country=id"]
for jalur in KANDIDAT:
    st2, isi2 = panggil(jalur, timeout=45)
    ringkas = isi2[:170].replace("\n", " ")
    print(f"   {st2} | {jalur:<38} | {ringkas}")

print("\n=== cek hasil untuk klien kita (kalau sudah ada) ===")
for jalur in ("/v1/prompts?brand=everybe", "/v1/prompts?brand=studiosoft",
              "/v1/audits/geo?domain=everybeofficial.com"):
    st3, isi3 = panggil(jalur, timeout=45)
    print(f"   {st3} | {jalur:<44} | {isi3[:150]}")
