Library for development Telegram bots
Project description
Telegram-botup
Library for fast development and simple deployment of Telegram bots. She includes:
- Dispatcher for handlers registration and receiving incoming updates
- Form for working with Telegram API
- Sender-worker for asynchronus requests
- Other utils, types and etc
Features
- Full support of types and methods telegram API
- Built-in Sender-worker for making requests like task by task
- Simple switching between synchronus and asynchronus work
- Simple deployment with wsgi
- Built-in command-line tool
- Support of work with socks5-proxy and proxy-url
Installation
$ pip install telegram-botup
Example
from botup import Dispatcher, Form
from botup.types import InputFile
from flask import Flask, request
from my_func import get_random_image
from config import TOKEN
from config import redis_connection as rdb
app = Flask(__name__)
dispatcher = Dispatcher()
form = Form(token=TOKEN, connection=rdb)
def start_handler(chat_id, update):
form.push(
func=form.send_message,
chat_id=chat_id,
text='Hi!\nTo get image press to /image'
)
def send_image(chat_id, update):
path = get_random_image()
cache = rdb.get(f'cache:{path}')
if cache:
input_file = InputFile(file_id=cache)
form.push(
func=form.send_photo,
chat_id=chat_id,
photo=input_file.as_dict()
)
else:
input_file = InputFile(path=path)
resp = form.push(
func=form.send_photo,
chat_id=chat_id,
photo=input_file.as_dict()
).wait()
rdb.set(f'cache:{path}', resp.photo[-1].file_id)
dispatcher.register_command_handler('/image', send_image)
dispatcher.register_command_handler('*', start_handler)
@app.route(f'/{TOKEN}', methods=['POST'])
def index():
try:
req = request.get_json()
dispatcher.handle(req)
except Exception as exc:
import traceback
print(traceback.format_exc())
return "!", 200
Q/A
- How to set webhook?
$ botup set_webhook --help
- How to test bot without requests?
Use fake_mode=True on Form initialization
form = Form(..., fake_mode=True, ...)
Or use --fake-mode on Sender starting
$ botup run_sender --token $TOKEN --fake-mode
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
telegram-botup-0.4.1.tar.gz
(20.3 kB
view hashes)
Built Distribution
Close
Hashes for telegram_botup-0.4.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 59508368baae5a97ce17af4acdee2a42ea5117f3a6057240a7dc7f7488467a96 |
|
MD5 | dbcb1e1ea32be214cdd02da503dd60e1 |
|
BLAKE2b-256 | 8120405300da9ae9a75d59e34fd0dfdaeec531da236100b450003243254ce0d2 |