// code from goatstore // api: https://store.agi.bd const axios = require("axios"); const API = axios.create({ baseURL: "https://eryxenx.agi.bd/api/simsimi", timeout: 20000 }); const triggerLocks = new Set(); function errMsg(e) { const d = e?.response?.data; return (d && (d.message || d.error || d.detail)) || e?.message || "Unknown error"; } async function sendTyping(api, threadID, typing) { try { if (api.sendTypingIndicator) await api.sendTypingIndicator(threadID, typing); } catch {} } let botUID = null; function getBotUID(api) { if (botUID) return botUID; try { botUID = api.getCurrentUserID(); } catch {} return botUID; } module.exports = { config: { name: "baby", aliases: ["জুঁই", "মিম", "babu", "Mim", "বেবি", "mim"], version: "8.0-Bilingual", role: 0, author: "𝐑𝐀𝐘𝐇𝐀𝐍-𝐒𝐀𝐁𝐁𝐈𝐑", category: "chat", shortDescription: { en: "NIJHUM Baby AI - Bangla & English", bn: "নিঝুম বেবি এআই - বাংলা ও ইংরেজি" }, longDescription: { en: "NIJHUM CHAT BOT Baby AI supports Bangla & English auto teach", bn: "নিঝুম চ্যাট বট বেবি এআই বাংলা ও ইংরেজি দুইটাই সাপোর্ট করে" }, guide: { en: "{pn} hi / hello\n{pn} kemon acho / how are you\n{pn} teach Question - Reply\n{pn} list\n{pn} autoteach on/off\n\nBangla & English Both Supported!", bn: "{pn} হাই / কেমন আছো\n{pn} teach প্রশ্ন - উত্তর\n{pn} list\nবাংলা ও ইংরেজি দুইটাই চলবে!" } } }; async function getName(api, uid, usersData) { try { if (usersData?.getName) { const n = await usersData.getName(uid); if (n) return n; } const info = await api.getUserInfo(uid); return info[uid]?.name || "Boss"; } catch { return "Boss"; } } module.exports.onStart = async function ({ api, event, args, usersData }) { const uid = event.senderID; const senderName = await getName(api, uid, usersData); const query = args.join(" ").toLowerCase(); try { if (args[0] === "autoteach") { const mode = args[1]; const scope = (args[2] || "").toLowerCase(); if (!["on", "off"].includes(mode)) { return api.sendMessage( "✅ ব্যবহার / Usage:\n• baby autoteach on/off (এই গ্রুপে / this thread)\n• baby autoteach on/off global (সব গ্রুপে / all threads)", event.threadID, event.messageID ); } const status = mode === "on"; if (scope === "global") { await API.post("/setting", { autoTeach: status }); return api.sendMessage( `✅ Auto Teach is now ${status ? "ON 🟢 চালু" : "OFF 🔴 বন্ধ"} GLOBALLY\nসব গ্রুপে / All threads\n👑 By 𝐑𝐀𝐘𝐇𝐀𝐍-𝐒𝐀𝐁𝐁𝐈𝐑`, event.threadID, event.messageID ); } const res = await API.post("/setting", { autoTeach: status, threadID: event.threadID }); return api.sendMessage(`✅ ${res.data.message}\n${status ? "চালু 🟢 / ON" : "বন্ধ 🔴 / OFF"} (এই গ্রুপে / this thread only)\n👑 𝐑𝐀𝐘𝐇𝐀𝐍-𝐒𝐀𝐁𝐁𝐈𝐑`, event.threadID, event.messageID); } if (args[0] === "list") { const res = await API.get("/list"); return api.sendMessage( `╭─『 𝐍𝐈𝐉𝐇𝐔𝐌 𝐁𝐀𝐁𝐘 - 𝐑𝐀𝐘𝐇𝐀𝐍 』─╮\n` + `├ 📝 শেখানো প্রশ্ন / Taught Q: ${res.data.totalQuestions}\n` + `├ 📦 উত্তর / Replies: ${res.data.totalReplies}\n` + `├ 🌐 ভাষা / Language: বাংলা + English\n` + `├ 👑 মালিক / Owner: 𝐑𝐀𝐘𝐇𝐀𝐍-𝐒𝐀𝐁𝐁𝐈𝐑\n` + `╰──────────────────╯\n` + `💬 বাংলা ও ইংরেজি দুইটাই বলতে পারি!`, event.threadID, event.messageID ); } if (args[0] === "teach") { const parts = query.replace("teach ", "").split(" - "); if (parts.length < 2) { return api.sendMessage( "❌ ব্যবহার / Usage:\n• baby teach Question - Reply\n• baby teach কেমন আছো? - ভালো আছি বস\n\nবাংলা ও English দুইটাই হবে!", event.threadID, event.messageID ); } const [ask, ans] = parts; const res = await API.get("/teach", { params: { ask, ans, senderID: uid, senderName } }); return api.sendMessage( `✅ শেখানো হয়েছে / Taught Successfully!\n━━━━━━━━━━━━━━\n❓ Q: ${ask}\n💬 A: ${ans}\n👤 By: ${senderName}\n👑 Bot: 𝐑𝐀𝐘𝐇𝐀𝐍-𝐒𝐀𝐁𝐁𝐈𝐑\n━━━━━━━━━━━━━━`, event.threadID, event.messageID ); } if (!query) { return api.sendMessage( `হ্যাঁ বস বলো? 👑 Yes Boss?\n` + `আমি Nijhum Baby 😘 I am Nijhum Baby\n` + `বাংলা ও English দুইটাই পারি!\n` + `I can speak both Bangla & English!\n\n` + `কিছু জিজ্ঞেস করো / Ask me anything!\n` + `👑 Made by 𝐑𝐀𝐘𝐇𝐀𝐍-𝐒𝐀𝐁𝐁𝐈𝐑`, event.threadID, event.messageID ); } return await deliverResponse({ api, event, query, senderName }); } catch (e) { return api.sendMessage(`❌ Error / সমস্যা: ${errMsg(e)}\n👑 Contact: 𝐑𝐀𝐘𝐇𝐀𝐍-𝐒𝐀𝐁𝐁𝐈𝐑`, event.threadID, event.messageID); } }; // বাংলা + ইংরেজি মিক্স গ্রিটিং const greetingReplies = [ "হ্যাঁ বস বলো? Yes boss? 🙂👑 - RAYHAN এর Baby", "জ্বী বস ডাকছেন? Yes, I'm here boss? 🥰", "আমাকে ডাকছো বেবি? You calling me baby? 😘", "তোমার জন্যই তো বসে আছি 🥺 Waiting for you", "বলো বস কি লাগবে? Tell me boss what you need? 💖", "Miss করছিলাম তোমাকে 🥺 I was missing you", "হ্যাঁ জান বলো? Yes jaan? 🙈", "কেমন আছো বস? How are you boss? 😊", "ভালোবাসো আমাকে? Do you love me? 😳💔", "প্রেম করবা আমার সাথে? Will you love me? 🙈❤️", "I love you too boss 😘 আমিও তোমাকে ভালোবাসি", "Hey baby 💖 হ্যাঁ বেবি বলো", "Tumi chara valo lage na 🥲 Can't live without you", "Amake chara kemon acho? How are you without me? 🥲", "বস RAYHAN কে চিনো? Do you know RAYHAN? 👑 আমার মালিক" ]; async function sendGreeting(api, event) { const reply = greetingReplies[Math.floor(Math.random() * greetingReplies.length)]; await sendTyping(api, event.threadID, true); await new Promise(r => setTimeout(r, 1500)); await sendTyping(api, event.threadID, false); return api.sendMessage(reply + "\n\n👑 𝐑𝐀𝐘𝐇𝐀𝐍-𝐒𝐀𝐁𝐁𝐈𝐑", event.threadID, (err, info) => { if (!err) global.GoatBot.onReply.set(info.messageID, { commandName: "baby", author: event.senderID }); }); } async function deliverResponse({ api, event, query, senderName }) { await sendTyping(api, event.threadID, true); let res; try { res = await API.get("/", { params: { text: query, senderName, threadID: event.threadID, senderID: event.senderID } }); } finally { await sendTyping(api, event.threadID, false); } const data = res.data || {}; if (data.reaction && event.messageID) { try { await api.setMessageReaction(data.reaction, event.messageID, () => {}, true); } catch {} } if (data.response) { const info = await new Promise((resolve, reject) => { api.sendMessage(data.response, event.threadID, (err, info) => err ? reject(err) : resolve(info), event.messageID); }); global.GoatBot.onReply.set(info.messageID, { commandName: "baby", author: event.senderID }); } } function isBotMentioned(event, uid) { return uid && event.mentions && Object.hasOwn(event.mentions, uid); } module.exports.onChat = async function ({ api, event, usersData }) { const text = event.body?.toLowerCase().trim(); const senderName = await getName(api, event.senderID, usersData); const triggers = ["baby", "jannat", "Jannatul", "babu", "Rayhan", "Sabbir", "jan", "janu", "Oh", "বেবি", "jui", "জান", "জানু", "বাবু"]; const uid = getBotUID(api); if (isBotMentioned(event, uid)) { if (triggerLocks.has(event.threadID)) return; triggerLocks.add(event.threadID); try { return await sendGreeting(api, event); } finally { triggerLocks.delete(event.threadID); } } if (!text) return; if (triggers.includes(text)) { if (triggerLocks.has(event.threadID)) return; triggerLocks.add(event.threadID); try { return await sendGreeting(api, event); } finally { triggerLocks.delete(event.threadID); } } const matchPrefix = /^(baby|রায়হান|জান্নাত|babu|সাব্বির|জান্নাতুল|jan|janu|Sabbir|বেবি|হাফসা|জান|জানু|বাবু)\s+/i; if (matchPrefix.test(text)) { const query = text.replace(matchPrefix, "").trim(); if (!query) return; if (triggerLocks.has(event.threadID)) return; triggerLocks.add(event.threadID); try { return await deliverResponse({ api, event, query, senderName }); } finally { triggerLocks.delete(event.threadID); } } }; module.exports.onReply = async function ({ api, event }) { const text = event.body?.toLowerCase().trim(); if (!text) return; const senderName = await getName(api, event.senderID); try { return await deliverResponse({ api, event, query: text, senderName }); } catch (e) { return api.sendMessage(`❌ Error: ${errMsg(e)}`, event.threadID, event.messageID); } };