#!/usr/bin/env python3

import os
import sys
import json
import urllib.request
import urllib.error

api_key = os.getenv("GEMINI_API_KEY")

if not api_key:
    print("Error: GEMINI_API_KEY belum diatur.")
    sys.exit(1)

if len(sys.argv) < 2:
    print("Penggunaan: gemini <pertanyaan>")
    sys.exit(1)

prompt = " ".join(sys.argv[1:])

url = (
    "https://generativelanguage.googleapis.com/v1beta/"
    f"models/gemini-2.5-flash:generateContent?key={api_key}"
)

payload = {
    "contents": [
        {
            "parts": [
                {
                    "text": prompt
                }
            ]
        }
    ]
}

req = urllib.request.Request(
    url,
    data=json.dumps(payload).encode("utf-8"),
    headers={"Content-Type": "application/json"},
    method="POST"
)

try:
    with urllib.request.urlopen(req) as response:
        result = json.loads(response.read().decode())

    if "candidates" in result:
        print(result["candidates"][0]["content"]["parts"][0]["text"])
    elif "error" in result:
        print("Error:", result["error"]["message"])
    else:
        print(json.dumps(result, indent=2))

except urllib.error.HTTPError as e:
    print("HTTP Error:", e.code)
    print(e.read().decode())

except Exception as e:
    print("Error:", e)
