#!/usr/bin/env python3
"""
Publish 5 artikel: 2 Yasma Natura + 3 EveryBe
Dengan featured image, tags, categories, Yoast meta
"""

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

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

YASMA_URL = "https://yasmanatura.co.id/wp-json/wp/v2"
YASMA_USER = "bambangbot"
YASMA_PASS = "LFp4 LXBh kMYG 84qC 2DDc 5bLc"
YASMA_AUTH = base64.b64encode(f"{YASMA_USER}:{YASMA_PASS}".encode()).decode()

EVERYBE_URL = "https://everybeofficial.com/wp-json/wp/v2"
EVERYBE_USER = "bambangbot"
EVERYBE_PASS = "2Aa0 OwYY NJaL Oc8b 9OCo Owcw"
EVERYBE_AUTH = base64.b64encode(f"{EVERYBE_USER}:{EVERYBE_PASS}".encode()).decode()

# ─── KATEGORI ─────────────────────────────────────────────────────────────────

# Yasma: Edukasi=55, Produk=30
# EveryBe: Tips=12, Produk=86

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

def wp_req(url_base, auth, method="POST", data=None, retries=3):
    """Make WP REST API request"""
    for attempt in range(retries):
        try:
            if method == "GET":
                req = urllib.request.Request(url_base, method="GET")
            else:
                req = urllib.request.Request(url_base, method=method)
            req.add_header("Authorization", f"Basic {auth}")
            req.add_header("Content-Type", "application/json")
            if data is not None:
                body_bytes = json.dumps(data).encode("utf-8")
                req.data = body_bytes
            with urllib.request.urlopen(req, timeout=60) as resp:
                raw = resp.read().decode("utf-8")
                return json.loads(raw)
        except urllib.error.HTTPError as e:
            body = e.read().decode("utf-8", errors="replace")
            if attempt < retries - 1:
                time.sleep(2 ** attempt)
                continue
            print(f"  ❌ HTTP {e.code}: {body[:500]}")
            return None
        except Exception as e:
            if attempt < retries - 1:
                time.sleep(2 ** attempt)
                continue
            print(f"  ❌ Error: {e}")
            return None


def upload_image(url_base, auth, image_url, alt_text, filename):
    """Download image from URL and upload to WP media library"""
    # Download
    try:
        req = urllib.request.Request(image_url, headers={"User-Agent": "Mozilla/5.0"})
        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 to WP
    boundary = "----WebKitFormBoundary" + 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()
    
    try:
        req = urllib.request.Request(f"{url_base}/media", data=body, method="POST")
        req.add_header("Authorization", f"Basic {auth}")
        req.add_header("Content-Type", f"multipart/form-data; boundary={boundary}")
        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:
        print(f"  ❌ Upload image HTTP {e.code}: {e.read().decode()[:200]}")
        return None


def ensure_tags(url_base, auth, tag_names):
    """Get or create tags, return list of tag IDs"""
    ids = []
    tags_url = f"{url_base}/tags"
    # Fetch all existing tags first
    existing_tags = {}
    try:
        req = urllib.request.Request(tags_url + "?per_page=100", method="GET")
        req.add_header("Authorization", f"Basic {auth}")
        with urllib.request.urlopen(req, timeout=15) as resp:
            existing_tags_list = json.loads(resp.read().decode())
            for t in existing_tags_list:
                existing_tags[t["name"].lower()] = t["id"]
    except Exception as e:
        print(f"  ⚠️ Gagal fetch tags: {e}")
    
    for name in tag_names:
        key = name.lower()
        if key in existing_tags:
            ids.append(existing_tags[key])
            print(f"  🏷 Tag ditemukan: {name} (ID {existing_tags[key]})")
            continue
        
        # Create new
        result = wp_req(tags_url, auth, "POST", {"name": name})
        if result and "id" in result:
            ids.append(result["id"])
            existing_tags[name.lower()] = result["id"]
            print(f"  🏷 Created tag: {name} (ID {result['id']})")
        elif result and "data" in result and result.get("code") == "term_exists":
            # Tag already exists - extract ID from response
            term_id = result.get("data", {}).get("term_id", 0)
            if term_id:
                ids.append(term_id)
                existing_tags[name.lower()] = term_id
                print(f"  🏷 Tag exists: {name} (ID {term_id})")
            else:
                print(f"  ⚠️ Tag exists tapi gak dapet ID: {name}")
        else:
            print(f"  ⚠️ Gagal buat tag: {name}")
        time.sleep(0.3)
    return ids


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

articles = [
    # ── YASMA 1 ──
    {
        "site": "yasma",
        "title": "Mengenal Adaptogen: Bahan Herbal Masa Depan untuk Bisnis Minuman Kesehatan",
        "category": 55,  # Edukasi
        "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_keyword": "adaptogen bisnis minuman kesehatan",
        "image_url": "https://images.pexels.com/photos/4198035/pexels-photo-4198035.jpeg?auto=compress&cs=tinysrgb&w=1200&h=630&dpr=2",
        "image_alt": "Herbal alami adaptogen untuk minuman kesehatan",
        "image_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. Cocok untuk minuman relaksasi atau minuman malam hari.</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 <strong>USD 275 miliar pada tahun 2028</strong>, 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>"""
    },

    # ── YASMA 2 ──
    {
        "site": "yasma",
        "title": "Minuman Kolagen vs Glutathione: Mana yang Lebih Cocok untuk Brand Kecantikan Anda?",
        "category": 55,  # Edukasi
        "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_keyword": "kolagen vs glutathione brand kecantikan",
        "image_url": "https://images.pexels.com/photos/4047030/pexels-photo-4047030.jpeg?auto=compress&cs=tinysrgb&w=1200&h=630&dpr=2",
        "image_alt": "Minuman kecantikan kolagen dan glutathione",
        "image_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. Akibatnya, kulit mulai kehilangan elastisitas, muncul kerutan, dan sendi terasa kaku.</p>

<p>Minuman kolagen bekerja dari dalam dengan menyediakan peptida kolagen yang mudah diserap tubuh. Manfaat utamanya meliputi:</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 <strong>"master antioksidan"</strong>, 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 akibat polusi dan sinar UV</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: Kolagen vs Glutathione</h2>

<table style="width:100%; border-collapse:collapse; margin:20px 0;">
<tr style="background:#f0f0f0;">
<th style="padding:10px; border:1px solid #ddd; text-align:left;">Aspek</th>
<th style="padding:10px; border:1px solid #ddd; text-align:left;">Kolagen</th>
<th style="padding:10px; border:1px solid #ddd; text-align:left;">Glutathione</th>
</tr>
<tr>
<td style="padding:10px; border:1px solid #ddd;"><strong>Target Utama</strong></td>
<td style="padding:10px; border:1px solid #ddd;">Anti-aging, elastisitas kulit</td>
<td style="padding:10px; border:1px solid #ddd;">Pencerah kulit, antioksidan</td>
</tr>
<tr>
<td style="padding:10px; border:1px solid #ddd;"><strong>Usia Target</strong></td>
<td style="padding:10px; border:1px solid #ddd;">25-55 tahun</td>
<td style="padding:10px; border:1px solid #ddd;">20-45 tahun</td>
</tr>
<tr>
<td style="padding:10px; border:1px solid #ddd;"><strong>Hasil Terlihat</strong></td>
<td style="padding:10px; border:1px solid #ddd;">2-4 minggu pemakaian rutin</td>
<td style="padding:10px; border:1px solid #ddd;">4-8 minggu pemakaian rutin</td>
</tr>
<tr>
<td style="padding:10px; border:1px solid #ddd;"><strong>Harga Produksi</strong></td>
<td style="padding:10px; border:1px solid #ddd;">Sedang-tinggi</td>
<td style="padding:10px; border:1px solid #ddd;">Sedang</td>
</tr>
<tr>
<td style="padding:10px; border:1px solid #ddd;"><strong>Popularitas Pasar</strong></td>
<td style="padding:10px; border:1px solid #ddd;">Sangat tinggi (mapan)</td>
<td style="padding:10px; border:1px solid #ddd;">Tinggi (tumbuh cepat)</td>
</tr>
<tr>
<td style="padding:10px; border:1px solid #ddd;"><strong>Kombinasi Populer</strong></td>
<td style="padding:10px; border:1px solid #ddd;">Vitamin C, hyaluronic acid</td>
<td style="padding:10px; border:1px solid #ddd;">Vitamin C, NAC, alpha lipoic acid</td>
</tr>
</table>

<h2>Mana yang Lebih Cocok untuk Brand Anda?</h2>

<h3>Pilih Kolagen jika:</h3>
<ul>
<li>Target pasar Anda adalah wanita usia 30+ yang mulai khawatir dengan tanda penuaan</li>
<li>Anda ingin produk dengan <strong>permintaan pasar yang sudah terbukti</strong></li>
<li>Brand Anda fokus pada <strong>anti-aging</strong> dan kesehatan kulit secara keseluruhan</li>
<li>Anda punya budget lebih untuk bahan baku berkualitas tinggi</li>
</ul>

<h3>Pilih Glutathione jika:</h3>
<ul>
<li>Target pasar Anda adalah wanita usia 20-35 yang ingin <strong>kulit cerah dan glowing</strong></li>
<li>Brand Anda fokus pada <strong>skin brightening</strong> dan perlindungan antioksidan</li>
<li>Anda ingin produk dengan <strong>harga lebih terjangkau</strong> untuk menjangkau pasar yang lebih luas</li>
<li>Anda memasuki pasar yang sudah ramai — glutathione bisa jadi pembeda</li>
</ul>

<h2>Tips: Bisa Keduanya!</h2>
<p>Banyak brand kecantikan sukses yang menawarkan <strong>kedua produk</strong> dalam satu lini. Kolagen untuk pagi hari (perbaikan kulit), glutathione untuk malam hari (detoksifikasi dan perlindungan). Atau bahkan menggabungkan keduanya dalam satu formula — meskipun ini membutuhkan formulasi yang tepat agar efektivitas keduanya tetap optimal.</p>

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

<p>Siap memulai brand minuman kecantikan Anda? Konsultasikan kebutuhan produk Anda dengan tim profesional sekarang.</p>"""
    },

    # ── EVERYBE 1 (Co Bloong - Muscle & Joint) ──
    {
        "site": "everybe",
        "title": "5 Gerakan Stretching untuk Pekerja Kantoran yang Sering Pegal",
        "category": 12,  # Tips
        "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_keyword": "gerakan stretching pekerja kantoran",
        "image_url": "https://images.pexels.com/photos/4506109/pexels-photo-4506109.jpeg?auto=compress&cs=tinysrgb&w=1200&h=630&dpr=2",
        "image_alt": "Stretching di kantor untuk pegawai yang sering pegal",
        "image_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 atas akibat menatap layar terlalu lama.</p>
<p><strong>Cara melakukan:</strong></p>
<ol>
<li>Duduk tegak di kursi dengan bahu rileks</li>
<li>Miringkan kepala ke kanan secara perlahan, tahan 15-20 detik</li>
<li>Kembali ke tengah, lalu miringkan ke kiri, tahan 15-20 detik</li>
<li>Ulangi 3 kali di setiap sisi</li>
</ol>

<h2>2. Shoulder Roll (Bahu)</h2>
<p><strong>Manfaat:</strong> Melemaskan otot bahu yang menegang karena posisi duduk yang salah.</p>
<p><strong>Cara melakukan:</strong></p>
<ol>
<li>Angkat bahu ke arah telinga setinggi mungkin</li>
<li>Putar bahu ke belakang dalam gerakan melingkar</li>
<li>Lakukan 10 putaran ke belakang, lalu 10 putaran ke depan</li>
<li>Rasakan otot bahu yang mulai rileks</li>
</ol>

<h2>3. Seated Spinal Twist (Punggung)</h2>
<p><strong>Manfaat:</strong> Melemaskan tulang belakang dan otot punggung bawah yang kaku.</p>
<p><strong>Cara melakukan:</strong></p>
<ol>
<li>Duduk tegak, kaki rata di lantai</li>
<li>Putar tubuh bagian atas ke kanan, tangan kanan di sandaran kursi</li>
<li>Tangan kiri di paha kanan untuk membantu putaran</li>
<li>Tahan 20-30 detik, lalu ganti sisi</li>
<li>Ulangi 2 kali di setiap sisi</li>
</ol>

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

<h2>5. Standing Hamstring Stretch (Kaki & Pinggang)</h2>
<p><strong>Manfaat:</strong> Meregangkan paha belakang dan pinggang bawah yang kaku karena duduk terlalu lama.</p>
<p><strong>Cara melakukan:</strong></p>
<ol>
<li>Berdiri tegak, langkahkan kaki kanan ke depan</li>
<li>Tekuk sedikit kaki kiri, jaga kaki kanan lurus</li>
<li>Condongkan tubuh ke depan, rasakan regangan di paha belakang</li>
<li>Tahan 20-30 detik, ganti kaki</li>
</ol>

<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</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. Teksturnya yang ringan dan cepat meresap membuatnya praktis digunakan kapan saja — bahkan di sela-sela jam kerja.</p>

<p>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. Cocok untuk Anda yang duduk seharian di depan layar.</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. Mulai dari sekarang, jadikan stretching sebagai kebiasaan harian Anda!</p>"""
    },

    # ── EVERYBE 2 (Feminine V Spray - Feminine Care) ──
    {
        "site": "everybe",
        "title": "Cara Alami Mengatasi Bau Tidak Sedap di Area Kewanitaan",
        "category": 12,  # Tips
        "tags": ["feminine hygiene", "Feminine V Spray", "perawatan area intim wanita", "kesehatan wanita", "kebersihan area intim", "keputihan", "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_keyword": "cara alami mengatasi bau area kewanitaan",
        "image_url": "https://images.pexels.com/photos/3769989/pexels-photo-3769989.jpeg?auto=compress&cs=tinysrgb&w=1200&h=630&dpr=2",
        "image_alt": "Wanita menjaga kebersihan area kewanitaan",
        "image_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 di Area Kewanitaan</h2>

<p>Sebelum mencari solusi, kenali dulu penyebabnya:</p>

<ul>
<li><strong>Kurangnya kebersihan</strong> — jarang mengganti pembalut atau celana dalam</li>
<li><strong>Penggunaan sabun yang terlalu keras</strong> — mengganggu pH alami area kewanitaan</li>
<li><strong>Infeksi bakteri atau jamur</strong> — seperti bacterial vaginosis atau candidiasis</li>
<li><strong>Perubahan hormon</strong> — saat menstruasi, kehamilan, atau menopause</li>
<li><strong>Pakaian yang tidak menyerap keringat</strong> — menciptakan lingkungan lembap yang ideal bagi bakteri</li>
<li><strong>Keringat berlebih</strong> — terutama bagi wanita yang aktif bergerak atau berolahraga</li>
</ul>

<h2>10 Cara Alami Mengatasi Bau Tidak Sedap</h2>

<h3>1. Jaga Kebersihan dengan Cara yang Benar</h3>
<p>Bersihkan area kewanitaan dari depan ke belakang (dari vagina ke anus) untuk mencegah bakteri dari anus berpindah ke vagina. Lakukan setiap kali selesai buang air kecil atau besar.</p>

<h3>2. Gunakan Produk Pembersih dengan pH Seimbang</h3>
<p>Area kewanitaan memiliki pH alami sekitar 3.5-4.5 (asam). Hindari sabun biasa yang bersifat alkali. Gunakan produk khusus kewanitaan seperti <strong>Feminine V Spray</strong> dari EveryBe yang diformulasikan dengan pH seimbang untuk menjaga flora normal area intim.</p>

<h3>3. Ganti Celana Dalam Secara Teratur</h3>
<p>Ganti celana dalam minimal 2 kali sehari. Pilih bahan katun yang menyerap keringat. Hindari bahan sintetis yang membuat area kewanitaan lembap.</p>

<h3>4. Hindari Douching (Pembilasan ke Dalam Vagina)</h3>
<p>Douching justru dapat mengganggu keseimbangan bakteri baik di vagina dan meningkatkan risiko infeksi. Cukup bersihkan bagian luar saja.</p>

<h3>5. Konsumsi Makanan Sehat</h3>
<p>Probiotik seperti yogurt, kefir, dan tempe membantu menjaga keseimbangan bakteri baik di tubuh, termasuk di area kewanitaan.</p>

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

<h3>7. Hindari Pakaian Terlalu Ketat</h3>
<p>Celana jeans ketat atau leggings yang dipakai seharian dapat menciptakan lingkungan yang lembap dan hangat — tempat ideal bagi bakteri dan jamur berkembang.</p>

<h3>8. Ganti Pembalut Setiap 3-4 Jam Saat Menstruasi</h3>
<p>Pembalut yang terlalu lama digunakan menjadi tempat berkembang biak bakteri penyebab bau.</p>

<h3>9. Gunakan Feminine Spray Setelah Beraktivitas</h3>
<p>Setelah olahraga, bepergian, atau aktivitas yang membuat Anda berkeringat, gunakan <strong>Feminine V Spray</strong> untuk menyegarkan area kewanitaan. Spray ini praktis, tidak perlu dibilas, dan memberikan rasa segar sepanjang hari.</p>

<h3>10. Konsultasi ke Dokter Jika Bau Menetap</h3>
<p>Jika bau tidak sedap tidak kunjung hilang meskipun sudah menjaga kebersihan, segera konsultasikan ke dokter kandungan. Bisa jadi ada infeksi yang memerlukan penanganan medis.</p>

<h2>Mengapa Feminine V Spray dari EveryBe?</h2>
<p><strong>Feminine V Spray</strong> adalah solusi praktis untuk menjaga kesegaran area kewanitaan sepanjang hari. Dibuat dengan formula ringan yang aman digunakan setiap hari, produk ini membantu:</p>
<ul>
<li>Menjaga pH seimbang area kewanitaan</li>
<li>Memberikan kesegaran instan setelah aktivitas</li>
<li>Mencegah bau tidak sedap tanpa mengganggu flora normal</li>
<li>Praktis — cukup semprotkan, tidak perlu dibilas</li>
</ul>

<h2>Kesimpulan</h2>
<p>Bau tidak sedap di area kewanitaan bukanlah hal yang memalukan — ini adalah masalah yang wajar dan bisa diatasi. Kuncinya ada pada kebersihan yang konsisten, produk yang tepat, dan gaya hidup sehat. Dengan <strong>Feminine V Spray</strong> dari EveryBe, Anda bisa tetap segar dan percaya diri sepanjang hari, di mana pun Anda beraktivitas.</p>"""
    },

    # ── EVERYBE 3 (Narazyma Queen - Beauty Education) ──
    {
        "site": "everybe",
        "title": "Perbedaan Narazyma Queen dengan Skincare Biasa: Mana yang Lebih Tepat untuk Kulit Kamu?",
        "category": 12,  # Tips
        "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_keyword": "perbedaan narazyma queen skincare biasa",
        "image_url": "https://images.pexels.com/photos/6629956/pexels-photo-6629956.jpeg?auto=compress&cs=tinysrgb&w=1200&h=630&dpr=2",
        "image_alt": "Narazyma Queen skincare untuk kulit sehat",
        "image_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>

<p>Tapi apa sebenarnya yang membedakan Narazyma Queen dengan produk skincare biasa? Dan mana yang lebih tepat untuk jenis kulit kamu? Simak perbandingan lengkapnya berikut ini.</p>

<h2>Apa Itu Narazyma Queen?</h2>
<p><strong>Narazyma Queen</strong> adalah <em>Healthy Skin Solution</em> 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> Mayoritas produk skincare fokus pada perbaikan yang sudah terjadi — menghilangkan jerawat, mencerahkan noda hitam, atau menyamarkan kerutan setelah masalah muncul.</p>
<p><strong>Narazyma Queen:</strong> Mengusung pendekatan preventif. Bukan hanya mengatasi masalah kulit yang sudah ada, tetapi juga menjaga kesehatan kulit secara keseluruhan agar masalah tidak muncul di kemudian hari. Ini adalah perbedaan filosofi yang mendasar.</p>

<h3>2. Formula dan Kandungan</h3>
<p><strong>Skincare biasa:</strong> Sering menggunakan bahan aktif dalam konsentrasi tinggi yang bisa memberikan hasil cepat, tetapi juga berpotensi menyebabkan iritasi jika tidak cocok dengan jenis kulit.</p>
<p><strong>Narazyma Queen:</strong> Menggunakan formula yang lebih gentle dan seimbang. Setiap bahan dipilih dengan cermat untuk memberikan manfaat optimal tanpa mengorbankan kenyamanan kulit. Cocok untuk penggunaan jangka panjang.</p>

<h3>3. Target Pengguna</h3>
<p><strong>Skincare biasa:</strong> Biasanya ditargetkan untuk masalah kulit spesifik — jerawat, flek hitam, atau penuaan. Pengguna harus tahu persis masalah kulitnya sebelum memilih produk.</p>
<p><strong>Narazyma Queen:</strong> Dirancang untuk semua wanita yang ingin kulitnya tetap sehat dan terawat. Tidak perlu menjadi ahli skincare untuk bisa merasakan manfaatnya.</p>

<h3>4. Cara Penggunaan</h3>
<p><strong>Skincare biasa:</strong> Rangkaian skincare terkadang membutuhkan 7-10 langkah (toner, serum, moisturizer, sunscreen, dll). Ini bisa merepotkan dan memakan waktu.</p>
<p><strong>Narazyma Queen:</strong> Menawarkan solusi yang lebih sederhana namun tetap efektif. Fewer steps, better results — tanpa mengurangi kualitas perawatan.</p>

<h2>Tabel Perbandingan Cepat</h2>

<table style="width:100%; border-collapse:collapse; margin:20px 0;">
<tr style="background:#f0f0f0;">
<th style="padding:10px; border:1px solid #ddd; text-align:left;">Aspek</th>
<th style="padding:10px; border:1px solid #ddd; text-align:left;">Skincare Biasa</th>
<th style="padding:10px; border:1px solid #ddd; text-align:left;">Narazyma Queen</th>
</tr>
<tr>
<td style="padding:10px; border:1px solid #ddd;"><strong>Pendekatan</strong></td>
<td style="padding:10px; border:1px solid #ddd;">Reaktif (mengatasi masalah)</td>
<td style="padding:10px; border:1px solid #ddd;">Preventif & holistik</td>
</tr>
<tr>
<td style="padding:10px; border:1px solid #ddd;"><strong>Formula</strong></td>
<td style="padding:10px; border:1px solid #ddd;">Bahan aktif konsentrasi tinggi</td>
<td style="padding:10px; border:1px solid #ddd;">Seimbang, gentle, aman jangka panjang</td>
</tr>
<tr>
<td style="padding:10px; border:1px solid #ddd;"><strong>Target</strong></td>
<td style="padding:10px; border:1px solid #ddd;">Masalah spesifik</td>
<td style="padding:10px; border:1px solid #ddd;">Kesehatan kulit secara keseluruhan</td>
</tr>
<tr>
<td style="padding:10px; border:1px solid #ddd;"><strong>Kompleksitas</strong></td>
<td style="padding:10px; border:1px solid #ddd;">Bisa 7-10 langkah</td>
<td style="padding:10px; border:1px solid #ddd;">Sederhana, efisien</td>
</tr>
<tr>
<td style="padding:10px; border:1px solid #ddd;"><strong>Cocok untuk</strong></td>
<td style="padding:10px; border:1px solid #ddd;">Pengguna yang sudah paham skincare</td>
<td style="padding:10px; border:1px solid #ddd;">Semua wanita dari berbagai tingkat pengalaman</td>
</tr>
</table>

<h2>Kapan Narazyma Queen Jadi Pilihan Tepat?</h2>
<p>Produk ini sangat cocok untuk kamu jika:</p>
<ul>
<li>Ingin memulai perawatan kulit tapi bingung dengan banyaknya pilihan produk</li>
<li>Kulitmu sensitif dan mudah iritasi dengan skincare biasa</li>
<li>Ingin solusi perawatan yang simpel namun tetap efektif</li>
<li>Percaya bahwa <strong>kulit sehat adalah dasar dari kulit cantik</strong></li>
<li>Mencari produk yang aman digunakan jangka panjang</li>
</ul>

<h2>Kapan Skincare Biasa Jadi Pilihan Tepat?</h2>
<p>Skincare biasa tetap menjadi pilihan yang baik jika:</p>
<ul>
<li>Kamu sudah paham betul dengan jenis dan masalah kulitmu</li>
<li>Membutuhkan konsentrasi bahan aktif tertentu yang tidak ada di produk all-in-one</li>
<li>Kulitmu sudah terbiasa dengan bahan aktif kuat</li>
</ul>

<h2>Kesimpulan</h2>
<p>Tidak ada jawaban "satu ukuran untuk semua" dalam perawatan kulit. 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.</p>

<p>Mulai perjalanan kulit sehatmu dengan Narazyma Queen dari EveryBe sekarang. Kulit sehat adalah investasi terbaik yang bisa kamu berikan untuk dirimu sendiri.</p>"""
    },
]

# ─── EXECUTION ────────────────────────────────────────────────────────────────

import urllib.parse

for art in articles:
    site = art["site"]
    print(f"\n{'='*60}")
    print(f"📝 Mempublikasikan: {art['title']}")
    print(f"{'='*60}")
    
    if site == "yasma":
        base_url = YASMA_URL
        auth = YASMA_AUTH
        site_name = "Yasma Natura"
    else:
        base_url = EVERYBE_URL
        auth = EVERYBE_AUTH
        site_name = "EveryBe"
    
    # 1. Upload featured image
    print(f"  📸 Upload featured image...")
    img_id = upload_image(base_url, auth, art["image_url"], art["image_alt"], art["image_file"])
    if not img_id:
        print(f"  ⚠️  Lanjut tanpa featured image")
    
    # 2. Ensure tags exist
    print(f"  🏷  Memproses tags...")
    tag_ids = ensure_tags(base_url, auth, art["tags"])
    
    # 3. Create post
    print(f"  ✍️  Membuat post...")
    post_data = {
        "title": art["title"],
        "content": art["content"],
        "slug": art["slug"],
        "status": "publish",
        "categories": [art["category"]],
        "tags": tag_ids,
        "meta": {
            "_yoast_wpseo_metadesc": art["meta_desc"],
            "_yoast_wpseo_focuskw": art["focus_keyword"],
        }
    }
    
    if img_id:
        post_data["featured_media"] = img_id
    
    result = wp_req(base_url, auth, "POST", post_data)
    
    if result and "id" in result:
        print(f"  ✅ BERHASIL! Post ID: {result['id']}")
        print(f"  🔗 URL: {result.get('link', 'N/A')}")
        
        # Set Yoast SEO title & meta
        seo_update = {
            "meta": {
                "_yoast_wpseo_metadesc": art["meta_desc"],
                "_yoast_wpseo_focuskw": art["focus_keyword"],
                "_yoast_wpseo_title": art["title"],
            }
        }
        wp_req(f"{base_url}/posts/{result['id']}", auth, "POST", seo_update)
        print(f"  ✅ Yoast SEO updated")
    else:
        print(f"  ❌ GAGAL mempublikasikan artikel")
    
    time.sleep(1)  # jeda antar publish

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