Telegram bot library for Python and humans
Project description
TeBot - Telegram bot library for Python and humans
The goal is to to keep it simple.
Demo (sometimes may not work): @demo_tebot
How to install
pip3 install tebot
How to use
Start bot
If your project uses neotasker
from tebot import TeBot
# interval - polling interval, must be specified
mybot = TeBot(interval=2)
# obtain token from https://telegram.me/BotFather
mybot.set_token('botsecrettoken')
# optionally - load previous state
import json
with open('bot-state.json') as fh:
mybot.load(json.loads(fh.read()))
# start bot
mybot.start()
If it doesn't:
from neotasker import task_supervisor
from tebot import TeBot
task_supervisor.create_aloop('default', default=True)
task_supervisor.start()
mybot = TeBot(interval=2)
mybot.set_token('botsecrettoken')
mybot.start()
(refer to neotasker documentation for more info)
Stop bot
mybot.stop()
# if your project doesn't use neotasker
task_supervisor.stop()
# optionally - save bot state
with open('bot-state.json', 'w') as fh:
fh.write(json.dumps(mybot.serialize()))
Send messages
# text
mybot.send(chat_id, msg='hello world')
# files
with open('image.jpg', 'rb') as fh:
mybot.send(chat_id, media=fh.read())
Handle incoming messages
Override class methods:
-
handle_message(self, chat_id, text) handle regular messages
-
handle_command(self, chat_id, cmd) handle commands (starting with '/')
-
handle_query(self, chat_id, query_id, data) handle callback queries. By default, considers all query data are commands
-
on_message override to implement advanced message handling
-
on_query override to implement advanced callback query handling
Bot options
mybot.timeout = 5 # set Telegram API timeout (default: 10 sec)
mybot.retry_interval = 1 # if API command fails, re-send it in 1 second
# (default: None, don't re-send)
Everything else
Refer to function pydoc for more info.
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.