#!/usr/bin/env python3
"""Kueri TSC bertema layanan/tindakan: mana yang sudah ada halamannya, mana yang belum."""
import json, os
from datetime import date, timedelta

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

WS = "/home/mantapman/.hermes/profiles/atun/workspace"
SITE = "https://www.theskincodeclinic.com/"
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)
AWAL = AKHIR - timedelta(days=89)

q = gsc.searchanalytics().query(siteUrl=SITE, body={
    "startDate": AWAL.isoformat(), "endDate": AKHIR.isoformat(), "dimensions": ["query", "page"],
    "rowLimit": 5000}).execute().get("rows", [])
TEMA = ("jerawat", "bekas jerawat", "peeling", "microneedling", "dermapen", "prp", "botox", "filler",
        "facial", "flek", "kusam", "berminyak", "kantung mata", "vitamin", "glowing", "infus",
        "laser", "whitening", "jerawat hormonal", "kulit sensitif", "alergi kulit", "sifilis",
        "kutil", "herpes", "pms", "infeksi menular")

gab = {}
for r in q:
    k = r["keys"][0]
    if not any(t in k.lower() for t in TEMA):
        continue
    d = gab.setdefault(k, {"tayang": 0, "klik": 0, "pos": [], "hal": set()})
    d["tayang"] += int(r["impressions"])
    d["klik"] += int(r["clicks"])
    d["pos"].append(r["position"])
    d["hal"].add(r["keys"][1])

print(f"kueri bertema layanan: {len(gab)}\n")
for k, d in sorted(gab.items(), key=lambda x: -x[1]["tayang"])[:25]:
    pos = sum(d["pos"]) / len(d["pos"])
    print(f"  {d['tayang']:>4} tayang | {d['klik']:>2} klik | pos {pos:>5.1f} | «{k}»")
    for u in sorted(d["hal"])[:1]:
        print(f"        {u.replace('https://www.theskincodeclinic.com', '')[:78]}")
