#!/usr/bin/env python3
"""Periksa artikel StudioSoft lewat WP REST (tanpa perlu kunci) + halaman hidupnya."""
import json, re, urllib.request

UA = {"User-Agent": "Mozilla/5.0"}
SLUG = "9-contoh-konten-digital-marketing-rumah-sakit-yang-edukatif-dan-tetap-etis"

d = json.loads(urllib.request.urlopen(urllib.request.Request(
    f"https://studiosoft.id/wp-json/wp/v2/posts?slug={SLUG}&_fields=id,link,date,modified,title,content,excerpt,featured_media,categories,tags",
    headers=UA), timeout=90).read())
if not d:
    raise SystemExit("artikel tidak ditemukan")
x = d[0]
isi = x["content"]["rendered"]
teks = re.sub(r"<script.*?</script>|<style.*?</style>", " ", isi, flags=re.S)
teks = re.sub("<[^>]+>", " ", teks)
teks = re.sub(r"&nbsp;|&#8217;|&#8220;|&#8221;|&#8211;", " ", teks)
teks = re.sub(r"\s+", " ", teks).strip()

print(f"#{x['id']} · {x['link']}")
print(f"   terbit  : {x['date']} · diubah: {x['modified']}")
judul_teks = re.sub("<[^>]+>", "", x["title"]["rendered"])
print(f"   judul   : {judul_teks}")
print(f"   kata    : {len(teks.split())}  (aturan: artikel baru 1.000-1.300)")
print(f"   panjang : {len(isi)} char HTML")
n_h2 = len(re.findall(r"<h2", isi)); n_h3 = len(re.findall(r"<h3", isi)); n_img = len(re.findall(r"<img", isi))
print(f"   H2: {n_h2} · H3: {n_h3} · gambar di isi: {n_img}")
print(f"   kategori: {x.get('categories')}")
print(f"   gambar unggulan: {x.get('featured_media')}")

print(f"   tombol WA wa.me/6281935000624: {'ADA' if 'wa.me/6281935000624' in isi else 'TIDAK ADA'}")
nomor_wa = sorted(set(re.findall(r"wa\.me/(\d+)", isi)))
print(f"   tombol WA nomor lain        : {nomor_wa}")
tautan = re.findall(r'href="(https?://studiosoft\.id/[^"]+)"', isi)
luar = re.findall(r'href="(https?://(?!studiosoft\.id)[^"]+)"', isi)
print(f"   tautan internal: {len(set(tautan))} · tautan luar: {len(set(luar))}")
for u in sorted(set(tautan)):
    print(f"        {u.replace('https://studiosoft.id', '')}")
cjk = re.findall(r"[\u4e00-\u9fff\u3040-\u30ff\uac00-\ud7af]", teks)
print(f"   karakter China/Jepang/Korea: {len(cjk)}")

patah = []
for mo in re.finditer(r"<(p|li|h2|h3)[^>]*>(.*?)</\1>", isi, re.S):
    bagian = mo.group(2)
    if "\n" not in bagian or "<br" in bagian:
        continue
    for b in [t2.strip() for t2 in bagian.split("\n")][:-1]:
        if b and not re.search(r"[.!?:;]$", b):
            patah.append(b[-50:])
print(f"   baris terpotong di tengah kalimat: {len(patah)}")
for p in patah[:3]:
    print(f"        …{p}")

harga = re.findall(r"(Rp\s?[\d][\d.,]*|\b\d+\s?(?:juta|ribu)\b|\bdiskon\s+\d+\s?%)", teks)
print(f"   penyebutan harga: {len(harga)} {harga[:5]}")

print("\n   300 karakter awal:")
print("   " + teks[:300])
print("\n   300 karakter akhir:")
print("   " + teks[-300:])
