#!/usr/bin/env python3
"""Cari sisa penyebutan domain lama (yang tautannya sudah dilepas) di isi artikel StudioSoft."""
import base64, json, re, urllib.request

WS = "/home/mantapman/.hermes/profiles/atun/workspace"
A = base64.b64encode(b"bambangbot:q26r RePo BVy6 pwU2 F3z7 ouyl").decode()
H = {"Authorization": f"Basic {A}", "User-Agent": "Mozilla/5.0"}
DOMAIN = ["rentpbn", "papdisurabaya", "stikeshb", "localseo.studio", "binari.co.id",
          "lenteraweb", "creativism.id", "perplexity.ai", "seoptimer"]

# daftar artikel yang kehilangan tautan luar, dari catatan perbaikan
catatan = open("/tmp/ss_fix2_go.txt").read()
pid = None
terdampak = set()
for baris in catatan.splitlines():
    m = re.match(r"\s*\[\d+/\d+\] #(\d+) ", baris)
    if m:
        pid = m.group(1)
    if "dilepas ·" in baris and pid:
        terdampak.add(pid)
print(f"artikel/halaman yang tautannya dilepas: {len(terdampak)}")

print("\n=== sisa penyebutan domain di isi sekarang ===")
for p in sorted(terdampak):
    for jenis in ("posts", "pages"):
        try:
            d = json.loads(urllib.request.urlopen(urllib.request.Request(
                f"https://studiosoft.id/wp-json/wp/v2/{jenis}/{p}?context=edit&_fields=content,slug",
                headers=H), timeout=120).read())
        except Exception:
            continue
        isi = d["content"]["raw"]
        for dom in DOMAIN:
            for mo in re.finditer(r".{0,110}" + re.escape(dom) + r".{0,110}", isi, re.I):
                potongan = re.sub(r"\s+", " ", re.sub("<[^>]+>", " ", mo.group(0))).strip()
                print(f"   #{p} [{jenis}] «{dom}»")
                print(f"        …{potongan[:220]}…")
        break
