#!/usr/bin/env python3
"""Ambil daftar artikel SEO terbaru (judul+slug) dan uji kandidat tautan internal."""
import base64, json, re, time, urllib.error, urllib.request

DOM = "studiosoft.id"
AUTH = base64.b64encode(b"bambangbot:q26r RePo BVy6 pwU2 F3z7 ouyl").decode()

KANDIDAT = [
    "https://studiosoft.id/jasa-seo-surabaya/",
    "https://studiosoft.id/kata-kunci-lokal-cara-menemukan-yang-benar-benar-dibeli-orang/",
    "https://studiosoft.id/google-search-console-untuk-pemula-7-manfaat-wajib-untuk-website-bisnis-naik-peringkat-google/",
    "https://studiosoft.id/laporan-seo-bulanan-angka-wajib/",
    "https://studiosoft.id/audit-seo-teknis-12-hal-yang-diperiksa-dan-urutannya/",
    "https://studiosoft.id/riset-kompetitor-seo-melihat-halaman-yang-menghasilkan-trafik-mereka/",
]


def get(url, timeout=60, ua="Mozilla/5.0 (Windows NT 10.0; Win64; x64)"):
    r = urllib.request.Request(url, headers={"User-Agent": ua})
    try:
        with urllib.request.urlopen(r, timeout=timeout) as x:
            return x.status, x.geturl()
    except urllib.error.HTTPError as e:
        return e.code, url
    except Exception as e:
        return 0, str(e)[:60]


print("== uji kandidat tautan internal ==")
for u in KANDIDAT:
    st, fin = get(u + "?cek=1")
    print(f"  {st}  {u}" + ("" if fin.rstrip('/') == u.rstrip('/') else f"  -> {fin}"))

print("\n== artikel SEO terbit terbaru ==")
h = {"Authorization": f"Basic {AUTH}", "User-Agent": "Mozilla/5.0"}
r = urllib.request.Request(
    f"https://{DOM}/wp-json/wp/v2/posts?categories=330&per_page=15&status=publish&_fields=id,slug,title,link",
    headers=h)
with urllib.request.urlopen(r, timeout=180) as x:
    d = json.loads(x.read())
for p in d:
    print(f"  #{p['id']:5d} {p['slug'][:70]}")
