#!/usr/bin/env python3
"""Artikel harian TSC: «Kutil Kulit: Penyebab, Cara Menular, dan Penanganan di Klinik» (1.000-1.300 kata).

Topik dari tsc_topik_bank.json (entri 6, belum dipakai). Sudut sengaja dipilih berbeda dari
dua artikel kutil kulit lama di situs (#1691 daftar cara rumahan 961 kata, #1697 makanan dan
kebiasaan): di sini fokusnya penyebab, cara menular, pembeda dengan kutil kelamin, dan
penanganan di klinik. tsc_cek_topik.py: aman (skor tertinggi 0,14).

Pakai:
  python3 tsc_artikel_kutil_kulit.py             (dry run: hitung kata + periksa pola)
  python3 tsc_artikel_kutil_kulit.py --draft     (buat draf + meta Yoast + gambar unggulan)
  python3 tsc_artikel_kutil_kulit.py --schedule 2026-10-20
"""
import base64, importlib.util, json, os, re, sys, time, urllib.error, urllib.request
from xml.sax.saxutils import escape

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)
CFG = m.CFG
DOM = CFG["domain"]
USER, SANDI = CFG["user"], CFG["pass"]
AUTH = base64.b64encode(f"{USER}:{SANDI}".encode()).decode()
UA = {"User-Agent": "Mozilla/5.0"}
PID_BERKAS = f"{WS}/drafts/tsc_pid_kutil_kulit.json"

JUDUL = "Kutil Kulit: Penyebab, Cara Menular, dan Penanganan di Klinik"
SLUG = "kutil-kulit-penyebab-cara-menular-dan-penanganan"
FOKUS = "kutil kulit"
META_JUDUL = "Kutil Kulit: Penyebab, Cara Menular, dan Penanganan"
META_DESC = ("Kutil kulit disebabkan virus HPV dan bisa menular lewat sentuhan. Kenali jenisnya, "
             "cara mencegah penyebaran, dan penanganan yang tersedia di klinik.")

WA = ("https://wa.me/6285117444417?text=Saya%20ingin%20konsultasi%20masalah%20kulit%20di%20"
      "The%20Skin%20Code%20Clinic")
TOMBOL = ('<p style="text-align:center;margin:32px 0 8px"><a class="wp-block-button__link '
          'wp-element-button" href="' + WA + '" target="_blank" rel="noopener" '
          'style="display:inline-block;background-color:#0f2557;color:#ffffff;padding:15px 34px;'
          'font-size:18px;font-weight:bold;text-decoration:none;border-radius:6px;">'
          'KONSULTASI GRATIS</a></p>')

ISI = """
<p>Benjolan kecil keras di jari atau telapak kaki yang tidak nyeri, tetapi juga tidak hilang
setelah diolesi obat dari apotek. Sebagian orang sudah mencoba memotongnya sendiri, sebagian
lagi membiarkannya bertahun-tahun karena menganggapnya tidak berbahaya. Kutil kulit memang
jarang menimbulkan keluhan berat, tetapi cara menanganinya menentukan apakah ia akan hilang
atau justru bertambah banyak.</p>

<p>Halaman ini membahas penyebab kutil, cara penularannya, bedanya dengan kutil kelamin, serta
penanganan yang tersedia di klinik. Bagian akhir memuat pertanyaan yang paling sering
ditanyakan pasien.</p>

<h2>Apa Itu Kutil Kulit</h2>
<p>Kutil kulit adalah pertumbuhan kulit akibat infeksi human papillomavirus, disingkat HPV.
Virus ini masuk melalui luka kecil yang tidak terlihat, kemudian membuat sel kulit di lapisan
teratas tumbuh berlebihan di satu titik. Karena itu bentuknya benjolan dengan permukaan kasar,
bukan bercak rata.</p>

<p>Ada beberapa jenis yang sering ditemui:</p>
<ul>
<li>Kutil biasa (verruca vulgaris). Benjolan keras dengan permukaan kasar, sering muncul di
punggung tangan, jari, dan sekitar kuku.</li>
<li>Kutil datar. Ukurannya lebih kecil dan lebih rata, warnanya mendekati warna kulit atau
kecokelatan, dan bisa muncul dalam jumlah banyak di wajah, punggung tangan, atau tungkai.</li>
<li>Kutil telapak kaki (verruca plantaris). Tumbuh ke dalam karena tertekan saat berjalan,
sehingga terasa seperti duri saat dipijak.</li>
<li>Kutil filiform. Bentuknya memanjang seperti benang, biasanya muncul di wajah, leher, atau
sekitar kelopak mata.</li>
</ul>

<p>Hampir semua kutil kulit bersifat jinak. Yang membuatnya perlu diperhatikan adalah sifatnya
yang menular, sehingga bisa berpindah ke kulit di sekitarnya atau ke orang lain di rumah.</p>

<h2>Kenapa Kutil Tumbuh dan Bagaimana Menularnya</h2>
<p>HPV punya banyak tipe, dan tipe yang menyerang kulit berbeda dengan tipe yang menyerang area
kelamin. Untuk kutil kulit, tipe yang paling sering ditemukan adalah tipe 1, 2, 3, dan 4.
Virus ini lebih mudah masuk kalau kulit sedang tidak dalam kondisi terbaik, misalnya kulit
lembap terus-menerus, ada lecet kecil akibat pekerjaan, atau ada kebiasaan menggigit dan
menarik kuku.</p>

<p>Anak-anak dan remaja lebih sering mengalami kutil kulit, terutama yang banyak bermain di
luar ruangan dan bergantian memakai alat olahraga. Pada orang dewasa, kutil cenderung bertahan
lebih lama dan mudah muncul kembali meski sudah dihilangkan.</p>

<p>Satu hal yang sering disalahpahami: kutil bukan tanda kulit kotor. Tidak ada hubungannya
dengan kebersihan pribadi, dan menggosok kulit lebih keras tidak akan membuatnya hilang.</p>

<p>Penularannya sendiri terjadi lewat sentuhan, baik langsung maupun melalui benda perantara.
Tiga jalur yang paling sering ditemui:</p>
<ul>
<li>Sentuhan kulit ke kulit, termasuk saat bersalaman dengan kutil di tangan atau saat kaki
menyentuh lantai bersama tanpa alas kaki.</li>
<li>Benda yang dipakai bergantian, seperti handuk, alas kaki, gunting kuku, atau alat cukur.</li>
<li>Penyebaran ke diri sendiri. Ini yang paling sering terjadi. Menggaruk, mencukur, atau
memencet kutil bisa memindahkan virusnya ke kulit di sekitar, sehingga satu kutil berubah
menjadi beberapa.</li>
</ul>

<p>Karena itu, dokter biasanya menilai dulu apakah kutilnya sedang aktif menyebar sebelum
memilih tindakan. Menghilangkan satu benjolan di tengah proses penyebaran hanya akan menunda
masalahnya.</p>

<h2>Beda Kutil Kulit dan Kutil Kelamin</h2>
<p>Keduanya sering disamakan karena namanya mirip, padahal penyebab dan cara penularannya
berbeda. Kutil kulit tumbuh di tangan, kaki, wajah, atau badan, dan menular lewat sentuhan
kulit sehari-hari. Kutil kelamin tumbuh di area genital, tipe virusnya berbeda, dan penularan
utamanya melalui hubungan seksual.</p>

<p>Pembedaan ini menentukan penanganannya, dan pada kutil kelamin pasangan juga perlu
diperiksa. Penjelasan lebih lengkap soal kondisi itu ada di halaman
<a href="https://www.theskincodeclinic.com/fak-penting-kutil-kelamin-hpv-3/">fak penting soal kutil kelamin (HPV)</a>.</p>

<h2>Kapan Kutil Perlu Diperiksa ke Dokter</h2>
<p>Sebagian kutil memang bisa hilang sendiri, terutama pada anak-anak, tetapi prosesnya lama
dan selama menunggu virusnya masih bisa menyebar. Pemeriksaan dokter sebaiknya dilakukan
kalau Anda menemui keadaan berikut:</p>
<ul>
<li>Kutil tidak membaik setelah beberapa pekan dirawat sendiri, atau malah bertambah banyak.</li>
<li>Terasa nyeri, perih, berdarah, atau mengeluarkan cairan.</li>
<li>Ukurannya membesar cepat atau warnanya berubah.</li>
<li>Tumbuh di wajah, area kelamin, atau sekitar kuku.</li>
<li>Anda menderita diabetes, gangguan kekebalan tubuh, atau sedang menjalani pengobatan yang
menekan sistem imun.</li>
</ul>

<p>Pada keadaan seperti itu, melanjutkan pengobatan sendiri berisiko membuat luka lebih lebar
dan menambah kemungkinan infeksi. Kalau Anda belum yakin apakah kutil kulit yang Anda alami
termasuk yang perlu ditindak, tanda kulit yang wajib diperiksa kami rangkum di
<a href="https://www.theskincodeclinic.com/kapan-harus-ke-dokter-kulit/">panduan kapan harus ke dokter kulit</a>.</p>

<h2>Penanganan Kutil di Klinik</h2>
<p>Dokter spesialis kulit memilih tindakan berdasarkan jenis kutil, lokasinya, luasnya, dan
kondisi kulit Anda. Pilihan yang umum dipakai:</p>
<ul>
<li>Krioterapi. Kutil dibekukan memakai nitrogen cair. Umumnya butuh beberapa kunjungan dengan
jarak tertentu sampai kutil benar-benar lepas.</li>
<li>Elektrokauter. Jaringan kutil dipanaskan dengan arus listrik berfrekuensi tinggi, biasanya
untuk kutil yang tonjolannya jelas.</li>
<li>Bedah kecil. Kutil diangkat dengan alat bedah, umumnya untuk kutil besar atau yang sudah
menimbulkan nyeri.</li>
<li>Laser. Dipakai untuk kutil yang membandel atau muncul berulang, termasuk yang tumbuh di
area yang sulit ditangani cara lain.</li>
<li>Obat topikal konsentrasi lebih tinggi, diresepkan dokter untuk dipakai di rumah dengan
pemantauan berkala.</li>
</ul>

<p>Tidak semua kutil memerlukan tindakan. Kalau ukurannya kecil, tidak mengganggu, dan tidak
menyebar, dokter bisa menyarankan pemantauan lebih dulu. Kalau tindakan memang dibutuhkan,
Anda akan diberi tahu perkiraan jumlah sesi dan apa yang perlu dijaga di antara sesi. Perlu
dipahami juga, kutil bisa muncul kembali karena virusnya masih mungkin berada di kulit sekitar
meski benjolannya sudah hilang.</p>

""" + TOMBOL + """

<h2>Perawatan Setelah Tindakan dan Pencegahan Berulang</h2>
<p>Setelah tindakan, area bekas kutil perlu dijaga tetap bersih dan kering. Jangan mengelupas
keraknya, jangan menggaruk, dan tutup bila area itu mudah tergesek pakaian. Ikuti jadwal
kontrol yang disarankan, karena kutil yang tersisa dalam ukuran kecil paling mudah ditangani
pada kunjungan berikutnya.</p>

<p>Untuk mencegah penyebaran, beberapa kebiasaan ini cukup berpengaruh. Pakai alas kaki di
tempat umum yang lantainya lembap, jangan bertukar handuk atau gunting kuku dengan anggota
keluarga lain, dan jaga kaki tetap kering setelah mandi atau berolahraga. Kalau ada kutil di
tangan, hindari memencet atau mencukurnya sendiri, lalu cuci tangan setelah menyentuh area
tersebut.</p>

<p>Pada anak yang sering mengalami kutil, tidak perlu ada pemisahan alat makan atau kamar.
Yang lebih penting adalah tidak memakai handuk dan alas kaki yang sama, serta menjaga luka
kecil di kulit tetap bersih.</p>

<h2>Pertanyaan yang Sering Diajukan</h2>

<h3>Apakah kutil kulit berbahaya?</h3>
<p>Hampir semua jinak. Tipe virus penyebab kutil kulit berbeda dari tipe yang berkaitan dengan
kanker kulit. Yang perlu diwaspadai adalah perubahannya, seperti membesar cepat, berubah
warna, berdarah, atau nyeri tanpa sebab jelas. Kalau itu terjadi, sebaiknya diperiksakan.</p>

<h3>Bisakah kutil hilang sendiri?</h3>
<p>Bisa, terutama pada anak-anak, tetapi waktunya tidak bisa dipastikan dan bisa berbulan-bulan
sampai lebih dari satu tahun. Selama masa itu kutil dapat menyebar ke kulit lain atau ke orang
di rumah. Kalau jumlahnya bertambah atau letaknya mengganggu, menunggu biasanya bukan pilihan
yang menguntungkan.</p>

<h3>Bolehkah kutil dipotong sendiri di rumah?</h3>
<p>Sebaiknya tidak. Memotong, memencet, atau mencukur kutil berisiko memindahkan virusnya ke
kulit sekitar dan menimbulkan infeksi pada luka. Produk penghilang kutil bebas juga sebaiknya
dipakai setelah konsultasi, karena tidak semua jenis kutil cocok dengan bahan yang sama.</p>

<h3>Berapa lama kutil hilang setelah tindakan?</h3>
<p>Tergantung jenis, ukuran, lokasi, dan jumlah tindakan yang dibutuhkan. Sebagian kutil lepas
setelah satu atau dua sesi, sebagian perlu beberapa kali dengan jarak beberapa pekan. Dokter
akan menyampaikan perkiraan setelah memeriksa kondisi kulit Anda.</p>

<h2>Baca juga</h2>
<p>Keluhan kulit yang perlu ditangani dokter kami bahas di
<a href="https://www.theskincodeclinic.com/masalah-kulit-wajib-dokter-kulit-krian/">daftar masalah kulit yang wajib ditangani dokter</a>,
sedangkan perawatan sederhana yang bisa dilakukan di rumah ada di
<a href="https://www.theskincodeclinic.com/7-cara-mudah-mengatasi-kutil-kulit-yang-aman-dan-efektif/">cara mengatasi kutil kulit yang aman</a>.
Untuk panduan berobat ke klinik di Sidoarjo, mulai dari
<a href="https://www.theskincodeclinic.com/dokter-kulit-sidoarjo-panduan-berobat/">apa yang perlu disiapkan sebelum datang</a>.</p>

<p>Kalau kutil Anda bertambah banyak, terasa nyeri, atau tidak membaik setelah dirawat sendiri,
langkah paling tenang adalah memeriksakannya. Dokter bisa memastikan jenis kutilnya dan
menjelaskan pilihan penanganan yang sesuai dengan kondisi kulit Anda.</p>
"""


# ---------- bantu ----------
def rest(path, method="GET", data=None, timeout=180):
    h = {"Authorization": f"Basic {AUTH}", **UA}
    body = None
    if data is not None:
        body = json.dumps(data).encode()
        h["Content-Type"] = "application/json"
    r = urllib.request.Request(f"https://{DOM}{path}", data=body, headers=h, method=method)
    for _ in range(3):
        try:
            with urllib.request.urlopen(r, timeout=timeout) as x:
                return x.status, json.loads(x.read())
        except urllib.error.HTTPError as e:
            return e.code, e.read().decode()[:300]
        except Exception:
            time.sleep(4)
    return 0, "gagal"


def rpc(method, params=()):
    def val(v):
        if isinstance(v, bool):
            return f"<value><boolean>{1 if v else 0}</boolean></value>"
        if isinstance(v, int):
            return f"<value><int>{v}</int></value>"
        if isinstance(v, list):
            return "<value><array><data>" + "".join(val(x) for x in v) + "</data></array></value>"
        if isinstance(v, dict):
            return "<value><struct>" + "".join(f"<member><name>{escape(str(k))}</name>{val(x)}</member>"
                                               for k, x in v.items()) + "</struct></value>"
        return f"<value><string>{escape(str(v))}</string></value>"
    body = ("<?xml version=\"1.0\"?><methodCall><methodName>" + method + "</methodName><params>" +
            "".join(f"<param>{val(p)}</param>" for p in params) + "</params></methodCall>").encode()
    r = urllib.request.Request(f"https://www.{DOM}/xmlrpc.php", data=body,
                               headers={"Content-Type": "text/xml", **UA}, method="POST")
    with urllib.request.urlopen(r, timeout=180) as x:
        return x.read().decode("utf-8", "replace")


def fault(isi):
    mm = re.search(r"<name>faultString</name><value><string>(.*?)</string>", isi, re.S)
    return mm.group(1) if mm else None


def isi_bersih():
    t = re.sub(r"<[^>]+>", " ", ISI)
    for nama, pola in (("em dash", "—"), ("kutip melengkung", "[“”‘’]"),
                       ("CJK", "[\u3000-\u9fff\uac00-\ud7af]"), ("tanda seru", "!")):
        n = re.findall(pola, t)
        if n:
            print(f"   ⛔ {nama}: {len(n)}×")
            return False
    return True


# ---------- dry run ----------
kata = len(re.sub(r"<[^>]+>", " ", ISI).split())
if os.path.exists(PID_BERKAS):
    pid_lama = json.load(open(PID_BERKAS)).get("id")
else:
    pid_lama = None

print(f"=== {JUDUL}")
print(f"   slug   : {SLUG}")
print(f"   fokus  : {FOKUS}")
print(f"   kata   : {kata} (target 1.000-1.300)")
print(f"   meta judul : {len(META_JUDUL)} karakter (maks 60)")
print(f"   meta desc  : {len(META_DESC)} karakter (target 140-158)")
print(f"   H2: {ISI.count('<h2')} · H3: {ISI.count('<h3')} · tombol WA: {'ada' if 'wa.me' in ISI else 'TIDAK ADA'}")
print(f"   tautan internal: {len(re.findall('theskincodeclinic[.]com', ISI))}")
print(f"   bersih pola: {'ya' if isi_bersih() else 'TIDAK'}")

if not (sys.argv[1:2] and sys.argv[1] in ("--draft", "--schedule")):
    print("\n(dry run)")
    sys.exit(0)


# ---------- langkah draf ----------
def buat_draf():
    st, d = rest("/wp-json/wp/v2/posts", "POST", {"title": JUDUL, "slug": SLUG, "content": ISI,
                                                  "status": "draft", "comment_status": "closed"})
    if not isinstance(d, dict) or "id" not in d:
        print(f"   ❌ draf gagal: {st} {str(d)[:200]}")
        return None
    pid = d["id"]
    json.dump({"id": pid, "slug": SLUG}, open(PID_BERKAS, "w"))
    print(f"   ✅ draf #{pid} · {d.get('link')}")

    # meta Yoast lewat XML-RPC, kirim ULANG seluruh custom field
    p = rpc("wp.getPost", [1, USER, SANDI, pid])
    if fault(p):
        print(f"   ❌ XML-RPC getPost: {fault(p)[:120]}")
        return pid
    cf = re.findall(r"<member><name>key</name><value><string>(.*?)</string></value></member>\s*"
                    r"<member><name>value</name><value><string>(.*?)</string>", p, re.S)
    cf = [{"key": k, "value": v} for k, v in cf]
    buang = {"_yoast_wpseo_title", "_yoast_wpseo_metadesc", "_yoast_wpseo_focuskw"}
    baru = [x for x in cf if x["key"] not in buang]
    baru += [{"key": "_yoast_wpseo_title", "value": META_JUDUL},
             {"key": "_yoast_wpseo_metadesc", "value": META_DESC},
             {"key": "_yoast_wpseo_focuskw", "value": FOKUS}]
    res = rpc("wp.editPost", [1, USER, SANDI, pid, {"custom_fields": baru}])
    f = fault(res)
    print(f"   meta Yoast: {'❌ ' + f[:120] if f else '✅ terkirim (field lama: ' + str(len(cf)) + ')'}")
    time.sleep(2)
    p2 = rpc("wp.getPost", [1, USER, SANDI, pid])
    simpan = dict(re.findall(r"<member><name>key</name><value><string>(_yoast[^<]*)</string></value>"
                             r"</member>\s*<member><name>value</name><value><string>(.*?)</string>", p2, re.S))
    for k in buang:
        v = simpan.get(k)
        print(f"        {k}: {'✅ ' + v[:60] if v else '❌ KOSONG'}")
    return pid


def buat_gambar(pid):
    from PIL import Image, ImageDraw, ImageFont
    FONTS = os.path.expanduser("~/.fonts")
    NAVY, BIRU, ABU, PUTIH = (11, 31, 58), (30, 64, 175), (100, 116, 139), (255, 255, 255)
    W, H, PAD = 1000, 567, 62
    fn = lambda n, u: ImageFont.truetype(os.path.join(FONTS, n), u)
    img = Image.new("RGB", (W, H), PUTIH)
    d = ImageDraw.Draw(img)
    panel = int(W * 0.34)
    d.rectangle([W - panel, 0, W, H], fill=BIRU)
    for i, r in enumerate((150, 110, 70)):
        x, y = W - panel // 2, H // 2
        d.ellipse([x - r, y - r, x + r, y + r], outline=PUTIH, width=3 if i == 2 else 2)
    d.ellipse([W - panel // 2 - 12, H // 2 - 12, W - panel // 2 + 12, H // 2 + 12], fill=PUTIH)
    d.rectangle([0, 0, 10, H], fill=BIRU)
    d.text((PAD, PAD - 6), "THE SKIN CODE CLINIC", font=fn("Poppins-SemiBold.ttf", 24), fill=BIRU)
    d.text((PAD, PAD + 26), "Krian, Sidoarjo", font=fn("Poppins-Regular.ttf", 20), fill=ABU)

    def bungkus(teks, font, maks):
        kata_, baris, kini = teks.split(), [], ""
        for k in kata_:
            coba = (kini + " " + k).strip()
            if font.getlength(coba) <= maks:
                kini = coba
            else:
                baris.append(kini)
                kini = k
        if kini:
            baris.append(kini)
        return baris

    maks = W - panel - PAD - 46
    y = 168
    for b in bungkus("Kutil Kulit", fn("Poppins-Bold.ttf", 62), maks):
        d.text((PAD, y), b, font=fn("Poppins-Bold.ttf", 62), fill=NAVY)
        y += 74
    y += 6
    for b in bungkus("Penyebab, penularan, dan penanganan di klinik", fn("Poppins-Regular.ttf", 27), maks):
        d.text((PAD, y), b, font=fn("Poppins-Regular.ttf", 27), fill=ABU)
        y += 38
    d.rectangle([PAD, H - 96, PAD + 74, H - 92], fill=BIRU)
    d.text((PAD, H - 78), "theskincodeclinic.com", font=fn("Poppins-SemiBold.ttf", 23), fill=NAVY)
    d.text((PAD, H - 46), "Konsultasi lewat WhatsApp", font=fn("Poppins-Regular.ttf", 20), fill=ABU)
    out = f"{WS}/tsc_feat_kutil-kulit-penyebab-cara-menular-dan-penanganan.webp"
    img.save(out, "WEBP", quality=92, method=6)
    print(f"   gambar: {out} · {img.size} · {os.path.getsize(out)//1024} KB")

    data = open(out, "rb").read()
    h = {"Authorization": f"Basic {AUTH}", **UA, "Content-Type": "image/webp",
         "Content-Disposition": f'attachment; filename="{os.path.basename(out)}"'}
    r = urllib.request.Request(f"https://{DOM}/wp-json/wp/v2/media", data=data, headers=h, method="POST")
    try:
        with urllib.request.urlopen(r, timeout=300) as x:
            med = json.loads(x.read())
    except urllib.error.HTTPError as e:
        print(f"   ❌ unggah media: HTTP {e.code} {e.read().decode()[:150]}")
        return
    print(f"   ✅ media #{med['id']} · {med.get('source_url')}")
    st2, _ = rest(f"/wp-json/wp/v2/media/{med['id']}", "POST",
                  {"alt_text": "Kutil kulit: penyebab, cara menular, dan penanganan di klinik",
                   "title": "Gambar unggulan: Kutil Kulit"})
    st3, d3 = rest(f"/wp-json/wp/v2/posts/{pid}", "POST", {"featured_media": med["id"]})
    print(f"   pasang unggulan: HTTP {st3} · featured_media = {d3.get('featured_media') if isinstance(d3, dict) else d3}")


if sys.argv[1] == "--draft":
    pid = buat_draf()
    if pid:
        buat_gambar(pid)
    sys.exit(0)

if sys.argv[1] == "--schedule":
    tgl = sys.argv[2]
    if not pid_lama:
        sys.exit("belum ada draf (jalankan --draft dulu)")
    # zona situs = UTC (date == date_gmt) → 08:00 WIB = 01:00 UTC
    st, d = rest(f"/wp-json/wp/v2/posts/{pid_lama}", "POST",
                 {"status": "future", "date": f"{tgl}T01:00:00"})
    print(f"   jadwalkan #{pid_lama} → {tgl}T01:00:00 (UTC) · HTTP {st}")
    time.sleep(3)
    st2, cek = rest(f"/wp-json/wp/v2/posts/{pid_lama}?context=edit")
    if not isinstance(cek, dict):
        sys.exit(f"   ❌ baca balik gagal: {st2}")
    isi_asli = cek.get("content", {}).get("raw", "")
    print(f"   status: {cek.get('status')} · date: {cek.get('date')} · slug: {cek.get('slug')}")
    print(f"   judul : {cek.get('title', {}).get('raw')}")
    print(f"   kata  : {len(re.sub(r'<[^>]+>', ' ', isi_asli).split())} · tombol WA: {'ada' if 'wa.me' in isi_asli else 'TIDAK ADA'}")
    print(f"   unggulan: {cek.get('featured_media')} · tautan internal: {len(re.findall('theskincodeclinic', isi_asli))}")
