#!/usr/bin/env python3
"""Periksa halaman /dokter-kulit-sidoarjo/ (tayangan besar) dan hubungkan dengan artikel baru."""
import base64, importlib.util, json, os, re, time, urllib.error, urllib.request
from datetime import date, timedelta
from google.oauth2 import service_account
from googleapiclient.discovery import build

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"]
SITE = f"https://www.{DOM}/"
AUTH = base64.b64encode(f"{CFG['user']}:{CFG['pass']}".encode()).decode()
UA = {"User-Agent": "Mozilla/5.0"}

creds = service_account.Credentials.from_service_account_file(
    os.path.expanduser("~/.hermes/gsc_service_account.json"),
    scopes=["https://www.googleapis.com/auth/webmasters.readonly"])
gsc = build("webmasters", "v3", credentials=creds, cache_discovery=False)
AKHIR = date.today() - timedelta(days=2)

for label, a, b in (("28 hari", AKHIR - timedelta(days=27), AKHIR),
                    ("28 hari sebelumnya", AKHIR - timedelta(days=55), AKHIR - timedelta(days=28))):
    rows = gsc.searchanalytics().query(siteUrl=SITE, body={
        "startDate": a.isoformat(), "endDate": b.isoformat(), "dimensions": ["page"], "rowLimit": 30}).execute().get("rows", [])
    print(f"\n=== {label}: 8 halaman teratas ===")
    for r in sorted(rows, key=lambda x: -x["impressions"])[:8]:
        print(f"   {int(r['impressions']):>5} tayang | {int(r['clicks']):>3} klik | pos {r['position']:>5.1f} | "
              f"{r['keys'][0].replace(SITE, '/')[:62]}")

print("\n=== kueri untuk /dokter-kulit-sidoarjo/ (90 hari) ===")
rows = gsc.searchanalytics().query(siteUrl=SITE, body={
    "startDate": (AKHIR - timedelta(days=89)).isoformat(), "endDate": AKHIR.isoformat(),
    "dimensions": ["query"], "dimensionFilterGroups": [{"filters": [
        {"dimension": "page", "operator": "equals", "expression": f"{SITE}dokter-kulit-sidoarjo/"}]}],
    "rowLimit": 20}).execute().get("rows", [])
for r in sorted(rows, key=lambda x: -x["impressions"])[:12]:
    print(f"   {int(r['impressions']):>4} tayang | {int(r['clicks']):>2} klik | pos {r['position']:>5.1f} | «{r['keys'][0]}»")

print("\n=== data halaman di WordPress ===")
h = {"Authorization": f"Basic {AUTH}", **UA}
for slug in ("dokter-kulit-sidoarjo", "dokter-kulit-sidoarjo-panduan-berobat"):
    r = urllib.request.Request(f"https://{DOM}/wp-json/wp/v2/posts?slug={slug}&context=edit&_fields=id,slug,link,title,date,status,content", headers=h)
    try:
        d = json.loads(urllib.request.urlopen(r, timeout=90).read())
        for x in d:
            kata = len(re.sub(r"<[^>]+>", " ", x["content"]["raw"]).split())
            print(f"   #{x['id']} · {x['date'][:10]} · {x['status']} · {kata} kata · {x['link']}")
            print(f"      judul: {re.sub(r'<[^>]+>', '', x['title']['raw'])[:80]}")
    except Exception as e:
        print(f"   {slug}: gagal {str(e)[:60]}")
