#!/usr/bin/env python3
"""Send carousel to 3 StudioSoft accounts step by step."""
import base64, json, os, sys, urllib.request, urllib.error

from repliz_client import upload_image_to_server, HEADERS, BASE_URL as BASE


CAR_DIR = "/home/mantapman/.hermes/profiles/atun/workspace/ai_overview_carousel"
FILES = ["01_cover.png","02_ai_overviews.png","03_seo_vs_geo.png","04_search_everywhere.png","05_langkah.png"]

ARTICLE_URL = "https://studiosoft.id/6-tren-seo-2026-yang-wajib-dikuasai-pebisnis-malang/"

def api_call(account_id, caption, replies, slot, label):
    # Build medias fresh each call
    medias = []
    for fname in FILES:
        fpath = os.path.join(CAR_DIR, fname)
        img_url = upload_image_to_server(fpath)
        # FIX 21/08: no base64 — image via server OpenClaw
        medias.append({
            "url": img_url,
            "type": "image",
            "alt": fname.replace(".png","").replace("_"," "),
        })
    
    payload = {
        "title": "",
        "description": caption,
        "topic": "AI Overview, GEO, SEO, Search Everywhere",
        "type": "album",
        "medias": medias,
        "meta": {
            "title": "6 Tren SEO 2026",
            "description": "AI Overview, GEO dan Search Everywhere Optimization",
            "url": ARTICLE_URL,
        },
        "additionalInfo": {
            "isAiGenerated": False, "isDraft": False,
            "collaborators": [], "mentions": [],
            "music": {"id": "", "artist": "", "name": "", "thumbnail": ""},
            "products": [], "tags": [],
        },
        "replies": [{"text": r, "username": ""} for r in replies],
        "accountId": account_id,
        "scheduleAt": slot,
    }
    
    body = json.dumps(payload).encode()
    print(f"  Payload size: {len(body)/1024:.0f} KB")
    
    req = urllib.request.Request(
        "https://api.repliz.com/public/schedule",
        data=body,
        headers=HEADERS,
        method="POST",
    )
    try:
        with urllib.request.urlopen(req, timeout=90) as resp:
            raw = resp.read()
            data = json.loads(raw) if raw else {"success": True}
            h = str(int(slot[11:13]) + 7).zfill(2)
            print(f"  ✅ {label} ({h}:{slot[14:16]} WIB) - ID: {data.get('scheduleId','?')}")
            return data.get("scheduleId")
    except Exception as e:
        print(f"  ❌ {label}: {e}")
        return None

# ═══════════════════════════════════════════════════════════
# 1. THREADS STUDIOSOFT — 14:00 WIB
# ═══════════════════════════════════════════════════════════
print("\n📱 THREADS StudioSoft (14:00 WIB)")
api_call(
    "6a335b9ec5ff4ce3a3225c2a",
    "6 Tren SEO 2026: AI-Driven SEO, Voice Search, E-E-A-T, Video SEO, Core Web Vitals, Zero-Click.\n\nGoogle AI Overviews dominasi 40% pencarian. Voice Search naik 60%. Video SEO jadi mesin pencari utama.\n\nSimak selengkapnya di artikel StudioSoft",
    [
        "AI-Driven SEO: Google AI Overviews di 40% pencarian. Bukan akhir SEO justru kesempatan buat yang bikin konten terstruktur dan informatif. FAQ schema, listicle, paragraf strong jadi kunci biar AI kutip konten kamu.",
        "Voice Search: 60% pencarian lokal via suara. Orang nanya \"di mana bengkel terdekat?\" bukan \"bengkel Malang\". Optimasi ke conversational keyword + schema markup. Simple tapi beda banget hasilnya.",
    ],
    "2026-07-25T07:00:00.000Z",
    "Threads StudioSoft",
)

# ═══════════════════════════════════════════════════════════
# 2. LINKEDIN STUDIOSOFT — 17:00 WIB
# ═══════════════════════════════════════════════════════════
print("\n💼 LINKEDIN StudioSoft (17:00 WIB)")
api_call(
    "6a334c49c5ff4ce3a32259c9",
    "6 Tren SEO 2026 yang Wajib Dikuasai Pebisnis\n\nSEO tidak lagi sekadar riset keyword dan backlink. Tahun 2026 menjadi titik balik dengan integrasi AI yang masif ke dalam algoritma Google.\n\nBerikut 6 tren utama:\n\n1. AI-Driven SEO — Google AI Overviews muncul di 40% pencarian. Konten harus dioptimasi agar dikutip AI, bukan sekadar ranking.\n\n2. Voice Search — 60% pencarian lokal via suara. Targetkan long-tail keyword dan conversational queries.\n\n3. E-E-A-T — Google perketat Experience, Expertise, Authoritativeness, Trustworthiness. Sertakan profil author dan testimoni lokal.\n\n4. Video SEO — YouTube 3 miliar user bulanan. Shorts dan video pendek jadi kunci meningkatkan dwell time.\n\n5. Mobile-First & Core Web Vitals — Skor PageSpeed 90+ wajib. PWA jadi standar baru website.\n\n6. Zero-Click & SGE — 50% hasil pencarian tanpa klik. Optimasi featured snippet dengan struktur konten jelas.\n\nBaca artikel lengkapnya di tautan berikut.\n\n#SEO2026 #DigitalMarketing #AIMarketing #StudioSoft #SearchEverywhere",
    [
        "Satu insight penting: AI Overviews bukan akhir SEO, tapi evolusi menuju Search Everywhere Optimization. Data SparkToro: 73% search intent masih di Google, tapi 27% tersebar di 40+ platform lain. Brand yang membangun visibilitas di semua platform akan unggul di 2027.",
        "3 langkah konkret: 1) Audit platform audiens — di mana mereka mencari? 2) Optimasi managed experiences — website, GBP, sosmed 3) Bangun influenced experiences — review, publikasi, forum. Yang adaptasi sekarang yang menang.",
    ],
    "2026-07-25T10:00:00.000Z",
    "LinkedIn StudioSoft",
)

# ═══════════════════════════════════════════════════════════
# 3. FACEBOOK STUDIOSOFT — 20:00 WIB
# ═══════════════════════════════════════════════════════════
print("\n🔷 FACEBOOK StudioSoft (20:00 WIB)")
api_call(
    "6a334952c5ff4ce3a3225941",
    "6 Tren SEO 2026 yang Wajib Dikuasai Pebisnis\n\nGoogle AI Overviews sekarang mendominasi 40% pencarian. Voice Search naik 60%. Video SEO jadi mesin pencari utama.\n\nArtikel terbaru StudioSoft membahas 6 tren SEO 2026 lengkap:\n\n1. AI-Driven SEO — optimasi konten biar dikutip AI\n2. Voice Search — 60% pencarian lokal via suara\n3. E-E-A-T — Google makin ketat soal kredibilitas\n4. Video SEO — YouTube 3M user, Shorts jadi kunci\n5. Core Web Vitals — kecepatan website 90+\n6. Zero-Click — 50% pencarian tanpa klik\n\nBaca artikel lengkapnya:\n\n#SEO2026 #AIOverview #DigitalMarketing #StudioSoft",
    [
        "Tren paling berdampak: AI-Driven SEO. Dulu kita optimasi ranking di Google. Sekarang kita optimasi biar dikutip AI. Bedanya? AI butuh konten terstruktur, informatif, dan menjawab langsung. FAQ schema, listicle, paragraf pembuka strong jadi kunci.",
        "Tren lain yang jangan dilewatkan: Voice Search. 60% pencarian lokal via suara. Optimasi ke conversational keyword + schema markup. Studi kasus: klien klinik Lowokwaru rank #1 setelah optimasi voice. Traffic naik signifikan.",
    ],
    "2026-07-25T13:00:00.000Z",
    "FB StudioSoft",
)

print("\n=== DONE ===")

