goat
command
pussy
No description
0
views
0
likes
0
installs
raw source
const fs = require("fs-extra");
const axios = require("axios");
const { loadImage, createCanvas } = require("canvas");
const path = require("path");
const BASE_IMAGE_URL = "https://i.ibb.co.com/QFNnJQ69/Messenger-creation-B72-EABA8-49-BD-4-F41-8894-70-A9-CD12-EF23.jpg";
const FACE_X = 368;
const FACE_Y = 78;
const FACE_RW = 52;
const FACE_RH = 54;
module.exports = {
config: {
name: "pussy",
version: "1.0.0",
author: "EryXenX",
countDown: 5,
role: 2,
description: {
en: "Put someone's face on the image",
bn: "কারো মুখ ইমেজে বসাও",
hi: "Kisi ka chehra image mein lagao",
tl: "Ilagay ang mukha ng isa sa larawan",
ar: "ضع وجه شخص على الصورة"
},
category: "fun",
guide: { en: "{pn} @mention" }
},
langs: {
en: {
noMention: "❌ | Mention someone!",
error: "❌ | Failed to generate image. Try again."
},
bn: {
noMention: "❌ | কাউকে mention করুন!",
error: "❌ | ইমেজ তৈরি করতে সমস্যা হয়েছে।"
},
hi: {
noMention: "❌ | Kisi ko mention karein!",
error: "❌ | Image banana fail hua. Dobara try karein."
},
tl: {
noMention: "❌ | Mag-mention ng isa!",
error: "❌ | Hindi nagawa ang larawan. Subukan muli."
},
ar: {
noMention: "❌ | أشر إلى شخص ما!",
error: "❌ | فشل إنشاء الصورة. حاول مرة أخرى."
}
},
onStart: async function ({ event, message, getLang }) {
try {
const mentionID =
Object.keys(event.mentions || {})[0] ||
(event.messageReply ? event.messageReply.senderID : null);
if (!mentionID) return message.reply(getLang("noMention"));
const ts = Date.now();
const cacheDir = path.join(__dirname, "cache");
fs.ensureDirSync(cacheDir);
const basePath = path.join(cacheDir, `p_base_${ts}.jpg`);
const avatarPath = path.join(cacheDir, `p_avt_${ts}.jpg`);
const outputPath = path.join(cacheDir, `p_out_${ts}.jpg`);
const [baseRes, avatarRes] = await Promise.all([
axios.get(BASE_IMAGE_URL, { responseType: "arraybuffer" }),
axios.get(
`https://graph.facebook.com/${mentionID}/picture?height=720&width=720&access_token=6628568379%7Cc1e620fa708a1d5696fb991c1bde5662`,
{ responseType: "arraybuffer" }
)
]);
fs.writeFileSync(basePath, Buffer.from(baseRes.data));
fs.writeFileSync(avatarPath, Buffer.from(avatarRes.data));
const baseImg = await loadImage(basePath);
const avatarImg = await loadImage(avatarPath);
const canvas = createCanvas(baseImg.width, baseImg.height);
const ctx = canvas.getContext("2d");
ctx.drawImage(baseImg, 0, 0, baseImg.width, baseImg.height);
ctx.save();
ctx.beginPath();
ctx.ellipse(FACE_X, FACE_Y, FACE_RW, FACE_RH, 0, 0, Math.PI * 2);
ctx.clip();
ctx.drawImage(
avatarImg,
FACE_X - FACE_RW,
FACE_Y - FACE_RH,
FACE_RW * 2,
FACE_RH * 2
);
ctx.restore();
fs.writeFileSync(outputPath, canvas.toBuffer("image/jpeg", { quality: 0.95 }));
await message.reply({
body: "",
attachment: fs.createReadStream(outputPath)
});
[basePath, avatarPath, outputPath].forEach(p => {
try { fs.unlinkSync(p); } catch (_) {}
});
} catch (err) {
console.error("P Command Error:", err);
message.reply(getLang("error"));
}
}
};