#!/usr/bin/env python3
"""DAS: cek kesehatan perayapan — status sitemap di GSC, robots.txt, dan apakah Googlebot dilayani 200."""
import json, time, urllib.parse, urllib.request, urllib.error

TOKEN = "/home/mantapman/.hermes/profiles/suwarno/workspace/seo-oauth/google_token_seo.json"
SITE = "sc-domain:dasindonesia.com"
UA = {"User-Agent": "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"}

from google.oauth2.credentials import Credentials
from google.auth.transport.requests import Request
c = Credentials.from_authorized_user_file(TOKEN, ["https://www.googleapis.com/auth/webmasters.readonly"])
if not c.valid:
    c.refresh(Request()); open(TOKEN, "w").write(c.to_json())
H = {"Authorization": f"Bearer {c.token}"}

url = f"https://www.googleapis.com/webmasters/v3/sites/{urllib.parse.quote(SITE)}/sitemaps"
try:
    with urllib.request.urlopen(urllib.request.Request(url, headers=H), timeout=120) as x:
        d = json.loads(x.read())
    print("=== sitemap DAS di Search Console ===")
    for s in d.get("sitemap", []):
        isi = s.get("contents", [{}])[0]
        print(f"   {s['path']}")
        print(f"      terakhir diunduh Google : {s.get('lastDownloaded', '-')}")
        print(f"      terakhir dikirim        : {s.get('lastSubmitted', '-')}")
        print(f"      error {s.get('errors', 0)} | warning {s.get('warnings', 0)} | "
              f"isi: {isi.get('submitted', '?')} dikirim / {isi.get('indexed', '?')} terindeks")
except urllib.error.HTTPError as e:
    print("sitemap gagal:", e.code, e.read().decode()[:200])
except Exception as e:
    print("sitemap gagal:", str(e)[:120])

print("\n=== robots.txt ===")
try:
    r = urllib.request.urlopen(urllib.request.Request("https://dasindonesia.com/robots.txt", headers=UA), timeout=90)
    print("   status:", r.status)
    print("   " + r.read().decode("utf-8", "replace")[:400].replace("\n", "\n   "))
except Exception as e:
    print("   gagal:", str(e)[:80])

print("\n=== apakah Googlebot dilayani normal (5 URL) ===")
for u in ("/", "/bengkel-spesialis-nissan-surabaya/", "/bengkel-spesialis-lexus-di-surabaya/",
          "/bengkel-spesialis-matic-surabaya/", "/sitemap_index.xml"):
    try:
        t0 = time.time()
        r = urllib.request.urlopen(urllib.request.Request(f"https://dasindonesia.com{u}", headers=UA), timeout=90)
        print(f"   {r.status} | {time.time()-t0:5.1f}s | {len(r.read()):>7} byte | {u}")
    except urllib.error.HTTPError as e:
        print(f"   {e.code} | {u}")
    except Exception as e:
        print(f"   GAGAL {str(e)[:40]} | {u}")
