const axios = require("axios"); async function NanoBanana(prompt, imageUrl, cookie) { try { const api = `https://anabot.my.id/api/ai/geminiOption?prompt=${encodeURIComponent(prompt)}&type=NanoBanana&imageUrl=${encodeURIComponent(imageUrl)}&imageUrl2=&imageUrl3=&imageUrl4=&cookie=${encodeURIComponent(cookie)}&apikey=freeApikey`; const response = await axios.get(api, { headers: { 'Accept': 'application/json' } }); if (response.data && response.data.data && response.data.data.result) { return { success: true, url: response.data.data.result.url, prompt: prompt }; } throw new Error('Gagal memproses gambar'); } catch (err) { throw new Error(err.response?.data?.message || err.message); } } const handler = async (req, res) => { try { const { prompt, imageUrl, cookie, key } = req.query; if (!key) { return res.status(400).json({ success: false, error: 'Missing required parameter: key' }); } if (!prompt) { return res.status(400).json({ success: false, error: 'Missing required parameter: prompt' }); } if (!imageUrl) { return res.status(400).json({ success: false, error: 'Missing required parameter: imageUrl' }); } if (!cookie) { return res.status(400).json({ success: false, error: 'Missing required parameter: cookie' }); } const result = await NanoBanana(prompt, imageUrl, cookie); return res.json({ author: "Herza", success: true, data: { prompt: result.prompt, image_url: result.url, original_url: imageUrl }, timestamp: new Date().toISOString() }); } catch (error) { res.status(500).json({ success: false, error: error.message, timestamp: new Date().toISOString() }); } }; module.exports = { name: 'Nano Banana', description: 'AI Image Editing using Gemini - Edit images with text prompts', type: 'GET', routes: ['api/AI/nanobanana'], tags: ['ai', 'image', 'editing', 'gemini', 'nanobanana'], parameters: ['prompt', 'imageUrl', 'cookie', 'key'], limit: 5, enabled: true, main: ['AI'], handler, NanoBanana };