Ошибка Node.js при кодировании бота телеграммы - PullRequest
0 голосов
/ 29 мая 2018

http://prntscr.com/jo7mug

Так выглядит ошибка.Все время мой бот отвечает мне дважды (но я этого не хочу).Сам код выглядит следующим образом.Сначала я прошу пользователя выбрать между файлом и ссылкой, а затем между стилями.Если стиль выбран, я предоставляю пользователю новую клавиатуру, но при ее нажатии мой бот дважды отправляет сообщение.

// нажал SOUNDCLOUD
bot.onText(/\Link to Soundcloud/, (msg) => {
    bot.sendMessage(msg.chat.id, "Alright, " + msg.from.first_name + ". Let's choose a style and I'll guide You through the whole Soundcloud", {
        "reply_markup": {
            "keyboard": [["Dancy", "Chill"], ["Sensual", "Jazz"], ["Back to choose link or file"]],
            "resize_keyboard": true
        }
    });
    // нажал dancy после того, как выбрал ссылку
    bot.onText(/\Dancy/, (msg) => {
        bot.sendMessage(msg.chat.id, "Dancy link is here,  " + msg.from.first_name + ". Enjoy!" + dancy_collection[rand_dancy_collection], {
            "reply_markup": {
                "keyboard": [["More dancy"], ["Back to choose style"]],
                "resize_keyboard": true
            }
        });
    });
    // нажал chill после того, как выбрал ссылку
    bot.onText(/\Chill/, (msg) => {
        bot.sendMessage(msg.chat.id, "Chill link is here,  " + msg.from.first_name + ". Enjoy!" + chill_collection[rand_chill_collection], {
            "reply_markup": {
                "keyboard": [["More chill"], ["Back to choose style"]],
                "resize_keyboard": true
            }
        });
    });
    // нажал sensual после того, как выбрал ссылку
    bot.onText(/\Sensual/, (msg) => {
        bot.sendMessage(msg.chat.id, "Sensual link is here,  " + msg.from.first_name + ". Enjoy!" + sensual_collection[rand_sensual_collection], {
            "reply_markup": {
                "keyboard": [["More sensual"], ["Back to choose style"]],
                "resize_keyboard": true
            }
        });
    });
    // нажал jazz после того, как выбрал ссылку
    bot.onText(/\Jazz/, (msg) => {
        bot.sendMessage(msg.chat.id, "Jazz link is here,  " + msg.from.first_name + ". Enjoy!" + jazz_collection[rand_jazz_collection], {
            "reply_markup": {
                "keyboard": [["More jazz"], ["Back to choose style"]],
                "resize_keyboard": true
            }
        });
    });
    // нажал dancy ещё раз после того, как выбрал ссылку
    bot.onText(/\More dancy/, (msg) => {
        bot.sendMessage(msg.chat.id, "Another dancy track is here,  " + msg.from.first_name + ". Enjoy!" + dancy_collection[rand_dancy_collection], {
            "reply_markup": {
                "keyboard": [["More dancy"], ["Back to choose style"]],
                "resize_keyboard": true
            }
        });
    });
    // нажал chill ещё раз после того, как выбрал ссылку
    bot.onText(/\More chill/, (msg) => {
        bot.sendMessage(msg.chat.id, "Another chill is here,  " + msg.from.first_name + ". Enjoy!" + chill_collection[rand_chill_collection], {
            "reply_markup": {
                "keyboard": [["More chill"], ["Back to choose style"]],
                "resize_keyboard": true
            }
        });
    });
    // нажал sensual ещё раз после того, как выбрал ссылку
    bot.onText(/\More sensual/, (msg) => {
        bot.sendMessage(msg.chat.id, "Another sensual link is here,  " + msg.from.first_name + ". Enjoy!" + sensual_collection[rand_sensual_collection], {
            "reply_markup": {
                "keyboard": [["More sensual"], ["Back to choose style"]],
                "resize_keyboard": true
            }
        });
    });
    // нажал jazz ещё раз после того, как выбрал ссылку
    bot.onText(/\More jazz/, (msg) => {
        bot.sendMessage(msg.chat.id, "Another jazz link is here,  " + msg.from.first_name + ". Enjoy!" + jazz_collection[rand_jazz_collection], {
            "reply_markup": {
                "keyboard": [["More jazz"], ["Back to choose style"]],
                "resize_keyboard": true
            }
        });
    });
});

1 Ответ

0 голосов
/ 03 июня 2018

Используйте это регулярное выражение:

bot.onText(/^[/]Link to Soundcloud$/, (msg) => {
    bot.sendMessage(msg.chat.id, "Alright, " + msg.from.first_name + ". Let's choose a style and I'll guide You through the whole Soundcloud", {
        "reply_markup": {
            "keyboard": [["Dancy", "Chill"], ["Sensual", "Jazz"], ["Back to choose link or file"]],
            "resize_keyboard": true
        }
    });
...