#!/usr/bin/env python3
"""TSLaw: pastikan skema JSON-LD TIDAK tampil sebagai teks di halaman (uji yang benar: buang semua script)."""
import re, urllib.request, html

UA = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/124.0 Safari/537.36"}
UJI = ["/perjanjian-sewa-menyewa-yang-aman-panduan-hukum/", "/panduan-cerai-gugat/",
       "/5-layanan-jasa-hukum-surabaya-untuk-umkm-dan-perusahaan-kecil/", "/law-firm-surabaya/"]

for u in UJI:
    try:
        h = urllib.request.urlopen(urllib.request.Request(f"https://www.tslaw.id{u}", headers=UA), timeout=120).read().decode("utf-8", "replace")
        # buang SEMUA blok script dan style
        bersih = re.sub(r"<script.*?</script>|<style.*?</style><!--.*?-->", " ", h, flags=re.S | re.I)
        teks = html.unescape(re.sub(r"<[^>]+>", " ", bersih))
        bocor = []
        for penanda in ('"@context"', "FAQPage", "acceptedAnswer", "LegalService", "mainEntity"):
            if penanda in teks:
                bocor.append(penanda)
        skrip_ld = len(re.findall(r'<script[^>]*application/ld\+json[^>]*>', h, re.I))
        print(f"   {u[:52]:<54} blok skema: {skrip_ld} | bocor ke teks: {bocor if bocor else 'tidak ✅'}")
    except Exception as e:
        print(f"   {u[:52]:<54} gagal {str(e)[:60]}")

print("\n=== ringkas isi blok skema pada satu halaman ===")
h = urllib.request.urlopen(urllib.request.Request("https://www.tslaw.id/perjanjian-sewa-menyewa-yang-aman-panduan-hukum/", headers=UA), timeout=120).read().decode("utf-8", "replace")
for i, mm in enumerate(re.findall(r'<script[^>]*application/ld\+json[^>]*>(.*?)</script>', h, re.S | re.I), 1):
    isi = mm.strip()
    POLA_TIPE = r'"@type":\s*"([A-Za-z]+)"'
    print(f"   blok {i}: {len(isi)} karakter | tipe: {re.findall(POLA_TIPE, isi)[:4]}")
