Как стать автором
Обновить

Обзор шаблона разработки Telegram-бота

Шаблон разработки Telegram-бота – это отличный инструмент для разработки бота с нуля. Он предоставляет множество готовых функций, которые значительно упрощают процесс создания бота,а также позволяет быстро и легко настроить его работу и функциональность.

При использовании данного шаблона, разработчики могут значительно сократить время на написание кода и сфокусироваться на создании уникального и полезного бота для пользователей.

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

Я уже использовал его в своих проектах и могу сказать, что если разобраться, как устроена структура, можно разработать хорошего бота. Тем более, если учесть тот факт, что более небольшие проекты пишутся не задумываясь о структуре, это ускоряет процесс разработки.

Также его можно подстроить под себя, удалив лишнее из проекта и немного переписав под свои нужды.

Основная концепция шаблона заключается в модулях, которые можно добавлять и удалять, не ломая основной код бота. Таким образом, можно расширять функциональность бота без необходимости затрагивать его основной код. Это делает разработку более гибкой и удобной.

Рассмотрим структуру шаблона:

  • alembic Системная папка которая идёт вместе с библиотекой по работе с миграциями БД 

  • classes Папка, в которой хранятся основные классы шаблона

  • database Папка, в которой хранятся файлы по работе с БД

  • filters Основная папка, в которой вы можете создавать фильтры для бота на основе aiogram

  • modules Основная папка, в которой вы можете создавать модули для бота на основе aiogram

  • .env Файлы предназначены для хранения переменных окружения

  • Dockerfile Текстовый файл с инструкциями, необходимыми для создания образа контейнера

  • alembic.ini Системный файл которая идёт вместе с библиотекой по работе с миграциями БД 

  • config.py Файл конфигурации шаблона

  • default.conf Конфигурационный файл nginx

  • docker-compose.yml Файл позволяет настраивать и документировать все зависимости служб вашего приложения

  • requirements.txt  Это файл список всех модулей и пакетов Python, которые нужны для полноценной работы

  • run_bot.py Файл запуска бота

Я затрону только основную часть этих файлов и папок.

Как вы уже заметили, в шаблоне уже есть поддержка Docker и nginx. Это сделано для того, чтобы вы могли запускать бота на основе webhook. Однако, если вы заинтересованы в запуске бота как long polling, это также возможно, если переписать код в файле run_bot.py

Основная разработка идёт в папках modules и папке filters.

В папке modules создается основная логика бота, которая может содержать модули для работы с сообщениями, обработки команд и т.д. А в папке filters можно создавать фильтры, по которым бот будет фильтровать запросы от пользователей. Например, можно создать фильтры для проверки прав доступа пользователя или для обработки сообщений от конкретных чатов.

Да, шаблон разработки Telegram-бота, о котором мы говорим, использует библиотеку aiogram для работы с Telegram API.

Как пример работы с ошибками уже есть файл в папке modules где по коду уже понятно как нужно писать модуль под этот шаблон.

А в папке filters также уже есть файл как пример как нужно писать под этот шаблон фильтры.

Преимущество этого шаблона является его авто подгруздка всех модулей и фильтров. То есть если вы создали модуль и написали так нужный класс по всем правилам то он автоматически подгрузит при запуске бота нужные модули и фильтры из папок modules, filters.

С погрузкой можно ознакомиться в папке classes где есть файл Loading.py в котором по коду можно разобраться как он это делает.

Конечно в шаблоне есть не доработки и даже его README.md ещё не написан нужным образом и ссылает на то что он ещё в разработке. Но попробовать и пощупать этот шаблон стоит просто из интереса или для небольших проектов.

Если есть идеи по улучшению шаблона пожалуйста напишите в комментарии, код да не совершенный но и писался он одним человеком.

Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.