#!/usr/bin/env python3
import html, json, re, subprocess, sys, time

slug = sys.argv[1] if len(sys.argv) > 1 else "perawatan-rem-mobil-tanda-tanda-yang-tidak-boleh-diabaikan"
url = f"https://dasindonesia.com/wp-json/wp/v2/posts?slug={slug}&_fields=title,content,link,date"
data = None
for attempt in range(5):
    out = subprocess.run(["curl", "-s", "--max-time", "150", "-A", "Mozilla/5.0", url],
                         capture_output=True, text=True).stdout
    try:
        data = json.loads(out)
        break
    except Exception as e:
        print(f"retry {attempt+1}: {e}", file=sys.stderr)
        time.sleep(3)
if not data:
    print("GAGAL ambil artikel")
    sys.exit(1)
p = data[0]
print("LINK:", p["link"])
print("DATE:", p["date"])
print("TITLE:", html.unescape(re.sub("<[^>]+>", "", p["title"]["rendered"])))
print("=" * 60)
c = p["content"]["rendered"]
c = re.sub(r"<(script|style).*?</\1>", "", c, flags=re.S)
for m in re.finditer(r"<(h[2-4])[^>]*>(.*?)</\1>", c, flags=re.S):
    print("\n##", html.unescape(re.sub("<[^>]+>", "", m.group(2))).strip())
for m in re.finditer(r"<li[^>]*>(.*?)</li>", c, flags=re.S):
    t = html.unescape(re.sub("<[^>]+>", "", m.group(1))).strip()
    if t:
        print("  -", t[:200])
paras = [html.unescape(re.sub("<[^>]+>", "", x)).strip() for x in re.findall(r"<p[^>]*>(.*?)</p>", c, flags=re.S)]
paras = [x for x in paras if len(x) > 60]
print("\n=== PARAGRAF ===")
for x in paras[:10]:
    print("*", x[:600], "\n")
