#!/usr/bin/env python3
"""TSLaw: periksa GSC secara mentah — apakah nol data itu sungguhan atau ada error yang tertutup."""
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"
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 panggil(u, data=None):
    r = urllib.request.Request(u, headers=H, data=json.dumps(data).encode() if data else None)
    try:
        with urllib.request.urlopen(r, timeout=120) as x:
            return x.status, json.loads(x.read())
    except urllib.error.HTTPError as e:
        return e.code, e.read().decode()[:400]
    except Exception as e:
        return 0, str(e)[:200]


print("=== daftar properti tslaw ===")
st, d = panggil("https://www.googleapis.com/webmasters/v3/sites")
if isinstance(d, dict):
    for s in d.get("siteEntry", []):
        if "tslaw" in s["siteUrl"].lower():
            print("   ", s["siteUrl"], "|", s.get("permissionLevel"))

SITE = "https://www.tslaw.id/"
SITE_ENC = urllib.parse.quote(SITE, safe="")
PENGAMAN = 0
print(f"\n=== kueri GSC mentah untuk {SITE} ===")
akhir = date.today() - timedelta(days=3)

for label, a, b in (("28 hari terakhir", (akhir - timedelta(days=27)).isoformat(), akhir.isoformat()),
                    ("90 hari", (akhir - timedelta(days=89)).isoformat(), akhir.isoformat()),
                    ("sejak 1 Jul 2026", "2026-07-01", akhir.isoformat()),
                    ("seluruh 16 bulan", "2025-05-01", akhir.isoformat())):
    isi = {"startDate": a, "endDate": b, "dimensions": ["date"], "rowLimit": 200}
    st, d = panggil(f"https://www.googleapis.com/webmasters/v3/sites/{SITE_ENC}/searchAnalytics/query", isi)
    if isinstance(d, dict) and "rows" in d:
        klik = sum(r["clicks"] for r in d["rows"])
        tayang = sum(r["impressions"] for r in d["rows"])
        print(f"   {label:<20} status {st} | {len(d['rows'])} baris | klik {klik} | tayang {tayang}")
        if d["rows"][:2]:
            print(f"      contoh: {d['rows'][:2]}")
    else:
        print(f"   {label:<20} status {st} | BALASAN: {str(d)[:250]}")

print("\n=== sitemap (mentah) ===")
st, d = panggil(f"https://www.googleapis.com/webmasters/v3/sites/{SITE_ENC}/sitemaps")
print("   status", st, "|", json.dumps(d)[:400] if not isinstance(d, str) else d[:300])

print("\n=== cek juga properti sc-domain bila ada ===")
st, d = panggil("https://www.googleapis.com/webmasters/v3/sites/sc-domain%3Atslaw.id/sitemaps")
print("   status", st, "|", json.dumps(d)[:200] if not isinstance(d, str) else d[:200])
