Модульный подход к написанию ботов для Telegram

от автора

image

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

Идея проста: вы наращиваете возможности бота, просто добавляя конкретные модули в папку, а моя платформа их динамически подключает.

Общение с модулями происходит, через переключение между ними: поговорили с одним, получили что нужно, переключились на другой.

На примере это выглядит так:
image

Что реализовано на сейчас:
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

ссылка на оригинал статьи http://habrahabr.ru/post/265707/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *