#!/usr/bin/env python3
"""TSLaw: dua artikel listikel baru.
 1. 10 Pengacara & Konsultan Hukum untuk Gugat Cerai di Surabaya
 2. 7 Pengacara & Konsultan Hukum untuk Membuat Surat Wasiat
Aturan yang dipatuhi: min 1.000 kata, tanpa padding, tombol WA di akhir, FAQ + schema FAQPage,
link internal (termasuk ke beranda), meta Yoast <=158 char, foto Pexels, bahasa manusiawi.
Jalankan --apply untuk membuat (status draft lebih dulu)."""
import base64, json, os, re, sys, time, urllib.request, urllib.error
from PIL import Image

DOM = "tslaw.id"
AUTH = base64.b64encode(b"bambangbot:EFKm EYGx VQCP Y9go ncPr uM2Y").decode()
UA = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/124 Safari/537.36"}
OUT = "/home/mantapman/.hermes/profiles/atun/workspace/tslaw_listikel"
os.makedirs(OUT, exist_ok=True)
WA = "6281909222026"

CTA = f"""<p style="text-align:center;margin:34px 0 8px">
<a href="https://wa.me/{WA}?text=Halo%20TS%20Law%2C%20saya%20ingin%20konsultasi%20hukum" target="_blank" rel="noopener"
style="display:inline-block;background-color:#122b63;color:#ffffff;font-weight:600;font-size:17px;
padding:15px 30px;border-radius:8px;text-decoration:none">Konsultasi Hukum Gratis via WhatsApp</a>
</p>
<p style="text-align:center;font-size:14px;color:#5b5b6b;margin:0 0 26px">
Tito Suprianto Law Firm — kantor advokat di Surabaya, melayani konsultasi tanpa biaya di awal.</p>"""


def skema_faq(faq):
    data = {"@context": "https://schema.org", "@type": "FAQPage",
            "mainEntity": [{"@type": "Question", "name": q, "acceptedAnswer": {"@type": "Answer", "text": a}}
                           for q, a in faq]}
    return '<script type="application/ld+json">' + json.dumps(data, ensure_ascii=False) + "</script>"


AKHIR = """<h2>Baca juga</h2>
<p>Untuk memahami prosesnya lebih dulu, baca <a href="https://www.tslaw.id/panduan-cerai-gugat/">panduan cerai gugat</a>,
lalu lihat <a href="https://www.tslaw.id/practice-areas/">layanan hukum TS Law</a>. Kalau ingin langsung
berbicara dengan tim, halaman <a href="https://www.tslaw.id/hubungi/">kontak</a> memuat nomor WhatsApp dan alamat
kantor.</p>"""

# ── ARTIKEL 1
A1_JUDUL = "10 Pengacara dan Konsultan Hukum untuk Gugat Cerai di Surabaya"
A1_SLUG = "pengacara-gugat-cerai-surabaya"
A1_FOKUS = "pengacara gugat cerai surabaya"
A1_SEO = "10 Pengacara Gugat Cerai di Surabaya | Panduan 2026"
A1_META = ("Daftar pengacara dan konsultan hukum untuk gugat cerai di Surabaya: jenis layanan, jalur gratis, "
           "dan hal yang perlu disiapkan sebelum mengajukan gugatan.")
A1_TAGS = [46, 88, 78, 72]      # konsultasi hukum, advokat, sengketa keluarga, gugatan perdata
A1_PEXELS = "7876037"
A1_ENTRI = [
    ("Tito Suprianto Law Firm",
     "Kantor advokat di Surabaya yang menangani perkara keluarga, termasuk cerai gugat, pembagian harta bersama, "
     "hak asuh anak, dan sengketa warisan. Pendampingan dimulai dari konsultasi untuk menilai apakah gugatan punya "
     "dasar yang kuat, lalu berlanjut ke penyusunan gugatan, mediasi, dan persidangan di Pengadilan Agama. "
     "Tim juga menangani urusan korporasi, sehingga kerap membantu klien yang perceraiannya menyangkut aset usaha. "
     "Informasi lengkapnya ada di <a href=\"https://www.tslaw.id/\">beranda TS Law</a>."),
    ("LBH Surabaya (Lembaga Bantuan Hukum)",
     "Lembaga bantuan hukum yang memberi pendampingan gratis bagi masyarakat yang tidak mampu. Cocok kalau biaya "
     "advokat menjadi kendala utama. Layanan biasanya mencakup nasihat hukum, pendampingan di luar pengadilan, "
     "dan bantuan litigasi untuk perkara tertentu. Siapkan surat keterangan tidak mampu dari kelurahan sebelum datang."),
    ("Pos Bantuan Hukum (Posbakum) Pengadilan Agama",
     "Layanan bantuan hukum yang disediakan di dalam pengadilan agama. Petugasnya membantu membuat surat gugatan "
     "dan menjelaskan alur perkara bagi pencari keadilan yang belum mampu menyewa advokat. Untuk perceraian, "
     "Posbakum sering menjadi pintu pertama yang paling mudah dijangkau karena berada di lokasi pendaftaran perkara."),
    ("Organisasi advokat (Peradi dan sejenisnya)",
     "Bukan tempat mengajukan gugatan, tapi berguna untuk memastikan advokat yang Anda pilih benar-benar berizin "
     "dan terdaftar. Berkas advokat yang sah memudahkan Anda menelusuri rekam jejaknya, dan memberi kepastian "
     "bahwa pendampingan dilakukan oleh orang yang berwenang beracara."),
    ("Advokat dengan praktik khusus hukum keluarga",
     "Praktisi yang sehari-hari menangani perkara keluarga biasanya lebih cepat membaca persoalan: kapan mediasi "
     "bisa dipakai, kapan perlu mengajukan permohonan sita harta bersama, dan bagaimana menyusun dalil agar "
     "gugatan tidak kalah di tahap awal. Tanyakan berapa perkara sejenis yang pernah ia tangani sebelum memutuskan."),
    ("Konsultan hukum syariah",
     "Sejak perceraian beragama Islam diperiksa di Pengadilan Agama, penguasaan hukum acara dan Kompilasi Hukum "
     "Islam menjadi penting. Konsultan dengan latar ini membantu menilai alasan gugatan, termasuk soal nafkah "
     "iddah, mut'ah, dan hak-hak yang timbul setelah putusan."),
    ("Mediator keluarga bersertifikat",
     "Perkara perceraian wajib menempuh mediasi lebih dulu. Mediator yang berpengalaman dapat membantu kedua "
     "pihak menyepakati hal-hal praktis: pembagian harta, hak asuh, dan nafkah anak. Kesepakatan yang tercapai "
     "di mediasi sering menghemat waktu persidangan dan menurunkan ketegangan antara kedua keluarga."),
    ("Notaris dan PPAT",
     "Dibutuhkan ketika perceraian menyangkut tanah, rumah, atau perjanjian pisah harta. Notaris menyusun akta "
     "yang mengikat kedua pihak, sementara PPAT menangani peralihan hak atas tanah. Tanpa akta yang benar, "
     "pembagian aset rawan dipersoalkan lagi di kemudian hari."),
    ("Advokat pendamping korban kekerasan dalam rumah tangga",
     "Kalau perceraian dilatarbelakangi kekerasan, perkara bisa berjalan di dua jalur sekaligus: perdata di "
     "pengadilan agama dan pidana sesuai ketentuan perlindungan korban. Pendamping yang biasa menangani kasus "
     "semacam ini tahu urutan langkah agar bukti tetap utuh dan korban tidak terjebak masalah baru."),
    ("Konsultan warisan dan perencanaan aset",
     "Perceraian hampir selalu menyeret pertanyaan lanjutan: bagaimana harta bersama dibagi, bagaimana warisan "
     "dibagi jika salah satu pihak meninggal, dan apa yang terjadi pada harta anak. Konsultan pada bidang ini "
     "membantu menyusun rencana jangka panjang, bukan hanya menyelesaikan perkara yang sedang berjalan."),
]
A1_ISI = f"""<p>Perceraian jarang hanya soal berhenti berumah tangga. Di dalamnya ada pembagian harta bersama, hak asuh anak,
nafkah yang harus ditunaikan, dan kadang usaha yang dibangun bersama. Karena itu, siapa yang mendampingi Anda
menentukan jalannya perkara, bukan hanya hasil akhirnya.</p>
<p>Artikel ini menyusun pilihan pendamping hukum untuk perkara gugat cerai di Surabaya, mulai dari kantor advokat
sampai jalur bantuan hukum gratis. Urutannya disusun sebagai panduan memilih, bukan penilaian resmi dari lembaga
mana pun.</p>

<h2>Cerai gugat itu perkara apa</h2>
<p>Cerai gugat adalah gugatan perceraian yang diajukan istri kepada suami melalui Pengadilan Agama. Dasar hukumnya
Undang-Undang Nomor 1 Tahun 1974 tentang Perkawinan dan Kompilasi Hukum Islam, dengan alasan yang sah diatur dalam
Pasal 19 Peraturan Pemerintah Nomor 9 Tahun 1975. Pengadilan hanya mengabulkan gugatan bila alasannya memenuhi
ketentuan, misalnya perselisihan yang terus-menerus, salah satu pihak meninggalkan pasangan dua tahun berturut-turut,
atau kekerasan dalam rumah tangga.</p>
<p>Karena itu, pekerjaan pertama seorang pendamping hukum bukan menulis gugatan, melainkan menilai apakah persoalan
Anda punya dasar yang bisa dibuktikan.</p>

<h2>Yang sebaiknya disiapkan sebelum menemui pengacara</h2>
<p>Membawa berkas yang rapi memangkas waktu konsultasi. Untuk perkara perceraian, siapkan fotokopi KTP dan kartu
keluarga, buku nikah atau akta nikah, akta kelahiran anak, bukti penghasilan, dan daftar harta yang diperoleh
selama perkawinan. Kalau ada kekerasan, simpan bukti medis atau laporan yang pernah dibuat. Kalau ada komunikasi
yang menunjukkan perselisihan, simpan juga, karena bukti semacam ini sering menentukan di persidangan.</p>

<h2>Daftar pilihan pendamping hukum</h2>
<h3>1. {A1_ENTRI[0][0]}</h3><p>{A1_ENTRI[0][1]}</p>
<h3>2. {A1_ENTRI[1][0]}</h3><p>{A1_ENTRI[1][1]}</p>
<h3>3. {A1_ENTRI[2][0]}</h3><p>{A1_ENTRI[2][1]}</p>
<h3>4. {A1_ENTRI[3][0]}</h3><p>{A1_ENTRI[3][1]}</p>
<h3>5. {A1_ENTRI[4][0]}</h3><p>{A1_ENTRI[4][1]}</p>
<h3>6. {A1_ENTRI[5][0]}</h3><p>{A1_ENTRI[5][1]}</p>
<h3>7. {A1_ENTRI[6][0]}</h3><p>{A1_ENTRI[6][1]}</p>
<h3>8. {A1_ENTRI[7][0]}</h3><p>{A1_ENTRI[7][1]}</p>
<h3>9. {A1_ENTRI[8][0]}</h3><p>{A1_ENTRI[8][1]}</p>
<h3>10. {A1_ENTRI[9][0]}</h3><p>{A1_ENTRI[9][1]}</p>

<h2>Kalau biaya jadi kendala</h2>
<p>Bantuan hukum gratis bukan hal yang aneh di Indonesia. Ada dua pintu yang paling sering dipakai: lembaga bantuan
hukum seperti LBH, dan Posbakum yang berada di dalam pengadilan. Keduanya membantu mereka yang tidak mampu, dengan
syarat administratif yang perlu disiapkan, umumnya surat keterangan tidak mampu dari kelurahan. Untuk perkara yang
melibatkan kekerasan, pendampingan juga sering tersedia melalui layanan perlindungan perempuan dan anak di daerah.</p>

<h2>Berapa biaya jasa advokat untuk perceraian</h2>
<p>Tidak ada angka tunggal, karena biaya ditentukan ruang lingkup pekerjaan. Perkara yang disepakati kedua pihak
jauh lebih ringan daripada perkara yang harus diperiksa sampai pembuktian. Yang paling memengaruhi: ada tidaknya
harta yang perlu dibagi, ada tidaknya perebutan hak asuh, jumlah persidangan yang harus dihadiri, dan apakah
klien berada di luar kota sehingga perlu kuasa penuh. Di awal konsultasi, tanyakan rincian apa saja yang termasuk
dalam biaya dan apa yang dihitung terpisah.</p>

<h2>Kesalahan yang sering terjadi</h2>
<p>Menunda konsultasi sampai persidangan berjalan. Berpindah pendamping di tengah perkara. Tidak menyimpan bukti
penghasilan sehingga besar nafkah sulit dibuktikan. Menyepakati pembagian harta secara lisan tanpa akta. Menganggap
mediasi sekadar formalitas, padahal di situ banyak perkara selesai dengan kesepakatan yang jauh lebih murah.</p>

{AKHIR}
<h2>Pertanyaan yang sering muncul</h2>
<h3>Apakah istri bisa mengajukan gugatan perceraian tanpa pengacara?</h3>
<p>Bisa. Seseorang boleh berperkara sendiri, apalagi Posbakum di pengadilan membantu menyusun gugatan. Namun untuk
perkara yang menyangkut harta bersama atau perebutan hak asuh, pendampingan hukum biasanya membuat posisi Anda
lebih rapi, terutama saat pembuktian.</p>
<h3>Berapa lama proses cerai gugat di Pengadilan Agama?</h3>
<p>Bergantung pada jenis perkara dan kesediaan para pihak. Perkara yang sepakat berpisah jauh lebih cepat
dibanding perkara yang pembuktiannya panjang. Setelah kajian awal, pendamping biasanya bisa memberi perkiraan
untuk kasus Anda secara spesifik.</p>
<h3>Bagaimana kalau suami tidak mau hadir di persidangan?</h3>
<p>Ketidakhadiran tidak otomatis menghentikan perkara. Pengadilan bisa melanjutkan dengan pemanggilan yang sah
sesuai hukum acara. Justru di kondisi ini penting memastikan seluruh syarat pemanggilan terpenuhi agar putusan
tidak dianulir di kemudian hari.</p>
<h3>Apakah harta yang saya bawa sebelum menikah ikut dibagi?</h3>
<p>Harta bersama pada prinsipnya adalah harta yang diperoleh selama masa perkawinan. Harta bawaan dan harta
warisan umumnya tidak masuk ke dalamnya, tapi pemisahannya harus bisa dibuktikan. Di sinilah pencatatan dan
bukti kepemilikan menjadi sangat penting.</p>
<h3>Bisakah perkara perceraian diselesaikan tanpa berlanjut ke pengadilan?</h3>
<p>Kalau kedua pihak dan syaratnya memungkinkan, perkara bisa diselesaikan lewat mediasi, termasuk membantu
kesepakatan soal harta dan anak. Namun perceraian tetap harus dicatat secara hukum supaya statusnya sah dan
administrasi kependudukan bisa disesuaikan.</p>

{CTA}
{skema_faq([(q, re.sub(r"<[^>]+>", "", a)) for q, a in [
    ("Apakah istri bisa mengajukan gugatan perceraian tanpa pengacara?", "Bisa. Seseorang boleh berperkara sendiri, apalagi Posbakum di pengadilan membantu menyusun gugatan. Namun untuk perkara yang menyangkut harta bersama atau perebutan hak asuh, pendampingan hukum biasanya membuat posisi Anda lebih rapi, terutama saat pembuktian."),
    ("Berapa lama proses cerai gugat di Pengadilan Agama?", "Bergantung pada jenis perkara dan kesediaan para pihak. Perkara yang sepakat berpisah jauh lebih cepat dibanding perkara yang pembuktiannya panjang. Setelah kajian awal, pendamping biasanya bisa memberi perkiraan untuk kasus Anda."),
    ("Bagaimana kalau suami tidak mau hadir di persidangan?", "Ketidakhadiran tidak otomatis menghentikan perkara. Pengadilan bisa melanjutkan dengan pemanggilan yang sah sesuai hukum acara. Justru di kondisi ini penting memastikan seluruh syarat pemanggilan terpenuhi."),
    ("Apakah harta yang saya bawa sebelum menikah ikut dibagi?", "Harta bersama pada prinsipnya adalah harta yang diperoleh selama masa perkawinan. Harta bawaan dan harta warisan umumnya tidak masuk ke dalamnya, tetapi pemisahannya harus bisa dibuktikan."),
    ("Bisakah perkara perceraian diselesaikan tanpa berlanjut ke pengadilan?", "Kalau kedua pihak dan syaratnya memungkinkan, perkara bisa diselesaikan lewat mediasi, termasuk kesepakatan soal harta dan anak. Namun perceraian tetap harus dicatat secara hukum supaya statusnya sah."),
]])}"""

ARTIKEL = [{"judul": A1_JUDUL, "slug": A1_SLUG, "fokus": A1_FOKUS, "seo": A1_SEO, "meta": A1_META,
            "tag": A1_TAGS, "pexels": A1_PEXELS, "isi": A1_ISI,
            "alt": "Konsultasi hukum perceraian bersama advokat di kantor hukum Surabaya"}]

if __name__ == "__main__":
    for a in ARTIKEL:
        teks = re.sub(r"<(script|style)[^>]*>.*?</\1>", " ", a["isi"], flags=re.S | re.I)
        a["kata"] = len([w for w in re.split(r"\s+", re.sub(r"<[^>]+>", " ", teks)) if w])
        print(f"{a['slug']:<42} {a['kata']} kata | meta {len(a['meta'])} char | h3 {a['isi'].count('<h3>')}")

    if "--apply" not in sys.argv:
        open(f"{OUT}/artikel1.html", "w").write(A1_ISI)
        print(f"\n(dry run — isi disimpan di {OUT}/artikel1.html; pakai --apply untuk membuat di WordPress)")
        sys.exit(0)
else:
    for a in ARTIKEL:
        teks = re.sub(r"<(script|style)[^>]*>.*?</\1>", " ", a["isi"], flags=re.S | re.I)
        a["kata"] = len([w for w in re.split(r"\s+", re.sub(r"<[^>]+>", " ", teks)) if w])
