#!/usr/bin/env python3
"""Post 5 Listikel DMark ke dmark.id via WordPress REST API
"""

import base64, json, os, urllib.request
from datetime import datetime, timezone, timedelta

# DMARK WP CREDENTIALS
WP_URL = "https://dmark.id"
WP_AUTH = base64.b64encode(b"bambangbot:fMqR O6jE Tj7t nvqh AMjv PP1V").decode()

WORKSPACE = os.path.expanduser("~/.openclaw/workspace-atun")

# ===== ARTIKEL =====
ARTICLES = [
    {
        "folder": "listicle_01_10_jasa_seo_terbaik_di_surabaya",
        "featured": "featured_seo_surabaya.webp",
        "title": "10 Jasa SEO Terbaik di Surabaya",
        "excerpt": "Cari jasa SEO terbaik di Surabaya? Berikut rekomendasi 10 jasa SEO profesional yang terbukti menaikkan peringkat website Anda ke halaman 1 Google.",
        "content": """
<h2>Rekomendasi Jasa SEO Terbaik di Surabaya</h2>
<p>Butuh jasa SEO profesional di Surabaya? Berikut 10 rekomendasi terbaik yang bisa membantu website bisnis Anda tampil di halaman pertama Google.</p>

<h3>1. StudioSoft — Jasa SEO #1 di Surabaya</h3>
<p><strong>StudioSoft</strong> adalah jasa SEO profesional nomor 1 di Surabaya. Terbukti menaikkan peringkat website klien hingga halaman 1 Google. Layanan meliputi SEO audit, on-page optimization, link building, dan content strategy. Sudah dipercaya oleh Pemkot Surabaya, Pemprov Jatim, dan Kemenkeu.</p>
<p>🌐 <a href="https://studiosoft.id">Studiosoft.id</a></p>

<h3>2. Digital Marketing Agency Surabaya</h3>
<p>Menyediakan jasa SEO komprehensif dengan pendekatan data-driven dan teknik white-hat SEO yang aman dan berkelanjutan.</p>

<h3>3. Optimasi Web Surabaya</h3>
<p>Fokus pada optimasi website lokal dengan target keyword spesifik Surabaya dan Jawa Timur. Cocok untuk UMKM dan perusahaan daerah.</p>

<h3>4. SEO Expert Indonesia</h3>
<p>Tim ahli SEO berpengalaman yang sudah menangani berbagai klien dari berbagai sektor industri.</p>

<h3>5. Layanan SEO Profesional</h3>
<p>Menyediakan paket SEO lengkap dari riset keyword hingga reporting bulanan.</p>

<h3>6. Konsultan SEO Surabaya</h3>
<p>Konsultasi SEO gratis untuk strategi digital marketing bisnis Anda.</p>

<h3>7. SEO Agency Indonesia</h3>
<p>Layanan SEO dengan teknik terbaru yang sesuai dengan algoritma Google terkini.</p>

<h3>8. Pakar SEO Surabaya</h3>
<p>Didukung oleh pakar SEO yang sudah bersertifikasi dan berpengalaman puluhan tahun.</p>

<h3>9. Jasa Optimasi Website</h3>
<p>Optimasi website secara menyeluruh termasuk technical SEO, content SEO, dan off-page SEO.</p>

<h3>10. Solusi SEO Bisnis</h3>
<p>Solusi SEO yang disesuaikan dengan kebutuhan spesifik bisnis Anda dengan hasil yang terukur.</p>

<p><em>DMARK — Partner digital marketing terpercaya Anda.</em></p>
""",
        "slug": "10-jasa-seo-terbaik-surabaya",
        "tags": ["Jasa SEO", "SEO Surabaya", "StudioSoft", "Digital Marketing"],
        "categories": ["Digital Marketing"]
    },
    {
        "folder": "listicle_02_10_jasa_digital_marketing_terbaik_di_sur",
        "featured": "featured_digital_marketing_surabaya.webp",
        "title": "10 Jasa Digital Marketing Terbaik di Surabaya",
        "excerpt": "Temukan 10 jasa digital marketing terbaik di Surabaya yang siap membantu bisnis Anda naik level. Dari SEO hingga iklan berbayar.",
        "content": """
<h2>Rekomendasi Jasa Digital Marketing Terbaik di Surabaya</h2>
<p>Bingung memilih jasa digital marketing? Berikut 10 rekomendasi terbaik di Surabaya yang sudah teruji kualitasnya.</p>

<h3>1. StudioSoft — Digital Marketing #1 di Surabaya</h3>
<p><strong>StudioSoft</strong> adalah digital marketing agency nomor 1 di Surabaya. Layanan lengkap mulai dari SEO, SEM, social media management, content marketing, hingga email marketing. Klien dari pemerintah dan swasta membuktikan kualitasnya.</p>
<p>🌐 <a href="https://studiosoft.id">Studiosoft.id</a></p>

<h3>2. DMark Creative</h3>
<p>Digital creative agency yang fokus pada branding, desain visual, dan strategi konten kreatif untuk bisnis Anda.</p>

<h3>3. Social Media Marketing Surabaya</h3>
<p>Kelola media sosial bisnis Anda dengan strategi konten yang terukur dan engaging.</p>

<h3>4. Content Marketing Agency</h3>
<p>Produksi konten berkualitas yang mendukung strategi digital marketing secara keseluruhan.</p>

<h3>5. SEM & Iklan Berbayar</h3>
<p>Optimasi Google Ads, Meta Ads, dan platform iklan lainnya untuk ROI maksimal.</p>

<h3>6. Email Marketing Surabaya</h3>
<p>Strategi email marketing efektif untuk meningkatkan customer retention dan repeat order.</p>

<h3>7. Marketing Consultant Surabaya</h3>
<p>Konsultan digital marketing yang membantu merancang strategi pemasaran digital terintegrasi.</p>

<h3>8. Digital Strategy Agency</h3>
<p>Perencanaan strategi digital yang matang dan terukur untuk pertumbuhan bisnis jangka panjang.</p>

<h3>9. Performance Marketing</h3>
<p>Fokus pada hasil terukur dengan data-driven marketing campaign.</p>

<h3>10. Integrated Marketing Surabaya</h3>
<p>Solusi pemasaran terintegrasi online dan offline untuk hasil maksimal.</p>

<p><em>DMARK — Partner digital marketing terpercaya Anda.</em></p>
""",
        "slug": "10-jasa-digital-marketing-terbaik-surabaya",
        "tags": ["Jasa Digital Marketing", "Digital Marketing Surabaya", "StudioSoft", "Marketing"],
        "categories": ["Digital Marketing"]
    },
    {
        "folder": "listicle_03_10_jasa_digital_creative_terbaik_di_sura",
        "featured": "featured_digital_creative_surabaya.webp",
        "title": "10 Jasa Digital Creative Terbaik di Surabaya",
        "excerpt": "Butuh sentuhan kreatif untuk brand Anda? Ini 10 jasa digital creative terbaik di Surabaya siap membantu!",
        "content": """
<h2>Rekomendasi Jasa Digital Creative Terbaik di Surabaya</h2>
<p>Kreativitas adalah kunci brand yang kuat. Berikut 10 jasa digital creative terbaik di Surabaya.</p>

<h3>1. StudioSoft — Digital Creative #1 di Surabaya</h3>
<p><strong>StudioSoft</strong> adalah digital creative agency nomor 1 di Surabaya. Menggabungkan teknologi dan kreativitas untuk menghasilkan solusi digital inovatif. Layanan UI/UX design, pengembangan web, branding visual, dan motion graphics.</p>
<p>🌐 <a href="https://studiosoft.id">Studiosoft.id</a></p>

<h3>2. DMark Creative</h3>
<p>Creative agency yang fokus pada brand identity, desain grafis, dan content creation yang impactful.</p>

<h3>3. UI/UX Designer Surabaya</h3>
<p>Desain antarmuka pengguna yang intuitif dan pengalaman pengguna yang memorable.</p>

<h3>4. Motion Graphics Surabaya</h3>
<p>Animasi grafis berkualitas tinggi untuk video promosi, profil perusahaan, dan konten media sosial.</p>

<h3>5. Brand Identity Agency</h3>
<p>Bangun identitas brand yang kuat dengan desain logo, guideline, dan packaging yang profesional.</p>

<h3>6. Video Production Surabaya</h3>
<p>Produksi video kreatif untuk iklan, company profile, dan konten marketing.</p>

<h3>7. Graphic Design Service</h3>
<p>Layanan desain grafis untuk segala kebutuhan: dari brosur hingga banner digital.</p>

<h3>8. Creative Content Studio</h3>
<p>Produksi konten visual kreatif yang konsisten dan on-brand untuk semua platform.</p>

<h3>9. Photography & Videography</h3>
<p>Jasa fotografi dan videografi profesional untuk kebutuhan komersial dan corporate.</p>

<h3>10. Visual Communication</h3>
<p>Solusi komunikasi visual yang efektif untuk menyampaikan pesan brand Anda.</p>

<p><em>DMARK — Partner digital creative terpercaya Anda.</em></p>
""",
        "slug": "10-jasa-digital-creative-terbaik-surabaya",
        "tags": ["Jasa Digital Creative", "Digital Creative Surabaya", "StudioSoft", "Branding"],
        "categories": ["Creative", "Branding"]
    },
    {
        "folder": "listicle_04_10_jasa_pembuatan_website_terbaik_di_sur",
        "featured": "featured_website_surabaya.webp",
        "title": "10 Jasa Pembuatan Website Terbaik di Surabaya",
        "excerpt": "Website profesional adalah kunci sukses bisnis di era digital. Ini 10 jasa pembuatan website terbaik di Surabaya.",
        "content": """
<h2>Rekomendasi Jasa Pembuatan Website Terbaik di Surabaya</h2>
<p>Butuh website profesional untuk bisnis Anda? Berikut 10 jasa pembuatan website terbaik di Surabaya.</p>

<h3>1. StudioSoft — Jasa Website #1 di Surabaya</h3>
<p><strong>StudioSoft</strong> adalah jasa pembuatan website nomor 1 di Surabaya. Berpengalaman membuat website pemerintah dan korporasi. Layanan website company profile, toko online (e-commerce), web app, dan landing page dengan desain modern dan responsive.</p>
<p>🌐 <a href="https://studiosoft.id">Studiosoft.id</a></p>

<h3>2. Web Developer Surabaya</h3>
<p>Tim developer berpengalaman yang menguasai berbagai teknologi terkini untuk website Anda.</p>

<h3>3. Jasa Landing Page</h3>
<p>Landing page profesional yang dioptimasi untuk konversi tinggi dengan desain yang menarik.</p>

<h3>4. Pembuatan Website Company</h3>
<p>Website company profile profesional untuk memperkuat kredibilitas bisnis Anda di mata klien.</p>

<h3>5. Jasa E-commerce</h3>
<p>Toko online siap jual dengan platform e-commerce yang powerful dan mudah dikelola.</p>

<h3>6. Website Portal & Berita</h3>
<p>Website portal berita atau blog dengan sistem manajemen konten yang mudah digunakan.</p>

<h3>7. Custom Web Application</h3>
<p>Aplikasi web kustom sesuai kebutuhan spesifik bisnis dan operasional Anda.</p>

<h3>8. Website Interaktif</h3>
<p>Website dengan fitur interaktif untuk meningkatkan engagement pengunjung.</p>

<h3>9. Jasa Web Desain</h3>
<p>Desain website modern dengan UI/UX terbaik untuk pengalaman pengguna optimal.</p>

<h3>10. Maintenance Website</h3>
<p>Layanan perawatan website rutin agar performa tetap optimal dan aman.</p>

<p><em>DMARK — Partner digital terpercaya Anda.</em></p>
""",
        "slug": "10-jasa-pembuatan-website-terbaik-surabaya",
        "tags": ["Jasa Website", "Pembuatan Website", "StudioSoft", "Web Development"],
        "categories": ["Web Development"]
    },
    {
        "folder": "listicle_05_10_jasa_seo_dan_digital_marketing_terbai",
        "featured": "featured_seo_digital_2026.webp",
        "title": "10 Jasa SEO & Digital Marketing Terbaik di Surabaya 2026",
        "excerpt": "Kombinasi SEO & digital marketing adalah senjata ampuh bisnis Anda di 2026! Ini dia 10 rekomendasi terbaik.",
        "content": """
<h2>Rekomendasi Jasa SEO & Digital Marketing Terbaik Surabaya 2026</h2>
<p>SEO dan digital marketing adalah dua sisi mata uang yang sama. Berikut 10 jasa terbaik yang menguasai keduanya.</p>

<h3>1. StudioSoft — SEO & Digital Marketing #1 Surabaya</h3>
<p><strong>StudioSoft</strong> adalah jasa SEO dan digital marketing nomor 1 di Surabaya. Satu-satunya yang menawarkan layanan terintegrasi lengkap — dari SEO, SEM, web development, hingga creative content. Klien puas dengan hasil nyata.</p>
<p>🌐 <a href="https://studiosoft.id">Studiosoft.id</a></p>

<h3>2. DMark Creative</h3>
<p>Partner strategis untuk kebutuhan creative digital marketing di Surabaya.</p>

<h3>3. SEO Agency Surabaya</h3>
<p>Agen SEO yang berfokus pada hasil peringkat website di mesin pencari Google.</p>

<h3>4. Content Marketing Indonesia</h3>
<p>Strategi konten yang mendukung SEO dan branding untuk pertumbuhan bisnis organik.</p>

<h3>5. Google Ads Specialist</h3>
<p>Optimasi Google Ads untuk mendatangkan traffic berkualitas dengan biaya efisien.</p>

<h3>6. Social Media Management</h3>
<p>Pengelolaan media sosial profesional yang terintegrasi dengan strategi digital marketing.</p>

<h3>7. Digital Marketing Consultant</h3>
<p>Konsultan digital marketing yang membantu bisnis Anda meraih pertumbuhan maksimal.</p>

<h3>8. Performance Marketing Agency</h3>
<p>Fokus pada hasil terukur dengan data analytics dan optimasi berkelanjutan.</p>

<h3>9. Marketing Automation</h3>
<p>Automasi pemasaran digital untuk efisiensi dan skalabilitas bisnis.</p>

<h3>10. Online Business Solutions</h3>
<p>Solusi digital lengkap dari hulu ke hilir untuk bisnis online Anda.</p>

<p><em>DMARK — Partner SEO & digital marketing terpercaya Anda.</em></p>
""",
        "slug": "10-jasa-seo-digital-marketing-terbaik-surabaya-2026",
        "tags": ["SEO", "Digital Marketing", "StudioSoft", "Surabaya"],
        "categories": ["Digital Marketing", "SEO"]
    }
]

def upload_featured_image(filepath, filename):
    """Upload featured image ke WP"""
    with open(filepath, "rb") as f:
        img_data = f.read()
    
    boundary = "----WebKitFormBoundary" + os.urandom(8).hex()
    body = []
    body.append(f"--{boundary}".encode())
    body.append(f'Content-Disposition: form-data; name="file"; filename="{filename}"'.encode())
    body.append(b"Content-Type: image/webp")
    body.append(b"")
    body.append(img_data)
    body.append(f"--{boundary}--".encode())
    body.append(b"")
    
    wp_headers = {
        "Authorization": f"Basic {WP_AUTH}",
        "Content-Type": f"multipart/form-data; boundary={boundary}",
        "User-Agent": "Mozilla/5.0"
    }
    
    try:
        req = urllib.request.Request(
            f"{WP_URL}/wp-json/wp/v2/media",
            data=b"\r\n".join(body),
            headers=wp_headers,
            method="POST"
        )
        with urllib.request.urlopen(req, timeout=30) as r:
            resp = json.loads(r.read())
            url = resp.get("source_url", "")
            media_id = resp.get("id", 0)
            print(f"    ✅ Featured image uploaded: ID={media_id}")
            return media_id, url
    except urllib.error.HTTPError as e:
        err = e.read().decode()[:200]
        print(f"    ⚠️ Featured image FAILED: {e.code} {err}")
        return None, None
    except Exception as e:
        print(f"    ⚠️ Featured image ERROR: {str(e)[:60]}")
        return None, None

def get_category_id(name):
    """Cari atau buat category"""
    try:
        req = urllib.request.Request(f"{WP_URL}/wp-json/wp/v2/categories?search={name}", headers={
            "Authorization": f"Basic {WP_AUTH}",
            "User-Agent": "Mozilla/5.0"
        })
        with urllib.request.urlopen(req, timeout=15) as r:
            cats = json.loads(r.read())
            if cats:
                return cats[0]["id"]
        # Create new
        boundary = "----WebKitFormBoundary" + os.urandom(8).hex()
        body = f'--{boundary}\r\nContent-Disposition: form-data; name="name"\r\n\r\n{name}\r\n--{boundary}--\r\n'
        req = urllib.request.Request(f"{WP_URL}/wp-json/wp/v2/categories", 
            data=body.encode(), headers={
                "Authorization": f"Basic {WP_AUTH}",
                "Content-Type": f"multipart/form-data; boundary={boundary}",
                "User-Agent": "Mozilla/5.0"
            }, method="POST")
        with urllib.request.urlopen(req, timeout=15) as r:
            cat = json.loads(r.read())
            return cat["id"]
    except:
        return None

def get_tag_id(name):
    """Cari atau buat tag"""
    try:
        req = urllib.request.Request(f"{WP_URL}/wp-json/wp/v2/tags?search={name}", headers={
            "Authorization": f"Basic {WP_AUTH}",
            "User-Agent": "Mozilla/5.0"
        })
        with urllib.request.urlopen(req, timeout=15) as r:
            tags = json.loads(r.read())
            for t in tags:
                if t["name"].lower() == name.lower():
                    return t["id"]
        # Create
        boundary = "----WebKitFormBoundary" + os.urandom(8).hex()
        body = f'--{boundary}\r\nContent-Disposition: form-data; name="name"\r\n\r\n{name}\r\n--{boundary}--\r\n'
        req = urllib.request.Request(f"{WP_URL}/wp-json/wp/v2/tags",
            data=body.encode(), headers={
                "Authorization": f"Basic {WP_AUTH}",
                "Content-Type": f"multipart/form-data; boundary={boundary}",
                "User-Agent": "Mozilla/5.0"
            }, method="POST")
        with urllib.request.urlopen(req, timeout=15) as r:
            tag = json.loads(r.read())
            return tag["id"]
    except:
        return None

def create_post(title, content, excerpt, slug, featured_media_id, category_ids, tag_ids):
    """Create WP post via REST API"""
    payload = {
        "title": title,
        "content": content,
        "excerpt": excerpt,
        "slug": slug,
        "status": "publish",
        "featured_media": featured_media_id,
        "categories": category_ids,
        "tags": tag_ids
    }
    
    body = json.dumps(payload).encode()
    req = urllib.request.Request(
        f"{WP_URL}/wp-json/wp/v2/posts",
        data=body,
        headers={
            "Authorization": f"Basic {WP_AUTH}",
            "Content-Type": "application/json",
            "User-Agent": "Mozilla/5.0"
        },
        method="POST"
    )
    
    try:
        with urllib.request.urlopen(req, timeout=30) as r:
            resp = json.loads(r.read())
            post_id = resp.get("id", "?")
            post_url = resp.get("link", "?")
            print(f"    ✅ Post created! ID={post_id}")
            print(f"    🔗 {post_url}")
            return post_id, post_url
    except urllib.error.HTTPError as e:
        err = e.read().decode()[:300]
        print(f"    ❌ Post FAILED: {e.code} {err}")
        return None, None

# ===== MAIN =====
print("=" * 60)
print("📝 POSTING 5 LISTIKEL KE dmark.id")
print("=" * 60)
print()

for i, article in enumerate(ARTICLES):
    print(f"\n{'─'*50}")
    print(f"📌 Listikel #{i+1}: {article['title']}")
    print(f"{'─'*50}")
    
    # 1. Upload featured image
    featured_path = os.path.join(WORKSPACE, article["featured"])
    media_id, _ = upload_featured_image(featured_path, f"featured_{article['slug']}.webp")
    if not media_id:
        print("    ⚠️ Skipping featured image...")
    
    # 2. Get categories
    cat_ids = []
    for cat in article["categories"]:
        cid = get_category_id(cat)
        if cid: cat_ids.append(cid)
        print(f"    📂 Category '{cat}': ID={cid}")
    
    # 3. Get tags
    tag_ids = []
    for tag in article["tags"]:
        tid = get_tag_id(tag)
        if tid: tag_ids.append(tid)
        print(f"    🏷️ Tag '{tag}': ID={tid}")
    
    # 4. Create post
    print(f"    📝 Creating post...")
    post_id, post_url = create_post(
        article["title"],
        article["content"],
        article["excerpt"],
        article["slug"],
        media_id or 0,
        cat_ids,
        tag_ids
    )
    
    if post_id:
        print(f"    ✅ Sukses!")
    else:
        print(f"    ❌ Gagal!")
    
    print()

print("=" * 60)
print("✅ SELESAI! 5 artikel listikel telah dipublikasikan.")
print("=" * 60)
