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 };