#!/usr/bin/env python3
"""Cari baris yang terpotong di tengah kalimat pada artikel TSC (akibat <br> dari wpautop)."""
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)
A = base64.b64encode(f"{m.CFG['user']}:{m.CFG['pass']}".encode()).decode()
H = {"Authorization": f"Basic {A}", "User-Agent": "Mozilla/5.0"}
S = "https://www.theskincodeclinic.com"


def ambil(pid):
    u = f"{S}/wp-json/wp/v2/posts/{pid}?context=edit&_fields=id,content,status,link"
    return json.loads(urllib.request.urlopen(urllib.request.Request(u, headers=H), timeout=90).read())


print("=== artikel terbaru: baris baru di dalam paragraf (akan jadi <br> di situs) ===")
for pid in (10171, 10274, 10250, 10246, 10243, 10175, 10173, 10162, 10160, 9257, 1930, 1927, 1924):
    x = ambil(pid)
    c = x["content"]["raw"]
    par = re.findall(r"<p[^>]*>(.*?)</p>", c, re.S)
    kena = []
    for p in par:
        if "\n" in p.strip():
            potong = [z.strip() for z in p.strip().split("\n")]
            # baris yang dipotong di tengah kalimat: baris sebelumnya tidak diakhiri tanda baca
            for i, b in enumerate(potong[:-1]):
                if b and not re.search(r"[.!?:;]$", b):
                    kena.append(b[-60:])
    print(f"\n   #{pid} [{x['status']}] {x['link'].replace(S, '')[:56]}")
    print(f"      paragraf: {len(par)} · paragraf berbaris-baris: {sum(1 for p in par if chr(10) in p.strip())} · potongan tengah kalimat: {len(kena)}")
    for k in kena[:3]:
        print(f"        …{k}")
