Botpack / modules /commands /pending.js
Jonell01's picture
Upload 64 files
2821330 verified
module.exports.config = {
name: "pending",
version: "1.0.5",
credits: "Mirai Team",
hasPermssion: 2,
description: "pending [list]",
usePrefix: false,
hide: true,
commandCategory: "system",
cooldowns: 5
};
module.exports.languages = {
"vi": {
"invaildNumber": "%1 không phải là một con số hợp lệ",
"cancelSuccess": "Đã từ chối thành công %1 nhóm!",
"notiBox": "Box của bạn đã được admin phê duyệt để có thể sử dụng bot",
"approveSuccess": "Đã phê duyệt thành công %1 nhóm!",
"cantGetPendingList": "Không thể lấy danh sách các nhóm đang chờ!",
"returnListPending": "「PENDING」❮ Tổng số nhóm cần duyệt: %1 nhóm ❯\n\n%2",
"returnListClean": "「PENDING」Hiện tại không có nhóm nào trong hàng chờ"
},
"en": {
"invaildNumber": "%1 is not an invalid number",
"cancelSuccess": "Refused %1 thread!",
"notiBox": "Your box has been approved to use bot",
"approveSuccess": "Approved successfully %1 threads!",
"cantGetPendingList": "Can't get the pending list!",
"returnListPending": "»「PENDING」«❮ The whole number of threads to approve is: %1 thread ❯\n\n%2",
"returnListClean": "「PENDING」There is no thread in the pending list"
}
}
module.exports.handleReply = async function({ api, event, handleReply, getText }) {
if (String(event.senderID) !== String(handleReply.author)) return;
const { body, threadID, messageID } = event;
var count = 0;
if (isNaN(body) && body.indexOf("c") == 0 || body.indexOf("cancel") == 0) {
const index = (body.slice(1, body.length)).split(/\s+/);
for (const singleIndex of index) {
console.log(singleIndex);
if (isNaN(singleIndex) || singleIndex <= 0 || singleIndex > handleReply.pending.length) return api.sendMessage(getText("invaildNumber", singleIndex), threadID, messageID);
api.removeUserFromGroup(api.getCurrentUserID(), handleReply.pending[singleIndex - 1].threadID);
count+=1;
}
return api.sendMessage(getText("cancelSuccess", count), threadID, messageID);
}
else {
const index = body.split(/\s+/);
for (const singleIndex of index) {
if (isNaN(singleIndex) || singleIndex <= 0 || singleIndex > handleReply.pending.length) return api.sendMessage(getText("invaildNumber", singleIndex), threadID, messageID);
api.sendMessage(getText("notiBox"), handleReply.pending[singleIndex - 1].threadID);
count+=1;
}
return api.sendMessage(getText("approveSuccess", count), threadID, messageID);
}
}
module.exports.run = async function({ api, event, getText }) {
const { threadID, messageID } = event;
const commandName = this.config.name;
var msg = "", index = 1;
try {
var spam = await api.getThreadList(100, null, ["OTHER"]) || [];
var pending = await api.getThreadList(100, null, ["PENDING"]) || [];
} catch (e) { return api.sendMessage(getText("cantGetPendingList"), threadID, messageID) }
const list = [...spam, ...pending].filter(group => group.isSubscribed && group.isGroup);
for (const single of list) msg += `${index++}/ ${single.name}(${single.threadID})\n`;
if (list.length != 0) return api.sendMessage(getText("returnListPending", list.length, msg), threadID, (error, info) => {
global.client.handleReply.push({
name: commandName,
messageID: info.messageID,
author: event.senderID,
pending: list
})
}, messageID);
else return api.sendMessage(getText("returnListClean"), threadID, messageID);
}