#!/usr/bin/env python3
"""DAS: verifikasi hasil konsolidasi klaster — halaman kalah harus noindex, halaman menang harus utuh + bertombol."""
import re, time, urllib.request

UA = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/124 Safari/537.36"}

PEMENANG = {
    "Alphard": (5569, "/bengkel-spesialis-alphard-surabaya/"),
    "Nissan": (5657, "/bengkel-spesialis-nissan-surabaya/"),
    "Lexus": (5684, "/bengkel-spesialis-lexus-di-surabaya/"),
    "Innova": (6392, "/das-bengkel-spesialis-innova/"),
    "Pajero": (6430, "/servis-pajero-terbaik-surabaya/"),
    "Mercy": (8296, "/bengkel-mercy-surabaya/"),
}
KALAH = {
    "Alphard": [(6304, "/bengkel-mobil-alphard/"), (6566, "/bengkel-spesialis-alphard/")],
    "Nissan": [(8081, "/bengkel-mobil-nissan-di-surabaya-servis-perbaikan-dan-overhaul/")],
    "Lexus": [(6708, "/rekomendasi-bengkel-lexus-surabaya/"),
              (6705, "/bengkel-lexus-surabaya-terpercaya-servis-mobil-mewah-dengan-teknologi-terkini/")],
    "Innova": [(6932, "/8-layanan-lengkap-das-indonesia-untuk-innova-fortuner-di-surabaya-2/"),
               (6932, "/8-layanan-lengkap-das-indonesia-untuk-innova-fortuner-di-surabaya/"),
               (5600, "/spesialis-innova-surabaya/")],
    "Pajero": [(6435, "/perawatan-pajero-surabaya/"), (5603, "/bengkel-spesialis-pajero-di-surabaya/")],
    "Mercy": [(6711, "/bengkel-mercy-surabaya-terpercaya-pilih-bengkel-das-surabaya/")],
}


def ambil(u):
    try:
        r = urllib.request.urlopen(urllib.request.Request(f"https://dasindonesia.com{u}?v={int(time.time())}", headers=UA), timeout=120)
        return r.status, r.read().decode("utf-8", "replace")
    except Exception as e:
        return 0, str(e)[:80]


print("=== halaman PEMENANG ===")
for nama, (pid, u) in PEMENANG.items():
    st, h = ambil(u)
    kata = len(re.sub(r"<[^>]+>", " ", h).split())
    tombol = len(re.findall(r"AMBIL PROMO", h, re.I))
    rob = re.findall(r"<meta name=.robots. content=.([^\"']+)", h)
    judul = re.search(r"<title[^>]*>(.*?)</title>", h, re.S)
    print(f"   {nama:<8} #{pid} status {st} | ±{kata} kata | tombol {tombol}x | robots {rob or 'index'}")
    print(f"            judul: {(judul.group(1).strip()[:80] if judul else '-')}")

print("\n=== halaman KALAH (harus noindex) ===")
lihat = set()
for nama, daftar in KALAH.items():
    for pid, u in daftar:
        if (pid, u) in lihat:
            continue
        lihat.add((pid, u))
        st, h = ambil(u)
        rob = re.findall(r"<meta name=.robots. content=.([^\"']+)", h)
        can = re.findall(r"<link rel=.canonical. href=.([^\"']+)", h)
        tanda = "✅ noindex" if rob and "noindex" in rob[0] else ("⚠️ " + (rob[0] if rob else "tanpa robots"))
        print(f"   {nama:<8} #{pid} status {st} | {tanda} | kanonik: {can[0] if can else '(tidak ditampilkan)'}")
