Lightweight framework to build Telegram bots.
Project description
PROJECT STATUS: DEVELOPMENT
Что такое pytelegrambots?
pytelegrambots - легковесный фреймворк для создания ботов для телеграма.
Содержание
- Установка
- Общее описание
- Использование
- API
- Пример создания бота
- Получение помощи
- Помощь в разработке
- Лицензия
Установка
pip install pytelegrambots
Общее описание
Использование
Для того, что бы создать бота, используя pytelegrambots вы должны:
API
Класс FSM
События
Состояние | Описание |
---|---|
IncomingCommandEvent |
Update есть число |
IncomingStartCommandEvent |
Update есть команда /start |
IncomingHelpCommandEvent |
Update есть команда /help |
IncomingNumberEvent |
Update есть число |
IncomingStrictNumberEvent |
Update есть число |
IncomingTextEvent |
Update есть текст |
IncomingStrictTextEvent |
Update есть строгий текст |
IncomingSinglePhotoEvent |
Update есть единичное фото |
Реализация собственных классов событий
Для того, что бы создать свой класс события, необходимо:
- Создать класс, унаследованный от класса
eventlib.UpdateEvent
- Реализовать метод
happened()
. Метод должен принимать в качестве аргумента объект класса Update, и возвращатьTrue
илиFalse
, в зависимости от того определяет лиupdate
данное событие или нет. Пример: cdferfre
Пример создания бота
- Формулировка задачи
- Предварительная подготовка
- Диаграмма состояний
- Создание пользовательского события
Формулировка задачи
Создадим примитивного бота для доставки пиццы. Сформулируем, что бот должен делать.
Сначала бот приветствует пользователя.
После приветствия, бот просит написать какую пиццу же``лает клиент. (pizza_type: str)
Потом бот просит указать количество пицц. (quantity: int)
Потом посредством клавиатуры просит указать способ получения пиццы клиентом: самовывоз или доставка курьером. (delivery_type: str)
Если самовывоз, бот присылает собеседнику сообщение "Пицца {pizza_type} в количестве {quantity} будет готова через 15 минут. Номер заказа {chat_id}}"
Если клиент выбрал доставку курьером, "Пиццу {pizza_type} в количестве {quantity} курьер привезет через 45 минут."
Предварительная подготовка<a name="example-preliminaries>
Создайте бота при помощи @botfather и получите токен.
Диаграмма состояний
Дадим названия состояниям, в которым может находиться чат пользователя с ботом:
Состояние | Описание |
---|---|
AfterStart | Чат сразу после старта перед приветственным сообщением |
AfterWelcomeMessage | Чат после приветственного сообщения |
PromptedForPizzaType | Чат после отображения предложения пользователю написать тип пиццы, который он хочет заказать |
PromptedForQuantity | Чат после отображения предложения пользователю написать количества заказываемой пиццы |
PromptedForDeliveryType | Чат после отображения пользователя клавиатуры с выбором одного из двух способов доставки |
DeliveryByCouurierMessagePosted | Чат после отображения клиенту сообщения о времени получении пицц |
HimselfDeliveryPosted | Чат после отображения клиенту сообщения о времени получении пицц |
Создание пользовательского события
Получение помощи
Рекомендуемый способ получения помощи- создание вопроса в данном репозитарии. Можете также обратиться по эл. адресу maliuzhenetsdzmitry @ гугляком ()
Помощь в разработке
Лицензия
MIT License Copyright (c) 2020 Dzmitry Maliuzhenets
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.