Skip to main content

davtelepot

This project conveniently mirrors the Telegram bot API with the class Bot.

Please note that Python3.5+ is needed to run async code.

Check requirements.txt for third party dependencies.

Check out help(Bot) for detailed information.

Project folders

davtelepot/data folder

  • config.py contains configuration settings (e.g. certificate path, local_host, port etc.)
  • passwords.py contains secret information to be git-ignored (e.g. bot tokens)
  • *.db files are SQLite databases used by bots
  • *.log: log files (store log_file_name and errors_file_name in data/config.py module)

examples folder

This folder contains full-commented and ready-to-run examples for simple davtelepot.bot Telegram bots.

Usage

import sys

from davtelepot.bot import Bot

from data.passwords import my_token, my_other_token

long_polling_bot = Bot(token=my_token, database_url='my_db')
webhook_bot = Bot(token=my_other_token, hostname='example.com',
                  certificate='path/to/certificate.pem',
                  database_url='my_other_db')

@long_polling_bot.command('/foo')
async def foo_command(bot, update, user_record):
    return "Bar!"

@webhook_bot.command('/bar')
async def bar_command(bot, update, user_record):
    return "Foo!"

exit_state = Bot.run(
    local_host='127.0.0.5',
    port=8552
)
sys.exit(exit_state)

Check out help(Bot) for detailed information.

Webhook additional information

To run a bot in webhook modality, you have to provide a hostname and certificate at bot instantiation and a local_host and port when calling Bot.run method.

  • Telegram will send POST requests at https://{hostname}/webhook/{tokens}/ using certificate for encryption
  • aiohttp.web.Application server will listen on http://{local_host}:{port} for updates

It is therefore required a reverse proxy passing incoming requests to local_host.

Example of nginx reverse proxy serving this purpose

server {
  listen 8553 ssl;
  listen [::]:8553 ssl;

  server_name example.com www.example.com;

  location /telegram/ {
     proxy_pass http://127.0.0.5:8552/;
  }

  ssl_certificate /path/to/fullchain.pem;
  ssl_certificate_key /path/to/privkey.pem;
}

Example of python configuration file in this situation

# File data/config.py, gitignored and imported in main script
hostname = "https://www.example.com:8553/telegram"
certificate = "/path/to/fullchain.pem"
local_host = "127.0.0.5"
port = 8552

# Main script
from data.config import hostname, certificate, local_host, port
from data.passwords import bot_token
from davtelepot.bot import Bot

my_bot = Bot(
  token=bot_token,
  hostname=hostname,
  certificate=certificate
)

# ...

Bot.run(
  local_host=local_host,
  port=port
)

Download files

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

Source Distribution

davtelepot-2.5.1.tar.gz (85.7 kB view details)

Uploaded Source

Built Distribution

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

davtelepot-2.5.1-py3-none-any.whl (92.4 kB view details)

Uploaded Python 3

File details

Details for the file davtelepot-2.5.1.tar.gz.

File metadata

  • Download URL: davtelepot-2.5.1.tar.gz
  • Upload date:
  • Size: 85.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.8.2

File hashes

Hashes for davtelepot-2.5.1.tar.gz
Algorithm Hash digest
SHA256 59620195d7e33a54702ed59d6e0ec9ebe80ffe4fd34d06549e2ba3f780d5d494
MD5 f2d86c25769dab4a3e25bded0eb72339
BLAKE2b-256 343c2392955500956949d3c7b5414f450cb3fe498ca84696f957dc64e7c66bf7

See more details on using hashes here.

File details

Details for the file davtelepot-2.5.1-py3-none-any.whl.

File metadata

  • Download URL: davtelepot-2.5.1-py3-none-any.whl
  • Upload date:
  • Size: 92.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.8.2

File hashes

Hashes for davtelepot-2.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 0cde8ae80319e424d63b4240eb5c136013872d71e2a4b88e8234792d905e00a6
MD5 1fa07b39c7eb4d00d443aff6e993dd92
BLAKE2b-256 c41f258be033cb115761462894d942369224d2b9231e299696220d16d3250f93

See more details on using hashes here.

Release history Release notifications | RSS feed

Supported by

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