#!/usr/bin/env python3
"""Cek ulang posisi DAS dengan lokasi eksplisit (Surabaya) — Serper default bisa beda."""
import json, statistics, time, urllib.request, urllib.error

WS = "/home/mantapman/.hermes/profiles/atun/workspace"
DOM = "dasindonesia.com"
KUNCI = json.load(open(f"{WS}/.serper_token.json"))["key"]
H = {"X-API-KEY": KUNCI, "Content-Type": "application/json", "User-Agent": "Mozilla/5.0"}
KATA = ["bengkel mobil surabaya", "bengkel transmisi matic surabaya", "bengkel nissan surabaya",
        "bengkel toyota surabaya", "servis mobil surabaya"]


def cari(q, lokasi=None):
    body = {"q": q, "gl": "id", "hl": "id", "num": 20}
    if lokasi:
        body["location"] = lokasi
        body["gl"] = "id"
    r = urllib.request.urlopen(urllib.request.Request(
        "https://google.serper.dev/search", data=json.dumps(body).encode(), headers=H), timeout=90)
    return json.loads(r.read())


for kw in KATA:
    for lok in (None, "Surabaya,Jawa Timur,Indonesia"):
        try:
            d = cari(kw, lok)
        except urllib.error.HTTPError as e:
            print(f"  «{kw}» lokasi={lok} → HTTP {e.code}")
            continue
        org = d.get("organic") or []
        pos = next((i for i, h in enumerate(org, 1) if DOM in str(h.get("link", ""))), None)
        atas = [str(h.get("link", "")).split("/")[2].replace("www.", "") for h in org[:3]]
        label = "tanpa lokasi" if not lok else "Surabaya"
        print(f"  «{kw}» [{label:<12}] → {'#' + str(pos) if pos else 'di luar 20':<12} | {', '.join(atas)}")
        time.sleep(0.5)
    print()
