#!/usr/bin/env python3
"""TSLaw: artikel keenambelas - 6 Pengacara Pencemaran Nama Baik dan UU ITE di Surabaya.
Aturan: 1.000-1.300 kata tanpa padding, entri 1 Tito Suprianto Law Firm + tautan beranda,
lembaga/peran nyata (LBH Surabaya, Posbakum PN Surabaya, Pusat Bantuan Hukum PERADI,
Subdit Siber Ditreskrimsus Polda Jatim & Polrestabes Surabaya, Komdigi), tombol WA di akhir,
FAQ 5 + schema FAQPage, kategori 14 + 4 tag, meta Yoast REST. Tautan internal memakai
alamat bersih (permalank sudah kembali ke /%postname%/ - diuji 200). Gaya lewat pass humanizer:
tanpa em dash, tanpa kutip melengkung, tanpa karakter CJK.
Salinan isi disimpan ke artikel16.html sebelum dikirim (REST JSON saja)."""
import json, os, re

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%20soal%20pencemaran%20nama%20baik" 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 Pencemaran Nama Baik 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. Pemeriksaan awal bukti dan kronologi perkara Anda gratis.</p>"""

FAQ = [
    ('Apakah saya bisa melaporkan pencemaran nama baik tanpa melapor sendiri?',
     'Tidak. Pasal 27A UU ITE adalah delik aduan, jadi penyidikan baru berjalan kalau korban atau pihak '
     'yang secara hukum mewakilinya mengadu. Laporan dari orang lain yang tidak punya hubungan dengan '
     'korban biasanya tidak diterima.'),
    ('Apa bedanya laporan pidana dan gugatan ganti rugi?',
     'Laporan pidana mengejar hukuman bagi pelaku, sedangkan gugatan perdata menuntut pemulihan kerugian '
     'yang nyata Anda alami. Keduanya bisa berjalan sendiri atau bersamaan. Gugatan perdata atas perbuatan '
     'melawan hukum memakai dasar Pasal 1365 KUHPerdata, dan nilai kerugiannya harus bisa Anda buktikan.'),
    ('Kalau saya yang dilaporkan, apa yang harus saya lakukan lebih dulu?',
     'Amankan bukti bahwa apa yang Anda sampaikan punya dasar, lalu jangan menambah pernyataan baru di '
     'media sosial. Panggilan pemeriksaan pertama biasanya membahas kronologi, jadi susun urutan peristiwa '
     'secara tertulis. Permintaan maaf yang dirumuskan sembarangan bisa dipakai pihak lain, jadi '
     'diskusikan pilihannya dengan pendamping lebih dulu.'),
    ('Bisakah konten yang mencemarkan nama saya dihapus?',
     'Bisa diajukan. Aduan konten di platform dikirim lewat Kementerian Komunikasi dan Digital serta fitur '
     'pelaporan layanan masing-masing, sementara untuk pemberitaan pers jalurnya adalah hak jawab dan hak '
     'koreksi yang difasilitasi Dewan Pers. Penghapusan konten tidak menghapus tanggung jawab pidana '
     'pelakunya.'),
    ('Apakah kritik bisa dijerat UU ITE?',
     'Kritik atas kebijakan, layanan, atau produk tetap boleh selama disampaikan lewat fakta dan bukan '
     'serangan pribadi. Yang dijerat Pasal 27A adalah serangan terhadap kehormatan atau nama baik orang, '
     'bukan penilaian atas kualitas pekerjaan. Batas itu yang biasanya jadi titik sengketa, sehingga '
     'pembuktian soal konteks pernyataan menjadi kunci perkaranya.'),
]

ENTRI = [
    ('Tito Suprianto Law Firm',
     'Kantor advokat di Surabaya yang mendampingi klien dari dua sisi perkara: korban yang namanya dirusak '
     'di media sosial, dan pihak yang dilaporkan karena tulisannya. Langkah kerjanya dimulai dari '
     'membedakan kritik yang sah dari penghinaan, lalu menyusun bukti sebelum bicara pasal. Pendampingan '
     'mencakup pemeriksaan di kepolisian sampai persidangan. Profil dan bidang layanannya ada di '
     '<a href="https://www.tslaw.id/">beranda TS Law</a>.'),
    ('LBH Surabaya',
     'Lembaga bantuan hukum yang menangani perkara warga tidak mampu tanpa biaya, termasuk penghinaan dan '
     'pencemaran nama baik yang memakai media sosial. Layanan yang diberikan berupa konsultasi, penyusunan '
     'surat, sampai pendampingan di persidangan. Jumlah advokatnya terbatas, jadi datanglah dengan kronologi '
     'tertulis, tangkapan layar yang lengkap, dan tautan unggahan yang dipersoalkan.'),
    ('Posbakum Pengadilan Negeri Surabaya',
     'Pos layanan bantuan hukum di pengadilan memberi bantuan awal gratis: menjelaskan alur perkara, membantu '
     'menyusun gugatan sederhana atas kerugian nama baik, dan mendampingi di persidangan. Untuk pihak yang '
     'tidak mampu, biaya perkara bisa dimintakan pembebasan lewat jalur ini.'),
    ('Pusat Bantuan Hukum PERADI',
     'Sayap layanan masyarakat organisasi advokat yang menyalurkan advokat untuk perkara pro bono. Cocok '
     'kalau perkara Anda tidak terlalu rumit tetapi tetap butuh advokat berizin, misalnya untuk menyusun '
     'somasi atau mendampingi pemeriksaan sebagai saksi. Biaya jasa ditanggung program, sementara biaya '
     'perkara di pengadilan kadang tetap dibebankan ke pihak yang berperkara.'),
    ('Subdit Siber Ditreskrimsus Polda Jawa Timur dan Polrestabes Surabaya',
     'Laporan atas ancaman, penghinaan, atau penyebaran data pribadi lewat pesan elektronik masuk ke '
     'penyidik. Unit siber menangani perkara yang memakai akun media sosial dan pesan aplikasi, sementara '
     'Polrestabes menerima laporan di wilayah kota Surabaya. Bawa tangkapan layar lengkap dengan tautan, '
     'nama akun, tanggal unggahan, dan saksi kalau ada.'),
    ('Kementerian Komunikasi dan Digital',
     'Lembaga pemerintah yang menerima aduan konten elektronik yang melanggar aturan, termasuk dugaan '
     'pencemaran nama baik dan penyebaran data pribadi. Aduan dikirim lewat kanal resmi aduankonten.id '
     'dengan lampiran tautan dan tangkapan layar. Hasilnya berupa tindakan atas konten, bukan putusan '
     'hukum, jadi jalur ini berjalan berdampingan dengan laporan pidana.'),
]

ISI = """<p>Pengacara pencemaran nama baik surabaya dicari oleh dua pihak yang posisinya berlawanan. Ada orang yang
merasa nama baiknya dirusak unggahan atau percakapan di media sosial dan ingin menempuh jalur hukum. Ada pula
yang justru dilaporkan atau digugat karena tulisannya, lalu butuh pendamping supaya haknya terjaga.
Dua-duanya berhadapan dengan Pasal 27A UU ITE, dan cara menghadapinya tidak sama.</p>
<p>Halaman ini mengumpulkan enam tempat dan peran yang benar-benar ada di Surabaya untuk urusan pencemaran nama
baik, menjelaskan batas yang diatur hukum, lalu menutup dengan lima pertanyaan yang sering masuk lewat
WhatsApp.</p>

<h2>Apa yang diatur UU ITE soal pencemaran nama baik</h2>
<p>Pasal 27A UU Informasi dan Transaksi Elektronik, sebagaimana diubah terakhir oleh UU Nomor 1 Tahun 2024,
melarang setiap orang dengan sengaja menyerang kehormatan atau nama baik orang lain lewat informasi elektronik.
Sanksi pidananya ada di Pasal 45. Dua pasal itu yang paling sering dipakai dalam laporan ke polisi.</p>
<p>Ada dua hal yang sering salah dipahami. Pertama, ini delik aduan: penyidikan baru berjalan kalau korban atau
pihak yang berhak melapor. Kedua, jalur pidana bukan satu-satunya pilihan. Korban bisa menuntut ganti rugi
lewat gugatan perbuatan melawan hukum dengan dasar Pasal 1365 KUHPerdata. Batas antara kritik yang sah dan
penghinaan baru jelas setelah konteks pernyataannya diuji, bukan dari potongan kalimat yang dibaca di layar.</p>
<p>Untuk perkara yang sama sekali tidak memakai media elektronik, ketentuan penghinaan diatur dalam KUHP baru,
UU Nomor 1 Tahun 2023, yang mulai berlaku awal 2026. Kalau Anda belum yakin peristiwanya masuk pasal yang mana,
bahas unsur-unsurnya bersama advokat sebelum membuat laporan. Laporan yang salah dirumuskan lebih mudah
dipatahkan di tahap penyidikan.</p>

<h2>Enam tempat meminta pendampingan pencemaran nama baik di Surabaya</h2>
<p>Sebagian entri di bawah ini kantor advokat, sebagian lembaga bantuan hukum, dan sebagian lagi lembaga yang
menerima aduan. Semuanya benar-benar ada di Surabaya dan di tingkat nasional.</p>
<h3>1. {E0}</h3><p>{E0T}</p>
<h3>2. {E1}</h3><p>{E1T}</p>
<h3>3. {E2}</h3><p>{E2T}</p>
<h3>4. {E3}</h3><p>{E3T}</p>
<h3>5. {E4}</h3><p>{E4T}</p>
<h3>6. {E5}</h3><p>{E5T}</p>

<h2>Yang perlu disiapkan sebelum menemui advokat</h2>
<p>Perkara pencemaran nama baik berdiri di atas bukti, bukan cerita. Sebelum konsultasi pertama, rapikan
enam hal ini supaya waktu Anda tidak habis untuk urusan administrasi.</p>
<ol>
<li>Tangkapan layar utuh: nama akun, tanggal, dan kalimatnya terbaca dalam satu gambar.</li>
<li>Tautan unggahan dan arsipnya, karena tautan hidup bisa berubah atau dihapus.</li>
<li>Kronologi singkat: siapa menulis apa, kapan, di platform mana, dan apa yang terjadi sesudahnya.</li>
<li>Bukti dampak yang nyata, misalnya pesanan yang dibatalkan atau kerja sama yang batal.</li>
<li>Identitas akun yang dipersoalkan: nama tampilan, nama pengguna, dan pemiliknya kalau diketahui.</li>
<li>Catatan upaya penyelesaian, seperti teguran yang pernah Anda kirim.</li>
</ol>
<p>Dari perkara yang masuk ke kantor kami, yang paling sering melemahkan posisi klien bukan isi serangan
namanya, melainkan tangkapan layar yang terhapus dan kronologi yang disusun dari ingatan. Kalau Anda mencari
pengacara pencemaran nama baik Surabaya, urutan langkahnya ada di
<a href="https://www.tslaw.id/7-langkah-hukum-melaporkan-pencemaran-nama-baik-di-media-sosial/">tujuh langkah
hukum melaporkan pencemaran nama baik di media sosial</a>.</p>

<h2>Somasi, hak jawab, dan mediasi sebelum perkara naik</h2>
<p>Tidak semua sengketa nama baik langsung berakhir di pengadilan. Untuk banyak kasus, somasi tertulis lebih
dulu dikirim ke pihak yang menulis atau memublikasikan. Somasi biasanya memuat permintaan penjelasan,
penarikan pernyataan, dan tenggat yang jelas, sekaligus menutup peluang pihak lain mengaku tidak pernah
ditegur. Untuk pemberitaan media, jalur pertama yang tersedia adalah hak jawab dan hak koreksi sesuai UU
Pers, yang difasilitasi Dewan Pers.</p>
<p>Kalau perkaranya perdata, pengadilan mewajibkan mediasi lebih dulu lewat prosedur yang diatur dalam Perma
Nomor 1 Tahun 2016. Banyak perkara selesai di tahap ini dengan permintaan maaf dan pemulihan nama baik, tanpa
putusan yang dibaca publik. Somasi dan mediasi bukan basa-basi, melainkan peluang menyelesaikan masalah
dengan kerusakan sekecil mungkin.</p>
<p>Untuk kasus yang berbenturan dengan kepentingan lain, misalnya pelaporan palsu atau persaingan dagang yang
tidak sehat, pemetaan awal jadi penting supaya arah gugatan tidak keliru. Gambaran umum tentang
<a href="https://www.tslaw.id/3-perbedaan-gugatan-perdata-dan-pidana-yang-perlu-dipahami/">perbedaan gugatan
perdata dan pidana</a> membantu menempatkan peristiwa Anda pada jalur yang tepat, sementara
<a href="https://www.tslaw.id/4-jenis-perkara-pidana-yang-sering-terjadi-di-masyarakat-indonesia/">beberapa
jenis perkara pidana yang sering terjadi di Indonesia</a> memberi contoh perkara sejenis. Kalau anggaran Anda
terbatas, langkah pertama yang masuk akal adalah
<a href="https://www.tslaw.id/6-cara-mendapatkan-bantuan-hukum-gratis-di-surabaya-untuk-masyarakat/">enam cara
mendapatkan bantuan hukum gratis di Surabaya</a>.</p>

<h2>Baca juga</h2>
<p>Urutan surat sebelum berperkara ada di
<a href="https://www.tslaw.id/7-hal-penting-tentang-somasi-yang-wajib-dipahami-sebelum-menggugat-ke-pengadilan/">hal
penting tentang somasi sebelum menggugat</a>. Rambu konten dan data pribadi ada di
<a href="https://www.tslaw.id/rambu-legal-untuk-konten-kreator-yang-perlu-di-ketahui/">rambu legal untuk konten
kreator</a> dan
<a href="https://www.tslaw.id/panduan-praktis-perlindungan-data-pribadi-untuk-umkm-langkah-mudah-dan-murah/">panduan
perlindungan data pribadi</a>, sementara hak Anda sebagai pengguna jasa ada di
<a href="https://www.tslaw.id/hak-konsumen-di-indonesia-perlindungan-hukum/">hak konsumen di Indonesia</a>.
Gambaran kantor kami ada di <a href="https://www.tslaw.id/layanan/">halaman layanan</a> dan
<a href="https://www.tslaw.id/hubungi/">halaman kontak</a>.</p>

<h2>Pertanyaan yang sering muncul</h2>
"""

_e = ENTRI
for i in range(len(_e)):
    ISI = ISI.replace("{%s}" % f"E{i}", _e[i][0]).replace("{%s}" % f"E{i}T", _e[i][1])

ISI += "\n".join(f"<h3>{q}</h3><p>{a}</p>" for q, a in FAQ) + f"""

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

A16 = {"judul": "6 Pengacara Pencemaran Nama Baik dan UU ITE di Surabaya",
       "slug": "pengacara-pencemaran-nama-baik-surabaya",
       "fokus": "pengacara pencemaran nama baik surabaya",
       "seo": "Pengacara Pencemaran Nama Baik Surabaya: 6 Tempat",
       "meta": ("Pengacara pencemaran nama baik surabaya: 6 tempat meminta pendampingan saat Anda dilaporkan "
                "atau ingin melapor, plus dasar hukum UU ITE."),
       "tag_nama": ["pencemaran nama baik", "UU ITE", "advokat", "hukum media sosial"],
       "isi": ISI}

if __name__ == "__main__":
    teks = re.sub(r"<(script|style)[^>]*>.*?</\1>", " ", A16["isi"], flags=re.S | re.I)
    kata = len([w for w in re.split(r"\s+", re.sub(r"<[^>]+>", " ", teks)) if w])
    print(f"{A16['slug']}")
    print(f"  kata       : {kata} (batas 1000-1300)")
    print(f"  meta       : {len(A16['meta'])} char (batas 158)")
    print(f"  judul SEO  : {len(A16['seo'])} char (batas 60)")
    print(f"  H1         : {len(A16['judul'])} char")
    print(f"  h2/h3      : {A16['isi'].count('<h2>')}/{A16['isi'].count('<h3>')}")
    print(f"  keyphrase di isi : {A16['isi'].lower().count(A16['fokus'])} kali")
    print(f"  meta mulai keyphrase : {A16['meta'].lower().startswith(A16['fokus'])}")
    print(f"  wa.me      : {'ada' if 'wa.me/' + WA in A16['isi'] else 'TIDAK'}")
    print(f"  FAQPage    : {'ada' if 'FAQPage' in A16['isi'] else 'TIDAK'}")
    print(f"  beranda    : {'ada' if 'https://www.tslaw.id/' in A16['isi'] else 'TIDAK'}")
    cjk = re.findall(r"[\u3000-\u9fff\uac00-\ud7af]", A16["isi"])
    print(f"  karakter CJK: {len(cjk)} {'(BERSIH)' if not cjk else cjk[:10]}")
    sisa = re.findall(r"\{[A-Za-z_\[\]0-9]+\}", A16["isi"])
    print(f"  placeholder: {len(sisa)} {'(BERSIH)' if not sisa else sisa[:5]}")
    print(f"  em dash    : {A16['isi'].count(chr(8212))}")
    print(f"  kutip melengkung: {len(re.findall(chr(8220) + '|' + chr(8221) + '|' + chr(8216) + '|' + chr(8217), A16['isi']))}")
    link = re.findall(r'href="(https?://[^"]+)"', A16["isi"])
    print(f"  tautan unik : {len(set(link))}")
    for l in sorted(set(link)):
        print("     ", l)
    open(f"{OUT}/artikel16.html", "w").write(A16["isi"])
    print(f"  salinan isi: {OUT}/artikel16.html")
