Skip to main content

A Django app that integrates with Telegram to create bots.

Project description

django-telegram-app

A Django app to integrate Telegram bots into your project.

Detailed documentation is in the docs/ directory.


Code style: Ruff Typing: Pyright Linting: Pylint Framework: Django License CI Validation


Features

  • ✅ Command-based bot architecture with step-based flow
  • ✅ Swappable TelegramSettings model
  • ✅ Inline admin integration for linking Telegram settings to users
  • ✅ Extensible: add commands per app via auto-discovery
  • ✅ Built-in system checks for misconfiguration
  • ✅ Django ORM integration (no direct API handling required)
  • ✅ Easy to test (includes custom TelegramTestCase)

Requirements (officially supported)

  • Python 3.10+
  • Django 5.2+

Quick start

  1. Install the package

    pip install django-telegram-app
    
  2. Add "django_telegram_app" to your INSTALLED_APPS setting like this:

    INSTALLED_APPS = [
        ...,
        "django_telegram_app",
    ]
    
  3. Include the telegram URLconf in your project urls.py like this:

    ...
    from django_telegram_app.conf import settings as telegram_app_settings
    ...
    path(telegram_app_settings.ROOT_URL, include("django_telegram_app.urls")),
    
  4. Create your own commands in each app under {appname}/telegrambot/commands/. Refer to the documentation for more details on how to write custom commands.

  5. Add the provided telegramsettings inline to your user-model like this:

    # user/admin.py
    from django_telegram_app.admin import TelegramSettingInline
    ...
    class CustomUserAdmin(UserAdmin):
        ...
        inlines = [TelegramSettingInline]
        # or add it to an existing entry
    
  6. Configure the telegram settings. Refer to the documentation for all possible settings. Minimal configuration is like this:

    # project/settings.py
    ...
    TELEGRAM = {
        "BOT_URL": "https://api.telegram.org/bot123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11/"
    }
    ...
    
  7. Run python manage.py migrate to create the models.

  8. Run python manage.py setwebhook to set the url on which you would like to receive telegram updates.

  9. Start the development server and visit the admin to edit users and add/complete TelegramSettings there.

License

This project is licensed under the MIT License — see the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django_telegram_app-0.1.1.tar.gz (27.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

django_telegram_app-0.1.1-py3-none-any.whl (20.3 kB view details)

Uploaded Python 3

File details

Details for the file django_telegram_app-0.1.1.tar.gz.

File metadata

  • Download URL: django_telegram_app-0.1.1.tar.gz
  • Upload date:
  • Size: 27.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for django_telegram_app-0.1.1.tar.gz
Algorithm Hash digest
SHA256 5af1d6f73e5e08e9f285539f9c5761fd36b82dfdc11d86900c15d50451c43977
MD5 c4a3385e2c9ed2b4fe3a5d87df1dc000
BLAKE2b-256 871a67fff0e09849b3f9aaeb4cda719b751bb4839bdaa6e3dd0ba0e3ffdab047

See more details on using hashes here.

File details

Details for the file django_telegram_app-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for django_telegram_app-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ffc2fd3ec99ec1cb7f99d2026db9080a87016214fc35f78452dd73142995b613
MD5 8ec8d974d295eaa23397b1804f281773
BLAKE2b-256 97ea3a24f47dfa749e96c1cded869b56960ae05bb878da2ec6946494d2814fe2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page