Skip to content
This is a telegram bot written in python. It uses the CLI of telegram by vysheng to connect. No longer developed. Checkout
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


This is a telegram bot written in python. It uses the CLI of telegram by vysheng to connect.

Note: There is a better bot

This python based bot was written when I did not know how to use lua (which is embedded in tg-cli) to extend tg-cli.

But user yagop came up with a better bot written in lua

I will be submitting my improvements to his repo. If you want to keep up with my own fork, check this out

Since Lua is a lovable language and sicne tg-cli can pass it structured arguments, I will be trying to develop pure Lua modules in the lua bot rather than continue developing in python in this bot here.

Also, currently the way this bot operates is by reading lines from tg-cli output and parsing who sent it, to which group, etc based on the colours of the output. This is very unreliable and buggy and therefore not the preferred way of doing things. Although it works now, it could break any time. So it is wiser to follow the Lua version.

If you still want to use this bot, continue reading.


Install and setup vysheng/tg

Install vysheng's tg cli

Run that and configure an account

./telegram -k

Install dependencies

The twitter module requires Python Twitter Tools

sudo easy_install twitter
twitter authorize

Install BeautifulSoup and other python modules with easy_install

sudo easy_install BeautifulSoup

Download python-telegram-bot

Clone this repository by doing

git clone && cd python-telegram-bot

Configure python-telegram-bot

There are a few changes to be made to the source code before it can start working.

In, change pathtotg to the path to the vysheng's tg CLI In, in the twitter function, change groupeer to the telegram user to whom you want the bot to send a message when there's a new tweet. In, in the twitter function, change the follow array to the accounts you want to get updates from In, put an appid by signing up at wolfram developers

Disabling modules

If you don't want some of these modules, just remove them from the modules array in callmodule function If you want to disable twitter, just comment out all lines with 'twitbot' in it in the main function. If you want to disable robotic replies turn chattybot to False


The features as of now are

  • can be invoked from within a group or a direct message
  • wiki "search terms" will return the first paragraph of the wikipedia article
  • google "search terms" will return a few google results
  • bot "question" will fetch the answer from wolfram alpha api
  • new twitter messages from your feed are automatically sent to the defined peer
  • talks random shit based on pandorabots web service thanks to chatterbotapi

Known Bugs

  • twitter module repeats tweets. This is more of a problem with the twitter python module rather than this code. Todo: prevent duplicate tweets using timestamp
  • chatting with oneself is buggy, I suppose. Not tested very much. No time :P
You can’t perform that action at this time.