#!/usr/bin/env python3
"""Periksa keadaan token Google di profil Suwarno (tanpa mencetak rahasianya) + pelacak TSLaw."""
import json, os, re, time, urllib.request, urllib.error

TOK = "/home/mantapman/.hermes/profiles/suwarno/workspace/seo-oauth/google_token_seo.json"

print("=== berkas token ===")
try:
    d = json.load(open(TOK))
    print("   kunci yang ada     :", sorted(d.keys()))
    print("   client_id          :", str(d.get("client_id"))[:36])
    print("   ada refresh_token  :", bool(d.get("refresh_token")))
    print("   ada access_token   :", bool(d.get("access_token")))
    print("   kedaluwarsa (expiry):", d.get("expiry"))
    print("   scopes             :", d.get("scopes"))
except Exception as e:
    print("   gagal baca:", str(e)[:120])

print("\n=== berkas oauth_pending.json ===")
try:
    p = json.load(open("/home/mantapman/.hermes/profiles/suwarno/workspace/seo-oauth/oauth_pending.json"))
    print("   ", json.dumps(p)[:400])
except Exception as e:
    print("   tidak ada / gagal:", str(e)[:100])

print("\n=== skrip cek_token_liveness.py (isi) ===")
try:
    print(open("/home/mantapman/.hermes/profiles/suwarno/workspace/seo-oauth/cek_token_liveness.py").read()[:1200])
except Exception as e:
    print("   gagal:", str(e)[:100])

print("\n=== uji token: apakah masih bisa menyegarkan diri? ===")
try:
    from google.oauth2.credentials import Credentials
    from google.auth.transport.requests import Request
    c = Credentials.from_authorized_user_file(TOK)
    print("   masa berlaku habis:", c.expired)
    if c.expired and c.refresh_token:
        try:
            c.refresh(Request())
            print("   ✅ token berhasil disegarkan:", c.expiry)
            open(TOK, "w").write(c.to_json())
        except Exception as e:
            print("   ❌ gagal disegarkan:", str(e)[:200])
except Exception as e:
    print("   gagal:", str(e)[:150])

print("\n=== pelacak di TSLaw ===")
UA = {"User-Agent": "Mozilla/5.0"}
try:
    h = urllib.request.urlopen(urllib.request.Request("https://www.tslaw.id/", headers=UA), timeout=90).read().decode("utf-8", "replace")
    for nama, pola in (("GTM", r"GTM-[A-Z0-9]+"), ("GA4 (G-)", r"G-[A-Z0-9]{8,}"), ("GT- (Site Kit)", r"GT-[A-Z0-9]{6,}"),
                       ("gtag/js", r"googletagmanager\.com/gtag/js[^\"']{0,40}"), ("gtag(", r"gtag\("),
                       ("site kit", r"googlesitekit"), ("analytics.js", r"analytics\.js")):
        hasil = sorted(set(re.findall(pola, h)))
        print(f"   {nama:<16}: {hasil[:4] if hasil else 'tidak ada'}")
except Exception as e:
    print("   gagal:", str(e)[:90])
