This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (pypi.python.org).
Help us improve Python packaging - Donate today!

Pluggable Python Telegram Bot

Project Description

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'])
Release History

Release History

This version
History Node

2.4.0.dev12

History Node

2.4.0.dev11

History Node

2.4.0.dev10

History Node

2.4.0.dev9

History Node

2.4.0.dev8

History Node

2.4.0.dev6

Download Files

Download Files

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

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
telegrambot-2.4.0.dev12.tar.gz (22.0 kB) Copy SHA256 Checksum SHA256 Source Dec 5, 2016

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting