Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Библиотека (Framework) для быстрого создания Telegram ботов и интеграции с django

License

NotificationsYou must be signed in to change notification settings

quillcraftsman/django-telegram-framework

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Библиотека (Framework) для быстрого созданияTelegram ботов и интеграции с django

Django Telegram Framework logo

Тут можно найтиПолную документацию проекта


Workflows

TestsPylint

Package

VersionDevelopment StatusPython versionLicenseWheel

Support

DocumentationDiscussionsIssues

Downloads

Day DownloadsWeek DownloadsMonth DownloadsAll Downloads

Languages

LanguagesTop Language

Development

  • Release dateLast Commit
  • IssuesClosed Issues
  • Pull RequestsClosed Pull Requests
  • Discussions

Menu

Идея проекта

Создать удобный и надежный framework для быстрого и удобного создания telegram ботов который:

  • Имеет чёткую структуру модулей
  • Может использовать разные библиотеки для взаимодействия с telegram (pyTelegramBotAPI, Telethone, python-telegram-bot, aiogram и другие)
  • Позволяет быстро реализовать start-up проект одному разработчику или в небольшой команде
  • Имеет интеграцию с django для создания web страниц и использования django admin
  • Быстро подключается к базе данных с помощью Django ORM

Проект с открытым исходным кодом

Это проект с открытым исходным кодом с лицензиейHappy Code.

  • Свободное использование
  • создание Forks
  • публикация issues и bugs
  • contributions

очень приветствуются

Отличие от других Telegram проектов

В отличие от библиотек для создания 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 (На этапе планирования)

Зависимости

Статус разработки

Написана и проверена 2-ая сырая версия библиотеки с небольшим набором функций

Установка

with pip

pip install django-telegram-framework

Подробности вПолной документации

Быстрый старт

  1. Добавитьtelegram_framework вINSTALLED_APPS
INSTALLED_APPS= ['...','telegram_framework','...',]
  1. Создать django проект
  2. Создать django приложение
python manage.py startapp quickstart
  1. В приложении создать файлbot.py
  2. Пример кода в файле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),]
  1. Вsettings.py проекта добавить следующие настройки:
TELEGRAM_BOT_TOKEN='7777777777:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'TELEGRAM_BOT_TYPE='pyTelegramBotAPI'ROOT_BOT_LINKS='quickstart.bot'
  1. УстановитьpyTelegramBotAPI
pip install pyTelegramBotAPI
  1. Запустить Бота
python manage.py run_bot

Больше примеров вПолной документации

Тестирование

Django Telegram Framework позволяет удобно тестировать код бота без подключения к telegram.Для этого используется специальныйDummyBot

  1. Вsettings.py проекта внесите следующие изменения:
TELEGRAM_BOT_TOKEN='0'TELEGRAM_BOT_TYPE='Dummy'
  1. Пример написания тестов для бота из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')
  1. Запустить django тесты
python manage.py test

Внести свой вклад в проект

Без проблем! Для быстрого старта можно ознакомиться с:

About

Библиотека (Framework) для быстрого создания Telegram ботов и интеграции с django

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Sponsor this project

  •  

Packages

No packages published

[8]ページ先頭

©2009-2025 Movatter.jp