goat
command
pain
No description
0
views
0
likes
0
installs
raw source
const axios = require("axios");
const { createCanvas, loadImage } = require("canvas");
const fs = require("fs");
const path = require("path");
module.exports = {
config: {
name: "pain",
author: "Nyx x ariyan x fahad x saim",
category: "love",
},
onStart: async function ({ api, event, usersData }) {
try {
const senderData = await usersData.get(event.senderID);
const senderName = senderData.name;
const threadData = await api.getThreadInfo(event.threadID);
const users = threadData.userInfo;
const myData = users.find((user) => user.id === event.senderID);
if (!myData || !myData.gender) {
return api.sendMessage(
"⚠ Could not determine your gender.",
event.threadID,
event.messageID
);
}
const myGender = myData.gender;
let matchCandidates = [];
if (myGender === "MALE") {
matchCandidates = users.filter(
(user) => user.gender === "FEMALE" && user.id !== event.senderID
);
} else if (myGender === "FEMALE") {
matchCandidates = users.filter(
(user) => user.gender === "MALE" && user.id !== event.senderID
);
} else {
return api.sendMessage(
"⚠ Your gender is undefined. Cannot find a match.",
event.threadID,
event.messageID
);
}
if (matchCandidates.length === 0) {
return api.sendMessage(
"❌ No suitable match found in the group.",
event.threadID,
event.messageID
);
}
const selectedMatch =
matchCandidates[Math.floor(Math.random() * matchCandidates.length)];
const matchName = selectedMatch.name;
// Create canvas
const width = 800;
const height = 400;
const canvas = createCanvas(width, height);
const ctx = canvas.getContext("2d");
// ✅ Background image list
const backgrounds = [
"https://i.imgur.com/OntEBiq.png", // Background 1
"https://i.imgur.com/2qRbXwq.jpeg", // Background 2
"https://i.imgur.com/LfIOwPG.png" // Background 3
];
// Randomly pick one background
const randomBgUrl = backgrounds[Math.floor(Math.random() * backgrounds.length)];
const background = await loadImage(randomBgUrl);
// Load profile pictures
const sIdImage = await loadImage(
`https://graph.facebook.com/${event.senderID}/picture?width=720&height=720&access_token=6628568379%7Cc1e620fa708a1d5696fb991c1bde5662`
);
const pairPersonImage = await loadImage(
`https://graph.facebook.com/${selectedMatch.id}/picture?width=720&height=720&access_token=6628568379%7Cc1e620fa708a1d5696fb991c1bde5662`
);
// Draw everything on canvas
ctx.drawImage(background, 0, 0, width, height);
ctx.drawImage(sIdImage, 385, 40, 170, 170);
ctx.drawImage(pairPersonImage, width - 213, 190, 180, 170);
// Save to file
const outputPath = path.join(__dirname, "pair_output.png");
const out = fs.createWriteStream(outputPath);
const stream = canvas.createPNGStream();
stream.pipe(out);
// Wait for image to be saved
out.on("finish", () => {
const lovePercent = Math.floor(Math.random() * 31) + 70;
const message = `🥰𝗦𝘂𝗰𝗰𝗲𝘀𝘀𝗳𝘂𝗹 𝗽𝗮𝗶𝗿𝗶𝗻𝗴
・${senderName} 🎀
・${matchName} 🎀
💌𝗪𝗶𝘀𝗵 𝘆𝗼𝘂 𝘁𝘄𝗼 𝗵𝘂𝗻𝗱𝗿𝗲𝗱 𝘆𝗲𝗮𝗿𝘀 𝗼𝗳 𝗵𝗮𝗽𝗽𝗶𝗻𝗲𝘀𝘀 ❤❤
𝗟𝗼𝘃𝗲 𝗽𝗲𝗿𝗰𝗲𝗻𝘁𝗮𝗴𝗲: ${lovePercent}% 💙`;
api.sendMessage(
{
body: message,
attachment: fs.createReadStream(outputPath),
},
event.threadID,
() => {
fs.unlinkSync(outputPath);
},
event.messageID
);
});
} catch (error) {
api.sendMessage(
"❌ An error occurred while trying to find a match.\n" + error.message,
event.threadID,
event.messageID
);
}
},
};