show

24

Библиотека для создания телеграм ботов

Во времена моего фриланса и зарождения OscarStudio мне периодически прилетали задачи на создание Telegram ботов.

На тот момент такого разнообразия, как сейчас, не было. Поэтому либо ты ломаешь мозг в имеющихся решениях, либо собираешь что-то свое. По сути, все библиотеки представляли из себя отправку запросов на сервер Telegram в удобном для кого-то виде.

Тогда я начал писать свое решение, которое переносил из проекта в проект и дописывал по мере необходимости.
В итоге получился довольно мощный набор функций и классов, написанных на python, да еще и заточенных для использования в Django
Но, несмотря на это, всегда нужно было что-то допилить, поправить, таблиц в базе насоздавать…

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

Например, у нас есть такие кейсы:
 ⁃ Бот для документооборота;
 ⁃ Бот-CRM система с управлением взаимоотношениями с клиентами;
 ⁃ Бот для построения целых LMS в интерфейсе мессенджера Telegram. Мы как раз запускаем новый проект SkillUpMentor, который и есть LMS.

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

Пакет назвали Oscarbot. Собственно, отсюда и пошло название студии.

Сама идея бота была в том, чтобы получить инструмент для удобной интеграции в фреймворк Django, чего другие библиотеки не позволяют. При этом в самом боте удалось сохранить подход к работе с контроллерами из Django. Таким образом, взаимодействие с ботом практически нативное и позволяет со знаниями Django начать работу.

На данный момент в боте есть:
- обработка нажатия кнопок,
- обработка сообщений,
- обработка команд,
- два вида клавиатур,
- запуск бота longpolling и на веб хуках,
- обработка маршрутизации.
И многое другое.

Сейчас бот в нестабильной 0 версии. Как раз делаем заказ, в котором используем этого бота и постоянно его улучшаем. Как только убедимся, что все работает корректно, выпустим версию 1.0 и будем использовать его во всех проектах.

На данный момент на этой библиотеке мы делаем 1 новый проект и уже перевели 2 давних проекта на этот инструмент.

Лично я доволен тем, что получается. Создание интерактивного меню работы пользователя занимает считанные минуты. Остается только писать логику в Django, не отвлекаясь на гуглеж синтаксиса.

В планах довести бот до версии 1.0 и запустить небольшой ознакомительный сайт, так как клиенты требуют  Ну и поработать над полноценной документацией, так как сделано много, а описать в тот же ридми все никак руки не доходят. Да и кажется, что ридми для такого маловат.

Есть вопросы?

Хотите обсудить проект?

Напишите нам!