import axios from "axios"; import te from "../../src/lib/ourin-error.js"; import config from "../../config.js"; import { ImageUploadService } from "node-upload-images"; const pluginConfig = { name: "colorize", alias: ["warnai"], category: "ai", description: "Warnai foto hitam-putih jadi berwarna pakai AI", usage: ".colorize (reply gambar)", example: ".colorize", cooldown: 20, energi: 2, isEnabled: true, }; const API = "https://api.obscuraworks.org/api/ai/colorize"; const KEY = config.APIkey.obscura; async function ul(buf) { const service = new ImageUploadService("pixhost.to"); let { directLink } = await service.uploadFromBinary(buf, "test.png"); return directLink; } async function handler(m, { sock }) { const img = m.isImage || (m.quoted && (m.quoted.isImage || m.quoted.type === "imageMessage")); if (!img) { return m.reply( `🎨 *ᴄᴏʟᴏʀɪᴢᴇ*\n\n` + `- Ubah foto hitam-putih jadi berwarna 🖼️\n` + `- Reply gambar yang mau diwarnai\n\n` + `\`${m.prefix}colorize\``, ); } m.react("🕕"); try { let b = m.quoted?.isMedia ? await m.quoted.download() : await m.download(); const u = await ul(b); const r = await axios.post( API, { url: u }, { headers: { Accept: "application/json, image/*, audio/*, video/*", Authorization: `Bearer ${KEY}`, }, responseType: "arraybuffer", timeout: 120000, }, ); const result = Buffer.from(r.data); m.react("✅"); await sock.sendMedia(m.chat, result, null, m, { type: "image" }); } catch (e) { console.log(e); m.react("☢"); m.reply(te(m.prefix, m.command, m.pushName)); } } export { pluginConfig as config, handler };