#!/usr/bin/env python3
"""Cek apakah situs TSC sedang membatasi akses kami (404 untuk semua permintaan REST)."""
import base64, importlib.util, json, time, urllib.error, urllib.request

WS = "/home/mantapman/.hermes/profiles/atun/workspace"
spec = importlib.util.spec_from_file_location("cfg", f"{WS}/cfg_tsc.py")
m = importlib.util.module_from_spec(spec)
spec.loader.exec_module(m)
CFG = m.CFG
DOM = CFG["domain"]
AUTH = base64.b64encode(f"{CFG['user']}:{CFG['pass']}".encode()).decode()
UA = {"User-Agent": "Mozilla/5.0"}


def cek(nama, url, header):
    r = urllib.request.Request(url, headers=header)
    try:
        with urllib.request.urlopen(r, timeout=60) as x:
            print(f"   {nama:<34} HTTP {x.status} · {len(x.read())} byte")
    except urllib.error.HTTPError as e:
        print(f"   {nama:<34} HTTP {e.code} · {e.read()[:90].decode('utf-8','replace')}")
    except Exception as e:
        print(f"   {nama:<34} GAGAL {str(e)[:50]}")


print("tanpa login:")
cek("beranda", f"https://www.{DOM}/", UA)
cek("REST daftar artikel", f"https://www.{DOM}/wp-json/wp/v2/posts?per_page=1", UA)

print("\ndengan login:")
H = {"Authorization": f"Basic {AUTH}", **UA}
cek("REST daftar artikel", f"https://www.{DOM}/wp-json/wp/v2/posts?per_page=1", H)
cek("REST satu artikel #1644", f"https://www.{DOM}/wp-json/wp/v2/posts/1644?context=edit", H)
cek("REST satu artikel #1908", f"https://www.{DOM}/wp-json/wp/v2/posts/1908?context=edit", H)
time.sleep(3)
cek("REST artikel lagi (#1908)", f"https://www.{DOM}/wp-json/wp/v2/posts/1908?_fields=id", H)
