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.2.0.tar.gz (29.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.2.0-py3-none-any.whl (20.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: django_telegram_app-0.2.0.tar.gz
  • Upload date:
  • Size: 29.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for django_telegram_app-0.2.0.tar.gz
Algorithm Hash digest
SHA256 0dcc6ba245d09d8a599e871be48362e7b3ce5a051d97dcc7bea03989a18f646c
MD5 97bede90bbb6e12871cd0dd085aee4ea
BLAKE2b-256 71d4aad0ebb657446a360faf60717c37c7bbf3200b994fd3555ac5cf92661d7b

See more details on using hashes here.

Provenance

The following attestation bundles were made for django_telegram_app-0.2.0.tar.gz:

Publisher: release.yml on shifqu/django-telegram-app

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for django_telegram_app-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1de314fb71b14bb32d6269eae82ddcff695425c1335acc6a502a08e9048b3812
MD5 774a189cf97cbb5130d0ad38ea87d1ab
BLAKE2b-256 7531b739f3e35dfd75bfb68e21abc11773ae03340ba8972957fc18f45afbf771

See more details on using hashes here.

Provenance

The following attestation bundles were made for django_telegram_app-0.2.0-py3-none-any.whl:

Publisher: release.yml on shifqu/django-telegram-app

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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