const fetch = require('node-fetch'); const fs = require('fs-extra'); const path = require('path'); module.exports = { config: { name: "anigif", version: "2.0", author: "S1FU", countDown: 10, role: 0, category: "𝖺𝗇𝗂𝗆𝖾", shortDescription: { en: "𝗀𝖾𝗍 𝖺𝗇𝗂𝗆𝖾 π—€π—‚π–Ώπ—Œ 𝖻𝗒 π—π–Ίπ—€π—Œ 𝗐𝗂𝗍𝗁 π–Ίπ–Ύπ—Œπ—π—π–Ύπ—π—‚π–Ό π—Œπ—π—’π—…π–Ύ" }, guide: { en: "γ€Ž {pn} <𝗍𝖺𝗀> 』" } }, onStart: async function ({ api, args, message, event }) { const sfwTags = [ "bite", "blush", "comfy", "cry", "cuddle", "dance", "eevee", "fluff", "holo", "hug", "icon", "kiss", "kitsune", "lick", "neko", "okami", "pat", "poke", "senko", "sairo", "slap", "smile", "tail", "tickle" ]; const nsfwTags = [ "anal", "blowjob", "cum", "fuck", "pussylick", "solo", "threesome_fff", "threesome_ffm", "threesome_mmf", "yaio", "yuri" ]; const availableTags = [...sfwTags, ...nsfwTags]; const tag = args[0]?.toLowerCase(); if (!tag || !availableTags.includes(tag)) { return message.reply(`┏━━━〔 𝗍𝖺𝗀 π—…π—‚π—Œπ— 〕━━━┓\n\n α―“β˜… π—Œπ–Ώπ—: ${sfwTags.slice(0, 5).join(", ")}... (π—π—ˆπ—π–Ίπ—… ${sfwTags.length})\n α―“β˜… π—‡π—Œπ–Ώπ—: ${nsfwTags.slice(0, 5).join(", ")}...\n\n ⋆ π—Žπ—Œπ–Ύ: {pn} 𝗍𝖺𝗀𝗇𝖺𝗆𝖾\n\n┗━━━━━━━━━━━━━━━┛`); } const isNsfw = nsfwTags.includes(tag); const endpoint = `https://purrbot.site/api/img/${isNsfw ? 'nsfw' : 'sfw'}/${tag}/gif`; try { const response = await fetch(endpoint); if (response.status !== 200) return message.reply("α―“β˜… 𝖺𝗉𝗂 π–Όπ—ˆπ—‡π—‡π–Ύπ–Όπ—π—‚π—ˆπ—‡ 𝖿𝖺𝗂𝗅𝖾𝖽 α²˜π‘Ό"); const data = await response.json(); const gifUrl = data.link; const gifRes = await fetch(gifUrl); const buffer = await gifRes.buffer(); const filePath = path.join(__dirname, `cache`, `${tag}_${event.senderID}.gif`); if (!fs.existsSync(path.join(__dirname, `cache`))) fs.mkdirSync(path.join(__dirname, `cache`)); fs.writeFileSync(filePath, buffer); return message.reply({ body: `┏━━━〔 𝖺𝗇𝗂𝗆𝖾 𝗀𝗂𝖿 〕━━━┓\n\n α―“β˜… 𝗍𝖺𝗀: ${tag}\n α―“β˜… π–Ύπ—‡π—ƒπ—ˆπ—’ π—’π—ˆπ—Žπ—‹ 𝗏𝗂𝗏𝖾 ⋆\n\n┗━━━━━━━━━━━━━━━┛`, attachment: fs.createReadStream(filePath) }, () => { if (fs.existsSync(filePath)) fs.unlinkSync(filePath); }); } catch (err) { console.error(err); return message.reply("α―“β˜… π—Œπ—’π—Œπ—π–Ύπ—† π–Ύπ—‹π—‹π—ˆπ—‹ π—ˆπ–Όπ–Όπ—Žπ—‹π–Ύπ–½ .ᐟ"); } } };