#!/usr/bin/env python3
"""Saring sekumpulan calon topik sekaligus terhadap peta artikel (kanibalisasi)."""
import json, os, re, subprocess, sys

WS = "/home/mantapman/.hermes/profiles/atun/workspace"
CALON = [
    ("Kontrak Digital Agency: 7 Pasal yang Harus Ada Sebelum Tanda Tangan", "kontrak digital agency"),
    ("Laporan SEO Bulanan: Angka Apa Saja yang Wajib Ada", "laporan seo bulanan"),
    ("Audit SEO Teknis: 12 Hal yang Diperiksa dan Urutannya", "audit seo teknis"),
    ("Core Web Vitals: Cara Membaca dan Memperbaikinya", "core web vitals"),
    ("Schema Markup untuk Bisnis Lokal: Kapan Perlu dan Apa Manfaatnya", "schema markup bisnis lokal"),
    ("Google Business Profile untuk Bisnis Jasa: Bagian yang Sering Dilewatkan", "google business profile"),
    ("Landing Page vs Website: Mana yang Perlu Dibuat Lebih Dulu", "landing page vs website"),
    ("Biaya Iklan Google untuk Bisnis Kecil: Cara Menentukan Anggaran Awal", "biaya iklan google"),
    ("Kata Kunci Lokal: Cara Menemukan yang Benar-Benar Dibeli Orang", "kata kunci lokal"),
    ("Riset Kompetitor SEO: Melihat Halaman yang Menghasilkan Trafik Mereka", "riset kompetitor seo"),
    ("Serah Terima Website: Berkas dan Akses yang Harus Anda Terima", "serah terima website"),
    ("Situs Lambat di Ponsel: 9 Penyebab yang Paling Sering Ditemui", "situs lambat di ponsel"),
    ("Struktur URL dan Kategori: Kerapian yang Berpengaruh ke Peringkat", "struktur url"),
    ("Migrasi Website Tanpa Kehilangan Peringkat: Urutan Langkahnya", "migrasi website"),
    ("Cara Menilai Kualitas Trafik Website, Bukan Sekadar Jumlahnya", "kualitas trafik website"),
]

aman, bentur = [], []
for judul, fokus in CALON:
    r = subprocess.run([sys.executable, f"{WS}/ss_cek_topik.py", judul, fokus],
                       capture_output=True, text=True, cwd=WS)
    garis = [g for g in r.stdout.splitlines() if re.match(r"\s+0\.\d\d", g)]
    teratas = garis[0].strip() if garis else "-"
    status = "AMAN" if r.returncode == 0 else "BENTUR"
    print(f"[{status}] {judul[:62]:<64} | fokus: {fokus[:32]:<34} | mirip: {teratas[:52]}")
    (aman if r.returncode == 0 else bentur).append({"judul": judul, "fokus": fokus})

json.dump({"aman": aman, "bentur": bentur}, open(f"{WS}/drafts/ss_topik_bank_uji.json", "w"),
          ensure_ascii=False, indent=1)
print(f"\naman: {len(aman)} · bentur: {len(bentur)}")
