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

Комментарии (1)


  1. deQU
    30.08.2015 13:30

    оформите все функции в класс(ы) — чтобы не таскать повсюду global