#!/usr/bin/env python3
"""Lihat dan rapikan judul SEO + meta description halaman klaster TSC (Yoast lewat XML-RPC)."""
import importlib.util, re, sys, xmlrpc.client

WS = "/home/mantapman/.hermes/profiles/atun/workspace"
spec = importlib.util.spec_from_file_location("cfg", f"{WS}/cfg_tsc.py")
m = importlib.util.module_from_spec(spec)
spec.loader.exec_module(m)
CFG = m.CFG
p = xmlrpc.client.ServerProxy(f"https://{CFG.get('domain', 'www.theskincodeclinic.com')}/xmlrpc.php", allow_none=True)
USER, SANDI = CFG["user"], CFG["pass"]

TARGET = {
    9102: ("klinik kecantikan Krian", "klinik kecantikan estetika Krian Sidoarjo"),
    9061: ("klinik estetika Krian", "klinik estetika Krian Sidoarjo"),
    9063: ("klinik facial Krian", "facial medis Krian"),
    9065: ("solusi jerawat", "perawatan jerawat Krian"),
    1713: ("solusi jerawat", "grade jerawat"),
    10162: ("klinik facial Sidoarjo", "facial Sidoarjo"),
}

RENCANA = {
    9061: ("Klinik Estetika Krian: Layanan Lengkap, Dokter Spesialis",
           "Klinik estetika Krian dengan dokter spesialis kulit dan kelamin. Layanan botox, filler, "
           "chemical peeling, dan facial medis di Krian, Sidoarjo. Konsultasi dulu sebelum treatment."),
    9063: ("Klinik Facial Krian: Facial Medis untuk Wajah Kusam",
           "Facial medis di Krian untuk wajah kusam dan berminyak. Dikerjakan dokter spesialis kulit "
           "di The Skin Code Clinic, Krian, Sidoarjo. Kenali jenis dan jeda sesinya di sini."),
    9065: ("Solusi Jerawat di Krian: Ditangani Dokter Spesialis Kulit",
           "Solusi jerawat yang ditangani dokter spesialis kulit di Krian, Sidoarjo. Mulai dari "
           "pemeriksaan, jenis jerawat, sampai pilihan tindakan medis yang sesuai kondisi kulit."),
    9102: ("Klinik Kecantikan Krian Sidoarjo: 6 Rekomendasi dan Cara Menilai",
           "Daftar klinik kecantikan Krian Sidoarjo beserta cara menilai mutunya: izin, dokter "
           "penanggung jawab, standar alat, dan kejelasan biaya sebelum memilih."),
}

for pid, (judul_seo, meta) in RENCANA.items():
    try:
        post = p.wp.getPost(0, USER, SANDI, pid)
    except Exception as e:
        print(f"   #{pid} gagal dibaca: {str(e)[:60]}")
        continue
    cf = {c["key"]: c["value"] for c in post.get("custom_fields", [])}
    print(f"\n#{pid} «{str(post.get('post_title'))[:56]}»")
    print(f"   _yoast_wpseo_title    : {cf.get('_yoast_wpseo_title', '(kosong)')[:80]}")
    print(f"   _yoast_wpseo_metadesc : {cf.get('_yoast_wpseo_metadesc', '(kosong)')[:110]}")

if "--go" in sys.argv:
    print("\n=== pasang ===")
    for pid, (judul_seo, meta) in RENCANA.items():
        try:
            p.wp.editPost(0, USER, SANDI, pid, {"custom_fields": [
                {"key": "_yoast_wpseo_title", "value": judul_seo},
                {"key": "_yoast_wpseo_metadesc", "value": meta}]})
            print(f"   #{pid} terkirim")
        except Exception as e:
            print(f"   #{pid} GAGAL: {str(e)[:70]}")
