#!/usr/bin/env python3
"""DAS: cek kemungkinan pindah domain/canonical + properti GSC lain + halaman dengan canonical menyimpang."""
import os, re, urllib.request, urllib.error
from google.oauth2 import service_account
from googleapiclient.discovery import build

KEY = os.path.expanduser("~/.hermes/gsc_service_account.json")
UA = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/124 Safari/537.36"}

print("=== 1. varian domain dasindonesia.com ===")
for u in ("https://dasindonesia.com/", "https://www.dasindonesia.com/", "http://dasindonesia.com/"):
    try:
        r = urllib.request.urlopen(urllib.request.Request(u, headers=UA), timeout=45)
        h = r.read().decode("utf-8", "replace")
        canon = re.search(r'<link rel="canonical" href="([^"]*)"', h)
        print(f"   {r.status} | {u:<38} → final: {r.geturl()[:52]} | canonical: {canon.group(1) if canon else '-'}")
    except urllib.error.HTTPError as e:
        print(f"   {e.code} | {u:<38} → {e.headers.get('Location')}")
    except Exception as e:
        print(f"   ERR | {u} ({str(e)[:40]})")

print("\n=== 2. semua properti GSC untuk DAS ===")
gsc = build("searchconsole", "v1", credentials=service_account.Credentials.from_service_account_file(
    KEY, scopes=["https://www.googleapis.com/auth/webmasters.readonly"]), cache_discovery=False)
for s in gsc.sites().list().execute().get("siteEntry", []):
    if "das" in s["siteUrl"].lower():
        print(f"   {s['siteUrl']} ({s.get('permissionLevel')})")

print("\n=== 3. halaman dengan canonical menyimpang ===")
try:
    h = urllib.request.urlopen(urllib.request.Request(
        "https://dasindonesia.com/10-bengkel-mobil-resmi-terbaik-di-surabaya-rekomendasi/", headers=UA), timeout=60).read().decode("utf-8", "replace")
    canon = re.search(r'<link rel="canonical" href="([^"]*)"', h)
    robots = re.search(r'<meta name="robots" content="([^"]*)"', h)
    print(f"   /10-bengkel-mobil-resmi-terbaik-di-surabaya-rekomendasi/")
    print(f"      canonical: {canon.group(1) if canon else '-'} | robots: {robots.group(1) if robots else '-'}")
except Exception as e:
    print("   gagal:", str(e)[:60])

print("\n=== 4. berapa artikel DAS terbit sekarang ===")
try:
    r = urllib.request.urlopen(urllib.request.Request(
        "https://dasindonesia.com/wp-json/wp/v2/posts?per_page=1&_fields=id", headers=UA), timeout=60)
    print(f"   HTTP {r.status} | X-WP-Total: {r.headers.get('X-WP-Total')} | X-WP-TotalPages: {r.headers.get('X-WP-TotalPages')}")
except Exception as e:
    print("   gagal:", str(e)[:60])
