goat
command
kiss
A fun kiss picture!
0
views
0
likes
0
installs
raw source
const fs = require("fs");
const path = require("path");
const axios = require("axios");
const { loadImage, createCanvas } = require("canvas");
module.exports = {
config: {
name: "kiss",
version: "1.5",
author: "Amit Max ⚡",
countDown: 5,
role: 0,
shortDescription: "A fun kiss picture!",
longDescription: "A fun command to create a kiss picture with the given positions.",
category: "fun",
guide: "{pn} @mention or reply",
},
onStart: async function ({ event, api, usersData }) {
let mention = Object.keys(event.mentions)[0];
let targetID = mention || event.messageReply?.senderID;
if (!targetID)
return api.sendMessage("কাকে চুমু দিবে? ট্যাগ কর বা কারো রিপ্লাই দাও!", event.threadID, event.messageID);
const senderID = event.senderID;
const getAvatar = async (uid) => {
try {
const url = `https://graph.facebook.com/${uid}/picture?width=512&height=512&access_token=6628568379%7Cc1e620fa708a1d5696fb991c1bde5662`;
const avatarPath = path.join(__dirname, `${uid}_avatar.png`);
const res = await axios.get(url, { responseType: "arraybuffer" });
fs.writeFileSync(avatarPath, res.data);
return avatarPath;
} catch (err) {
console.error(`Error fetching avatar for user ${uid}: ${err.message}`);
return "";
}
};
const bg = await loadImage("https://i.imgur.com/VniSzhD.png");
const canvas = createCanvas(bg.width, bg.height);
const ctx = canvas.getContext("2d");
ctx.drawImage(bg, 0, 0);
const senderAvatarPath = await getAvatar(senderID);
const targetAvatarPath = await getAvatar(targetID);
const senderAvatar = await loadImage(senderAvatarPath);
const targetAvatar = await loadImage(targetAvatarPath);
ctx.save();
ctx.beginPath();
ctx.arc(340, 120, 60, 0, Math.PI * 2);
ctx.closePath();
ctx.clip();
ctx.drawImage(targetAvatar, 280, 60, 120, 120);
ctx.restore();
ctx.save();
ctx.beginPath();
ctx.arc(500, 70, 60, 0, Math.PI * 2);
ctx.closePath();
ctx.clip();
ctx.drawImage(senderAvatar, 440, 10, 120, 120);
ctx.restore();
const output = path.join(__dirname, "kiss_output.png");
fs.writeFileSync(output, canvas.toBuffer("image/png"));
const senderName = await usersData.getName(senderID);
const targetName = event.mentions[mention] || (event.messageReply?.senderName || "Friend");
api.sendMessage({
body: `❤️ Kiss time! \n${senderName} gave a kiss to ${targetName}! 💋`,
attachment: fs.createReadStream(output),
mentions: [{ tag: targetName, id: targetID }],
}, event.threadID, () => {
fs.unlinkSync(output);
fs.unlinkSync(senderAvatarPath);
fs.unlinkSync(targetAvatarPath);
}, event.messageID);
}
};