← back to browse
goat command

poli

Generate AI image

0
views
0
likes
0
installs
raw source
const axios = require("axios");
const fs = require("fs");
const path = require("path");

module.exports = {
  config: {
    name: "poli",
    version: "1.2",
    author: "xalman",
    countDown: 5,
    role: 0,
    shortDescription: "Generate AI image",
    longDescription: "Generate pollination ai image ",
    category: "AI & IMAGE GENERATION",
  },

  onStart: async function ({ message, args, api, event }) {
    const prompt = args.join(" ");

    if (!prompt) {
      return message.reply("❌ | Prompt dao!\nExample: poli cat");
    }

    const cacheDir = path.join(__dirname, "cache");
    const cachePath = path.join(cacheDir, `poli_${event.senderID}_${Date.now()}.png`);

    try {
      api.setMessageReaction("⏳", event.messageID, () => {}, true);

      const url = `https://xalman-apis.vercel.app/api/poli?prompt=${encodeURIComponent(prompt)}`;
      const response = await axios.get(url, { responseType: "arraybuffer", timeout: 240000 });

      if (!fs.existsSync(cacheDir)) {
        fs.mkdirSync(cacheDir);
      }

      fs.writeFileSync(cachePath, Buffer.from(response.data, "binary"));

      api.setMessageReaction("✅", event.messageID, () => {}, true);

      await message.reply({
        body: `✅ | Prompt: ${prompt}`,
        attachment: fs.createReadStream(cachePath)
      });

      if (fs.existsSync(cachePath)) {
        fs.unlinkSync(cachePath);
      }

    } catch (err) {
      console.error(err.message);
      api.setMessageReaction("❌", event.messageID, () => {}, true);

      if (fs.existsSync(cachePath)) {
        fs.unlinkSync(cachePath);
      }

      if (err.code === "ECONNABORTED") {
        return message.reply("⏰ | Request timeout (4 min exceed)");
      }

      return message.reply("❌ | Image generate fail hoise!");
    }
  }
};

View raw file