Telegram bot node js повторяет многократно одинаковое сообщение

252
01 ноября 2017, 04:55

Написал простого бота на node js. Данный бот просто задает одни и теже вопросы, на которые надо отвечать из предложеных вариантов ответа. При первом запуске все нормально, но если начать цикл заново, то уже на втором вопросе он задает его дважды. Потом трижды и так далее. Я не понимаю почему так происходит.

Модуль для node js иcпользовал этот node-telegram-bot-api Ссылка

Сам код:

const TelegramBot = require('node-telegram-bot-api');
const token = "ВВЕДИТЕ_ВАШ_ТОКЕН";
const bot = new TelegramBot(token, {polling: true});
var l1 = "left";
var r1 = "right";
var g1 = "Good";
var b1 = "Bad";
  bot.onText(/\/step2/, (msg) => {
        bot.sendMessage(msg.chat.id, "Who is playing?\n And you must write <<И>>", {});
        bot.on('text', (msg) => {
        if (msg.text.toLowerCase().includes("и")) {
          bot.sendMessage(msg.chat.id, "This is left or right?", {
            "reply_markup": {
              "keyboard": [[l1 , r1]]
            }
          });
          bot.on('text', (msg) => {
            if (msg.text === l1) {
              bot.sendMessage(msg.chat.id, "Good or bad?", {
                "reply_markup": {
                  "keyboard": [[g1 , b1]]
                }
              });
              bot.on('text', (msg) => {
                if (msg.text === g1) {
                  bot.sendMessage(msg.chat.id, "So, you can go \n /step3", {});
                } else if (msg.text === b1) {
                  bot.sendMessage(msg.chat.id, "So, you can go \n /step3", {});
                }
              });
            } else if (msg.text === r1) {
              bot.sendMessage(msg.chat.id, "Good or bad?", {
                "reply_markup": {
                  "keyboard": [[g1 , b1]]
                }
              });
              bot.on('text', (msg) => {
                if (msg.text === g1) {
                  bot.sendMessage(msg.chat.id, "So, you can go \n /step3", {});
                } else if (msg.text === b1) {
                  bot.sendMessage(msg.chat.id, "So, you can go \n /step3", {});
                }
              });
            }
          });
          } else {}
      });
    });

Что тут не так? Почему первый вопрос не повторяет? Как решить эту проблему, кроме бесконечного перезапуска программы?

READ ALSO
Генерация лабиринта, изменения стилей canvas

Генерация лабиринта, изменения стилей canvas

Добрый деньСобственно решил поиграться со стилями canvas

493
ERROR in main.min.js from UglifyJs

ERROR in main.min.js from UglifyJs

У меня произошла странная ошибкаИстория такова: мы с другом работаем над одним проектом собираем вебпаком

380
Как в Django загрузить файл, отправленный через js?

Как в Django загрузить файл, отправленный через js?

Как реализовать механизм загрузки файла в Django через Js (Angular 2)? Не нашел толкового объяснения на данную тему, в основном все ссылаются на оффдокументацию,...

260
грамотная проверка условия js/jquery

грамотная проверка условия js/jquery

ЗдравсвуйтеПодскажите как сделать грамотную проверку на наличие условия

282