#!/usr/bin/env python3
"""TSLaw: kueri apa yang mendarat di /tentang/ dan halaman lain — dasar memperbaiki judul & deskripsi."""
import json, urllib.parse, urllib.request, urllib.error
from datetime import date, timedelta

TOKEN = "/home/mantapman/.hermes/profiles/atun/workspace/seo-oauth/google_token_atun.json"
SITE = "https://www.tslaw.id/"
SITE_ENC = urllib.parse.quote(SITE, safe="")

from google.oauth2.credentials import Credentials
from google.auth.transport.requests import Request
c = Credentials.from_authorized_user_file(TOKEN)
if c.expired and c.refresh_token:
    c.refresh(Request()); open(TOKEN, "w").write(c.to_json())
H = {"Authorization": f"Bearer {c.token}", "Content-Type": "application/json"}


def q(dim, a, b, baris=200):
    isi = {"startDate": a, "endDate": b, "dimensions": dim, "rowLimit": baris}
    r = urllib.request.Request(f"https://www.googleapis.com/webmasters/v3/sites/{SITE_ENC}/searchAnalytics/query",
                               data=json.dumps(isi).encode(), headers=H)
    try:
        with urllib.request.urlopen(r, timeout=150) as x:
            return json.loads(x.read()).get("rows", [])
    except urllib.error.HTTPError as e:
        print("   HTTP", e.code, e.read().decode()[:120])
        return []


akhir = date.today() - timedelta(days=3)
awal = akhir - timedelta(days=89)      # 90 hari supaya datanya lebih banyak
S = lambda x: x.isoformat()

print(f"=== kueri yang mendarat di /tentang/ ({S(awal)} → {S(akhir)}) ===")
rows = q(["query", "page"], S(awal), S(akhir), 500)
for r in sorted([x for x in rows if "/tentang/" in x["keys"][1]], key=lambda x: -x["impressions"])[:20]:
    print(f"   {r['clicks']:>2} klik | {r['impressions']:>4} tayang | pos {round(r['position'],1):>5} | {r['keys'][0][:60]}")

print("\n=== kueri yang mendarat di beranda / ===")
for r in sorted([x for x in rows if x["keys"][1].rstrip("/") == "https://www.tslaw.id"], key=lambda x: -x["impressions"])[:15]:
    print(f"   {r['clicks']:>2} klik | {r['impressions']:>4} tayang | pos {round(r['position'],1):>5} | {r['keys'][0][:60]}")

print("\n=== kueri yang mendarat di /layanan/ ===")
for r in sorted([x for x in rows if "/layanan/" in x["keys"][1]], key=lambda x: -x["impressions"])[:10]:
    print(f"   {r['clicks']:>2} klik | {r['impressions']:>4} tayang | pos {round(r['position'],1):>5} | {r['keys'][0][:60]}")

print("\n=== kueri dengan tayangan terbanyak tapi nol klik (90 hari, semua halaman) ===")
nol = [x for x in rows if x["clicks"] == 0 and x["impressions"] >= 8]
for r in sorted(nol, key=lambda x: -x["impressions"])[:15]:
    print(f"   {r['impressions']:>4} tayang | pos {round(r['position'],1):>5} | {r['keys'][0][:50]:<52} | {r['keys'][1].replace('https://www.tslaw.id','')[:34]}")
