Skip to content
This repository has been archived by the owner on Nov 21, 2024. It is now read-only.

Commit

Permalink
Optimised code
Browse files Browse the repository at this point in the history
  • Loading branch information
AlexDyakonov committed Aug 18, 2024
1 parent 38fefd5 commit 71f2279
Show file tree
Hide file tree
Showing 2 changed files with 70 additions and 59 deletions.
57 changes: 57 additions & 0 deletions routes/commands.js
Original file line number Diff line number Diff line change
@@ -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: `⚠️ <b>Репорт от пользователя:</b>\n\n<b>Имя:</b> ${message.from.first_name} ${message.from.last_name || ''}\n<b>Юзернейм:</b> @${message.from.username || 'нет юзернейма'}\n<b>Chat ID:</b> ${chat_id}\n<b>Время обращения:</b> ${reportTime}\n\n<b>Сообщение:</b>\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: `Добро пожаловать, <b>${fullName}</b>!\n\nИспользуйте DishDash, чтобы легко и быстро выбрать место для встречи в компании. Упомяните бота в чате и введите <code>@dishdash_bot start</code> для создания лобби.\n\nБот <a href='https://dishdash.ru'>DishDash</a> разработан командой <a href='https://t.me/+4l8DChDSxMQxNWUy'>\"Шампиньоны\"</a>.`,
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,
};
72 changes: 13 additions & 59 deletions routes/dashBot.js
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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: `⚠️ <b>Репорт от пользователя:</b>\n\n<b>Имя:</b> ${message.from.first_name} ${message.from.last_name || ''}\n<b>Юзернейм:</b> @${message.from.username || 'нет юзернейма'}\n<b>Chat ID:</b> ${chat_id}\n<b>Время обращения:</b> ${reportTime}\n\n<b>Сообщение:</b>\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: `Добро пожаловать, <b>${fullName}</b>!\n\nИспользуйте DishDash, чтобы легко и быстро выбрать место для встречи в компании. Упомяните бота в чате и введите <code>@dishdash_bot start</code> для создания лобби.\n\nБот <a href='https://dishdash.ru'>DishDash</a> разработан командой <a href='https://t.me/+4l8DChDSxMQxNWUy'>\"Шампиньоны\"</a>.`,
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);
}
}
}
Expand Down

0 comments on commit 71f2279

Please sign in to comment.