#!/usr/bin/env python3
"""Cek HTTP semua kandidat tautan internal untuk artikel 14 + status permalink .htm."""
import urllib.request, urllib.error, json, base64, time

UA = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/124 Safari/537.36"}
KAND = [
    "https://www.tslaw.id/",
    "https://www.tslaw.id/layanan/",
    "https://www.tslaw.id/hubungi/",
    "https://www.tslaw.id/law-firm-surabaya/",
    "https://www.tslaw.id/biaya-jasa-law-firm-surabaya/",
    "https://www.tslaw.id/cara-memilih-law-firm-surabaya-untuk-perusahaan/",
    "https://www.tslaw.id/tujuh-situasi-perusahaan-butuh-law-firm/",
    "https://www.tslaw.id/7-alasan-mengapa-jasa-pengacara-terbaik-surabaya-wajib-untuk-kasus-bisnis-anda-3/",
    "https://www.tslaw.id/7-tips-memilih-pengacara-profesional-untuk-kasus-hukum-anda/",
    "https://www.tslaw.id/8-tips-memilih-kantor-pengacara-surabaya-yang-tepat-untuk-kasus-hukum-anda-3/",
    "https://www.tslaw.id/6-kelebihan-law-firm-surabaya-profesional-dibanding-pengacara-individu-3/",
    "https://www.tslaw.id/6-cara-mendapatkan-bantuan-hukum-gratis-di-surabaya-untuk-masyarakat/",
    "https://www.tslaw.id/pengacara-gugat-cerai-surabaya/",
    "https://www.tslaw.id/pengacara-surat-wasiat/",
    "https://www.tslaw.id/7-hal-penting-tentang-biaya-konsultasi-hukum-yang-perlu-anda-tahu-sebelum-ke-pengacara/",
    "https://www.tslaw.id/3-perbedaan-gugatan-perdata-dan-pidana-yang-perlu-dipahami/",
    "https://www.tslaw.id/4-jenis-perkara-pidana-yang-sering-terjadi-di-masyarakat-indonesia/",
    "https://www.tslaw.id/5-tips-memilih-pengacara-yang-tepat-untuk-bisnis-anda/",
    "https://www.tslaw.id/cara-daftar-merek-dagang-2/",
    "https://www.tslaw.id/panduan-cerai-gugat/",
    "https://www.tslaw.id/law-firm-surabaya.htm",
    "https://www.tslaw.id/layanan.htm",
]

for u in KAND:
    try:
        req = urllib.request.Request(u, headers=UA)
        t0 = time.time()
        with urllib.request.urlopen(req, timeout=45) as x:
            print(f"  {x.status}  {u}  -> final: {x.url}  {time.time()-t0:.2f}s")
    except urllib.error.HTTPError as e:
        loc = e.headers.get("Location") if e.headers else None
        print(f"  {e.code}  {u}  {('-> ' + loc) if loc else ''}")
    except Exception as e:
        print(f"  ERR  {u}  {str(e)[:60]}")
