#!/usr/bin/env python3
"""Posisi TSC di Google untuk kata kunci bernilai (Serper), plus pemeriksaan artikel terbaru."""
import base64, importlib.util, json, re, urllib.error, urllib.request

WS = "/home/mantapman/.hermes/profiles/atun/workspace"
TOKEN = json.load(open(f"{WS}/.serper_token.json"))
KEY = TOKEN.get("api_key") or TOKEN.get("key") or list(TOKEN.values())[0]

KATA = ["klinik kulit surabaya", "dokter kulit sidoarjo", "klinik kecantikan sidoarjo",
        "dokter spesialis kulit surabaya", "klinik kulit krian", "klinik estetika sidoarjo"]


def serper(q, gl="id", hl="id"):
    body = json.dumps({"q": q, "gl": gl, "hl": hl, "num": 20}).encode()
    r = urllib.request.Request("https://google.serper.dev/search", data=body,
                               headers={"X-API-KEY": KEY, "Content-Type": "application/json"})
    try:
        d = json.loads(urllib.request.urlopen(r, timeout=60).read())
    except Exception as e:
        return [], str(e)[:40]
    return d.get("organic", []), None


print("=== posisi TSC (Serper, 20 besar) ===")
for q in KATA:
    org, err = serper(q)
    if err:
        print(f"   «{q}» gagal: {err}")
        continue
    pos = next((i for i, h in enumerate(org, 1)
                if "theskincodeclinic" in str(h.get("link", "")).lower()), None)
    pesaing = [str(h.get("title", ""))[:34] for h in org[:3]]
    print(f"   «{q}» → {'#' + str(pos) if pos else 'di luar 20'}")
    print(f"        tiga teratas: {pesaing}")

# artikel terbaru TSC: kelayakan tayang
print("\n=== artikel terbaru TSC ===")
spec = importlib.util.spec_from_file_location("cfg", f"{WS}/cfg_tsc.py")
m = importlib.util.module_from_spec(spec)
spec.loader.exec_module(m)
CFG = m.CFG
SITUS = f"https://{CFG.get('domain', 'www.theskincodeclinic.com')}"
AUTH = base64.b64encode(f"{CFG['user']}:{CFG['pass']}".encode()).decode()
H = {"Authorization": f"Basic {AUTH}", "User-Agent": "Mozilla/5.0"}
r = urllib.request.Request(f"{SITUS}/wp-json/wp/v2/posts?per_page=5&status=publish,draft,future"
                           "&context=edit&_fields=id,slug,date,status,link,featured_media,title,content", headers=H)
for x in json.loads(urllib.request.urlopen(r, timeout=120).read()):
    isi = x["content"]["raw"] if isinstance(x.get("content"), dict) else ""
    wa = "wa.me/6285117444417" in isi
    print(f"   #{x['id']} [{x['status']}] {x['date'][:10]} · kata {len(re.sub('<[^>]+>',' ',isi).split())} · "
          f"gambar {'ada' if x.get('featured_media') else 'TIDAK ADA'} · tombol WA {'ada' if wa else 'TIDAK ADA'}")
    print(f"        {x['slug'][:66]}")
