#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""Probe: jadwal future (isi hari 18-25 Okt), halaman hub bertema landing page, dan cek schema post audit SEO."""
import base64, json, re, urllib.request

S = "https://studiosoft.id"
AUTH = base64.b64encode(b"bambangbot:q26r RePo BVy6 pwU2 F3z7 ouyl").decode()
UA = {"User-Agent": "Mozilla/5.0"}


def rest(p):
    r = urllib.request.Request(S + p, headers={"Authorization": f"Basic {AUTH}", **UA})
    with urllib.request.urlopen(r, timeout=180) as x:
        return json.loads(x.read())


print("=== 1. semua post status=future ===")
fs = rest("/wp-json/wp/v2/posts?status=future&per_page=100&orderby=date&order=asc&context=edit"
          "&_fields=id,slug,date,title,meta")
for p in fs:
    print(f"  {p['date'][:16]} | #{p['id']} | {p['title']['raw'][:60]} | fokus={(p.get('meta') or {}).get('_yoast_wpseo_focuskw')}")

print("\n=== 2. post status=draft ===")
ds = rest("/wp-json/wp/v2/posts?status=draft&per_page=100&context=edit&_fields=id,slug,date,title,meta")
for p in ds:
    print(f"  {p['date'][:16]} | #{p['id']} | {p['title']['raw'][:60]} | fokus={(p.get('meta') or {}).get('_yoast_wpseo_focuskw')}")

print("\n=== 3. halaman (pages) bertema landing page / website ===")
pg = rest("/wp-json/wp/v2/pages?per_page=100&status=publish&_fields=id,slug,link,title")
for p in pg:
    t = (p["title"]["rendered"] or "").lower()
    if any(k in p["slug"].lower() or k in t for k in ("landing", "website", "seo", "digital-agency", "jasa")):
        print(f"  #{p['id']:>5} | {p['slug'][:45]:<45} | {p['title']['rendered'][:50]}")

print("\n=== 4. schema FAQ di post audit SEO teknis (jadwal 21 Okt) ===")
q = rest("/wp-json/wp/v2/posts?slug=audit-seo-teknis-12-pemeriksaan&status=any&context=edit&_fields=id,slug,status,date,content")
if q:
    raw = q[0]["content"]["raw"]
    m = re.search(r'<script type="application/ld\+json">(.{0,120})', raw, re.S)
    print(f"  #{q[0]['id']} status={q[0]['status']} date={q[0]['date']}")
    print("  cuplikan schema:", m.group(1).replace("\n", " ") if m else "TIDAK ADA")
    try:
        blk = re.search(r'<script type="application/ld\+json">(.*?)</script>', raw, re.S).group(1)
        json.loads(blk)
        print("  JSON-LD: valid ✅")
    except Exception as e:
        print("  JSON-LD TIDAK VALID:", e)
