Создание Telegram бота на Node.js / #9 — Обработка команд

Автор Nikita Stoianov
Создание Telegram бота на Node.js / #9 — Обработка команд

в этом уроке мы с вами разберем.

Как мы можем обрабатывать не только сообщение которое свои там пользователи, но и целые команды. А вы помните кто изначально когда мы создавали наша работа мы с вами задавали список команд которые есть у него соответственно эта команда Start Test Help. Сейчас если мы соответственно на команду то мы обрабатываем — это сообщение потому, что команда тоже является сообщением и из прошлого урока если выполнить этом направлении дебаг того объекта который приходит нам обработчик события.

Теперь давайте мы — это всё дело удалим потому, что теперь мы не будем обрабатывать никак наши сообщения и мы теперь будем обрабатывать команды.

Как мы можем обрабатывать команды мы. Обращаемся к нашему. Ботом и у неё метод который называется он текст то есть теперь мы уже ставим. Не простушку события он, а мы пишем метод он текст и здесь в методе он текст. Мы в ту команду на которую вот. Должен реагировать причём первым параметром мы указываем здесь именно регулярное выражение она должна выглядеть следующим образом то есть например. Давайте посмотрим какие у нас команды есть у нас есть команда Start Test I help допустим давайте мы с вами будем реагировать на команду. Старт поэтому я перехожу в текстовый редактор и здесь соответственно я пишу команду значит регулярное выражение называют с помощью 2 флеш дали давайте так как у нас любые команды есть напишу выглядит следующим образом допустим Help да то есть тоже идут со слешем то соответственно нам нужно сканировать поэтому я пишу обратный слеш далее я пишу команду. Старт Да мы хотим обработать команду старт и соответственно всё то есть обрабатываем эту команду. Вот она идёт вторым параметром и принимаем некоторый объект массаж и дальше в принципе всё как обычно то здесь мы задаем. А — это равно массаж читает им в принципе я теперь мы можем делать любые манипуляции которые нам бы угодно с данным потом. То есть например мы можем отправить обратно сообщение не читай едим. И мы можем посмотреть опять же с помощью функции дебаг, что у нас находится в объекте теперь давай теперь допустим наша работа и попробуем что-нибудь ему например песня Modern Command Help так видеть буду её получил, но при этом ничего не происходит. Однако если мы отправим команду. Старт то как увидеть и мы получили целый объект который нам и был нужен причём как текст мы получаем именно эту команду. Старт который мы отправляли. Однако сейчас встречаются случаи когда. Допустим мы отправляем какую-то команду например,. Пусть напишут хоп и здесь мы. Передаем некоторые параметры статус например напишем лес и нам нужно каким-то образом обработать данную команду если мы сейчас напишем. Старт запустить напишем Hello то в качестве тех кто мы как раз таки и получим данную команду, но её будет не очень удобно вы цеплять нам придется делить по пробелу. И вообще — это будет не очень корректно поэтому есть более умный регулярное выражение для обработки команд и. Давайте допустим краски его сразу сейчас и допустим. Мы повесим ещё один обработчик команд на нашего. Бота то есть с помощью методов он текст здесь мы должны передать с вами регулярное выражение причём допустим обрабатывать. А теперь команду Help. Поэтому если экранируют команду Help и далее мы можем указать ещё часть регулярного выражения оно пишется вокруг скобочках сюда мы говорим, что нам нужно получить некоторый остаток теперь насчёт мы будем принимать некоторые callback первым параметром и будем принимать массаж вторым параметром мы будем получать массив сейчас мы сами разберёмся, что — это за массив. И соответственно. Зачем нужен и как им пользоваться теперь давайте мы заведем опять-таки и так далее мы будем опять же отправлять обратно дебаг некоторые сообщения. Только теперь мы будем уже отправлять массив который мы получили. Теперь нравится одна ем батон год был запущен и теперь обратимся к команде Help насчёт. Выбери команду нам ничего не пришло в ответ потому, что мы соответственно ничего и не отправляли. Давайте допустим 250 мкл Hello и теперь видите мы получили массив то есть случай-контроль Help мы не написали никакой другой команды здесь. Однако когда мы написали здесь Hello то соответственно мы получили уже массив из двух сообщения из двух элементов первый элемент — это полностью текст сообщения которые мы отправляли и второй элемент массива — это соответственно просто так часть которые мы написали как параметры соответственно мы можем его как-то вытащить. Значит мы можем с вами очень простым способом описание серий 1 и соответственно — это будет у нас тот элемент который нам нужен. Либо мы можем поступить более грамотно способом мы можем воспользоваться инструкцией массивов статус прямо здесь и мы знаем, что первый элемент массива — это у нас Source Data есть первый элемент который получаем — это просто текст то есть Source. Да вот как раз таки — это является исходным некоторым значением, а вторым параметром массиве — это у нас как раз такие совпадения которые мы нашли в нашем массиве то есть и теперь соответственно мы можем отправить в функции дебаг сообщение матч посмотрим, что она из себя представляет мы запускаем опять работа пишем так Help Hello FM и мы получаем сообщениях lfm то есть таким удобным образом мы сможем обрабатывать входящие параметры которые приходят нам в. Бота единственное, что я хотел здесь ещё — это то, что если мы параллельно. С командами добавим прослушку события он мой счёт допустим Bot sendmessage массаж читает массаж по. Давайте посмотрим как — это будет работать значит я запускаю тальбота. Не забывайте каждый раз его перезагружаю с помощью.

0 комментариев
0

Читайте также