// code from goatstore // api: https://store.agi.bd const axios = require("axios"); const BASE_API = "https://noobs-api.top/dipto/baby"; const OWNER = "ariYa'n bb'z 🚩đŸĢ€"; const PREFIX_WORDS = /\b(bby|baby|babe|bbe|bot)\b/i; const OWNER_WORDS = /\b(owner|malik|āĻŽāĻžāϞāĻŋāĻ•|owner ke|owner āϕ⧇)\b/i; module.exports.config = { name: "bby", aliases: ["baby", "bbe", "babe", "ridh"], version: "7.0.0", author: "AriYa'n", countDown: 0, role: 0, description: "A unique, fast and friendly AI baby chat bot", category: "chat", guide: { en: "{pn} [message]\n" + "{pn} teach [message] - [reply1, reply2]\n" + "{pn} teach react [message] - [reaction]\n" + "{pn} remove [message]\n" + "{pn} rm [message] - [index]\n" + "{pn} edit [message] - [new reply]\n" + "{pn} msg [message]\n" + "{pn} list\n" + "{pn} list all [limit]" } }; const apiRequest = async (params = {}) => { const response = await axios.get(BASE_API, { params, timeout: 15000, headers: { "User-Agent": "AriYan-BbyBot/7.0" } }); return response.data; }; const send = (api, event, text) => api.sendMessage( String(text || "đŸĨē āϕ⧋āύ⧋ āωāĻ¤ā§āϤāϰ āĻĒāĻžāĻ“ā§ŸāĻž āϝāĻžā§ŸāύāĻŋ, āφāĻŦāĻžāϰ āĻšā§‡āĻˇā§āϟāĻž āĻ•āϰ⧋!"), event.threadID, event.messageID ); const getOwnerReply = (text) => { if ( OWNER_WORDS.test(text) && /(who|ke|āϕ⧇āω|āϕ⧀|ki|name|āύāĻžāĻŽ|tomar|āϤ⧋āĻŽāĻžāϰ|your|is|bolo|āĻŦāϞ⧋)/i.test(text) ) { return `👑 āφāĻŽāĻžāϰ Owner āĻšāϞ⧋ ${OWNER} 💗`; } if (/who\s+made\s+you|ke\s+banaiāϛ⧇|āϕ⧇ āĻŦāĻžāύāĻŋā§Ÿā§‡āϛ⧇|āϕ⧇ āĻŦāĻžāύāĻžāχāϛ⧇|who created you/i.test(text)) { return `đŸĨ° āφāĻŽāĻžāϕ⧇ āϤ⧈āϰāĻŋ āĻ“ āĻĒāϰāĻŋāϚāĻžāϞāύāĻž āĻ•āϰ⧇ ${OWNER} 🚩đŸĢ€`; } return null; }; const getChatReply = async (text, senderID) => { const ownerReply = getOwnerReply(text); if (ownerReply) return ownerReply; const data = await apiRequest({ text: text, senderID: senderID }); return ( data?.message || data?.reply || data?.response || data?.answer || data?.data?.message || data?.data?.reply || null ); }; module.exports.onStart = async ({ api, event, args, usersData }) => { const raw = args.join(" ").trim(); const text = raw.toLowerCase(); const uid = event.senderID; try { if (!raw) { const greetings = [ "āĻšā§āϝāĻžāρ āϜāĻžāύ⧁, āĻŦāϞ⧋ đŸĨšđŸ’—", "āĻŦāϞ⧋ AriYa'n-āĻāϰ Baby đŸ˜ŊđŸĢļ", "āĻšā§āĻŽ āϜāĻžāύ, āφāĻŽāĻŋ āĻļ⧁āύāĻ›āĻŋ! 🌸", "āϕ⧀ āĻšāϝāĻŧ⧇āϛ⧇ āĻŦāĻžāĻŦ⧁? đŸĨē💕", "Bby online āφāϛ⧇! 🚩đŸĢ€" ]; return send( api, event, greetings[Math.floor(Math.random() * greetings.length)] ); } // OWNER const ownerReply = getOwnerReply(raw); if (ownerReply && !/^(teach|remove|rm|edit|msg|list)\b/i.test(raw)) { return send(api, event, ownerReply); } // REMOVE if (args[0].toLowerCase() === "remove") { const target = raw.slice(6).trim(); if (!target) { return send(api, event, "❌ āĻŦā§āϝāĻŦāĻšāĻžāϰ: bby remove [message]"); } const data = await apiRequest({ remove: target, senderID: uid }); return send(api, event, data?.message || "❌ Message remove āĻ•āϰāĻž āϝāĻžā§ŸāύāĻŋāĨ¤"); } // REMOVE BY INDEX if (args[0].toLowerCase() === "rm") { const match = raw.match(/^rm\s+(.+?)\s*-\s*(\d+)\s*$/i); if (!match) { return send(api, event, "❌ āĻŦā§āϝāĻŦāĻšāĻžāϰ: bby rm [message] - [index]"); } const data = await apiRequest({ remove: match[1], index: match[2], senderID: uid }); return send(api, event, data?.message || "❌ Remove āĻ•āϰāĻž āϝāĻžā§ŸāύāĻŋāĨ¤"); } // LIST if (args[0].toLowerCase() === "list") { const data = await apiRequest({ list: "all" }); if (args[1]?.toLowerCase() === "all") { const limit = Math.min( Math.max(parseInt(args[2], 10) || 30, 1), 100 ); const teacherList = data?.teacher?.teacherList; if (!Array.isArray(teacherList) || !teacherList.length) { return send(api, event, "📭 āϕ⧋āύ⧋ teacher list āĻĒāĻžāĻ“ā§ŸāĻž āϝāĻžā§ŸāύāĻŋāĨ¤"); } const lines = await Promise.all( teacherList.slice(0, limit).map(async (item, index) => { const id = Object.keys(item || {})[0]; if (!id) return `${index + 1}. Unknown: 0`; let name = id; try { name = await usersData.getName(id) || id; } catch (_) {} return `${index + 1}. ${name}: ${item[id]}`; }) ); return send( api, event, `👑 BABY TEACHER LIST 🚩\n\n${lines.join("\n")}` ); } return send( api, event, `💗 BABY STATS\n\n📚 Total Teach: ${ data?.length ?? "Unknown" }\nđŸ’Ŧ Total Response: ${ data?.responseLength ?? "Unknown" }` ); } // SHOW A SAVED RESPONSE if (args[0].toLowerCase() === "msg") { const target = raw.slice(4).trim(); if (!target) { return send(api, event, "❌ āĻŦā§āϝāĻŦāĻšāĻžāϰ: bby msg [message]"); } const data = await apiRequest({ list: target }); const result = data?.data ?? data?.message ?? "āϕ⧋āύ⧋ response āĻĒāĻžāĻ“ā§ŸāĻž āϝāĻžā§ŸāύāĻŋāĨ¤"; return send( api, event, `💌 Message: ${target}\n\n${typeof result === "object" ? JSON.stringify(result) : result}` ); } // EDIT if (args[0].toLowerCase() === "edit") { const match = raw.match(/^edit\s+(.+?)\s*-\s*(.+)$/i); if (!match || match[2].trim().length < 2) { return send( api, event, "❌ āĻŦā§āϝāĻŦāĻšāĻžāϰ: bby edit [old message] - [new reply]" ); } const data = await apiRequest({ edit: match[1].trim(), replace: match[2].trim(), senderID: uid }); return send(api, event, data?.message || "❌ Edit āĻ•āϰāĻž āϝāĻžā§ŸāύāĻŋāĨ¤"); } // TEACH / TEACH REACT if (args[0].toLowerCase() === "teach") { const isReact = args[1]?.toLowerCase() === "react"; const isAmar = args[1]?.toLowerCase() === "amar"; const match = raw.match(/^teach\s+(?:(?:react|amar)\s+)?(.+?)\s*-\s*(.+)$/i); if (!match || match[2].trim().length < 2) { return send( api, event, "❌ āĻŦā§āϝāĻŦāĻšāĻžāϰ:\nbby teach [message] - [reply]\n" + "bby teach react [message] - [reaction]" ); } const params = { teach: match[1].trim(), reply: match[2].trim(), senderID: uid, threadID: event.threadID }; if (isReact) params.react = "true"; if (isAmar) params.key = "intro"; const data = await apiRequest(params); return send( api, event, `✅ BABY TEACH UPDATED 💗\n\n${ data?.message || "API āĻĨ⧇āϕ⧇ āύāĻŋāĻļā§āϚāĻŋāϤ āĻĢāϞāĻžāĻĢāϞ āĻĒāĻžāĻ“ā§ŸāĻž āϝāĻžā§ŸāύāĻŋāĨ¤" }` ); } // NORMAL CHAT const answer = await getChatReply(raw, uid); return send( api, event, answer || "đŸĨē āĻŦāĻžāĻŦ⧁, āĻāχ āĻ•āĻĨāĻžāϰ āωāĻ¤ā§āϤāϰ āĻāĻ–āύ āĻĻāĻŋāϤ⧇ āĻĒāĻžāϰāĻ›āĻŋ āύāĻžāĨ¤ āĻ…āĻ¨ā§āϝāĻ­āĻžāĻŦ⧇ āϜāĻŋāĻœā§āĻžā§‡āϏ āĻ•āϰ⧋!" ); } catch (error) { console.error("[BBY onStart]", error?.response?.data || error.message); return send( api, event, error.code === "ECONNABORTED" ? "âŗ Baby API-āϤ⧇ āĻĻ⧇āϰāĻŋ āĻšāĻšā§āϛ⧇, āĻāĻ•āϟ⧁ āĻĒāϰ⧇ āĻšā§‡āĻˇā§āϟāĻž āĻ•āϰ⧋!" : "💔 Baby API-āϤ⧇ āϏāĻŽāĻ¸ā§āϝāĻž āĻšāĻšā§āϛ⧇āĨ¤ āĻ•āĻŋāϛ⧁āĻ•ā§āώāĻŖ āĻĒāϰ āφāĻŦāĻžāϰ āĻšā§‡āĻˇā§āϟāĻž āĻ•āϰ⧋!" ); } }; // AUTO CHAT: responds when someone addresses bby/baby/bot. module.exports.onChat = async ({ api, event }) => { const body = event.body?.trim(); if (!body || event.senderID === api.getCurrentUserID?.()) return; // Avoid replying to every unrelated group message. if (!PREFIX_WORDS.test(body) && !getOwnerReply(body)) return; try { const answer = await getChatReply(body, event.senderID); if (answer) { return api.sendMessage( String(answer), event.threadID, event.messageID ); } return; } catch (error) { console.error("[BBY onChat]", error?.response?.data || error.message); // Keep group chat clean during temporary API failures. } };