Есть ли какой то метод который бы мог взять из этого
бан @durov 1 день
тест тестович
Только то что снизу, а точнее <тест тестович> и записать ее в переменную?
Был какой то toLowerText в js но я не знаю как его использовать, можно ли как то превратить вот это все, всю расшифровку в функцию, и еще при этом проверять есть ли нижняя строка (Возвращает true или false), если нету то брать уже просто без причины.
Код который мне ответели:
let str = `бан @durov 1 день
тест тестович`;
let arr = str.split( "\n", 2 );
console.log(arr);
Скрипт переделал под команду.
Код всей команды:
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 Если ошибка повторяется обратитесь к создателю`)
}
})
Вот что выдает команада:
⚠ Ошибка! Не правильное использование команды! Пример: Ban @durov 1 день Лучший человек
Код который выдает эту ошибку:
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 день Лучший человек`)
}