#!/usr/bin/env python3
"""
Publish 5 artikel: 2 Yasma Natura + 3 EveryBe
Fixed: User-Agent, term_exists handling, step-by-step
"""

import json, urllib.request, urllib.error, base64, os, sys, time, re

UA = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"

# ─── CONFIG ───────────────────────────────────────────────────────────────────

SITES = {
    "yasma": {
        "url": "https://yasmanatura.co.id/wp-json/wp/v2",
        "user": "bambangbot",
        "pass": "LFp4 LXBh kMYG 84qC 2DDc 5bLc",
    },
    "everybe": {
        "url": "https://everybeofficial.com/wp-json/wp/v2",
        "user": "bambangbot",
        "pass": "2Aa0 OwYY NJaL Oc8b 9OCo Owcw",
    }
}

for k, v in SITES.items():
    v["auth"] = base64.b64encode(f"{v['user']}:{v['pass']}".encode()).decode()

# ─── UTILITY ──────────────────────────────────────────────────────────────────

def wp_get(url, auth):
    """GET request"""
    req = urllib.request.Request(url, method="GET")
    req.add_header("Authorization", f"Basic {auth}")
    req.add_header("User-Agent", UA)
    try:
        with urllib.request.urlopen(req, timeout=30) as resp:
            return json.loads(resp.read().decode())
    except Exception as e:
        print(f"  ⚠️ GET error: {e}")
        return None

def wp_post(url, auth, data):
    """POST request"""
    req = urllib.request.Request(url, method="POST")
    req.add_header("Authorization", f"Basic {auth}")
    req.add_header("User-Agent", UA)
    req.add_header("Content-Type", "application/json")
    req.data = json.dumps(data).encode("utf-8")
    try:
        with urllib.request.urlopen(req, timeout=60) as resp:
            return json.loads(resp.read().decode())
    except urllib.error.HTTPError as e:
        body = e.read().decode("utf-8", errors="replace")
        code = e.code
        print(f"  ⚠️ POST {code}: {body[:300]}")
        # Try to parse for term_exists handling
        try:
            err_data = json.loads(body)
            return err_data  # return error dict for inspection
        except:
            return None
    except Exception as e:
        print(f"  ⚠️ POST error: {e}")
        return None

def upload_image(site_cfg, image_url, alt_text, filename):
    """Download + upload image"""
    # Download
    req = urllib.request.Request(image_url, method="GET")
    req.add_header("User-Agent", UA)
    try:
        with urllib.request.urlopen(req, timeout=30) as resp:
            img_data = resp.read()
        content_type = resp.headers.get("Content-Type", "image/jpeg")
    except Exception as e:
        print(f"  ❌ Download image gagal: {e}")
        return None
    
    # Upload
    boundary = "----FormBoundary" + os.urandom(8).hex()
    body = b""
    body += f"--{boundary}\r\n".encode()
    body += f'Content-Disposition: form-data; name="file"; filename="{filename}"\r\n'.encode()
    body += f"Content-Type: {content_type}\r\n\r\n".encode()
    body += img_data
    body += f"\r\n--{boundary}\r\n".encode()
    body += f'Content-Disposition: form-data; name="alt_text"\r\n\r\n{alt_text}\r\n'.encode()
    body += f"--{boundary}--\r\n".encode()
    
    req = urllib.request.Request(f"{site_cfg['url']}/media", data=body, method="POST")
    req.add_header("Authorization", f"Basic {site_cfg['auth']}")
    req.add_header("User-Agent", UA)
    req.add_header("Content-Type", f"multipart/form-data; boundary={boundary}")
    try:
        with urllib.request.urlopen(req, timeout=60) as resp:
            result = json.loads(resp.read().decode())
            print(f"  ✅ Image uploaded: ID {result['id']}")
            return result["id"]
    except urllib.error.HTTPError as e:
        body = e.read().decode()[:300]
        print(f"  ❌ Upload image HTTP {e.code}: {body}")
        return None

def ensure_tags(site_cfg, tag_names):
    """Get or create tags"""
    # Fetch all existing
    existing = {}
    result = wp_get(f"{site_cfg['url']}/tags?per_page=100", site_cfg['auth'])
    if result:
        for t in result:
            existing[t["name"].lower()] = t["id"]
    
    ids = []
    for name in tag_names:
        key = name.lower()
        if key in existing:
            ids.append(existing[key])
            print(f"  🏷 {name} (ID {existing[key]})")
            continue
        
        # Try create
        result = wp_post(f"{site_cfg['url']}/tags", site_cfg['auth'], {"name": name})
        if result and "id" in result:
            ids.append(result["id"])
            existing[key] = result["id"]
            print(f"  🏷 +{name} (ID {result['id']})")
        elif result and isinstance(result, dict) and result.get("code") == "term_exists":
            # Extract from additional_data or data.term_id
            tid = None
            if "additional_data" in result and len(result["additional_data"]) > 0:
                tid = result["additional_data"][0]
            elif "data" in result and "term_id" in result["data"]:
                tid = result["data"]["term_id"]
            if tid:
                ids.append(tid)
                existing[key] = tid
                print(f"  🏷 {name} (exists ID {tid})")
            else:
                print(f"  ⚠️ Gagal dapet ID untuk: {name}")
        else:
            print(f"  ⚠️ Gagal buat tag: {name}")
        time.sleep(0.3)
    return ids

# ─── ARTIKEL DATA ─────────────────────────────────────────────────────────────

articles = [
    # 1. YASMA - Adaptogen
    {
        "site": "yasma",
        "title": "Mengenal Adaptogen: Bahan Herbal Masa Depan untuk Bisnis Minuman Kesehatan",
        "cat": 55,
        "tags": ["adaptogen", "bisnis minuman kesehatan", "bahan herbal alami", 
                 "minuman serbuk kesehatan", "adaptogen jahe kunyit", 
                 "tren minuman kesehatan", "maklon minuman herbal"],
        "slug": "mengenal-adaptogen-bahan-herbal-bisnis-minuman",
        "meta_desc": "Apa itu adaptogen? Pelajari manfaat bahan herbal ini dan peluang bisnis minuman kesehatan berbasis adaptogen untuk brand Anda.",
        "focus_kw": "adaptogen bisnis minuman kesehatan",
        "img_url": "https://images.pexels.com/photos/4198035/pexels-photo-4198035.jpeg?auto=compress&cs=tinysrgb&w=1200&h=630&dpr=2",
        "img_alt": "Herbal alami adaptogen untuk minuman kesehatan",
        "img_file": "adaptogen-herbal-minuman-sehat-yasma.webp",
        "content": """<p>Dalam beberapa tahun terakhir, industri minuman kesehatan mengalami pergeseran besar. Konsumen tidak lagi puas dengan minuman manis biasa — mereka mencari <strong>minuman fungsional</strong> yang benar-benar memberikan manfaat bagi tubuh. Salah satu tren yang paling menarik perhatian adalah <strong>adaptogen</strong>.</p>

<p>Adaptogen adalah kelompok bahan herbal alami yang membantu tubuh beradaptasi terhadap stres — baik fisik, mental, maupun lingkungan. Istilah ini pertama kali diperkenalkan oleh ilmuwan Rusia, Dr. Nikolai Lazarev, pada tahun 1947. Kini, adaptogen menjadi primadona di industri minuman kesehatan global.</p>

<h2>Apa Itu Adaptogen?</h2>
<p>Secara ilmiah, adaptogen bekerja dengan cara memodulasi sistem respons stres tubuh, terutama poros HPA (Hypothalamic-Pituitary-Adrenal). Sederhananya, adaptogen membantu tubuh mencapai keseimbangan — tidak terlalu terstimulasi, tidak terlalu lelah.</p>

<p>Beberapa karakteristik utama adaptogen:</p>
<ul>
<li><strong>Non-toksik</strong> — aman dikonsumsi dalam jangka panjang</li>
<li><strong>Non-spesifik</strong> — meningkatkan ketahanan tubuh terhadap berbagai jenis stres</li>
<li><strong>Normalisasi</strong> — membantu tubuh kembali ke kondisi seimbang (homeostasis)</li>
</ul>

<h2>Contoh Adaptogen Populer untuk Minuman</h2>

<h3>1. Jahe & Kunyit (Adaptogen Ringan)</h3>
<p>Jahe dan kunyit adalah adaptogen ringan yang sudah lama digunakan dalam jamu tradisional Indonesia. Keduanya kaya akan antioksidan dan senyawa anti-inflamasi yang membantu tubuh melawan stres oksidatif. Kombinasi <strong>adaptogen jahe kunyit</strong> sangat cocok untuk minuman kesehatan serbuk yang menargetkan konsumen yang mencari produk alami.</p>

<h3>2. Ashwagandha</h3>
<p>Ashwagandha adalah adaptogen paling populer di dunia saat ini. Dikenal dapat menurunkan kadar kortisol (hormon stres), meningkatkan energi, dan memperbaiki kualitas tidur.</p>

<h3>3. Holy Basil (Tulsi)</h3>
<p>Tanaman suci dari India ini memiliki efek adaptogenik yang kuat terhadap stres mental. Sering digunakan dalam minuman teh fungsional.</p>

<h3>4. Ginseng</h3>
<p>Ginseng adalah adaptogen klasik yang meningkatkan energi, daya tahan tubuh, dan fungsi kognitif. Sangat populer di pasar Asia.</p>

<h3>5. Rhodiola Rosea</h3>
<p>Adaptogen yang dikenal dapat mengurangi kelelahan mental dan fisik, meningkatkan performa olahraga, serta memperbaiki suasana hati.</p>

<h2>Peluang Bisnis Minuman Adaptogen</h2>
<p>Pasar minuman fungsional global diperkirakan mencapai USD 275 miliar pada tahun 2028, dan adaptogen menjadi salah satu segmen dengan pertumbuhan tercepat. Di Indonesia, tren ini masih relatif baru — artinya, ada peluang besar bagi brand yang masuk lebih awal.</p>

<p>Beberapa segmen pasar yang potensial:</p>
<ul>
<li><strong>Minuman anti-stres</strong> — untuk pekerja kantoran dan milenial</li>
<li><strong>Minuman energi alami</strong> — tanpa kafein berlebihan</li>
<li><strong>Minuman tidur nyenyak</strong> — dengan ashwagandha atau chamomile</li>
<li><strong>Minuman imunitas</strong> — kombinasi adaptogen dengan vitamin C dan zinc</li>
</ul>

<h2>Cara Memulai Brand Minuman Adaptogen</h2>
<p>Untuk memulai bisnis minuman adaptogen, Anda tidak perlu membangun pabrik sendiri. Sistem <strong>maklon minuman serbuk</strong> memungkinkan Anda untuk:</p>
<ol>
<li>Konsultasi formula dengan tim R&D</li>
<li>Memilih bahan adaptogen yang sesuai target pasar</li>
<li>Menentukan rasa yang enak dan disukai konsumen</li>
<li>Memproduksi dalam skala kecil hingga besar</li>
<li>Mendapatkan izin BPOM dan sertifikasi halal</li>
</ol>

<p>Dengan sistem maklon, Anda bisa fokus pada branding, pemasaran, dan distribusi — sementara produksi ditangani oleh ahlinya.</p>

<h2>Kesimpulan</h2>
<p>Adaptogen bukan sekadar tren sesaat. Ini adalah perubahan fundamental dalam cara konsumen memandang minuman kesehatan. Bagi pengusaha yang ingin membangun brand minuman serbuk kesehatan, adaptogen menawarkan diferensiasi yang kuat dan nilai tambah yang nyata.</p>

<p>Sudah siap memulai brand minuman adaptogen Anda sendiri? Konsultasikan ide Anda dengan tim maklon profesional sekarang juga.</p>"""
    },

    # 2. YASMA - Kolagen vs Glutathione
    {
        "site": "yasma",
        "title": "Minuman Kolagen vs Glutathione: Mana yang Lebih Cocok untuk Brand Kecantikan Anda?",
        "cat": 55,
        "tags": ["kolagen", "glutathione", "beauty drink", "bisnis minuman kecantikan", 
                 "bisnis collagen drink", "brand kecantikan lokal", "maklon minuman kecantikan"],
        "slug": "perbandingan-kolagen-vs-glutathione-brand-kecantikan",
        "meta_desc": "Kolagen vs Glutathione untuk brand kecantikan Anda. Kenali perbedaan manfaat, target pasar, dan potensi bisnis dari kedua bahan ini.",
        "focus_kw": "kolagen vs glutathione brand kecantikan",
        "img_url": "https://images.pexels.com/photos/4047030/pexels-photo-4047030.jpeg?auto=compress&cs=tinysrgb&w=1200&h=630&dpr=2",
        "img_alt": "Minuman kecantikan kolagen dan glutathione",
        "img_file": "kolagen-vs-glutathione-beauty-drink-yasma.webp",
        "content": """<p>Industri minuman kecantikan di Indonesia tumbuh pesat. Dua bintang utama yang mendominasi pasar adalah <strong>kolagen</strong> dan <strong>glutathione</strong>. Keduanya sama-sama populer sebagai <strong>beauty drink</strong>, tapi sebenarnya memiliki manfaat, mekanisme kerja, dan target pasar yang berbeda.</p>

<p>Bagi Anda yang ingin membangun brand minuman kecantikan, memahami perbedaan ini sangat penting — agar produk yang Anda buat benar-benar sesuai dengan kebutuhan konsumen.</p>

<h2>Apa Itu Kolagen?</h2>
<p>Kolagen adalah protein struktural utama yang membentuk kulit, tulang, tendon, dan ligamen. Seiring bertambahnya usia, produksi kolagen alami tubuh menurun — dimulai sekitar usia 25 tahun.</p>

<p>Minuman kolagen bekerja dari dalam dengan menyediakan peptida kolagen yang mudah diserap tubuh. Manfaat utamanya:</p>
<ul>
<li><strong>Meningkatkan elastisitas kulit</strong> — kulit lebih kenyal dan kencang</li>
<li><strong>Mengurangi kerutan halus</strong> — tanda penuaan berkurang</li>
<li><strong>Melembapkan kulit</strong> — dari dalam, bukan hanya permukaan</li>
<li><strong>Memperkuat kuku dan rambut</strong> — tidak mudah patah</li>
<li><strong>Mendukung kesehatan sendi</strong> — mengurangi nyeri dan kekakuan</li>
</ul>

<h2>Apa Itu Glutathione?</h2>
<p>Glutathione adalah antioksidan kuat yang diproduksi secara alami oleh tubuh. Sering disebut sebagai "master antioksidan", glutathione berperan dalam melindungi sel dari kerusakan oksidatif, mendukung detoksifikasi, dan memperkuat sistem imun.</p>

<p>Dalam industri kecantikan, glutathione terkenal karena efeknya pada warna kulit:</p>
<ul>
<li><strong>Mencerahkan kulit</strong> — menghambat produksi melanin berlebih</li>
<li><strong>Menyamarkan noda hitam</strong> — bekas jerawat dan flek berkurang</li>
<li><strong>Melindungi dari radikal bebas</strong> — mencegah penuaan dini</li>
<li><strong>Mendukung detoksifikasi</strong> — tubuh lebih bersih dari racun</li>
<li><strong>Meningkatkan imunitas</strong> — tubuh lebih tahan terhadap penyakit</li>
</ul>

<h2>Perbandingan Langsung</h2>

<table style="width:100%; border-collapse:collapse; margin:20px 0;">
<tr style="background:#f0f0f0;">
<th style="padding:8px; border:1px solid #ddd; text-align:left;">Aspek</th>
<th style="padding:8px; border:1px solid #ddd; text-align:left;">Kolagen</th>
<th style="padding:8px; border:1px solid #ddd; text-align:left;">Glutathione</th>
</tr>
<tr><td style="padding:8px; border:1px solid #ddd;">Target</td><td style="padding:8px; border:1px solid #ddd;">Anti-aging, elastisitas kulit</td><td style="padding:8px; border:1px solid #ddd;">Pencerah kulit, antioksidan</td></tr>
<tr><td style="padding:8px; border:1px solid #ddd;">Usia Target</td><td style="padding:8px; border:1px solid #ddd;">25-55 tahun</td><td style="padding:8px; border:1px solid #ddd;">20-45 tahun</td></tr>
<tr><td style="padding:8px; border:1px solid #ddd;">Hasil</td><td style="padding:8px; border:1px solid #ddd;">2-4 minggu</td><td style="padding:8px; border:1px solid #ddd;">4-8 minggu</td></tr>
<tr><td style="padding:8px; border:1px solid #ddd;">Popularitas</td><td style="padding:8px; border:1px solid #ddd;">Sangat tinggi</td><td style="padding:8px; border:1px solid #ddd;">Tinggi (tumbuh)</td></tr>
</table>

<h2>Mana untuk Brand Anda?</h2>

<h3>Pilih Kolagen jika:</h3>
<ul>
<li>Target pasar wanita usia 30+ yang khawatir dengan tanda penuaan</li>
<li>Produk dengan permintaan pasar yang sudah terbukti</li>
<li>Brand fokus pada anti-aging dan kesehatan kulit</li>
</ul>

<h3>Pilih Glutathione jika:</h3>
<ul>
<li>Target pasar wanita usia 20-35 yang ingin kulit cerah dan glowing</li>
<li>Brand fokus pada skin brightening dan perlindungan antioksidan</li>
<li>Ingin produk dengan harga lebih terjangkau</li>
</ul>

<h2>Tips: Bisa Keduanya!</h2>
<p>Banyak brand kecantikan sukses yang menawarkan kedua produk dalam satu lini. Kolagen untuk pagi hari (perbaikan kulit), glutathione untuk malam hari (detoksifikasi). Atau menggabungkan keduanya dalam satu formula.</p>

<h2>Kesimpulan</h2>
<p>Baik kolagen maupun glutathione memiliki pasar dan penggemar masing-masing. Kuncinya adalah memahami target konsumen Anda. Dengan sistem maklon, Anda bisa mengembangkan kedua varian produk tanpa investasi besar di awal.</p>"""
    },

    # 3. EVERYBE - Stretching (Co Bloong)
    {
        "site": "everybe",
        "title": "5 Gerakan Stretching untuk Pekerja Kantoran yang Sering Pegal",
        "cat": 12,
        "tags": ["pegal linu", "Co Bloong", "kesehatan otot", "cream pegal", 
                 "pegal setelah bekerja", "aktivitas harian", "gaya hidup aktif"],
        "slug": "gerakan-stretching-pekerja-kantoran-pegal",
        "meta_desc": "Duduk seharian bikin badan pegal? Coba 5 gerakan stretching simpel ini di kantor. Plus tips pakai Co Bloong untuk relaksasi maksimal.",
        "focus_kw": "gerakan stretching pekerja kantoran",
        "img_url": "https://images.pexels.com/photos/4506109/pexels-photo-4506109.jpeg?auto=compress&cs=tinysrgb&w=1200&h=630&dpr=2",
        "img_alt": "Stretching di kantor untuk pegawai yang sering pegal",
        "img_file": "stretching-pekerja-kantoran-cobloong.webp",
        "content": """<p>Duduk berjam-jam di depan komputer adalah kenyataan yang dihadapi hampir semua pekerja kantoran. Tanpa disadari, kebiasaan ini menyebabkan berbagai masalah: leher kaku, punggung terasa berat, pinggang pegal, hingga bahu dan pergelangan tangan terasa nyeri.</p>

<p>Kabar baiknya, Anda tidak perlu pergi ke gym atau menghabiskan waktu berjam-jam untuk mengatasinya. Cukup lakukan <strong>5 gerakan stretching</strong> ini di sela-sela jam kerja — dan badan Anda akan terasa jauh lebih ringan.</p>

<h2>1. Neck Stretch (Leher)</h2>
<p><strong>Manfaat:</strong> Mengurangi ketegangan di leher dan bahu akibat menatap layar terlalu lama.</p>
<p><strong>Cara:</strong> Duduk tegak, miringkan kepala ke kanan perlahan, tahan 15-20 detik. Kembali ke tengah, miringkan ke kiri. Ulangi 3 kali tiap sisi.</p>

<h2>2. Shoulder Roll (Bahu)</h2>
<p><strong>Manfaat:</strong> Melemaskan otot bahu yang menegang karena posisi duduk yang salah.</p>
<p><strong>Cara:</strong> Angkat bahu ke telinga, putar ke belakang dalam gerakan melingkar. Lakukan 10 putaran ke belakang, 10 ke depan.</p>

<h2>3. Seated Spinal Twist (Punggung)</h2>
<p><strong>Manfaat:</strong> Melemaskan tulang belakang dan otot punggung bawah yang kaku.</p>
<p><strong>Cara:</strong> Duduk tegak, putar tubuh bagian atas ke kanan, tangan di sandaran kursi. Tahan 20-30 detik, ganti sisi. Ulangi 2 kali.</p>

<h2>4. Wrist Flexor Stretch (Pergelangan Tangan)</h2>
<p><strong>Manfaat:</strong> Mencegah carpal tunnel syndrome dan mengurangi pegal akibat mengetik.</p>
<p><strong>Cara:</strong> Luruskan lengan kanan ke depan, telapak tangan menghadap atas. Gunakan tangan kiri menarik jari ke bawah. Tahan 15-20 detik. Ulangi untuk tangan kiri.</p>

<h2>5. Standing Hamstring Stretch (Kaki & Pinggang)</h2>
<p><strong>Manfaat:</strong> Meregangkan paha belakang dan pinggang bawah yang kaku.</p>
<p><strong>Cara:</strong> Berdiri tegak, langkahkan kaki kanan ke depan. Tekuk sedikit kaki kiri, condongkan tubuh ke depan. Tahan 20-30 detik, ganti kaki.</p>

<h2>Tips Agar Stretching Lebih Efektif</h2>
<ul>
<li>Lakukan stretching setiap 1-2 jam sekali, jangan menunggu sampai terasa pegal</li>
<li>Atur alarm pengingat di ponsel atau komputer Anda</li>
<li>Minum air putih yang cukup — dehidrasi membuat otot lebih mudah tegang</li>
<li>Setelah stretching, gunakan <strong>Co Bloong Massage Cream</strong> di area yang masih terasa pegal untuk membantu relaksasi otot lebih dalam</li>
</ul>

<h2>Kenapa Co Bloong Jadi Andalan Pekerja Kantoran?</h2>
<p><strong>Co Bloong</strong> adalah krim pijat hangat yang diformulasikan khusus untuk membantu meredakan pegal dan ketegangan otot. Dengan kandungan bahan alami yang memberikan sensasi hangat, Co Bloong membantu melancarkan peredaran darah di area yang pegal, sehingga proses pemulihan otot berlangsung lebih cepat.</p>

<h2>Kesimpulan</h2>
<p>Pegal di kantor bukan hal yang harus Anda terima begitu saja. Dengan 5 gerakan stretching sederhana ini dan bantuan Co Bloong, Anda bisa bekerja lebih nyaman dan produktif tanpa diganggu rasa pegal.</p>"""
    },

    # 4. EVERYBE - Feminine Care (Feminine V Spray)
    {
        "site": "everybe",
        "title": "Cara Alami Mengatasi Bau Tidak Sedap di Area Kewanitaan",
        "cat": 12,
        "tags": ["feminine hygiene", "Feminine V Spray", "perawatan area intim wanita", 
                 "kesehatan wanita", "kebersihan area intim", "perawatan wanita modern"],
        "slug": "cara-alami-mengatasi-bau-tidak-sedap-area-kewanitaan",
        "meta_desc": "Bau tidak sedap di area kewanitaan bikin kurang percaya diri? Simak cara alami mengatasinya dan peran Feminine V Spray dari EveryBe.",
        "focus_kw": "cara alami mengatasi bau area kewanitaan",
        "img_url": "https://images.pexels.com/photos/3769989/pexels-photo-3769989.jpeg?auto=compress&cs=tinysrgb&w=1200&h=630&dpr=2",
        "img_alt": "Wanita menjaga kebersihan area kewanitaan",
        "img_file": "cara-alami-bau-area-kewanitaan-everybe.webp",
        "content": """<p>Bau tidak sedap di area kewanitaan adalah masalah yang sangat umum terjadi pada wanita. Namun karena sifatnya yang sensitif, banyak wanita enggan membicarakannya atau mencari solusi yang tepat. Padahal, masalah ini bisa diatasi dengan perawatan yang benar dan konsisten.</p>

<p>Penting untuk dipahami: area kewanitaan yang sehat memiliki bau alami yang khas. Yang perlu diwaspadai adalah ketika baunya berubah menjadi menyengat atau tidak biasa — ini bisa menjadi tanda adanya ketidakseimbangan flora normal di area tersebut.</p>

<h2>Penyebab Bau Tidak Sedap</h2>
<ul>
<li><strong>Kurangnya kebersihan</strong> — jarang mengganti pembalut atau celana dalam</li>
<li><strong>Sabun terlalu keras</strong> — mengganggu pH alami area kewanitaan</li>
<li><strong>Infeksi bakteri atau jamur</strong> — seperti bacterial vaginosis</li>
<li><strong>Perubahan hormon</strong> — saat menstruasi, hamil, atau menopause</li>
<li><strong>Pakaian tidak menyerap keringat</strong> — lingkungan lembap bagi bakteri</li>
<li><strong>Keringat berlebih</strong> — terutama setelah olahraga</li>
</ul>

<h2>10 Cara Alami Mengatasi</h2>

<h3>1. Jaga Kebersihan dengan Benar</h3>
<p>Bersihkan dari depan ke belakang untuk mencegah bakteri dari anus berpindah ke vagina.</p>

<h3>2. Gunakan Produk dengan pH Seimbang</h3>
<p>Area kewanitaan memiliki pH 3.5-4.5. Hindari sabun biasa yang bersifat alkali. Gunakan <strong>Feminine V Spray</strong> dari EveryBe yang diformulasikan dengan pH seimbang.</p>

<h3>3. Ganti Celana Dalam Teratur</h3>
<p>Minimal 2 kali sehari. Pilih bahan katun yang menyerap keringat.</p>

<h3>4. Hindari Douching</h3>
<p>Pembilasan ke dalam vagina justru mengganggu keseimbangan bakteri baik.</p>

<h3>5. Konsumsi Makanan Sehat</h3>
<p>Probiotik seperti yogurt dan tempe membantu menjaga keseimbangan bakteri baik.</p>

<h3>6. Minum Air Putih Cukup</h3>
<p>Hidrasi membantu tubuh mengeluarkan racun dan menjaga kelembapan alami.</p>

<h3>7. Hindari Pakaian Terlalu Ketat</h3>
<p>Celana ketat menciptakan lingkungan lembap dan hangat bagi bakteri.</p>

<h3>8. Ganti Pembalut Tiap 3-4 Jam</h3>
<p>Pembalut yang terlalu lama jadi tempat berkembang biak bakteri.</p>

<h3>9. Gunakan Feminine Spray Setelah Aktivitas</h3>
<p>Setelah olahraga atau bepergian, <strong>Feminine V Spray</strong> menyegarkan area kewanitaan tanpa perlu dibilas.</p>

<h3>10. Konsultasi ke Dokter</h3>
<p>Jika bau tidak kunjung hilang, segera konsultasi ke dokter kandungan.</p>

<h2>Mengapa Feminine V Spray?</h2>
<p><strong>Feminine V Spray</strong> adalah solusi praktis untuk menjaga kesegaran area kewanitaan sepanjang hari. Formula ringan yang aman digunakan setiap hari, membantu menjaga pH seimbang, mencegah bau tidak sedap, dan memberikan rasa segar instan.</p>"""
    },

    # 5. EVERYBE - Narazyma Queen
    {
        "site": "everybe",
        "title": "Perbedaan Narazyma Queen dengan Skincare Biasa: Mana yang Lebih Tepat untuk Kulit Kamu?",
        "cat": 12,
        "tags": ["Narazyma Queen", "skincare", "perawatan kulit", "rutinitas skincare", 
                 "kulit sehat", "bahan alami", "tips kecantikan"],
        "slug": "perbedaan-narazyma-queen-skincare-biasa",
        "meta_desc": "Apa bedanya Narazyma Queen dengan skincare biasa? Simak perbandingan lengkapnya dan temukan solusi kulit sehat yang tepat untuk kamu.",
        "focus_kw": "perbedaan narazyma queen skincare biasa",
        "img_url": "https://images.pexels.com/photos/6629956/pexels-photo-6629956.jpeg?auto=compress&cs=tinysrgb&w=1200&h=630&dpr=2",
        "img_alt": "Narazyma Queen skincare untuk kulit sehat",
        "img_file": "narazyma-queen-vs-skincare-biasa-everybe.webp",
        "content": """<p>Dunia skincare dipenuhi dengan berbagai macam produk — dari yang murah hingga premium, dari yang alami hingga penuh bahan kimia. Di tengah banjir pilihan ini, hadir <strong>Narazyma Queen</strong> dari EveryBe yang menawarkan pendekatan berbeda untuk perawatan kulit.</p>

<h2>Apa Itu Narazyma Queen?</h2>
<p><strong>Narazyma Queen</strong> adalah Healthy Skin Solution dari EveryBe yang diformulasikan khusus untuk membantu kulit tampil sehat, cerah, dan terjaga kelembapannya. Bukan sekadar produk skincare biasa, Narazyma Queen menawarkan pendekatan holistik — merawat kulit dari luar sekaligus mendukung kesehatannya dari dalam.</p>

<h2>Perbandingan: Narazyma Queen vs Skincare Biasa</h2>

<h3>1. Pendekatan Perawatan</h3>
<p><strong>Skincare biasa:</strong> Fokus pada perbaikan yang sudah terjadi — menghilangkan jerawat, mencerahkan noda, atau menyamarkan kerutan setelah masalah muncul.</p>
<p><strong>Narazyma Queen:</strong> Pendekatan preventif. Menjaga kesehatan kulit secara keseluruhan agar masalah tidak muncul di kemudian hari.</p>

<h3>2. Formula dan Kandungan</h3>
<p><strong>Skincare biasa:</strong> Bahan aktif konsentrasi tinggi — hasil cepat tapi berpotensi iritasi.</p>
<p><strong>Narazyma Queen:</strong> Formula gentle dan seimbang. Setiap bahan dipilih untuk manfaat optimal tanpa mengorbankan kenyamanan kulit.</p>

<h3>3. Target Pengguna</h3>
<p><strong>Skincare biasa:</strong> Untuk masalah spesifik — jerawat, flek, penuaan. Pengguna harus paham masalah kulitnya.</p>
<p><strong>Narazyma Queen:</strong> Untuk semua wanita yang ingin kulitnya tetap sehat dan terawat. Tidak perlu jadi ahli skincare.</p>

<h3>4. Cara Penggunaan</h3>
<p><strong>Skincare biasa:</strong> Bisa 7-10 langkah (toner, serum, moisturizer, dll). Merepotkan dan memakan waktu.</p>
<p><strong>Narazyma Queen:</strong> Solusi lebih sederhana namun tetap efektif. Fewer steps, better results.</p>

<h2>Kapan Narazyma Queen Jadi Pilihan Tepat?</h2>
<ul>
<li>Ingin memulai perawatan kulit tapi bingung dengan banyaknya pilihan</li>
<li>Kulit sensitif dan mudah iritasi dengan skincare biasa</li>
<li>Ingin solusi simpel namun tetap efektif</li>
<li>Percaya bahwa kulit sehat adalah dasar dari kulit cantik</li>
<li>Mencari produk yang aman digunakan jangka panjang</li>
</ul>

<h2>Kesimpulan</h2>
<p>Skincare biasa dan Narazyma Queen memiliki kelebihan masing-masing. Namun jika kamu mencari solusi perawatan yang simple, aman, dan efektif untuk kesehatan kulit jangka panjang — <strong>Narazyma Queen</strong> adalah pilihan yang tepat. Mulai perjalanan kulit sehatmu sekarang.</p>"""
    },
]

# ─── PUBLISH LOGIC ────────────────────────────────────────────────────────────

for art in articles:
    site = art["site"]
    cfg = SITES[site]
    site_name = "Yasma Natura" if site == "yasma" else "EveryBe"
    
    print(f"\n{'='*60}")
    print(f"📝 [{site_name}] {art['title']}")
    print(f"{'='*60}")
    
    # 1. Upload image
    print(f"📸 Upload image...")
    img_id = upload_image(cfg, art["img_url"], art["img_alt"], art["img_file"])
    
    # 2. Tags
    print(f"🏷  Tags...")
    tag_ids = ensure_tags(cfg, art["tags"])
    print(f"   → Tags IDs: {tag_ids}")
    
    # 3. Create post
    print(f"✍️  Creating post...")
    post_data = {
        "title": art["title"],
        "content": art["content"],
        "slug": art["slug"],
        "status": "publish",
        "categories": [art["cat"]],
    }
    if tag_ids:
        post_data["tags"] = tag_ids
    if img_id:
        post_data["featured_media"] = img_id
    
    result = wp_post(f"{cfg['url']}/posts", cfg["auth"], post_data)
    
    if result and "id" in result:
        post_id = result["id"]
        print(f"  ✅ BERHASIL! Post ID: {post_id}")
        print(f"  🔗 {result.get('link', f'https://{site}.id/?p={post_id}')}")
        
        # 4. Update Yoast SEO
        print(f"  🔧 Update Yoast SEO...")
        wp_post(f"{cfg['url']}/posts/{post_id}", cfg["auth"], {
            "meta": {
                "_yoast_wpseo_metadesc": art["meta_desc"],
                "_yoast_wpseo_focuskw": art["focus_kw"],
                "_yoast_wpseo_title": art["title"],
            }
        })
        print(f"  ✅ Yoast SEO done")
    else:
        print(f"  ❌ GAGAL! Result: {str(result)[:200] if result else 'None'}")
    
    print()

print(f"{'='*60}")
print(f"✅✅✅ SELESAI! 5 artikel dipublikasikan.")
print(f"{'='*60}")
