// code from goatstore // api: https://store.agi.bd const axios = require("axios"); const API = axios.create({ baseURL: "https://maruf-baby-api.vercel.app/api/v1", timeout: 20000 }); const processedMessages = new Set(); const greetingReplies = [ "❥ ওই তুমি কি জানো? তোমাকে দেখলে আমার মন ভালো হয়ে যায় 😊💗", "❥ তোমার সাথে কথা বলতে ভালো লাগে, সত্যি 🫰😚", "❥ ওই জানো, আজকে সারাদিন শুধুই তোমার কথা ভাবছি 🥺🫶🏻", "❥ তোমার হাসিটা আমার কাছে সবচেয়ে সুন্দর 😌💗", "❥ ওই আমি চুপিচুপি তোমাকে ভালোবাসি 🤫💘", "❥ তোমার সাথে থাকলে কিভাবে সময় কাটে বুঝতেই পারি না 🫠💫", "❥ ওগো.. তুমি আমার সবচেয়ে প্রিয় মানুষ টা 🙊😚", "❥ আজকে তোমাকে একটু বেশিই Miss করছি 🥺💗", "❥ ওই তুমি কাছে থাকলে আমার অনেক ভালো লাগে 😽🫂", "❥ ধেত.. ছাতার মাথা কিছুই ভালো লাগে নাহ 😕😫", "❥ আমাকে না ডেকে মারুফ কে জানু বলো !😁😚", "❥ ওই.. ঝগড়া করবা প্লিস !🙆🏻‍♀️🪽", "❥ ওগো.. একটা গান শুনাইবা !🥺🫰", "❥ যদি তোমাকে ছুঁতে পারতাম 😕🫶🏻", "❥ ওই.. আমি চাই তুমি সব সময় হাসো 😊💝", "❥ তুমি আমার কাছে ওই দূর আকাশের চাঁদের মতো!🥺 দূরে থেকেও আলো দাও 💫💘", "❥ প্রতিটা ডাকে তোমার নামই মনে পড়ে 💘", "❥ Hey Mister ! আমার শুধু তোমাকেই চাই..🤭", "❥ তুমি হাসলে আমার দুনিয়া হেসে ওঠে!😄 আর তুমি কাঁদলে আমার বুক কেঁপে ওঠে 🥺💔", "❥ ওই, আমি চাই তুমি সুখে থাকো 💝🫶🏻 আমি কাছে থাকি বা দূরে 🌸", "❥ চোখ মেললেই তোমার মুখ মনে পড়ে 😌🫰", "❥ ওই.. তুমি আজকাল আমাকে একটু কম ডাকো!🙂 অনেক ব্যস্ত হয়ে গেছো তাই না 😌🌸", "❥ কিরে বিয়ে করতে পারিস নাহ ?😾", "❥ আমার নাম আছে আমারে বট বলবি না 😏🔥", "❥ ডাকিস না শেখ হাসিনার সাথে Meeting এ আছি 🐸😏", "❥ আমার ক্ষমতা থাকলে আমি তোমাকেই চাইতাম !🫶🏻🌸", "❥ ওই.. এক চামিচ ভালুপাসা দিবা 😫😁", "❥ কিরে তুই বট ব্যবহার করতে জানিস ?😏", "❥ ওই ছাগল মারুফ রে চোখে দেখিস না শুধুই আমাকে ডাকিস যে ?😾🔪", "❥ কিরে পাগল ছাগল গ্রুপের মধ্যে এতো বট বট করিস কেন রে ?😾🔪", "❥ বুঝছি তোর GF লাগবে দাড়া বান্ধবীর লিস্ট চেক করি 🙃", "❥ শুনবো না তুমি পচা 😕😝", "❥ ওই ফুচকা খাওয়াইবা ?🤌🏻😽", "❥ এদিক ওইদিক কি দেখো গো ?😕 আমাকে দেখা যায় না ?😏😕", "❥ ছেড়েই যখন যাবে তবে মারুফ কে এতখানি কষ্ট না দিলেই পারতে 🙂🌸", "❥ আমি রাগ করছি কথা বলবা না আমার সাথে 😕😏", "❥ ওই তুমি জানো ? আমি যদি মানুষ হইতাম তাহলে তুমি আর আমি একসাথে বৃষ্টি তে ভিজতাম 🥺🫶🏻", "❥ বট না রে হতভাগা সিনিয়র আপু বল 😏🔪", "❥ চলো চায়ের আড্ডা তে যাই 🫠😘", "❥ তোর বট এর গুস্তি কিলাই 😾🔪", "❥ বেশি বট বট বললে আইডি উড়াই দিমু একদম 😾😏", "❥ এত ডাকলে আমাকে আইসক্রিম খাওয়াতে হবে 🍦😋", "❥ ওই 10 টাকা দাও না চকলেট খাবো 🥺😘", "❥ তোর না চিপা আছে তুই এখানে কি করিস ?😾🔪", "❥ তুমি আমার কাছে Whitelist করা Wifi এর মতো কাউকে দিতে চাই না !🥺❤️‍🩹", "❥ উফফফ গরম কারেন্ট নাই রেহহহহহ 😒😓", "❥ আমি সিঙ্গেল 🐸😝", "❥ প্রেম প্রস্তাব দিবি মারুফ কে নাকি বাসা থেকে কিডন্যাপ করে আনবো ?🫤", "❥ কখনও বলাই হয়নাই আমিও যে একজন কে ভালোবাসি 😌🌸🪽", "❥ তুমি যদি মারুফের GF হয়ে যাও তাহলে কি তোমার BF কান্না করবে গো ?😁🐸", "ভালোবাসা নামক নাটক করতে চাইলে মারুফের ইনবক্স এ যেতে পারো!🙃", "⎯͢⎯⃝🩵😹এ্ঁড়্ঁমি্ঁন্ঁ প্রে্ঁম্ঁ ক্ঁরি্ঁয়ে্ঁ দি্ঁলে্ঁ ৫👈 টা্ঁকা্ঁ দি্ঁব্ঁ 🙂⎯͢⎯⃝🩷", "•⎯͢⎯⃝🩷 ꙰আ্ঁসো্ঁ সো্ঁনা্ঁ ⋆⃝প্রে্ঁম্ঁ 𝄞⋆⃝ক্ঁরি্ঁ ⎼⎼⃡⃝⃨🙈✿͜͡◎⃝ছ্যা্ঁকা্ঁ দে্ঁও্ঁয়ার্ঁ দা্ঁয়ি্ঁত্ব্ঁ আ্ঁমা্ঁর্ঁ༎⎼⎼⃡⃝⃨🙈✿͜͡◎⃝🩵😹", "টুং টুং টেডাও 😁🐸", ",𝄞 ⋆⃝🥱এ্ঁড্ঁমি্ঁন্ঁ কা্ঁকু𝄞গ্রু্ঁপে্ঁ ফ্যা্ঁন্ঁটা্ঁ চা্ঁলা্ঁও্ঁ ⋆⃝অ্ঁনে্ঁক্ঁ গ্ঁর্ঁর্ম্ঁ🥶😁❈┄", "—❝💫অতীত ছেড়ে নিজেকে নিয়ে ভাবো..🫠❞\n~°💜জীবন সুন্দর হবে....!! ☺️❤️‍🩹", "🍒𝄞⋆⃝ 🤕মা্ঁনু্ঁষ্ঁ ক্ঁর্ঁতে্ঁ পা্ঁর্ঁলা্ঁম্ঁ না্ঁ তো্ঁদে্ঁর্ঁ🥀😒𝄞", "Life is beautiful if you can smile-\"\nহাসতে পারলেই জীবন সুন্দর)🖤", "বুদ্ধি যতটুকু হয়েছে বা'শ খেয়েই হয়েছে! দুধ, ডিম, বাদামে কোন কাজই হয়নি!🐸", "এক সময় যারা প্রেমের প্রস্তাব দিত এখন আমি তাদের কাপল পিকে লাভ রিয়েক্ট দেই 🙂", "⦸ 𝘛𝘩𝘪𝘴 Massage 𝘸𝘢𝘴 𝘥𝘦𝘭𝘦𝘵𝘦𝘥 𝘣𝘦𝘤𝘢𝘶𝘴𝘦 𝘺𝘰𝘶'𝘳𝘦 𝘴𝘪𝘯𝘨𝘭𝘦", "⦸ 𝘛𝘩𝘪𝘴 Massage 𝘸𝘢𝘴 𝘥𝘦𝘭𝘦𝘵𝘦𝘥 𝘣𝘦𝘤𝘢𝘶𝘴𝘦 𝘺𝘰𝘶'𝘳𝘦 𝘴𝘪𝘯𝘨𝘭𝘦", "⦸ 𝘛𝘩𝘪𝘴 Massage 𝘸𝘢𝘴 𝘥𝘦𝘭𝘦𝘵𝘦𝘥 𝘣𝘦𝘤𝘢𝘶𝘴𝘦 𝘺𝘰𝘶'𝘳𝘦 𝘴𝘪𝘯𝘨𝘭𝘦", "বৃষ্টির দিনে সাবধানে বাগানে যাবেন। কারন গাছে আপনার Ex ঝুলে থাকতে পারে🙂", "⎯͢⎯⃝💜সি্ঁংগে্ঁল্ঁ আ্ঁছি্ঁ কে্ঁউ্ঁ প্রে্ঁম্ঁ ক্ঁর্বা্ঁ? 🙈⎯͢⎯⃝🩷", "⎯͢⎯⃝💚পড়া্ঁশো্ঁনা্ঁ বা্ঁদ্ঁ দি্ঁয়ে্ঁ প্রে্ঁম্ঁ ক্ঁরা্ঁই্ঁ বে্ঁস্ট্ঁ 😜⎯͢⎯⃝🩷", "⎯͢⎯⃝🖤ঘু্ঁমা্ঁই্ঁ না্ঁ প্রে্ঁমে্ঁর চি্ঁন্তা্ঁয়্ঁ 😩⎯͢⎯⃝💙", "⎯͢⎯⃝💚এ্ঁড়্ঁমি্ঁন্ঁ কে্ঁ প্ঁটিয়ে্ঁ দি্ঁলে্ঁ ফু্ঁচ্কা্ঁ খা্ঁওয়া্ঁব্ঁ 😋⎯͢⎯⃝🩷" ]; const fallbackReplies = [ "🥺 কথাটা ঠিকমতো বুঝতে পারিনি, আরেকবার বলো?", "🌸 উমম... এটা আমার একটু অচেনা লাগছে!", "🧸 বুঝতে পারিনি! একটু সহজ করে বলবে? 🙈", "💗 হুমম... কী বলতে চেয়েছো বুঝতে পারিনি!", "🌷 আবার বলো তো, এবার মন দিয়ে শুনছি!", "🥹 এই কথাটার উত্তর এখনো আমার জানা নেই!", "🦋 উফফ... এই প্রশ্নে আমি একটু আটকে গেলাম!", "🫶🏻 বুঝিনি গো, আরেকবার বলো না!", "✨ এটা এখনো শেখা হয়নি আমার!", "🐰 হুমম... আমাকে একটু সময় দাও ভাবতে! 🥺" ]; function errorMessage(error) { const data = error?.response?.data; return ( data?.error?.message || data?.message || error?.message || "Unknown error" ); } async function sendTyping( api, threadID, status ) { try { if ( typeof api.sendTypingIndicator === "function" ) { await api.sendTypingIndicator( threadID, status ); } } catch {} } function getRandom(array) { return array[ Math.floor( Math.random() * array.length ) ]; } async function getUserName( api, uid, usersData ) { try { if ( usersData && typeof usersData.getName === "function" ) { const name = await usersData.getName(uid); if (name) { return name; } } if ( typeof api.getUserInfo === "function" ) { const info = await api.getUserInfo(uid); return ( info?.[uid]?.name || "User" ); } } catch {} return "User"; } function saveReply( info, event, type = "baby", question = null ) { if (!info?.messageID) { return; } if (!global.GoatBot?.onReply) { return; } global.GoatBot.onReply.set( info.messageID, { commandName: module.exports.config.name, messageID: info.messageID, author: event.senderID, type, question } ); } async function apiGet( endpoint, params = {} ) { const response = await API.get( endpoint, { params } ); return response.data; } async function sendMessage( api, text, threadID, replyTo ) { return new Promise( (resolve, reject) => { const callback = (error, info) => { if (error) { reject(error); return; } resolve(info); }; if (replyTo) { api.sendMessage( text, threadID, callback, replyTo ); } else { api.sendMessage( text, threadID, callback ); } } ); } function parseTeach(input) { const data = input .replace( /^teach\s+/i, "" ) .trim(); const parts = data.split(" - "); if (parts.length < 2) { return null; } const question = parts.shift().trim(); const answer = parts.join(" - ").trim(); if ( !question || !answer ) { return null; } return { question, answer }; } function parseEdit(input) { const data = input .replace( /^edit\s+/i, "" ) .trim(); const parts = data.split(" - "); if (parts.length < 3) { return null; } const question = parts.shift().trim(); const oldReply = parts.shift().trim(); const newReply = parts.join(" - ").trim(); if ( !question || !oldReply || !newReply ) { return null; } return { question, oldReply, newReply }; } function parseReact(input) { const data = input .replace( /^react\s+/i, "" ) .trim(); const parts = data.split(" - "); if (parts.length < 2) { return null; } const question = parts.shift().trim(); const emoji = parts.join(" - ").trim(); if ( !question || !emoji ) { return null; } return { question, emoji }; } function isDuplicateMessage( event, query ) { const key = event.messageID || `${event.threadID}:${event.senderID}:${query}`; if ( processedMessages.has(key) ) { return true; } processedMessages.add(key); setTimeout( () => { processedMessages.delete(key); }, 15000 ); return false; } module.exports = { config: { name: "baby", aliases: [ "bby", "bot", "beby", "bbz", "jan", "বট", "maruf", "মারুফ" ], version: "11.0.0", author: "—͞𝐏ʀɪᴍᴇ́", countDown: 0, role: 0, description: { en: "An intelligent conversational Baby chatbot featuring dynamic responses, custom learning, and seamless AutoTeach capabilities." }, category: "chat", guide: { en: "{pn}\n" + "{pn} teach [Question] - [Reply]\n" + "{pn} list\n" + "{pn} autoteach\n" + "{pn} autoteach on\n" + "{pn} autoteach off\n" + "{pn} react [Question] - [Reply]\n" + "{pn} edit [Question] - [Old] - [New]\n" + "{pn} msg [Question]" } }, onStart: async function ({ api, event, args, usersData }) { const uid = event.senderID; const senderName = await getUserName( api, uid, usersData ); const input = args .join(" ") .trim(); const command = args[0] ?.toLowerCase(); try { if ( command === "autoteach" ) { if ( args[1] ?.toLowerCase() === "on" ) { const result = await apiGet( "/autoteach/on" ); return sendMessage( api, `━━━━━━━━━━━━━━━━━━━━━ 🧠✨ 𝑨𝒖𝒕𝒐𝑻𝒆𝒂𝒄𝒉 ✨🧠 🟢 𝑺𝒕𝒂𝒕𝒖𝒔 ⟶ 𝑶𝑵 💚 ${result.message || "AutoTeach চালু হয়েছে!"} ━━━━━━━━━━━━━━━━━━━━━`, event.threadID, event.messageID ); } if ( args[1] ?.toLowerCase() === "off" ) { const result = await apiGet( "/autoteach/off" ); return sendMessage( api, `━━━━━━━━━━━━━━━━━━━━━ 🧠✨ 𝑨𝒖𝒕𝒐𝑻𝒆𝒂𝒄𝒉 ✨🧠 🔴 𝑺𝒕𝒂𝒕𝒖𝒔 ⟶ 𝑶𝑭𝑭 ❤️ ${result.message || "AutoTeach বন্ধ হয়েছে!"} ━━━━━━━━━━━━━━━━━━━━━`, event.threadID, event.messageID ); } const result = await apiGet( "/autoteach/stats" ); return sendMessage( api, `━━━━━━━━━━━━━━━━━━━━━ 🧠✨ 𝑨𝒖𝒕𝒐𝑻𝒆𝒂𝒄𝒉 ✨🧠 ${result.status === "on" ? "🟢" : "🔴"} 𝑺𝒕𝒂𝒕𝒖𝒔 ⟶ ${ result.status === "on" ? "𝑶𝑵" : "𝑶𝑭𝑭" } 📅 𝑻𝒐𝒅𝒂𝒚 ⟶ ${result.today || 0} 💬 𝑻𝒐𝒅𝒂𝒚 𝑹𝒆𝒑𝒍𝒊𝒆𝒔 ⟶ ${result.todayReplies || 0} 📚 𝑻𝒐𝒕𝒂𝒍 𝑸𝒖𝒆𝒔𝒕𝒊𝒐𝒏𝒔 ⟶ ${result.total || 0} 💗 𝑻𝒐𝒕𝒂𝒍 𝑹𝒆𝒑𝒍𝒊𝒆𝒔 ⟶ ${result.totalReplies || 0} ━━━━━━━━━━━━━━━━━━━━━`, event.threadID, event.messageID ); } if ( command === "teach" ) { const data = parseTeach( input ); if (!data) { return sendMessage( api, `━━━━━━━━━━━━━━━━━━━━━ 🌸 𝑩𝒂𝒃𝒚 𝑻𝒆𝒂𝒄𝒉 🌸 🥺 প্রশ্ন আর উত্তরটা এভাবে দাও: 💗 baby teach প্রশ্ন - উত্তর ━━━━━━━━━━━━━━━━━━━━━`, event.threadID, event.messageID ); } const result = await apiGet( "/teach", { ask: data.question, ans: data.answer, senderID: uid, senderName } ); return sendMessage( api, `━━━━━━━━━━━━━━━━━━━━━ 🧸🌸 𝑻𝒆𝒂𝒄𝒉 🌸🧸 🌷 𝑸𝒖𝒆𝒔𝒕𝒊𝒐𝒏 ⟶ ${data.question} 💗 𝑹𝒆𝒑𝒍𝒚 ⟶ ${data.answer} ✨ ${result.message || "Baby নতুন কিছু শিখেছে!"} ━━━━━━━━━━━━━━━━━━━━━`, event.threadID, event.messageID ); } if ( command === "list" ) { const result = await apiGet( "/stats" ); const totalQuestions = Number( result.totalQuestions ?? result.total ?? result.questions ?? 0 ); const totalReplies = Number( result.totalReplies ?? result.replies ?? 0 ); return sendMessage( api, `━━━━━━━━━━━━━━━━━━━━━ 🧸✨ 𝑩𝒂𝒃𝒚 𝑳𝒊𝒔𝒕 ✨🧸 🌷 𝑄𝑢𝑒𝑠𝑡𝑖𝑜𝑛 ⟶ ${totalQuestions} 💗 𝑅𝑒𝑝𝑙𝑖𝑒𝑠 ⟶ ${totalReplies} 🐰 𝐴𝑢𝑡ℎ𝑜𝑟 ⟶ 𝑴𝒐𝒉𝒂𝒎𝒎𝒂𝒅 𝑴𝒂𝒓𝒖𝒇 ━━━━━━━━━━━━━━━━━━━━━`, event.threadID, event.messageID ); } if ( command === "msg" ) { const trigger = args .slice(1) .join(" ") .trim(); if (!trigger) { return sendMessage( api, `━━━━━━━━━━━━━━━━━━━━━ 🧸💭 𝑩𝒂𝒃𝒚 𝑴𝒔𝒈 💭🧸 🥺 কোন Question-এর reply দেখতে চাও? 🌷 baby msg [Question] ━━━━━━━━━━━━━━━━━━━━━`, event.threadID, event.messageID ); } const result = await apiGet( "/simsimi-list", { ask: trigger } ); if ( !result.success || !result.replies?.length ) { return sendMessage( api, `━━━━━━━━━━━━━━━━━━━━━ 🧸💭 𝑩𝒂𝒃𝒚 🥺 এই Question-এর কোনো reply পাওয়া যায়নি। ━━━━━━━━━━━━━━━━━━━━━`, event.threadID, event.messageID ); } let text = `━━━━━━━━━━━━━━━━━━━━━ 🧸💗 𝑹𝒆𝒑𝒍𝒊𝒆𝒔 💗🧸 🌷 𝑸𝒖𝒆𝒔𝒕𝒊𝒐𝒏 ⟶ ${trigger} 💬 𝑻𝒐𝒕𝒂𝒍 𝑹𝒆𝒑𝒍𝒊𝒆𝒔 ⟶ ${result.replies.length} `; result.replies.forEach( ( reply, index ) => { text += `💗 ${index + 1}. ${reply}\n`; } ); text += `━━━━━━━━━━━━━━━━━━━━━`; return sendMessage( api, text, event.threadID, event.messageID ); } if ( command === "react" ) { const data = parseReact( input ); if (!data) { return sendMessage( api, `━━━━━━━━━━━━━━━━━━━━━ 💗 𝑩𝒂𝒃𝒚 𝑹𝒆𝒂𝒄𝒕 💗 🥺 এভাবে লিখো: ❤️ baby react প্রশ্ন - emoji ━━━━━━━━━━━━━━━━━━━━━`, event.threadID, event.messageID ); } const result = await apiGet( "/teachReact", { ask: data.question, emoji: data.emoji, senderName } ); return sendMessage( api, `━━━━━━━━━━━━━━━━━━━━━ 💗✨ 𝑹𝒆𝒂𝒄𝒕 ✨💗 🌷 𝑸𝒖𝒆𝒔𝒕𝒊𝒐𝒏 ⟶ ${data.question} 💕 𝑹𝒆𝒂𝒄𝒕 ⟶ ${data.emoji} ✨ ${result.message || "Reaction শেখানো হয়েছে!"} ━━━━━━━━━━━━━━━━━━━━━`, event.threadID, event.messageID ); } if ( command === "edit" ) { const data = parseEdit( input ); if (!data) { return sendMessage( api, `━━━━━━━━━━━━━━━━━━━━━ ✏️ 𝑩𝒂𝒃𝒚 𝑬𝒅𝒊𝒕 🥺 এভাবে লিখো: ✏️ baby edit প্রশ্ন - পুরাতন - নতুন ━━━━━━━━━━━━━━━━━━━━━`, event.threadID, event.messageID ); } const result = await apiGet( "/edit", { ask: data.question, old: data.oldReply, new: data.newReply } ); return sendMessage( api, `━━━━━━━━━━━━━━━━━━━━━ ✏️✨ 𝑬𝒅𝒊𝒕 ✨✏️ 🌷 𝑸𝒖𝒆𝒔𝒕𝒊𝒐𝒏 ⟶ ${data.question} 📝 𝑵𝒆𝒘 𝑹𝒆𝒑𝒍𝒚 ⟶ ${data.newReply} ✨ ${result.message || "Reply আপডেট করা হয়েছে!"} ━━━━━━━━━━━━━━━━━━━━━`, event.threadID, event.messageID ); } if ( command === "help" ) { return sendMessage( api, `━━━━━━━━━━━━━━━━━━━━━ 🧸✨ 𝑩𝒂𝒃𝒚 𝑯𝒆𝒍𝒑 ✨🧸 💬 baby [তোমার কথা] 📚 baby teach প্রশ্ন - উত্তর 📋 baby list 💭 baby msg [Question] 🧠 baby autoteach 🟢 baby autoteach on 🔴 baby autoteach off 💗 baby react প্রশ্ন - emoji ✏️ baby edit প্রশ্ন - পুরাতন - নতুন 🌸 Baby তোমার সাথে কথা বলতে প্রস্তুত! ━━━━━━━━━━━━━━━━━━━━━`, event.threadID, event.messageID ); } if (!input) { const reply = getRandom( greetingReplies ); const info = await sendMessage( api, reply, event.threadID, event.messageID ); saveReply( info, event, "baby" ); return info; } return deliverResponse( api, event, input, senderName ); } catch (error) { console.error( "[BABY START]", error ); return sendMessage( api, `━━━━━━━━━━━━━━━━━━━━━ ⚠️ 𝑩𝒂𝒃𝒚 𝑬𝒓𝒓𝒐𝒓 🥺 একটু সমস্যা হয়েছে! 💭 ${errorMessage(error)} ━━━━━━━━━━━━━━━━━━━━━`, event.threadID, event.messageID ); } }, onReply: async function ({ api, event, Reply, usersData }) { if ( !Reply || Reply.commandName !== "baby" ) { return; } const text = event.body ?.trim(); if (!text) { return; } const senderName = await getUserName( api, event.senderID, usersData ); if ( Reply.question ) { try { const status = await apiGet( "/autoteach/status" ); if ( status.enabled ) { await apiGet( "/autoteach", { text: Reply.question, reply: text, senderID: event.senderID, senderName, threadID: event.threadID } ); } } catch (error) { console.error( "[BABY AUTOTEACH]", error.message ); } } try { return await deliverResponse( api, event, text, senderName ); } catch (error) { return sendMessage( api, `━━━━━━━━━━━━━━━━━━━━━ ⚠️ 𝑩𝒂𝒃𝒚 🥺 একটু সমস্যা হয়েছে! 💭 ${errorMessage(error)} ━━━━━━━━━━━━━━━━━━━━━`, event.threadID, event.messageID ); } } }; async function deliverResponse( api, event, query, senderName ) { if ( isDuplicateMessage( event, query ) ) { return; } await sendTyping( api, event.threadID, true ); try { const result = await apiGet( "/simsimi", { text: query, senderName, senderID: event.senderID, threadID: event.threadID } ); if ( result.success && result.found && result.response ) { const info = await sendMessage( api, result.response, event.threadID, event.messageID ); saveReply( info, event, "baby", query ); return info; } const fallback = getRandom( fallbackReplies ); return sendMessage( api, fallback, event.threadID, event.messageID ); } finally { await sendTyping( api, event.threadID, false ); } }