#!/usr/bin/env python3
"""Cari halaman hidup yang paling tepat untuk setiap tautan internal yang mati di 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"}

hidup = []
for jenis in ("posts", "pages"):
    hal = 1
    while hal <= 8:
        d = json.loads(urllib.request.urlopen(urllib.request.Request(
            f"https://studiosoft.id/wp-json/wp/v2/{jenis}?per_page=50&page={hal}&status=publish"
            "&_fields=id,slug,link,title", headers=H), timeout=180).read())
        if not isinstance(d, list) or not d:
            break
        hidup += [(x["slug"], x["link"], re.sub("<[^>]+>", "", x["title"]["rendered"])) for x in d]
        if len(d) < 50:
            break
        hal += 1
print(f"halaman hidup: {len(hidup)}\n")

MATI = ["analitik-digital-bisnis-properti", "data-analytics-rumah-sakit-kebutuhan-pasien",
        "digital-marketing-bisnis-keuangan", "digital-marketing-bisnis-manufaktur",
        "digital-marketing-bisnis-properti", "digital-marketing-bisnis-retail",
        "iklan-facebook-rumah-sakit", "klinik-kecil-butuh-digital-marketing",
        "seo-untuk-bisnis-properti", "social-media-rumah-sakit-efektif",
        "strategi-digital-marketing-rumah-sakit"]
for m in MATI:
    kata = {k for k in re.split(r"-", m) if len(k) > 3}
    skor = sorted(((len(kata & {k for k in re.split(r"-", s) if len(k) > 3}), s, t, l)
                   for s, l, t in hidup), reverse=True)[:3]
    print(f"■ mati: /{m}/")
    for n, s, t, l in skor:
        if n:
            print(f"   {n} kata sama · /{s}/")
            print(f"        {t[:70]}")
    print()
