Telegram Bot и отчётность по проекту
Не так давно я закончил свой небольшой учебный проект на Django (https://github.com/kazeichev/autopark). Смысл данного проекта это отслеживать местоположение автомобиля, сохранять все его передвижения, давать возможность взаимодействовать с системой по api и генерировать отчёты по передвижениям (для конкретного автомобиля за определённый период).
После реализации основной системы, мне была поставлена задача реализовать telegram-бота, при помощи которого можно было бы залогиниться в системе и сгенерировать отчёт для конкретного автомобиля не выходя из чата.
Для реализации поставленной задачи я выбрал готовую библиотеку Python Telegram-bot и начал создавать бота.
Для начала, при помощи BotFather, я создал самого бота и получил токен для управления им.
Далее я создал команду в Django, которая в бесконечном цикле, до момента прерывания выполнения команды, поддерживает работоспособность сервера для бота.
В 28 строке из примера выше вы могли заметить что я добавляю собственные обработчики команд бота (далее — handler). Мне не очень понравился подход, описанный в куче how-to-do, слепить бота в одном файле-портянке, и я решил прибегнуть к ООП.
Мною был создан интерфейс для всех handler-ов, который обязывал все классы-наследники имплементировать метод get_handler(). Данный метод отвечает за генерацию handler-a, необходимого для работы библиотеки, но с необходимыми нам настройками.
Вот так выглядит самый просто handler, который реагирует на команду /start
Благодаря такому разделению кода, у меня получилось написать аккуратные обработчики команд и не вырвать все волосы на голове 😉
P.S. Комментарии и подсказки по улучшению кода всегда приветствуются!
P.P.S. Картинка взята с https://journal.tinkoff.ru/guide/otchety-ooo/
Ten articles before and after
Controlling Light using Telegram Bot – Telegram Group
Telegram’da Benim de Bir Tuzum Olsun – Telegram Group
How to send photos to Telegram in Ruby – Telegram Group
data-rh=”true”>Explainer: UK News Quiz, a Telegram Bot – Dror Kessler – Medium – Telegram Group
Делаем бота для учета личных расходов на Python используя Google Spreadsheets – Telegram Group
[BEST] Tricks To Rank #1 Your Telegram Channel (2022) – Telegram Group
data-rh=”true”>Telegram channel – KYC COIN – Medium – Telegram Group
Telegram Marketing: How to Promote a Startup Channel – Telegram Group
Emprendedores. Usa Telegram para promocionar tu contenido. – Telegram Group