goat
command
pending
Manage bot
0
views
0
likes
0
installs
raw source
"use strict";
module.exports = {
config: {
name: "pending",
version: "1.0.0",
author: "๐๐๐ซ๐ฎ๐
",
aliases: [],
role: 2,
shortDescription: "Manage bot's pending groups",
longDescription: "Approve or cancel groups waiting for bot approval",
category: "owner",
countDown: 10
},
languages: {
en: {
invaildNumber: "โ %1 is not a valid number",
cancelSuccess: "โญโโโโโโโโโโโโโโโฎ\n โ CANCELLED\nโฐโโโโโโโโโโโโโโโฏ\n\n๐๏ธ %1 thread(s) cancelled successfully.",
approveSuccess: "โญโโโโโโโโโโโโโโโฎ\n โ
APPROVED\nโฐโโโโโโโโโโโโโโโฏ\n\n๐ %1 thread(s) approved successfully.",
cantGetPendingList: "โญโโโโโโโโโโโโโโโฎ\n โ ๏ธ ERROR\nโฐโโโโโโโโโโโโโโโฏ\n\nUnable to fetch the pending group list.",
returnListClean: "โญโโโโโโโโโโโโโโโฎ\n ๐ญ EMPTY\nโฐโโโโโโโโโโโโโโโฏ\n\nNo pending groups found."
}
},
_getText(key, ...args) {
const text = this.languages.en[key] || key;
return args.length
? text.replace("%1", args[0]).replace("%2", args[1] || "")
: text;
},
onStart: async function ({ api, event }) {
const { threadID, messageID, senderID } = event;
let pendingList = [];
try {
const other = await api.getThreadList(100, null, ["OTHER"]);
const pending = await api.getThreadList(100, null, ["PENDING"]);
pendingList = [...other, ...pending].filter(
g => g.isGroup && g.isSubscribed
);
} catch {
return api.sendMessage(
this._getText("cantGetPendingList"),
threadID,
messageID
);
}
if (!pendingList.length) {
return api.sendMessage(
this._getText("returnListClean"),
threadID,
messageID
);
}
const prefix = global.GoatBot?.config?.prefix || "!";
let msg = "";
pendingList.forEach((g, i) => {
msg +=
`โญโใ ${i + 1} ใ\n` +
`โ ๐ฅ ${g.name}\n` +
`โ ๐ ${g.threadID}\n` +
`โฐโโโโโโโโโโโโโโ\n\n`;
});
const finalMsg =
`โญโโโโโโโโโโโโโโโโโโโโโฎ
๐ PENDING GROUPS
โฐโโโโโโโโโโโโโโโโโโโโโฏ
๐ Total Pending: ${pendingList.length}
โโโโโโโโโโโโโโโโโโโโโโ
${msg}โโโโโโโโโโโโโโโโโโโโโโ
๐ ๏ธ ACTIONS
โ
Approve:
${prefix}pending 1 2 3
โ Cancel:
${prefix}pending c 1 2 3
๐ก Reply to this message with your choice.
โโโโโโโโโโโโโโโโโโโโโโ`;
return api.sendMessage(
finalMsg,
threadID,
(err, info) => {
global.GoatBot.onReply.set(info.messageID, {
commandName: this.config.name,
author: senderID,
pending: pendingList
});
},
messageID
);
},
onReply: async function ({ event, Reply, api }) {
const { author, pending } = Reply;
if (String(event.senderID) !== String(author)) return;
const input = event.body.trim().toLowerCase().split(/\s+/);
const botID = api.getCurrentUserID();
const prefix = global.GoatBot?.config?.prefix || "!";
let count = 0;
if (input[0] === "c" || input[0] === "cancel") {
for (let i = 1; i < input.length; i++) {
const idx = parseInt(input[i]);
if (isNaN(idx) || idx <= 0 || idx > pending.length) {
return api.sendMessage(
this._getText("invaildNumber", input[i]),
event.threadID
);
}
await api.removeUserFromGroup(
botID,
pending[idx - 1].threadID
);
count++;
}
return api.sendMessage(
this._getText("cancelSuccess", count),
event.threadID
);
}
for (const v of input) {
const idx = parseInt(v);
if (isNaN(idx) || idx <= 0 || idx > pending.length) {
return api.sendMessage(
this._getText("invaildNumber", v),
event.threadID
);
}
const tID = pending[idx - 1].threadID;
await api.sendMessage(
`โญโโโโโโโโโโโโโโโโโโโโโฎ
๐ BOT ACTIVATED
โฐโโโโโโโโโโโโโโโโโโโโโฏ
๐ Hello everyone!
๐ค I have been approved and
I'm now active in this group.
โญโใ โ๏ธ BOT INFO ใ
โ
โ ๐ฐ Prefix : ${prefix}
โ ๐ Help : ${prefix}help
โ ๐ Status : ONLINE
โ
โฐโโโโโโโโโโโโโโโโโโโโ
๐ซ Thanks for adding me!
๐ค I'm ready to assist you.
โญโโโโโโโโโโโโโโโโโโโโโฎ
๐๐๐๐ฎ๐
'๐ฌ ๐๐จ๐ ๐ซ๐ชฝ
โฐโโโโโโโโโโโโโโโโโโโโโฏ`,
tID
);
const nickNameBot = global.GoatBot?.config?.nickNameBot;
if (nickNameBot) {
await api.changeNickname(
nickNameBot,
tID,
botID
);
}
count++;
}
return api.sendMessage(
this._getText("approveSuccess", count),
event.threadID
);
}
};