#!/usr/bin/env python3
"""TSLaw: susun ulang konten beranda (#833) dari potongan asli situs + teks asli mereka.
Hero & penutup disalin apa adanya dari halaman lain (desain asli). Bagian tengah pakai blok standar.
Jalankan --apply untuk menulis ke WordPress (lewat REST, bukan XML-RPC)."""
import base64, json, os, sys, time, urllib.request, urllib.error

DOM = "tslaw.id"
AUTH = base64.b64encode(b"bambangbot:EFKm EYGx VQCP Y9go ncPr uM2Y").decode()
BASE = "/home/mantapman/.hermes/profiles/atun/workspace/tslaw_pemulihan"

hero = open(f"{BASE}/salinan/potongan/hero.txt").read()
cta = open(f"{BASE}/salinan/cta_2798_artikel.txt").read()

# hero: ganti judul jadi menyasar kata kunci utama (teks asli dipertahankan selebihnya)
hero_baru = hero.replace('"text":"Tentang Tito Supriyanto Law Firm"', '"text":"Law Firm & Konsultan Hukum Surabaya"')
hero_baru = hero_baru.replace('"text":"Tentang Tito Suprianto Law Firm"', '"text":"Law Firm & Konsultan Hukum Surabaya"')
print(f"hero: {len(hero)} → {len(hero_baru)} char | judul diganti: {'YA' if hero_baru != hero else 'TIDAK'}")

LAYANAN = [
    ("Konsultasi Hukum", "Memberikan pendampingan dan konsultasi hukum profesional untuk individu maupun perusahaan dalam menghadapi berbagai permasalahan hukum. Tim TS Law membantu memberikan solusi yang tepat, terukur, dan sesuai kebutuhan klien."),
    ("Litigasi Perdata dan Pidana", "Mewakili klien dalam proses penyelesaian sengketa melalui jalur pengadilan, baik perkara perdata maupun pidana. TS Law berkomitmen memberikan strategi hukum yang efektif untuk melindungi hak dan kepentingan klien."),
    ("Penyelesaian Sengketa dan Mediasi", "Membantu klien menyelesaikan konflik melalui negosiasi, mediasi, maupun arbitrase guna mencapai solusi yang efisien tanpa harus melalui proses litigasi yang panjang."),
    ("Hukum Korporasi dan Bisnis", "Memberikan layanan hukum bagi perusahaan mulai dari pendirian usaha, perubahan anggaran dasar, restrukturisasi perusahaan, hingga kepatuhan hukum dalam operasional bisnis sehari-hari."),
    ("Pembuatan dan Review Kontrak", "Menyusun dan menelaah kontrak bisnis agar hak dan kewajiban para pihak jelas, risiko dapat diperkirakan, dan pelaksanaan kerja sama berjalan tanpa perdebatan yang tidak perlu."),
    ("Legal Opinion dan Legal Due Diligence", "Menyediakan pendapat hukum (Legal Opinion) dan pemeriksaan hukum (Legal Due Diligence) yang komprehensif untuk mendukung keputusan bisnis, investasi, maupun transaksi perusahaan."),
    ("Hukum Ketenagakerjaan", "Memberikan pendampingan terkait hubungan kerja, penyusunan peraturan perusahaan, perjanjian kerja, penyelesaian perselisihan tenaga kerja, hingga perlindungan hak perusahaan dan karyawan."),
    ("Perizinan dan Kepatuhan Usaha", "Membantu pengurusan berbagai perizinan usaha serta memastikan seluruh kegiatan bisnis berjalan sesuai dengan regulasi dan ketentuan hukum yang berlaku di Indonesia."),
    ("Hak Kekayaan Intelektual (HKI)", "Memberikan layanan pendaftaran, perlindungan, dan penegakan hak atas merek, hak cipta, paten, serta kekayaan intelektual lainnya guna menjaga nilai dan aset bisnis klien."),
]

LANGKAH = [
    ("Konsultasi Awal", "Kami memulai dengan mendengarkan kebutuhan dan permasalahan hukum yang Anda hadapi. Tim TS Law melakukan analisis mendalam terhadap fakta, dokumen, serta aspek hukum terkait."),
    ("Penyusunan Strategi", "Setelah evaluasi, kami menyusun strategi hukum yang tepat sesuai tujuan dan kepentingan klien, dengan mempertimbangkan risiko serta peluang penyelesaian."),
    ("Pendampingan", "Kami mendampingi Anda pada setiap tahapan proses hukum, baik melalui negosiasi, mediasi, arbitrase, maupun litigasi di pengadilan, dengan komunikasi yang transparan."),
    ("Laporan Perkembangan", "Setiap perkembangan perkara disampaikan kepada klien, sehingga Anda selalu tahu posisi terakhir dan langkah berikutnya."),
]

FAQ = [
    ("Apa saja layanan hukum yang ditangani oleh TS Law?", "TS Law menyediakan layanan hukum mulai dari konsultasi hukum, litigasi perdata dan pidana, penyelesaian sengketa, hukum korporasi, pembuatan dan review kontrak, hukum ketenagakerjaan, perizinan dan kepatuhan usaha, hingga hak kekayaan intelektual."),
    ("Bagaimana cara melakukan konsultasi dengan TS Law?", "Anda dapat menghubungi tim kami melalui telepon, WhatsApp, email, atau mengisi formulir konsultasi yang tersedia di website. Tim kami akan menjadwalkan sesi konsultasi sesuai kebutuhan Anda."),
    ("Apakah konsultasi dapat dilakukan secara online?", "Ya. TS Law menyediakan layanan konsultasi hukum secara online maupun tatap muka untuk memudahkan klien dari berbagai lokasi mendapatkan pendampingan hukum yang profesional."),
    ("Apakah TS Law menangani klien perorangan dan perusahaan?", "Tentu. Kami melayani kebutuhan hukum individu, UMKM, startup, perusahaan swasta, hingga organisasi yang membutuhkan pendampingan dan perlindungan hukum."),
    ("Berapa biaya jasa hukum di TS Law?", "Biaya jasa hukum disesuaikan dengan jenis layanan, tingkat kompleksitas perkara, dan ruang lingkup pekerjaan. Setelah konsultasi awal, kami memberikan penawaran biaya yang transparan."),
    ("Apakah informasi yang saya sampaikan akan dirahasiakan?", "Ya. Seluruh informasi, dokumen, dan komunikasi klien dijaga kerahasiaannya sesuai kode etik profesi dan standar profesional yang berlaku."),
    ("Apakah TS Law dapat membantu penyelesaian sengketa tanpa melalui pengadilan?", "Ya. Kami selalu mempertimbangkan solusi paling efektif bagi klien, termasuk melalui negosiasi, mediasi, atau arbitrase sebelum menempuh jalur litigasi."),
    ("Dokumen apa saja yang perlu disiapkan saat konsultasi?", "Bergantung pada jenis permasalahan hukumnya. Umumnya Anda dapat menyiapkan identitas diri, surat perjanjian, bukti transaksi, surat menyurat, atau dokumen lain yang berkaitan dengan perkara."),
    ("Berapa lama proses penyelesaian suatu perkara hukum?", "Durasi berbeda-beda tergantung jenis kasus, kompleksitas, dan proses yang harus dilalui. Tim kami memberikan estimasi waktu setelah melakukan kajian awal."),
    ("Mengapa memilih TS Law sebagai partner hukum?", "TS Law mengutamakan profesionalisme, integritas, dan solusi yang berorientasi pada kepentingan klien. Dengan pengalaman dan pendekatan yang strategis, kami berkomitmen memberikan layanan hukum yang dapat diandalkan."),
]

bagian = []
bagian.append(hero_baru)

bagian.append(f"""
<!-- wp:group {{"style":{{"spacing":{{"padding":{{"top":"70px","bottom":"40px"}}}}}},"layout":{{"type":"constrained"}}}} -->
<div class="wp-block-group" style="padding-top:70px;padding-bottom:40px">
<!-- wp:heading {{"level":2}} -->
<h2 class="wp-block-heading">Tentang Tito Suprianto Law Firm</h2>
<!-- /wp:heading -->
<!-- wp:paragraph -->
<p>Kami memahami bahwa setiap persoalan hukum memiliki karakter yang berbeda, sehingga membutuhkan pendekatan yang spesifik, detail, dan penuh ketelitian. Dengan pengalaman dalam menangani kebutuhan hukum perusahaan maupun individu, kami berkomitmen menjadi mitra hukum yang memberikan perlindungan dan kepastian hukum bagi setiap klien.</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>Kantor kami berbasis di Surabaya dan melayani klien dari berbagai kota, baik untuk kebutuhan konsultasi, pendampingan transaksi bisnis, maupun penyelesaian sengketa.</p>
<!-- /wp:paragraph -->
</div>
<!-- /wp:group -->
""")

services = ['<!-- wp:group {"style":{"spacing":{"padding":{"top":"40px","bottom":"40px"}}},"layout":{"type":"constrained"}} -->',
            '<div class="wp-block-group" style="padding-top:40px;padding-bottom:40px">',
            '<!-- wp:heading {"level":2} --><h2 class="wp-block-heading">Layanan Hukum</h2><!-- /wp:heading -->',
            '<!-- wp:paragraph --><p>Setiap perkara ditangani dengan langkah yang terukur, mulai dari membaca dokumen, menyusun strategi, sampai mendampingi Anda di proses hukum.</p><!-- /wp:paragraph -->']
for nama, isi in LAYANAN:
    services.append(f'<!-- wp:heading {{"level":3}} --><h3 class="wp-block-heading">{nama}</h3><!-- /wp:heading -->')
    services.append(f"<!-- wp:paragraph --><p>{isi}</p><!-- /wp:paragraph -->")
services.append("</div>\n<!-- /wp:group -->")
bagian.append("\n".join(services))

langkah = ['<!-- wp:group {"style":{"spacing":{"padding":{"top":"40px","bottom":"40px"}}},"layout":{"type":"constrained"}} -->',
           '<div class="wp-block-group" style="padding-top:40px;padding-bottom:40px">',
           '<!-- wp:heading {"level":2} --><h2 class="wp-block-heading">Bagaimana Kami Bekerja</h2><!-- /wp:heading -->',
           '<!-- wp:list {"ordered":true} -->',
           '<ol class="wp-block-list">']
for nama, isi in LANGKAH:
    langkah.append(f"<li><strong>{nama}.</strong> {isi}</li>")
langkah.append('</ol>\n<!-- /wp:list -->\n</div>\n<!-- /wp:group -->')
bagian.append("\n".join(langkah))

fq = ['<!-- wp:group {"style":{"spacing":{"padding":{"top":"40px","bottom":"40px"}}},"layout":{"type":"constrained"}} -->',
      '<div class="wp-block-group" style="padding-top:40px;padding-bottom:40px">',
      '<!-- wp:heading {"level":2} --><h2 class="wp-block-heading">Pertanyaan yang Sering Diajukan</h2><!-- /wp:heading -->']
for q, a in FAQ:
    fq.append(f'<!-- wp:heading {{"level":3}} --><h3 class="wp-block-heading">{q}</h3><!-- /wp:heading -->')
    fq.append(f"<!-- wp:paragraph --><p>{a}</p><!-- /wp:paragraph -->")
fq.append("</div>\n<!-- /wp:group -->")
bagian.append("\n".join(fq))

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

konten = "\n\n".join(bagian)
f = f"{BASE}/beranda_baru.txt"
open(f, "w").write(konten)
print(f"\nkonten baru: {len(konten)} karakter → {f}")
print(f"  hero: {'ada' if 'spectra/container' in konten[:5000] else 'TIDAK'} | "
      f"penutup: {'ada' if 'Kami Bantu Selesaikan Masalah Hukum Anda' in konten else 'TIDAK'} | "
      f"FAQ: {len(FAQ)} | layanan: {len(LAYANAN)} | langkah: {len(LANGKAH)} | schema: {'ada' if 'FAQPage' in konten else 'TIDAK'}")

if "--apply" not in sys.argv:
    print("\n(dry run — pakai --apply untuk menulis ke WordPress)")
    sys.exit(0)


def rest(path, method="GET", data=None):
    h = {"Authorization": f"Basic {AUTH}", "User-Agent": "Mozilla/5.0"}
    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=180) 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"


print("\n=== MENULIS KE WORDPRESS (REST) ===")
st, res = rest("/wp-json/wp/v2/pages/833", "POST", {"content": konten})
print(f"   HTTP {st} | {str(res)[:120]}")
st, cek = rest("/wp-json/wp/v2/pages/833?context=edit&_fields=content")
now = cek.get("content", {}).get("raw", "") if isinstance(cek, dict) else ""
print(f"   tersimpan: {len(now)} karakter | sama dengan yang dikirim: {'YA' if now == konten else 'TIDAK'}")
