Answer the question
In order to leave comments, you need to log in
How to abort a request in mongoose?
I have a telegram bot through which I can communicate with users from the mongoose database, a connection with the user occurs if I first enter his chat.id, but I can’t terminate the connection, how to implement this?
bot.on('message', msg => {
//chatId который пишет боту
const chatId = msg.chat.id
// мой chatId
const myId = 1396346856
if(chatId === myId ){
/*если сообщение которое я ввел равно chatId пользователя из базы данных, то следующие сообщения будут отправляться этому пользователю*/
Person
.findOne({chat : msg.text })
.then(person => {
let userId = msg.text
bot.sendMessage(chatId, 'Соединение установлено')
bot.on('message', msg => {
bot.sendMessage(userId, msg.text)
})
})
.catch()
}
// если это чат пользователя то его сообщения отправляются в мой чат с ботом
else{
bot.sendMessage(matId,msg.text)
}
})
Answer the question
In order to leave comments, you need to log in
// мой chatId (я админ)
const myId = 1396346856;
// chatId собеседника
let currentInterlocutorId;
bot.on('message', msg => {
//chatId который пишет боту
const chatId = msg.chat.id
// если сообщение от меня (хозяина бота)
if (chatId === myId) {
// не будем мучать БД при каждом моем сообщении поэтому сначала проверим, похоже ли то что я написал на ID пользователя
if (/^\d+$/.test(msg.text)) {
/*если сообщение которое я ввел равно chatId пользователя из базы данных, то следующие сообщения будут отправляться этому пользователю*/
Person
.findOne({ chat: msg.text })
.then(person => {
currentInterlocutorId = msg.text;
bot.sendMessage(mayId, 'Соединение установлено')
})
.catch()
}
// если я (хозяина бота) ввел "stop" общение прекращаем
if (msg.text === "stop") {
bot.sendMessage(mayId, 'Соединение разорвано');
bot.sendMessage(currentInterlocutorId, 'Я от тебя устал, не пиши мне больше!!!');
currentInterlocutorId = undefined;
}
}
// если собеседник был выбран
if (currentInterlocutorId) {
// если пишу я
if (chatId === myId) {
bot.sendMessage(currentInterlocutorId, msg.text)
}
// если выбранный собеседник пишет мне
else if (chatId === currentInterlocutorId) {
bot.sendMessage(mayId, msg.text)
}
}
})
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question