#!/usr/bin/env python3
"""Audit halaman DAS yang jadi sasaran: judul SEO, meta, focus keyphrase, kata, link internal."""
import base64, json, html, re, urllib.request

SITE = "https://dasindonesia.com"
AUTH = base64.b64encode(b"bambangbot:u3a1 G2pQ 3SWY f0zI OlGP YAjU").decode()

SLUGS = [
    # klaster Alphard
    "bengkel-spesialis-alphard-surabaya", "bengkel-spesialis-alphard", "bengkel-mobil-alphard",
    "bengkel-mobil-alphard-di-surabaya-spesialis-perawatan-mpv-premium",
    "bengkel-mobil-mewah-di-surabaya-panduan-merawat-alphard-land-cruiser-dan-sedan-premium",
    # klaster Lexus
    "bengkel-spesialis-lexus-di-surabaya", "rekomendasi-bengkel-lexus-surabaya",
    "bengkel-lexus-surabaya-terpercaya-servis-mobil-mewah-dengan-teknologi-terbaru",
    "bengkel-spesialis-lexus-di-surabaya-layanan-terbaik-untuk-mobil-premium-anda",
    "bengkel-spesialis-lexus-di-surabaya-layanan-terbaik-untuk-mobil-premium-anda-2",
    "bengkel-ac-lexus-surabaya",
    # halaman posisi bagus tapi klik nol
    "bengkel-spesialis-matic-surabaya", "bengkel-spesialis-nissan-surabaya",
    "bengkel-mobil-bmw-mercy-surabaya", "bengkel-mercy-surabaya-terpercaya-pilih-bengkel-das-surabaya",
    "bengkel-mercy-surabaya", "bengkel-spesialis-toyota-surabaya",
    "bengkel-toyota-di-jagir-surabaya-solusi-terbaik-untuk-perawatan-kendaraan-anda",
]


def api(path):
    r = urllib.request.Request(SITE + path, headers={"Authorization": f"Basic {AUTH}", "User-Agent": "Mozilla/5.0"})
    with urllib.request.urlopen(r, timeout=240) as x:
        return json.loads(x.read())


print(f"{'id':>6} {'slug':<52} {'kata':>5} {'fk':<26} {'meta':>5} {'link':>5}  SEO title")
data = {}
for slug in SLUGS:
    try:
        d = api(f"/wp-json/wp/v2/posts?slug={slug}&context=edit&_fields=id,link,slug,title,content,meta,yoast_head_json")
    except Exception as e:
        print(f"  ERROR {slug}: {str(e)[:60]}")
        continue
    if not d:
        print(f"  (tidak ada) {slug}")
        continue
    p = d[0]
    raw = p["content"]["raw"]
    txt = html.unescape(re.sub(r"<[^>]+>", " ", raw))
    words = len(txt.split())
    m = p["meta"]
    fk = m.get("_yoast_wpseo_focuskw", "")
    md = m.get("_yoast_wpseo_metadesc", "") or p["yoast_head_json"].get("description", "")
    links = len(set(re.findall(r'href="https://dasindonesia\.com/([^"#?]+)', raw)))
    ttl = p["yoast_head_json"].get("title", "")
    data[p["id"]] = {"slug": slug, "link": p["link"], "title_wp": p["title"]["rendered"], "fk": fk,
                     "meta": md, "words": words, "links_out": links, "seo_title": ttl,
                     "h2": [re.sub("<[^>]+>", "", x) for x in re.findall(r"<h2[^>]*>(.*?)</h2>", raw, re.S)][:6]}
    print(f"{p['id']:>6} {slug[:50]:<52} {words:>5} {fk[:24]:<26} {len(md):>5} {links:>5}  {ttl[:60]}")

json.dump(data, open("das_target_audit.json", "w"), indent=1, ensure_ascii=False)
print("\ndisimpan: das_target_audit.json")
