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.2.tar.gz (28.1 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.2-py3-none-any.whl (20.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: django_telegram_app-0.1.2.tar.gz
  • Upload date:
  • Size: 28.1 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.2.tar.gz
Algorithm Hash digest
SHA256 794bb7c7df61d7da3c5b1150cb952654d329246044eeedf8e7a9743bc0a01424
MD5 22dcfc75a07956bf5bd2175d6a66b1d8
BLAKE2b-256 3e3cede93dbc53cdc5b4f9d65d22b7d8e9b46947fa3a17355cb85114903e1e4f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for django_telegram_app-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 28ee5281c1ab940521eff2016e1016fa1097aa79513d71fac6b8bc6953e1d9f0
MD5 2428d4aa2d1797ef4f99f68fb4a82c48
BLAKE2b-256 120dba20fd7c572021a785b970c02573e976b9eca4a5eeff73e09d78b503ccec

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