Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork0
Библиотека (Framework) для быстрого создания Telegram ботов и интеграции с django
License
quillcraftsman/django-telegram-framework
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Библиотека (Framework) для быстрого созданияTelegram ботов и интеграции с django
Тут можно найтиПолную документацию проекта
- Идея проекта
- Проект с открытым исходным кодом
- Отличие от других Telegram проектов
- Функции библиотеки
- Зависимости
- Статус разработки
- Установка
- Быстрый старт
- Тестирование
- Внести свой вклад в проект
Создать удобный и надежный framework для быстрого и удобного создания telegram ботов который:
- Имеет чёткую структуру модулей
- Может использовать разные библиотеки для взаимодействия с telegram (pyTelegramBotAPI, Telethone, python-telegram-bot, aiogram и другие)
- Позволяет быстро реализовать start-up проект одному разработчику или в небольшой команде
- Имеет интеграцию с django для создания web страниц и использования django admin
- Быстро подключается к базе данных с помощью Django ORM
Это проект с открытым исходным кодом с лицензиейHappy Code.
- Свободное использование
- создание Forks
- публикация issues и bugs
- contributions
очень приветствуются
В отличие от библиотек для создания telegram ботов, таких как pyTelegramBotAPI, aiogram, python-telegram-bot и других,этот проект (Framework) имеет чёткую структуру, похожую на структуру django проектов. Framework содержит следующие элементы:
- models - модели данных связанные с базой данных с помощью Django ORM
- actions - обработчики событий telegram bot-а (аналогия с django views)
- links - связь команд и событий бота с обработчиками (аналогия с django urls)
- settings - настройки для всего проекта - django settings
- tests - тесты логики бота с использованием специального Dummy Bot
Под капотом Framework может использовать разные библиотеки в синхронном и асинхронном исполнении. Можно переключать одни библиотеки на другие.Без соединения с telegram (например в DEV) режиме, можно использовать Dummy Bot для разработки и тестирования.
Интеграция с django позволяет:
- Добавить web site
- Использовать django админку
- Использовать django ORM
- Интеграция telegram бота в django проект
- Понятная структура и интерфейсы для разработки бота
- Функции автоматического тестирования бота
- Совместимость с синхронным pyTelegramBotAPI
- Совместимость с асинхронным pyTelegramBotAPI (В разработке)
- DummyBot для тестирования и работы без подключения к telegram
- Функции телеграм бота (Будут добавляться по мере надобности, пожалуйста напишите, если вам нужна новая функция)
- Совместимость с aiogram, python-telegram-bot, Telethone (На этапе планирования)
- django > 5
- pyTelegramBotAPi (Нужно установить отдельно)
- Подробности вПолной документации
Написана и проверена 2-ая сырая версия библиотеки с небольшим набором функций
- Пакет уже доступен вPyPi
- Подробности вПолной документации
pip install django-telegram-framework
Подробности вПолной документации
- Добавить
telegram_framework
вINSTALLED_APPS
INSTALLED_APPS= ['...','telegram_framework','...',]
- Создать django проект
- Создать django приложение
python manage.py startapp quickstart
- В приложении создать файл
bot.py
- Пример кода в файле
bot.py
fromtelegram_frameworkimport (messages,actions,links,)# ОПИШИТЕ ОБРАБОТЧИКИ СОБЫТИЙ БОТАdefsend_greetings(bot,message):# Используйте специальный тип для сообщенийgreetings_message=messages.create_message('Приветствую тебя. Я Quickstart Telegram Bot',sender=bot )# Отправьте сообщение в телеграммreturnactions.send_message(message.chat,greetings_message)defreply_to_message(bot,message):# Используйте специальную функцию для создания ответаreply=messages.create_reply(message,'Тебе отвечает Bot',sender=bot)# Отправьте ответ в телеграммreturnactions.send_reply(reply)# СВЯЖИТЕ ОБРАБОТЧИКИ С ДЕЙСТВИЯМИ ПОЛЬЗОВАТЕЛЯ В TELEGRAMbot_links= [links.on_command(send_greetings,'start'),links.on_command(send_greetings,'help'),links.on_message(reply_to_message),]
- В
settings.py
проекта добавить следующие настройки:
TELEGRAM_BOT_TOKEN='7777777777:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'TELEGRAM_BOT_TYPE='pyTelegramBotAPI'ROOT_BOT_LINKS='quickstart.bot'
- Установить
pyTelegramBotAPI
pip install pyTelegramBotAPI
- Запустить Бота
python manage.py run_bot
Больше примеров вПолной документации
Django Telegram Framework позволяет удобно тестировать код бота без подключения к telegram.Для этого используется специальныйDummyBot
- В
settings.py
проекта внесите следующие изменения:
TELEGRAM_BOT_TOKEN='0'TELEGRAM_BOT_TYPE='Dummy'
- Пример написания тестов для бота из
quickstart
приложения
fromtelegram_framework.testimportSimpleTestCaseclassTestCommands(SimpleTestCase):deftest_start(self):""" Test /start: success """# Бот должен реагировать на сообщенияchat=self.assertCommandWasHandled('/start',self.chat)# Последнее сообщение в чате должно содержать приветствиеself.assertChatLastMessageTextEqual(chat,'Приветствую тебя. Я Quickstart Telegram Bot')deftest_any_text_message(self):""" Test send any text message: success """# Бот должен реагировать на сообщение,chat=self.assertTextMessageWasHandled('quickstart message',self.chat)# Последнее сообщение должно содержать ответ ботаself.assertChatLastMessageTextEqual(chat,'Тебе отвечает Bot')
- Запустить django тесты
python manage.py test
Без проблем! Для быстрого старта можно ознакомиться с:
About
Библиотека (Framework) для быстрого создания Telegram ботов и интеграции с django
Topics
Resources
License
Code of conduct
Security policy
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Sponsor this project
Uh oh!
There was an error while loading.Please reload this page.
Packages0
Uh oh!
There was an error while loading.Please reload this page.