goat
command
latti
Football kick edit
0
views
0
likes
0
installs
Aliases: lathi
raw source
const { createCanvas, loadImage } = require("canvas");
const axios = require("axios");
const fs = require("fs-extra");
const path = require("path");
module.exports = {
config: {
name: "latti",
aliases: ["lathi"],
version: "1.2",
author: "eden",
countDown: 5,
role: 0,
shortDescription: "Football kick edit",
longDescription: "Adds your profile pic and target's profile pic into a football kick meme",
category: "fun",
guide: {
en: "{p}{n} @mention / reply"
}
},
onStart: async function ({ api, event, args }) {
try {
let targetID;
if (Object.keys(event.mentions).length > 0) {
targetID = Object.keys(event.mentions)[0];
} else if (event.messageReply) {
targetID = event.messageReply.senderID;
} else {
return api.sendMessage("- কাকে ফুটবল এর মতো কিক মারবি মেনশন দে..!", event.threadID, event.messageID);
}
const senderID = event.senderID;
const senderAvatar = `https://graph.facebook.com/${senderID}/picture?width=512&height=512&access_token=6628568379%7Cc1e620fa708a1d5696fb991c1bde5662`;
const targetAvatar = `https://graph.facebook.com/${targetID}/picture?width=512&height=512&access_token=6628568379%7Cc1e620fa708a1d5696fb991c1bde5662`;
const templatePath = path.join(__dirname, "cache", "dkick_base.png");
if (!fs.existsSync(templatePath)) {
const imgUrl = "https://files.catbox.moe/4x39pb.jpg";
const res = await axios.get(imgUrl, { responseType: "arraybuffer" });
fs.outputFileSync(templatePath, res.data);
}
const baseImg = await loadImage(templatePath);
const senderImg = await loadImage(senderAvatar);
const targetImg = await loadImage(targetAvatar);
const canvas = createCanvas(baseImg.width, baseImg.height);
const ctx = canvas.getContext("2d");
ctx.drawImage(baseImg, 0, 0, canvas.width, canvas.height);
// Sender face
const senderY = 130;
ctx.save();
ctx.beginPath();
ctx.arc(120, senderY + 45, 45, 0, Math.PI * 2, true);
ctx.closePath();
ctx.clip();
ctx.drawImage(senderImg, 75, senderY, 90, 90);
ctx.restore();
// Target face
const targetX = 260;
const targetY = 25;
const targetSize = 100;
ctx.save();
ctx.beginPath();
ctx.arc(targetX + targetSize / 2, targetY + targetSize / 2, targetSize / 2, 0, Math.PI * 2, true);
ctx.closePath();
ctx.clip();
ctx.drawImage(targetImg, targetX, targetY, targetSize, targetSize);
ctx.restore();
const outPath = path.join(__dirname, "cache", `dkick_${event.senderID}.png`);
fs.writeFileSync(outPath, canvas.toBuffer());
api.sendMessage(
{ body: "- Bombolaaa 🦵⚽", attachment: fs.createReadStream(outPath) },
event.threadID,
() => fs.unlinkSync(outPath),
event.messageID
);
} catch (e) {
console.error(e);
return api.sendMessage("❌ Error generating image.", event.threadID, event.messageID);
}
}
};