goat
command
baby
api by dipto || aryan
0
views
0
likes
0
installs
Aliases: bby
raw source
const axios = require('axios');
const PRIMARY_API = "https://noobs-api.top/dipto";
const SECONDARY_API = "https://baby-apisx.vercel.app";
function looksLikeErrorPayload(raw) {
if (!raw || typeof raw !== "object") return true;
if (raw.error) return true;
const text = `${raw.reply ?? ""} ${raw.message ?? ""}`;
return /cannot read propert|undefined|is not a function|internal server error|^error:/i.test(text);
}
function normalize(raw) {
return {
...raw,
reply: raw.reply ?? "🤔 I couldn't come up with a reply.",
message: raw.message ?? "✅ Done (the API didn't send a confirmation message)."
};
}
async function fetchWithFallback(path) {
let primaryError;
try {
const res = await axios.get(`${PRIMARY_API}${path}`, { timeout: 10000 });
if (res.data && typeof res.data === "object" && !looksLikeErrorPayload(res.data)) return normalize(res.data);
primaryError = new Error(`Primary API returned a bad payload: ${JSON.stringify(res.data)}`);
} catch (e) {
primaryError = e;
}
try {
const res = await axios.get(`${SECONDARY_API}${path}`, { timeout: 10000 });
if (res.data && typeof res.data === "object" && !looksLikeErrorPayload(res.data)) return normalize(res.data);
throw new Error(`Secondary API returned a bad payload: ${JSON.stringify(res.data)}`);
} catch (e) {
console.log("baby: primary failed ->", primaryError?.message);
console.log("baby: secondary failed ->", e.message);
throw new Error("Both baby APIs are currently unavailable. Please try again later.");
}
}
const utils = {
monospace: (text) => {
if (typeof text !== "string" || !text) return text ?? "🤔 No reply received.";
const monospaceMap = {
'A': '𝗔', 'B': '𝗕', 'C': '𝗖', 'D': '𝗗', 'E': '𝗘', 'F': '𝗙', 'G': '𝗚', 'H': '𝗛', 'I': '𝗜', 'J': '𝗝',
'K': '𝗞', 'L': '𝗟', 'M': '𝗠', 'N': '𝗡', 'O': '𝗢', 'P': '𝗣', 'Q': '𝗤', 'R': '𝗥', 'S': '𝗦', 'T': '𝗧',
'U': '𝗨', 'V': '𝗩', 'W': '𝗪', 'X': '𝗫', 'Y': '𝗬', 'Z': '𝗭',
'a': '𝗮', 'b': '𝗯', 'c': '𝗰', 'd': '𝗱', 'e': '𝗲', 'f': '𝗳', 'g': '𝗴', 'h': '𝗵', 'i': '𝗶', 'j': '𝗷',
'k': '𝗸', 'l': '𝗹', 'm': '𝗺', 'n': '𝗻', 'o': '𝗼', 'p': '𝗽', 'q': '𝗾', 'r': '𝗿', 's': '𝘀', 't': '𝘁',
'u': '𝘂', 'v': '𝘃', 'w': '𝘄', 'x': '𝘅', 'y': '𝘆', 'z': '𝘇',
'0': '𝟶', '1': '𝟭', '2': '𝟮', '3': '𝟯', '4': '𝟰', '5': '𝟱', '6': '𝟲', '7': '𝟳', '8': '𝟴', '9': '𝟵'
};
return text.split('').map(char => monospaceMap[char] || char).join('');
},
realMention: (name, uid, message) => {
const finalMessage = `『 ${name} 』\n\n${message}`;
return { body: finalMessage, mentions: [{ tag: name, id: uid }] };
}
};
const triggers = ["baby", "bby", "bot", "jan", "babu", "janu", "suna", "sara", "mikasa", "hinata", "xadika", "alya"];
async function sendAttachmentReply(api, event) {
const attType = event.attachments?.[0]?.type;
let endpoint = null;
if (attType === "sticker") endpoint = "sticker";
else if (attType === "photo" || attType === "animated_image") endpoint = "picture";
if (!endpoint) return false;
const raw = (await axios.get(`${SECONDARY_API}/baby/${endpoint}?senderID=${event.senderID}`, { timeout: 10000 })).data;
if (looksLikeErrorPayload(raw)) return false;
const data = normalize(raw);
await api.sendMessage(data.reply, event.threadID, (error, info) => {
global.GoatBot.onReply.set(info.messageID, {
commandName: "baby",
type: "reply",
messageID: info.messageID,
author: event.senderID
});
}, event.messageID);
return true;
}
module.exports.config = {
name: "baby",
aliases: ["bby"],
version: "11.1",
author: "xalman",
countDown: 0,
role: 0,
description: "api by dipto || aryan",
category: "CHATTING",
guide: {
en: "{pn} [anyMessage] OR\nteach [YourMessage] - [Reply1], [Reply2], [Reply3]... OR\nteach react [YourMessage] - [react1], [react2]... OR\nteach amar [YourMessage] - [reply] OR\nteach sticker - [Reply1], [Reply2]... OR\nteach picture - [Reply1], [Reply2]... OR\nremove [YourMessage] OR\nrm [YourMessage] - [indexNumber] OR\nedit [YourMessage] - [NewReply] OR\nmsg [YourMessage] OR\nlist OR\nlist all"
}
};
module.exports.onStart = async ({ api, event, args, usersData }) => {
const body = args.join(" ").toLowerCase();
const uid = event.senderID;
try {
if (!args[0]) {
if (event.attachments?.length > 0) {
const handled = await sendAttachmentReply(api, event);
if (handled) return;
}
const ran = [""];
return api.sendMessage(ran[Math.floor(Math.random() * ran.length)], event.threadID, event.messageID);
}
if (args[0] === 'remove') {
const key = body.replace("remove ", "");
const data = await fetchWithFallback(`/baby?remove=${encodeURIComponent(key)}&senderID=${uid}`);
return api.sendMessage(data.message, event.threadID, event.messageID);
}
if (args[0] === 'rm' && body.includes('-')) {
const [key, index] = body.replace("rm ", "").split(/\s*-\s*/);
const data = await fetchWithFallback(`/baby?remove=${encodeURIComponent(key)}&index=${index}`);
return api.sendMessage(data.message, event.threadID, event.messageID);
}
if (args[0] === 'list') {
if (args[1] === 'all') {
const data = await fetchWithFallback(`/baby?list=all`);
const limit = parseInt(args[2]) || 100;
const limited = data?.teacher?.teacherList?.slice(0, limit) || [];
const teachers = await Promise.all(limited.map(async (item) => {
const number = Object.keys(item)[0];
const value = item[number];
const name = await usersData.getName(number).catch(() => number) || "Not found";
return { name, value };
}));
teachers.sort((a, b) => b.value - a.value);
const output = teachers.map((t, i) => `${i + 1}/ ${t.name}: ${t.value}`).join('\n');
return api.sendMessage(`Total Teach = ${data.length}\n👑 | List of Teachers of baby\n${output}`, event.threadID, event.messageID);
}
const data = await fetchWithFallback(`/baby?list=all`);
return api.sendMessage(`❇️ | Total Teach = ${data.length || "api off"}\n♻️ | Total Response = ${data.responseLength || "api off"}`, event.threadID, event.messageID);
}
if (args[0] === 'msg') {
const key = body.replace("msg ", "");
const data = await fetchWithFallback(`/baby?list=${encodeURIComponent(key)}`);
return api.sendMessage(`Message ${key} = ${data.data}`, event.threadID, event.messageID);
}
if (args[0] === 'edit') {
const parts = body.replace("edit ", "").split(/\s*-\s*/);
if (parts.length < 2)
return api.sendMessage('❌ | Invalid format! Use: edit [YourMessage] - [NewReply]', event.threadID, event.messageID);
const data = await fetchWithFallback(`/baby?edit=${encodeURIComponent(parts[0])}&replace=${encodeURIComponent(parts[1])}&senderID=${uid}`);
return api.sendMessage(`changed ${data.message}`, event.threadID, event.messageID);
}
if (args[0] === 'teach' && args[1] === 'sticker') {
const reply = body.replace("teach sticker ", "").replace(/^-\s*/, "").trim();
if (!reply) return api.sendMessage('❌ | Invalid format! Use: teach sticker - [Reply1], [Reply2]...', event.threadID, event.messageID);
const data = normalize((await axios.get(`${SECONDARY_API}/baby/sticker?teach=1&reply=${encodeURIComponent(reply)}&senderID=${uid}`, { timeout: 10000 })).data || {});
return api.sendMessage(`✅ ${data.message}`, event.threadID, event.messageID);
}
if (args[0] === 'teach' && args[1] === 'picture') {
const reply = body.replace("teach picture ", "").replace(/^-\s*/, "").trim();
if (!reply) return api.sendMessage('❌ | Invalid format! Use: teach picture - [Reply1], [Reply2]...', event.threadID, event.messageID);
const data = normalize((await axios.get(`${SECONDARY_API}/baby/picture?teach=1&reply=${encodeURIComponent(reply)}&senderID=${uid}`, { timeout: 10000 })).data || {});
return api.sendMessage(`✅ ${data.message}`, event.threadID, event.messageID);
}
if (args[0] === 'teach' && args[1] === 'react') {
const parts = body.replace("teach react ", "").split(/\s*-\s*/);
if (parts.length < 2)
return api.sendMessage('❌ | Invalid format! Use: teach react [YourMessage] - ❤️, 😀', event.threadID, event.messageID);
const data = await fetchWithFallback(`/baby?teach=${encodeURIComponent(parts[0])}&react=${encodeURIComponent(parts[1])}`);
return api.sendMessage(`✅ Reacts added: ${data.message}`, event.threadID, event.messageID);
}
if (args[0] === 'teach' && args[1] === 'amar') {
const parts = body.replace("teach amar ", "").split(/\s*-\s*/);
if (parts.length < 2)
return api.sendMessage('❌ | Invalid format! Use: teach amar [YourMessage] - [reply]', event.threadID, event.messageID);
const data = await fetchWithFallback(`/baby?teach=${encodeURIComponent(parts[0])}&senderID=${uid}&reply=${encodeURIComponent(parts[1])}&key=intro`);
return api.sendMessage(`✅ Intro reply added: ${data.message}`, event.threadID, event.messageID);
}
if (args[0] === 'teach') {
const parts = body.replace("teach ", "").split(/\s*-\s*/);
if (parts.length < 2 || parts[1].length < 2)
return api.sendMessage('❌ | Invalid format! Use: teach [YourMessage] - [Reply1], [Reply2]', event.threadID, event.messageID);
const data = await fetchWithFallback(`/baby?teach=${encodeURIComponent(parts[0])}&reply=${encodeURIComponent(parts[1])}&senderID=${uid}&threadID=${event.threadID}`);
let teacherName = "Unknown";
try {
teacherName = (await usersData.get(data.teacher || uid))?.name || await usersData.getName(uid) || "Unknown";
} catch {
teacherName = await usersData.getName(uid).catch(() => "Unknown");
}
const outputMessage = utils.monospace(`✅ Replies added: ${data.message}\n👤 Teacher: ${teacherName}\n📚 Total Teachs: ${data.teachs}`);
return api.sendMessage(outputMessage, event.threadID, event.messageID);
}
if (["amar name ki", "amr nam ki", "amar nam ki", "amr name ki", "whats my name"].some(p => body.includes(p))) {
const data = await fetchWithFallback(`/baby?text=amar name ki&senderID=${uid}&key=intro`);
return api.sendMessage(data.reply, event.threadID, event.messageID);
}
const data = await fetchWithFallback(`/baby?text=${encodeURIComponent(body)}&senderID=${uid}&threadID=${event.threadID}&font=1`);
const replyText = utils.monospace(data.reply);
api.sendMessage(replyText, event.threadID, (error, info) => {
global.GoatBot.onReply.set(info.messageID, {
commandName: "baby",
type: "reply",
messageID: info.messageID,
author: event.senderID
});
}, event.messageID);
} catch (e) {
console.log(e);
api.sendMessage("Check console for error", event.threadID, event.messageID);
}
};
module.exports.onReply = async ({ api, event }) => {
try {
if (event.type !== "message_reply") return;
if (event.attachments?.length > 0) {
const handled = await sendAttachmentReply(api, event);
if (handled) return;
}
const data = await fetchWithFallback(`/baby?text=${encodeURIComponent(event.body?.toLowerCase() || "")}&senderID=${event.senderID}&threadID=${event.threadID}&font=1`);
const replyText = utils.monospace(data.reply);
await api.sendMessage(replyText, event.threadID, (error, info) => {
global.GoatBot.onReply.set(info.messageID, {
commandName: "baby",
type: "reply",
messageID: info.messageID,
author: event.senderID
});
}, event.messageID);
} catch (err) {
return api.sendMessage(`Error: ${err.message}`, event.threadID, event.messageID);
}
};
module.exports.onChat = async ({ api, event, usersData }) => {
try {
const body = event.body ? event.body.toLowerCase() : "";
const hasTrigger = triggers.some(t => body.startsWith(t));
if (!hasTrigger) return;
if (event.attachments?.length > 0) {
const handled = await sendAttachmentReply(api, event);
if (handled) return;
}
const arr = body.replace(/^\S+\s*/, "");
const uid = event.senderID;
const senderName = (await usersData.getName(uid)) || "User";
if (!arr) {
const baseReplies = [
"তোর তো বিয়ে হয় নাই বেবি পাইলি কই-🤦🏻", "পরকিয়া করছোছ নাকি শালা-🥲🤧", "তোকে ছাড়া বড় মন খারাপ লাগে 💔", "তোরে খুব মিস করছি জানিস? 🥺", "আপনার যদি পার্সোনাল বেবি না থাকে তাহলে আমার বসের সাথে প্রেম করুন🌚",
"ডিসটার্ব করিস না জামাই আদর করতেছে-🌚💋", "এত ডাকিস না এমন থাপ্পর দিমু পেন্টে মুইতা দিবি-😾👋🏻", "বেবি ডাকিস না 🍼 খাওয়া-😒👍🏻", "আমার এডমিনের সাথে প্রেম করলে দশ টাকা দিমু🌚", "এভাবে ডাকার কি আছে কি বলবা বলো🙈",
"কি ডাকোস কেন টাকা শেষ নাকি-🌚🤌🏻", "পিনিক ধরেছে যখন বটকে না ডেকে লেবু খান তখন🍋🐸", "ভিডিও কল দিব নাকি সোনা 🌚🫦", "আম্মু ডাক শালা 😾🦶🏻", "উষ্টা খাইতে না চাইলে সামনে থেকে সর তোদের বস আসছে😡🙈",
"বেবি না ডাইকা আমার এডমিনকে গার্লফ্রেন্ড খুজে দে-🙃🫶🏻", "ডাকিস না তারেক জিয়ার সাথে মিটিংয়ে আছি 😒🖐🏻", "বস ডাক বস😾✌🏻", "বেবি ডাকিস না পরে কোলে উঠে অন্য কিছু খেতে মন চাইবে🌚💋"
];
const mentionObj = utils.realMention(senderName, uid, baseReplies[Math.floor(Math.random() * baseReplies.length)]);
return await api.sendMessage(mentionObj, event.threadID, (error, info) => {
if (info) {
global.GoatBot.onReply.set(info.messageID, {
commandName: "baby",
type: "reply",
messageID: info.messageID,
author: event.senderID
});
}
}, event.messageID);
}
const data = await fetchWithFallback(`/baby?text=${encodeURIComponent(arr)}&senderID=${uid}&threadID=${event.threadID}&font=1`);
const replyText = utils.monospace(data.reply);
await api.sendMessage(replyText, event.threadID, (error, info) => {
global.GoatBot.onReply.set(info.messageID, {
commandName: "baby",
type: "reply",
messageID: info.messageID,
author: event.senderID
});
}, event.messageID);
} catch (err) {
console.error("onChat Error:", err);
}
};