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.pycontains configuration settings (e.g. certificate path, local_host, port etc.)passwords.pycontains secret information to be git-ignored (e.g. bot tokens)*.dbfiles are SQLite databases used by bots*.log: log files (store log_file_name and errors_file_name indata/config.pymodule)
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}/usingcertificatefor encryption aiohttp.web.Applicationserver will listen onhttp://{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
)
Metadata
Release files for davtelepot 2.10.11
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| davtelepot-2.10.11.tar.gz | 121.5 kB | Without provenance | Details for davtelepot-2.10.11.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| davtelepot-2.10.11-py3-none-any.whl | Python 3 | none | any | Details for davtelepot-2.10.11-py3-none-any.whl |
Total release size: 248.7 kB
Release files / davtelepot-2.10.11.tar.gz
| Download URL | davtelepot-2.10.11.tar.gz |
|---|---|
| Size | 121.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
eeacdefcf5b4e19a53faaceca8b3339e15bd033d7c8b0238f96683c5a4623b4b
|
|
BLAKE2b-256 checksum How to use checksums |
5e43b4b424caed75cf9b1c57bbb11c44b8daba3315d5ca287bd36499839a8a6d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.3
|
Release files / davtelepot-2.10.11-py3-none-any.whl
| Download URL | davtelepot-2.10.11-py3-none-any.whl |
|---|---|
| Size | 127.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f13cd192660b72825ec6e97e0846804f3dab047d502b223a7767bbf7b696e3fb
|
|
BLAKE2b-256 checksum How to use checksums |
13bff7df4d6b2b7ac799e65ced0c35382a3e31e5fc0f576b9d478af5f8bba3bd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.3
|
Security for davtelepot 2.10.11
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.