← back to browse
goat command

photo

Ephoto360 text maker

0
views
0
likes
0
installs
raw source
const fs = require("fs");
const path = require("path");
const axios = require("axios");
const Photo360 = require("abir-photo360-apis");

module.exports = {
  config: {
    name: "photo",
    version: "2.0.0",
    author: "〲MAMUNツ࿐",
    countDown: 5,
    role: 0,
    shortDescription: "Ephoto360 text maker",
    longDescription: "Generate stylish text effects using Ephoto360",
    category: "textmaker",
    guide: {
      en: "{pn} <template id> <text>"
    }
  },

  onStart: async function ({ api, event, args }) {

    if (args.length < 2) {
      return api.sendMessage(
`╭─❍
│ ✨ PHOTO360 STYLE MAKER
├─────────────
│ Usage:
│ photo <id> <text>
│
│ Example:
│ photo 1 Mamun
╰─────────────`,
        event.threadID,
        event.messageID
      );
    }

    const templateID = args[0];
    const text = args.slice(1).join(" ");

    const templates = {
      "1": "https://en.ephoto360.com/handwritten-text-on-foggy-glass-online-680.html",
      "2": "https://en.ephoto360.com/create-realistic-cloud-text-effect-606.html",
      "3": "https://en.ephoto360.com/light-glow-text-effect-369.html",
      "4": "https://en.ephoto360.com/glitch-text-effect-online-345.html",
      "5": "https://en.ephoto360.com/3d-metal-text-effect-600.html",
      "6": "https://en.ephoto360.com/foggy-rainy-text-effect-75.html",
      "7": "https://en.ephoto360.com/write-in-sand-summer-beach-online-free-595.html",
      "8": "https://en.ephoto360.com/diamond-text-95.html",
      "9": "https://en.ephoto360.com/create-multicolored-neon-light-signatures-591.html",
      "10": "https://en.ephoto360.com/create-broken-glass-text-effect-online-698.html",
      "11": "https://en.ephoto360.com/create-multicolored-signature-attachment-arrow-effect-714.html",
      "12": "https://en.ephoto360.com/create-a-graffiti-text-effect-on-the-wall-online-665.html",
      "13": "https://en.ephoto360.com/create-a-watercolor-text-effect-online-655.html",
      "14": "https://en.ephoto360.com/creating-text-effects-night-lend-for-word-effect-147.htm",
      "15": "https://en.ephoto360.com/write-text-effect-clouds-in-the-sky-online-619.html",
      "16": "https://en.ephoto360.com/write-in-sand-summer-beach-online-576.html",
      "17": "https://en.ephoto360.com/dark-green-typography-online-359.html",
      "18": "https://en.ephoto360.com/stars-night-online-1-85.html",
      "19": "https://en.ephoto360.com/realistic-3d-sand-text-effect-online-580.html",
      "20": "https://en.ephoto360.com/create-a-summery-sand-writing-text-effect-577.html",
      "21": "https://en.ephoto360.com/text-firework-effect-356.html",
      "22": "https://en.ephoto360.com/ligatures-effects-from-leaves-146.html",
      "23": "https://en.ephoto360.com/write-letters-on-the-leaves-248.html",
      "24": "https://en.ephoto360.com/graffiti-color-199.html",
      "25": "https://en.ephoto360.com/caper-cut-effect-184.html"
    };

    if (!templates[templateID]) {
      return api.sendMessage(
`❌ Invalid template ID!

✅ Available IDs:
1 - 25

Example:
ephoto 5 Mamun`,
        event.threadID,
        event.messageID
      );
    }

    const cacheFolder = path.join(__dirname, "cache");

    if (!fs.existsSync(cacheFolder)) {
      fs.mkdirSync(cacheFolder, { recursive: true });
    }

    const filePath = path.join(cacheFolder, "photo.png");

    try {

      await api.sendMessage(
        "⏳ | Creating your stylish image...",
        event.threadID
      );

      const photo = new Photo360(templates[templateID]);

      photo.setName(text);

      const data = await photo.execute();

      const img = await axios.get(data.imageUrl, {
        responseType: "arraybuffer"
      });

      fs.writeFileSync(filePath, img.data);

      return api.sendMessage(
        {
          body: `✨ Successfully created image for: ${text}`,
          attachment: fs.createReadStream(filePath)
        },
        event.threadID,
        () => {
          if (fs.existsSync(filePath)) {
            fs.unlinkSync(filePath);
          }
        },
        event.messageID
      );

    } catch (error) {

      console.log(error);

      return api.sendMessage(
        `❌ Failed to generate image!\n\n${error.message}`,
        event.threadID,
        event.messageID
      );
    }
  }
};

View raw file