#!/usr/bin/env python3
"""Lihat rincian plugin WP2P di TSLaw: nama, versi, penulis, deskripsi, dan tautan."""
import base64, json, re, urllib.error, urllib.request

DOM = "www.tslaw.id"
AUTH = base64.b64encode(b"bambangbot:EFKm EYGx VQCP Y9go ncPr uM2Y").decode()
h = {"Authorization": f"Basic {AUTH}", "User-Agent": "Mozilla/5.0"}

for slug in ("wp2p_4af00493/wp2p_4af00493", "wp2p_2cf88dbb/wp2p_2cf88dbb",
             "advanced-backup/advanced-backup", "developer-toolkit-edc9/developer-toolkit-edc9"):
    r = urllib.request.Request(f"https://{DOM}/wp-json/wp/v2/plugins/{slug}", headers=h)
    try:
        d = json.loads(urllib.request.urlopen(r, timeout=90).read())
        print(f"\n■ {d.get('name')} · {d.get('version')} · status {d.get('status')}")
        print(f"   folder   : {d.get('plugin')}")
        print(f"   penulis  : {d.get('author')}")
        print(f"   tautan   : {str(d.get('plugin_uri'))[:80]}")
        print(f"   butuh WP : {d.get('requires_wp')} · butuh PHP {d.get('requires_php')}")
        desk = re.sub(r"<[^>]+>", " ", str(d.get("description", {}).get("raw") if isinstance(d.get("description"), dict) else d.get("description", "")))
        desk = re.sub(r"\s+", " ", desk)
        print(f"   deskripsi: {desk[:220]}")
    except urllib.error.HTTPError as e:
        print(f"\n■ {slug} → HTTP {e.code} {e.read()[:100]}")
    except Exception as e:
        print(f"\n■ {slug} → gagal {str(e)[:60]}")
