Skip to main content

Pluggable Python Telegram Bot

Project description

Build Status Coverage Status Code Quality Current Version Python Versions

Despite this code having been in production in quite a heavy use environment for a good few months, I really wouldn’t class it as an example of great code.

It would be fair to say I got sidetracked, and decided to see how much I could abuse certain aspects of Python (such as metaclasses/class creation).

You have been warned!

With that out of the way, telegrambot is pretty easy to get up and running.

% pip install telegrambot
% cat mybot.cfg
[core]
bot_id = <telegram_bot_id>
token = <telegram_bot_token>
[bing]
key = <bing_api_key>
% telegrambot mybot.cfg

As it stands the framework exposes three commands; /crash and /hang were used to test error handling and threading during development whereas /get is a bring-your-own-api-key bing image searcher.

Adding plugins aims to be really easy, just create a namespace package under telegrambot.plugins and subclass telegrambot.plugins.base.BasePlugin (now that I think about it, the namespace package may not be necessary - I will have to re-think my motivation on that one).

Example Plugin

from telegrambot.plugins.base import BasePlugin

# due to annoying limitations class names must be unique
class HelloWorld(BasePlugin):
    # register /hello command to 'hello_handler' method
    commands {'hello': 'hello_handler'}

    def hello_handler(self, args, msg):
        # `args` is a list of the arguments after the command:
        # '/hello world' -> args=['world']
        # `msg` is a dictionary representing the Telegram `Message` object
        # see TelegramAPIMixin for available Telegram API functions
        self.send_message('Hello, {}'.(' '.join(args)),
                          msg['chat']['id'],
                          reply=msg['message_id'])

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

telegrambot-2.4.0.dev8.tar.gz (22.0 kB view details)

Uploaded Source

File details

Details for the file telegrambot-2.4.0.dev8.tar.gz.

File metadata

File hashes

Hashes for telegrambot-2.4.0.dev8.tar.gz
Algorithm Hash digest
SHA256 31f2ab56b1023d8a7dbdfcc21a777e66e9309a6d3f3c1dc7556dd81f8db45f72
MD5 8e5228f8f03c1bcd0984bb281c045a80
BLAKE2b-256 35d96a814404a36d8ce9fbfef4f19d7be8daa224f103cdd0cf66f0b386a9868e

See more details on using hashes here.

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