diff --git a/routes/commands.js b/routes/commands.js new file mode 100644 index 0000000..cc5596d --- /dev/null +++ b/routes/commands.js @@ -0,0 +1,57 @@ +// handlers.js + +function handleReportMessage(message, chat_id, report_chat_id, token) { + let reportTime = new Date().toLocaleString(); + sendMessage({ + chat_id: report_chat_id, + text: `⚠️ Репорт от пользователя:\n\nИмя: ${message.from.first_name} ${message.from.last_name || ''}\nЮзернейм: @${message.from.username || 'нет юзернейма'}\nChat ID: ${chat_id}\nВремя обращения: ${reportTime}\n\nСообщение:\n${message.text}`, + parse_mode: 'HTML', + }, 'sendMessage', token); + + sendMessage({ + chat_id: chat_id, + text: 'Ваш репорт был успешно отправлен администрации.', + }, 'sendMessage', token); +} + +function handleStartCommand(chat_id, message, token) { + let fullName = message.from.first_name; + if (message.from.last_name) { + fullName += ` ${message.from.last_name}`; + } + + sendMessage({ + chat_id: chat_id, + text: `Добро пожаловать, ${fullName}!\n\nИспользуйте DishDash, чтобы легко и быстро выбрать место для встречи в компании. Упомяните бота в чате и введите @dishdash_bot start для создания лобби.\n\nБот DishDash разработан командой \"Шампиньоны\".`, + parse_mode: 'HTML', + }, 'sendMessage', token); +} + +function handleHelpCommand(chat_id, token) { + sendMessage({ + chat_id: chat_id, + text: 'Доступные команды:\n/start - Запуск бота\n/help - Справка\n/report - сообщить о баге/проблеме', + }, 'sendMessage', token); +} + +function handleReportCommand(chat_id, token) { + sendMessage({ + chat_id: chat_id, + text: 'Теперь отправьте сообщение, которое вы хотите сообщить администрации.', + }, 'sendMessage', token); +} + +function handleUnknownCommand(chat_id, token) { + sendMessage({ + chat_id: chat_id, + text: 'Извините, я не понимаю эту команду.', + }, 'sendMessage', token); +} + +module.exports = { + handleReportMessage, + handleStartCommand, + handleHelpCommand, + handleReportCommand, + handleUnknownCommand, +}; diff --git a/routes/dashBot.js b/routes/dashBot.js index b1e5c98..e53b4b7 100644 --- a/routes/dashBot.js +++ b/routes/dashBot.js @@ -28,6 +28,13 @@ router.use( const { devlog, handleError } = require('./common.js'); const { sendMessage, getUserProfilePicture } = require('./methods.js'); +const { + handleReportMessage, + handleStartCommand, + handleHelpCommand, + handleReportCommand, + handleUnknownCommand, +} = require('./commands.js'); setTimeout(function () { axios @@ -85,73 +92,20 @@ router.post(`/hook`, (req, res) => { if (currentSession.reportMode) { currentSession.reportMode = false; - if (report_chat_id === undefined) { + if (reportChatId === undefined) { console.log("`report_chat_id` is undefined. Check envs to turn on reports."); } else { - let reportTime = new Date().toLocaleString(); - - sendMessage( - { - chat_id: reportChatId, - text: `⚠️ Репорт от пользователя:\n\nИмя: ${message.from.first_name} ${message.from.last_name || ''}\nЮзернейм: @${message.from.username || 'нет юзернейма'}\nChat ID: ${chat_id}\nВремя обращения: ${reportTime}\n\nСообщение:\n${text}`, - parse_mode: 'HTML', - }, - 'sendMessage', - token - ); - - sendMessage( - { - chat_id: chat_id, - text: 'Ваш репорт был успешно отправлен администрации.', - }, - 'sendMessage', - token - ); + handleReportMessage(message, chat_id, reportChatId, token); } } else if (text === '/start') { - let fullName = message.from.first_name; - if (message.from.last_name) { - fullName += ` ${message.from.last_name}`; - } - - sendMessage( - { - chat_id: chat_id, - text: `Добро пожаловать, ${fullName}!\n\nИспользуйте DishDash, чтобы легко и быстро выбрать место для встречи в компании. Упомяните бота в чате и введите @dishdash_bot start для создания лобби.\n\nБот DishDash разработан командой \"Шампиньоны\".`, - parse_mode: 'HTML', - }, - 'sendMessage', - token - ); + handleStartCommand(chat_id, message, token); } else if (text === '/help') { - sendMessage( - { - chat_id: chat_id, - text: 'Доступные команды:\n/start - Запуск бота\n/help - Справка\n/report - сообщить о баге/проблеме', - }, - 'sendMessage', - token - ); + handleHelpCommand(chat_id, token); } else if (text === '/report') { currentSession.reportMode = true; - sendMessage( - { - chat_id: chat_id, - text: 'Теперь отправьте сообщение, которое вы хотите сообщить администрации.', - }, - 'sendMessage', - token - ); + handleReportCommand(chat_id, token); } else { - sendMessage( - { - chat_id: chat_id, - text: 'Извините, я не понимаю эту команду.', - }, - 'sendMessage', - token - ); + handleUnknownCommand(chat_id, token); } } }