#!/usr/bin/env python3
"""TSC — halaman yang tayangannya naik/turun (28 hari vs 28 hari sebelumnya)."""
import os
from datetime import date, timedelta
from google.oauth2 import service_account
from googleapiclient.discovery import build

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)
A = date.today() - timedelta(days=2)
B = A - timedelta(days=27)


def hal(a, b):
    return {r["keys"][0]: int(r["impressions"]) for r in gsc.searchanalytics().query(siteUrl=SITE, body={
        "startDate": a.isoformat(), "endDate": b.isoformat(), "dimensions": ["page"],
        "rowLimit": 2000}).execute().get("rows", [])}


kini, dulu = hal(B, A), hal(B - timedelta(days=28), B - timedelta(days=1))
semua = set(kini) | set(dulu)
beda = sorted(((kini.get(u, 0) - dulu.get(u, 0), kini.get(u, 0), dulu.get(u, 0), u) for u in semua),
              key=lambda x: x[0])
print("=== 10 penurunan terbesar ===")
for d, k, l, u in beda[:10]:
    print(f"  {d:>+5} | {l:>4} → {k:<4} | {u.replace(SITE, '/')[:70]}")
print("\n=== 10 kenaikan terbesar ===")
for d, k, l, u in beda[::-1][:10]:
    print(f"  {d:>+5} | {l:>4} → {k:<4} | {u.replace(SITE, '/')[:70]}")
