Здравствуйте! Пишу бота телеграм на node.js, api - 'node-telegram-bot-api'. Бот делает опрос и отправляет результаты ответа администратору, когда голосует одновременно два пользователя, ответ первого присваивается второму. Искал решение, не как не мог найти. Можете подсказать как решить проблему?
const TelegramApi = require('node-telegram-bot-api')
const AdminChatId = ''
const token = '' //токен telegram
const bot = new TelegramApi(token, {polling: true})
const chats = {}
const startOptions = {
reply_markup: JSON.stringify({
inline_keyboard: [
[{text: 'Пройти опрос', callback_data: '/first'}],
]
})
}
const One = {
reply_markup: JSON.stringify({
inline_keyboard: [
[{text: 'Геленджик', callback_data: '/one1'}],
[{text: 'Крым', callback_data: '/one2'}],
[{text: 'Сочи', callback_data: '/one3'}],
]
})
}
const Two = {
reply_markup: JSON.stringify({
inline_keyboard: [
[{text: 'Галька', callback_data: '/two1'}],
[{text: 'Песок', callback_data: '/two2'}],
]
})
}
const Three = {
reply_markup: JSON.stringify({
inline_keyboard: [
[{text: '50.000руб', callback_data: '/three1'}],
[{text: '100.000руб', callback_data: '/three2'}],
[{text: '150.000руб', callback_data: '/three3'}],
[{text: '200.000руб', callback_data: '/three4'}],
]
})
}
const start = async () => {
bot.setMyCommands ([ // Меню предложенное пользователю
{command:'/start', description: 'Начальное приветствие'},
])
bot.on('message', async msg => {
const text =msg.text;
const chatId = msg.chat.id;
try { // Делаем в try что бы ошибка выводилась в консоль
if(text === "/start") {
//await UserModel.create({chatId})
return bot.sendMessage(chatId, `${msg.from.username}, Добро пожаловать в телеграмм бота! Здесь вы можете пройти опрос!`, startOptions)
}
return bot.sendMessage(chatId, 'Я тебя не понимаю попробуй еще раз!)') // Сообщение если написана команда которой нет в коде
} catch (e) { // Вывод ошибки в консоль
return bot.sendMessage(chatId, 'Произошла какая, то ошибочка!')
}
})
let ot1
let ot4
let ot6
let ot7
bot.on('callback_query', async msg => {
const data = msg.data; // Получаем цифру
const chatId = msg.message.chat.id;
if(data === '/first') {
await bot.sendMessage(chatId, `Первый вопрос! Куда бы вы хотели съездить этим летом на отдых?`, One);
}
if(data === '/one1') {
await bot.sendMessage(chatId, `Второй вопрос! Какой пляж вам больше нравится?`, Two);
ot1 = 'Геленджик'
// let one1 = await bot.sendMessage(AdminChatId, `Геленджик`);
}
if(data === '/one2') {
await bot.sendMessage(chatId, `Второй вопрос! Какой пляж вам больше нравится?`, Two);
ot1= 'Крым'
// let one2 = await bot.sendMessage(AdminChatId, `Крым`);
}
if(data === '/one3') {
await bot.sendMessage(chatId, `Второй вопрос! Какой пляж вам больше нравится?`, Two);
ot1= 'Сочи'
// let one3 = await bot.sendMessage(AdminChatId, `Сочи`);
}
if(data === '/two1') {
await bot.sendMessage(chatId, `Третий вопрос! Кокой бюджет у вас на путешествие?`, Three);
ot4 = 'Галька'
// let two1 = await bot.sendMessage(AdminChatId, `Галька`);
}
if(data === '/two2') {
await bot.sendMessage(chatId, `Третий вопрос! Кокой бюджет у вас на путешествие?`, Three);
ot4 = 'Песок'
// let two2 = await bot.sendMessage(AdminChatId, `Песок`);
}
if(data === '/three1') {
await bot.sendMessage(chatId, `Большое спасибо, что проголосовали в нашем опросе!`,);
ot6 = '50.000руб'
ot7 = `${msg.from.first_name}` + ' Ответил следующее - ' +ot1 +' - '+ ot4 +' - '+ot6
await bot.sendMessage(AdminChatId, ot7);
}
if(data === '/three2') {
await bot.sendMessage(chatId, `Большое спасибо, что проголосовали в нашем опросе!`,);
ot6 = '100.000руб'
ot7 = `${msg.from.first_name}` + ' Ответил следующее - ' +ot1 +' - '+ ot4 +' - '+ot6
await bot.sendMessage(AdminChatId, ot7);
}
if(data === '/three3') {
await bot.sendMessage(chatId, `Большое спасибо, что проголосовали в нашем опросе!`,);
ot6 = '150.000руб'
ot7 = `${msg.from.first_name}` + ' Ответил следующее - ' +ot1 +' - '+ ot4 +' - '+ot6
await bot.sendMessage(AdminChatId, ot7);
}
if(data === '/three4') {
await bot.sendMessage(chatId, `Большое спасибо, что проголосовали в нашем опросе!`,);
ot6 = '200.000руб'
ot7 = `${msg.from.first_name}` + ' Ответил следующее - ' +ot1 +' - '+ ot4 +' - '+ot6
await bot.sendMessage(AdminChatId, ot7);
}
}
)
}
start()