// code from goatstore // api: https://store.agi.bd const fs = require("fs-extra"); const axios = require("axios"); const canvas = require("canvas"); const path = require("path"); // ===== সেটিংস ===== const COOLDOWN_MS = 60 * 1000; const BOSS_NOTICE = "Mehedi বসকে BIJI_GIRL করা জাবে না রে পাগলা"; const TEMPLATE_URL = "https://i.imgur.com/pmiFQcO.jpeg"; const CAPTIONS = [ "প্রেমিকা হতে চেয়েছিলাম রাজকন্যা 👸 এখন হাতে সাবান আর থালা-বাসন ধন্য! 🤣 প্রেমিক দিলো ধোঁকা 🥲 হাঁড়ি-পাতিলই এখন আমার একমাত্র সখা!", "প্রেমিকার জীবন নাকি ফুল আর চাঁদ 🌙 আমার কপালে শুধু বাসনের ফাঁদ! 😂 হাতে সাবান, চোখে পানি এই প্রেমের কথা কাকে জানি?", "ভালোবাসার নামে করলাম ভুল 😵‍💫 এখন বাসন মাজাই আমার স্কুল! 🏫 প্রেমিক এখন অন্যের সাথে ঘোরে 💔 আমি বসে মাজি হাঁড়ি-পাতিল ঘরে!", "মা বলেছিল, মন দিয়ে পড় 📚 আমি বলেছিলাম, প্রেমই সবচেয়ে বড়! 😍 আজকে বুঝি কপালের কী দশা সারাদিন শুধু বাসন মাজা! 😭", "প্রেমিকা ভেবেছিলাম হবো মহারানী 👑 এখন শুধু হাঁড়ি-পাতিলের কাহিনী! মুকুট গেল, গেল সম্মান 😭 হাতে শুধু সাবান আর থালা-বাটির দোকান!", "বান্ধবীরা সবাই ঘুরতে যায় আমার কপালে বাসন মাজা পায় 😭 ওরা খায় বিরিয়ানি আর মুরগির ঝোল 🤤 আমি মাজি হাঁড়ি, এটাই আমার রোল!", "সাবান বলে, আপু আর কত ঘষবি? 😂 থালা বলে, আমাকে কবে ছাড়বি? আমি বলি, কপালটাই খারাপ! 🤦‍♀️ বাসন মাজতে মাজতে জীবন বরবাদ!", "প্রেমিক বলেছিল, তুমি আমার রানী 👸 এখন বুঝি সবই ছিল মিথ্যে বাণী! 🤣 রানী এখন বাসন মাজে 😂 এই কষ্ট কাকে বা বোঝে?", "একটা প্রেমিকার কান্না কেউ দেখে না 😭 সাবানের ফেনায় চোখের জল মিশে যায়! বাসন মাজি হাসি মুখে 😂 দুঃখ লুকাই বুকের ভেতরে হায়!", "দুনিয়াতে কত রকমের শাস্তি! 😂 প্রেমিকার কপালে বাসন মাজা বাধ্যতামূলক ডিউটি! হাঁড়ি-পাতিল দেখলেই লাগে ভয় এই জন্মে কি আর মুক্তি হয়?" ]; const REF = { w: 1024, h: 1536 }; const AVATAR = { x: 405, y: 358, size: 250 }; const lastUsed = new Map(); function getAdminIDs() { const list = (global.GoatBot?.config?.adminBot) || (global.config?.ADMINBOT) || []; return list.map(String); } module.exports = { config: { name: "bijigirl", version: "1.1.1", author: "乛 M polaris R ཐི༏ཋྀ JU polaris W polaris ELꜛཐི༏ཋྀ࿐", countDown: 0, role: 0, shortDescription: "busy girl template memes", longDescription: "Create funny busy girl memes with profile picture", category: "image", guide: "{pn} [@mention / reply]" }, onStart: async function ({ event, api, message, users }) { const senderID = String(event.senderID); const admins = getAdminIDs(); const senderIsAdmin = admins.includes(senderID); // টার্গেট নির্ধারণ const targetUserId = String( Object.keys(event.mentions || {})[0] || (event.messageReply && event.messageReply.senderID) || event.senderID ); // ★ শুধু অন্য কেউ অ্যাডমিনকে টার্গেট করলে ব্লক করবে // অ্যাডমিন নিজে নিজের উপর ব্যবহার করতে পারবে if (admins.includes(targetUserId) && targetUserId !== senderID) { return message.reply(BOSS_NOTICE); } // কুলডাউন (অ্যাডমিন আনলিমিটেড) if (!senderIsAdmin) { const now = Date.now(); const last = lastUsed.get(senderID) || 0; const wait = COOLDOWN_MS - (now - last); if (wait > 0) { return message.reply(`⏳ ${Math.ceil(wait / 1000)} সেকেন্ড পরে আবার চেষ্টা কর।`); } lastUsed.set(senderID, now); } const cacheDir = path.join(__dirname, "cache"); const outputPath = path.join(cacheDir, `bijigirl_${Date.now()}.jpg`); try { await fs.ensureDir(cacheDir); // টেমপ্লেট const templateRes = await axios.get(TEMPLATE_URL, { responseType: "arraybuffer", headers: { "User-Agent": "Mozilla/5.0" }, timeout: 20000 }); const templateImage = await canvas.loadImage(Buffer.from(templateRes.data)); // প্রোফাইল ছবি let picData; try { const picRes = await axios.get( `https://graph.facebook.com/${targetUserId}/picture?width=512&height=512&access_token=6628568379%7Cc1e620fa708a1d5696fb991c1bde5662`, { responseType: "arraybuffer", headers: { "User-Agent": "Mozilla/5.0" }, timeout: 15000 } ); picData = picRes.data; } catch (e) { const info = await new Promise((resolve, reject) => { api.getUserInfo(targetUserId, (err, res) => (err ? reject(err) : resolve(res))); }); const thumb = info[targetUserId]?.thumbSrc; if (!thumb) throw new Error("Profile picture not found"); const r2 = await axios.get(thumb, { responseType: "arraybuffer", timeout: 15000 }); picData = r2.data; } const avatar = await canvas.loadImage(Buffer.from(picData)); const cv = canvas.createCanvas(templateImage.width, templateImage.height); const ctx = cv.getContext("2d"); ctx.drawImage(templateImage, 0, 0); const kx = templateImage.width / REF.w; const ky = templateImage.height / REF.h; const ax = AVATAR.x * kx; const ay = AVATAR.y * ky; const as = AVATAR.size * kx; ctx.save(); ctx.beginPath(); ctx.arc(ax + as / 2, ay + as / 2, as / 2, 0, Math.PI * 2); ctx.closePath(); ctx.clip(); ctx.drawImage(avatar, ax, ay, as, as); ctx.restore(); await fs.writeFile(outputPath, cv.toBuffer("image/jpeg")); // নাম let name = "বান্ধবী"; try { name = await users.getName(targetUserId); } catch (e) { try { const info = await new Promise((resolve, reject) => { api.getUserInfo(targetUserId, (err, res) => (err ? reject(err) : resolve(res))); }); name = info[targetUserId]?.name || name; } catch (e2) {} } const caption = CAPTIONS[Math.floor(Math.random() * CAPTIONS.length)]; const fullBody = name + "\n\n" + caption; await message.reply({ body: fullBody, mentions: [{ tag: name, id: targetUserId }], attachment: fs.createReadStream(outputPath) }); setTimeout(() => { fs.unlink(outputPath).catch(() => {}); }, 15000); } catch (error) { lastUsed.delete(senderID); console.error("[BIJIGIRL ERROR]", error); return message.reply("Error: " + error.message); } } };