Привет, Хабр. Сейчас очень популярно писать ботов для Telegram. Но очень неудобным остается одно, ради увеличения функционала бота, требуется писать, регистрировать, настраивать новых ботов. Поэтому я решил попробовать написать свою бот-платформу, рассчитанную на модули.Подробнее под катом
Идея проста: вы наращиваете возможности бота, просто добавляя конкретные модули в папку, а моя платформа их динамически подключает.
Общение с модулями происходит, через переключение между ними: поговорили с одним, получили что нужно, переключились на другой.
На примере это выглядит так:
Что реализовано на сейчас:
1)Отправка документов, фотографий, сообщений
2)Полное логирование входящих сообщений(авторизованные и не авторизованные пользователи)
3)Возможность авторизации, для исполнения команд
Что планируется реализовать:
1)вебхук
2)алиасы
3)дополнительные модули
4)полное покрытие api
5)автообновление
Перейдем к примеру написания модуля:
Взаимодействие с апи полностью берет главный модуль, он отсылает сообщения вашему модулю и вам необходимо реализовать метод, который ловит сообщение:
from main_handler.py import Respond
def handler(message, user_id):
name_of_file = 'somefile.pdf' # наш файл
Respond.send_text_respond(message, user_id) # отправляем текст обратно
Respond.send_photo_respond(user_id, 'photo.jpg') # отправляем картинку
Respond.send_document(chat_id, name_of_file) # отправляем файл
Установка:
1)Запустите main_handler.py
2)Введите ваш ID,TOKEN и пароль
3)Поставьте в автозапуск, или запускайте через screen
Код далеко не совершенен, приветствуются любые замечания и исправления. Надеюсь кому-нибудь это покажется интересным и кто то напишет свой модуль.
github.com/VitalyNikolaev/Telegram-Bot-Platform
deQU
оформите все функции в класс(ы) — чтобы не таскать повсюду global