#!/usr/bin/env python3
"""Tampilkan potongan HTML asli di sekitar tiap harga untuk Yasmanatura dan SSC."""
import base64, importlib.util, json, re, sys, urllib.request

WS = "/home/mantapman/.hermes/profiles/atun/workspace"
HARGA = re.compile(r"(Rp\s?[\d][\d.,]*|IDR\s?[\d][\d.,]*|\bdiskon\s+\d+\s?%|\bpotongan\s+\d+\s?%|"
                   r"\b\d+\s?%\s*lebih murah|\b\d+(?:[.,]\d+)?\s?(?:juta|ribu|jt|rb)\b)", re.I)

TARGET = [("Yasmanatura", "cfg_yasma.py", [4577, 4233, 3339, 3256, 3253, 3207, 3203, 3170, 3121, 3100, 3093, 3085, 3082, 3065]),
          ("Surabaya Skin Centre", "cfg_ssc.py", [3981, 3201, 3210, 3174])]

for nama, berkas, daftar in TARGET:
    spec = importlib.util.spec_from_file_location("c", f"{WS}/{berkas}")
    mm = importlib.util.module_from_spec(spec)
    spec.loader.exec_module(mm)
    C = mm.CFG
    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"}
    print(f"\n================ {nama} ================")
    for pid in daftar:
        try:
            c = json.loads(urllib.request.urlopen(urllib.request.Request(
                f"https://{DOM}/wp-json/wp/v2/posts/{pid}?context=edit&_fields=content", headers=H), timeout=120).read())
        except Exception as e:
            print(f"  #{pid}: gagal {str(e)[:40]}")
            continue
        isi = c["content"]["raw"]
        print(f"\n##### #{pid} #####")
        for mo in HARGA.finditer(isi):
            a, b = max(0, mo.start() - 100), min(len(isi), mo.end() + 100)
            print(f"  [{mo.group(0)}] …{re.sub(chr(10), ' ', isi[a:b])}…")
