HD Image

javascript 794 views May 3, 2026
Raw
javascript 67 lines ยท 1,663 chars
import axios from "axios";
import te from "../../src/lib/ourin-error.js";
import cfg from "../../config.js";
import { ImageUploadService } from "node-upload-images";

const config = {
  name: "remini",
  alias: ["hd", "enhance", "upscale"],
  category: "tools",
  description: "Enhance gambar jadi HD",
  usage: ".remini (reply gambar)",
  example: ".remini",
  cooldown: 15,
  energi: 1,
  isEnabled: true,
};

const API = "https://api.obscuraworks.org/api/v2/tools/upscale";
const KEY = cfg.APIkey.obscura;

async function up(url) {
  const r = await axios.get(`${API}?url=${encodeURIComponent(url)}`, {
    headers: {
      Accept: "application/json, image/*",
      Authorization: `Bearer ${KEY}`,
    },
    responseType: "arraybuffer",
    timeout: 120000,
  });

  return Buffer.from(r.data);
}

async function ul(buf) {
  const service = new ImageUploadService("pixhost.to");
  const { directLink } = await service.uploadFromBinary(buf, "img.jpg");
  return directLink;
}

async function handler(m, { sock }) {
  const img = m.isImage || (m.quoted && m.quoted.type === "imageMessage");

  if (!img) {
    return m.reply(
      `*๐Ÿช HD IMAGE*\n> Reply gambar\n\n\`\`\`${m.prefix}remini\`\`\``,
    );
  }

  m.react("๐Ÿ••");

  try {
    let b = m.quoted?.isMedia ? await m.quoted.download() : await m.download();

    const u = await ul(b);
    const r = await up(u);

    m.react("โœ…");

    await sock.sendMedia(m.chat, r, null, m, { type: "image" });
  } catch (e) {
    console.log(e);
    m.react("โ˜ข");
    m.reply(te(m.prefix, m.command, m.pushName));
  }
}

export { config, handler };