setTimeout(() => {
UnBan(id, chatid)
message.send(`✅ У [id${id}|пользователя] был снят бан. Пригласите его обратно в беседу для общения`)
}, delayToMilSeconds);
const delay = `${res1}`
const delayToMilSeconds = delay * 1000
const res1 = convertToSeconds(timeValue, timeUnit)
function convertToSeconds(timeValue, timeUnit) {
switch (timeUnit) {
case 'месяц':
return timeValue * 30 * 24 * 60 * 60;
case 'месяца':
return timeValue * 30 * 24 * 60 * 60;
case 'месяцев':
return timeValue * 30 * 24 * 60 * 60;
case 'год':
return timeValue * 365 * 24 * 60 * 60;
case 'неделя':
return timeValue * 7 * 24 * 60 * 60;
case 'неделю':
return timeValue * 7 * 24 * 60 * 60;
case 'недели':
return timeValue * 7 * 24 * 60 * 60;
case 'недель':
return timeValue * 7 * 24 * 60 * 60;
case 'день':
return timeValue * 24 * 60 * 60;
case 'дня':
return timeValue * 24 * 60 * 60;
case 'дней':
return timeValue * 24 * 60 * 60;
case 'час':
return timeValue * 60 * 60;
case 'часа':
return timeValue * 60 * 60;
case 'минута':
return timeValue * 60;
case 'минуты':
return timeValue * 60;
case 'минут':
return timeValue * 60;
default:
return 0;
}
}
async function UnBan(id, chatid) {
await mongo.models.chatsusers.updateOne({ vkid: Number(id), join_chat: Number(chatid), banned: String(true) }, { $set: { banned: false, bannedTime: "None", bannedReason: "None" } })
}
bot.hear(/^(?:Бан|ban|забань|бан)\s([^]+)\s([^]+)\s([^]+)$/i, async (message) => {
try {
let _chatsusers = await mongo.models.chatsusers.findOne({vkid: Number(message.senderId), join_chat: Number(message.chatId)})
if(_chatsusers.rank < "3") return message.send(`⚠ Ошибка! Недостаточно прав`)
if(message.$match[3] !== "день" && message.$match[3] !== "минута" && message.$match[3] !== "минут" && message.$match[3] !== "месяц" && message.$match[3] !== "год" && message.$match[3] !== "неделя" && message.$match[3] !== "недели" && message.$match[3] !== "час" && message.$match[3] !== "часа"){
return message.send(`⚠ Ошибка! Не правильное использование команды! Пример: Ban @durov 1 день Лучший человек`)
}
let uid = `${message.$match[1]}`
const rrr = uid.includes('@')
if(rrr == true){
let rud = message.$match[1].split('|')[1]
let rud1 = rud.replace("@", "")
let rud2 = rud1.replace("]", "")
let res = await vk.api.utils.resolveScreenName({ screen_name: rud2 })
const id = res.object_id
let chatus = await mongo.models.chatsusers.findOne({vkid: Number(id), join_chat: Number(message.chatId)})
if(chatus.rank >= _chatsusers.rank) return message.send(`⚠ Ошибка! Пользователь выше или равен вашему рангу`)
if(chatus.banned == "true") return message.send(`⚠ Ошибка! [id${id}|Пользователь] уже забанен до ${chatus.bannedTime} \n Причина: ${chatus.bannedReason} `)
vk.api.messages.removeChatUser({ chat_id: message.chatId, member_id: id, user_id: id })
let reason = message.text
let arr = reason.split( "\n", 2 );
let reasonReal = arr[1]
let timeValue = message.$match[2]
let timeUnit = message.$match[3]
const res1 = convertToSeconds(timeValue, timeUnit)
const res2 = secondsToDate(res1)
const res3 = formatDate(res2)
const delay = `${res1}`
const delayToMilSeconds = delay * 1000
const chatid = message.chatId
await mongo.models.chatsusers.updateOne({ vkid: Number(id), join_chat: Number(message.chatId), banned: String(false) }, { $set: { banned: true, bannedTime: res3, bannedReason: String(reasonReal) } })
setTimeout(() => {
UnBan(id, chatid)
}, delayToMilSeconds);
console.log(reasonReal)
return message.send(`⛔ [id${id}|Пользователь] был забанен на [${message.$match[2]} ${message.$match[3]}].\n Причина: ${reasonReal}`)
}
} catch (e) {
console.error(e);
return message.send(`⚠ Ошибка! Что то пошло не так!\n Если ошибка повторяется обратитесь к создателю`)
}
})
const delay = `${res1}`
const delayToMilSeconds = delay * 1000
Filtred: [id1|id1],[id2|id2],[id3|id3]
Filtred: id1 id1, id2 id2, id3 id3
const input = message.$match[1];
const idsArr = input
.trim()
.split('/')
.map(s => s.trim().replace('@', ''))
.map(s => s.trim().replace('[', ''))
.map(s => s.trim().replace(']', ''))
.map(s => s.trim().replace('|', ' '));
const idsString = idsArr.join(', ');
console.log(`Filtred: ${idsString}`)