Colorize

javascript 118 views May 19, 2026
Raw
javascript 72 lines ยท 1,835 chars
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 };