#!/usr/bin/env python3
"""Kumpulkan bahan asli untuk mengisi halaman pilar SEO StudioSoft: paket/harga, alur kerja, WA, link pendukung."""
import base64, html, json, re, time, urllib.request

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


def wp(path):
    r = urllib.request.Request(S + path, headers={"Authorization": f"Basic {AUTH}", "User-Agent": "Mozilla/5.0"})
    for _ in range(3):
        try:
            with urllib.request.urlopen(r, timeout=150) as x:
                return json.loads(x.read())
        except Exception:
            time.sleep(4)
    return []


# cari artikel yang memuat paket / harga seo
for kata in ("paket seo", "harga jasa seo", "biaya jasa seo", "paket jasa seo"):
    d = wp(f"/wp-json/wp/v2/posts?search={urllib.parse.quote(kata)}&per_page=6&_fields=id,link,title" if False else
           f"/wp-json/wp/v2/posts?search={kata.replace(' ', '+')}&per_page=6&_fields=id,link,title")
    print(f"\n=== cari '{kata}': {len(d) if isinstance(d, list) else 0} hasil ===")
    if isinstance(d, list):
        for p in d:
            print(f"   #{p['id']} {p['link'].replace(S, '')[:70]}  {html.unescape(p['title']['rendered'])[:50]}")

# isi halaman SEO + layanan untuk bahan
for pid, nama in ((3824, "/seo/"), (3974, "/jasa-seo-professional/")):
    d = wp(f"/wp-json/wp/v2/pages/{pid}?context=edit&_fields=title,content,modified")
    raw = d["content"]["raw"] if isinstance(d["content"], dict) else ""
    teks = re.sub(r"\s+", " ", html.unescape(re.sub(r"<[^>]+>", " ", raw)))
    print(f"\n=== {nama} ({len(teks)} char, diubah {d.get('modified','?')[:16]}) ===")
    print("  ", teks[:500])

# nomor WA yang dipakai di situs
d = wp("/wp-json/wp/v2/posts?per_page=5&context=edit&_fields=content,link")
wa = set()
for p in d:
    raw = p["content"]["raw"] if isinstance(p["content"], dict) else ""
    wa |= set(re.findall(r"wa\.me/(\d+)", raw))
print("\n=== nomor WA yang dipakai di artikel:", wa)
