#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""TSLaw: tarik kueri GSC yang memuat kata waris/tanah/pertanahan (bukti pilih judul artikel)."""
import os
import sys
from datetime import date, timedelta

from google.oauth2 import service_account
from googleapiclient.discovery import build

KEY = os.path.expanduser("~/.hermes/gsc_service_account.json")
SC = ["https://www.googleapis.com/auth/webmasters.readonly"]
gsc = build("searchconsole", "v1",
            credentials=service_account.Credentials.from_service_account_file(KEY, scopes=SC),
            cache_discovery=False)

sites = [s["siteUrl"] for s in gsc.sites().list().execute().get("siteEntry", [])]
print("properti GSC:", sites)
SITE = next((s for s in sites if "tslaw" in s), None)
if not SITE:
    print("TSLaw tidak ada di daftar properti")
    sys.exit(1)

END = date.today() - timedelta(days=2)
START = END - timedelta(days=89)
print(f"\n=== {SITE} : {START} s.d. {END} ===")

r = gsc.searchanalytics().query(siteUrl=SITE, body={
    "startDate": START.isoformat(), "endDate": END.isoformat(),
    "dimensions": ["query"], "rowLimit": 1000}).execute()
rows = r.get("rows", [])
print("total kueri:", len(rows))

KATA = ("waris", "tanah", "sertifikat", "ahli waris", "ppat", "notaris", "lelang", "jual beli")
print("\n=== kueri bersinggungan topik ===")
hit = [x for x in rows if any(k in x["keys"][0].lower() for k in KATA)]
hit.sort(key=lambda x: -x["impressions"])
for x in hit[:40]:
    print(f"  {x['keys'][0][:60]:62} imp {x['impressions']:5} klik {x['clicks']:4} "
          f"ctr {x['ctr']*100:5.1f}% pos {x['position']:4.1f}")

print("\n=== 20 kueri impresi terbesar (semua topik) ===")
for x in sorted(rows, key=lambda x: -x["impressions"])[:20]:
    print(f"  {x['keys'][0][:60]:62} imp {x['impressions']:5} klik {x['clicks']:4} "
          f"pos {x['position']:4.1f}")
