#!/usr/bin/env python3
"""Cek header cache halaman TSLaw + cari penyebutan harga di seluruh situs klien."""
import base64, importlib.util, json, os, re, sys, time, urllib.request

WS = "/home/mantapman/.hermes/profiles/atun/workspace"
UA = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) Chrome/124.0 Safari/537.36"}

HARGA = re.compile(r"(Rp\s?[\d.,]+|IDR\s?[\d.,]+|\b\d+\s?(?:juta|ribu|jt|rb)\b|"
                   r"diskon\s+\d+\s?%|potongan\s+\d+\s?%|\bmulai dari\s+Rp|"
                   r"\bRp\s?\d|\bharga(?:nya)?\s+(?:cuma|hanya|mulai|sebesar))", re.I)

print("=== header cache halaman #3566 ===")
try:
    r = urllib.request.Request("https://www.tslaw.id/biaya-jasa-law-firm-surabaya/?x=" + str(int(time.time())), headers=UA)
    with urllib.request.urlopen(r, timeout=90) as x:
        h = dict(x.headers)
    for k in ("cf-cache-status", "x-cache", "cache-control", "age", "x-powered-by"):
        print(f"   {k}: {h.get(k, '-')}")
except Exception as e:
    print("   gagal:", str(e)[:70])

CFG_SITUS = [("TSLaw", "cfg_tslaw.py"), ("The Skin Code", "cfg_tsc.py"), ("DAS", "cfg_das.py"),
             ("Yasmanatura", "cfg_yasma.py"), ("Surabaya Skin Centre", "cfg_ssc.py"),
             ("EveryBe", "cfg_everybe.py"), ("DMark", "cfg_dmark.py"),
             ("Abimata", "cfg_abimata.py"), ("Kendangsari", "cfg_rsia.py")]

print("\n=== penyebutan harga di isi situs klien ===")
ringkas = {}
for nama, berkas in CFG_SITUS:
    f = f"{WS}/{berkas}"
    if not os.path.exists(f):
        continue
    spec = importlib.util.spec_from_file_location("c", f)
    mm = importlib.util.module_from_spec(spec)
    try:
        spec.loader.exec_module(mm)
        C = mm.CFG
    except Exception as e:
        print(f"   {nama}: gagal ({str(e)[:40]})")
        continue
    dom = C.get("domain", C.get("situs"))
    A = base64.b64encode(f"{C['user']}:{C['pass']}".encode()).decode()
    H = {"Authorization": f"Basic {A}", "User-Agent": "Mozilla/5.0"}
    temuan = []
    for jenis in ("posts", "pages"):
        hal = 1
        while hal <= 4:
            u = (f"https://{dom}/wp-json/wp/v2/{jenis}?per_page=100&page={hal}"
                 "&status=publish,draft,future&context=edit&_fields=id,link,content")
            try:
                d = json.loads(urllib.request.urlopen(urllib.request.Request(u, headers=H), timeout=180).read())
            except Exception:
                break
            if not isinstance(d, list) or not d:
                break
            for x in d:
                for mo in HARGA.finditer(x["content"]["raw"]):
                    temuan.append((x["id"], x["link"], mo.group(0).strip()))
                    break
            if len(d) < 100:
                break
            hal += 1
    ringkas[nama] = len(temuan)
    print(f"   {nama:<22} {len(temuan):>3} halaman menyebut harga")
    for pid, link, contoh in temuan[:5]:
        print(f"        #{pid} · {contoh[:38]:<40} {link.replace('https://' + dom, '')[:44]}")

json.dump(ringkas, open(f"{WS}/drafts/audit_harga_klien.json", "w"), ensure_ascii=False, indent=1)
print("\n→ drafts/audit_harga_klien.json")
