#!/usr/bin/env python3
"""Tampilkan potongan HTML asli di sekitar tiap harga (TSC) supaya penggantian bisa tepat."""
import base64, importlib.util, json, re, urllib.request

WS = "/home/mantapman/.hermes/profiles/atun/workspace"
spec = importlib.util.spec_from_file_location("cfg", f"{WS}/cfg_tsc.py")
m = importlib.util.module_from_spec(spec)
spec.loader.exec_module(m)
C = m.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"}
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)

for pid in [8376, 8374, 8372, 2007, 2002, 1997, 1986, 1983, 1973, 1939, 1930, 1918, 1901]:
    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())
    isi = c["content"]["raw"]
    print(f"\n########## #{pid} ##########")
    for mo in HARGA.finditer(isi):
        a, b = max(0, mo.start() - 110), min(len(isi), mo.end() + 110)
        print(f"  [{mo.group(0)}]")
        print(f"     …{re.sub(chr(10), ' ', isi[a:b])}…")
