import json, urllib.request, time

API_KEY = "vio_sk_vA8llIYm51J3oyXtfevrM92yUBJ8-3IS1sIn6xydF8o"
BASE = "https://api.viostudio.id/v1"

prompt = (
    "Instagram carousel slide 3:4 aspect ratio ukuran feed Instagram. "
    "Flat vector illustration style infografis modern minimal. "
    "Background gradasi soft cream ke deep teal blue. Aksen orange. "
    "Ilustrasi: Sebuah diagram sederhana dengan lingkaran di tengah bergambar wajah karakter. "
    "Di sekitar lingkaran ada 6 ikon kecil dengan label: "
    "ikon mata di kiri-atas, ikon bintang di kanan-atas, "
    "ikon telinga di kiri, ikon speaker di kanan, "
    "ikon gelembung chat di kiri-bawah, ikon love di kanan-bawah. "
    "Ini adalah diagram NLP representational systems: visual, auditory, kinesthetic, auditory digital. "
    "Teks HEADLINE bold di atas: SISTEM REPRESENTASI NLP. "
    "Teks sub: Visual, Auditori, Kinestetik, dan Auditory Digital. "
    "Desain clean modern colorful infografis edukatif."
)

payload = {"prompt": prompt, "model": "gpt-image-2.0", "aspect_ratio": "3:4", "count": 1}
print("Retry EC Slide 2 v4...")
req = urllib.request.Request(f'{BASE}/images/generate',
    data=json.dumps(payload).encode(),
    headers={'Content-Type':'application/json','Authorization':f'Bearer {API_KEY}'},
    method='POST')
with urllib.request.urlopen(req, timeout=60) as resp:
    gen_id = json.loads(resp.read()).get('generation_ids',[0])[0]
    print(f"Queued: {gen_id}")
    for i in range(30):
        time.sleep(8)
        sr = urllib.request.Request(f'{BASE}/generations/{gen_id}',
            headers={'Authorization':f'Bearer {API_KEY}'})
        with urllib.request.urlopen(sr, timeout=20) as s:
            st = json.loads(s.read())
            stat = st.get('status')
            print(f"  ({i+1}/30) {stat}")
            if stat == 'completed':
                print(f"DONE! {st.get('asset_url')}")
                exit(0)
            elif stat == 'failed':
                print(f"FAIL: {st.get('error_message')}")
                exit(1)
