#!/usr/bin/env python3
"""Periksa satu artikel StudioSoft secara menyeluruh dari halaman hidupnya."""
import re, urllib.request

URL = "https://studiosoft.id/9-contoh-konten-digital-marketing-rumah-sakit-yang-edukatif-dan-tetap-etis/"
UA = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) Chrome/124.0 Safari/537.36"}
t = urllib.request.urlopen(urllib.request.Request(URL + "?cek=1", headers=UA), timeout=90).read().decode("utf-8", "replace")

print(f"panjang halaman: {len(t)} char")

# --- meta ---
for nama, pola in (("judul SEO", r'<title>(.*?)</title>'),
                   ("meta deskripsi", r'<meta name="description" content="([^"]*)"'),
                   ("canonical", r'<link rel="canonical" href="([^"]*)"'),
                   ("og:title", r'<meta property="og:title" content="([^"]*)"'),
                   ("og:image", r'<meta property="og:image" content="([^"]*)"'),
                   ("robots", r'<meta name="robots" content="([^"]*)"')):
    m = re.search(pola, t, re.S)
    print(f"   {nama:<16}: {(m.group(1).strip()[:120] if m else '(tidak ada)')}")

# --- isi artikel ---
isi = re.search(r'<div[^>]*class="[^"]*entry-content[^"]*"[^>]*>(.*?)</div>\s*</div>', t, re.S)
if not isi:
    isi = re.search(r'<article[^>]*>(.*?)</article>', t, re.S)
isi = isi.group(1) if isi else ""
teks = re.sub(r"<script.*?</script>|<style.*?</style>", " ", isi, flags=re.S)
teks = re.sub("<[^>]+>", " ", teks)
teks = re.sub(r"&nbsp;", " ", teks)
teks = re.sub(r"\s+", " ", teks).strip()
kata = len(teks.split())
print(f"\n   isi artikel: {len(isi)} char HTML · {kata} kata")

# --- hal yang diwajibkan ---
print(f"   tombol WhatsApp (wa.me/6281935000624): {'ADA' if 'wa.me/6281935000624' in isi else 'TIDAK ADA'}")
print(f"   gambar unggulan: {'ADA' if 'wp-post-image' in t else 'TIDAK ADA'}")
cjk = re.findall(r"[\u4e00-\u9fff\u3040-\u30ff\uac00-\ud7af]", teks)
print(f"   karakter China/Jepang/Korea: {len(cjk)}")
patah = 0
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 [x.strip() for x in bagian.split("\n")][:-1]:
        if b and not re.search(r"[.!?:;]$", b):
            patah += 1
print(f"   baris terpotong di tengah kalimat: {patah}")
print(f"   sub-judul H2: {len(re.findall(r'<h2', isi))} · H3: {len(re.findall(r'<h3', isi))}")
tautan = re.findall(r'href="(https://studiosoft\.id/[^"]+)"', isi)
print(f"   tautan internal: {len(set(tautan))}")
for u in sorted(set(tautan))[:8]:
    print(f"        {u.replace('https://studiosoft.id', '')}")

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