Telegram bot that queries subreddit r/Jokes from Reddit (reddit.com/r/Jokes) for the best jokes of the day (can be modified) and then sends these jokes via telegram chat with a user.
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.
What things you need to install the software and how to install them
sudo pip install telepot
sudo pip install praw
OR
You can install them by using requirements file
pip install -r requirements.txt
telepot is a python framework for Telegram Bot API. This package will be used to connect to Telegram API and to communicate with users over the internet.
praw is Python Reddit API Wrapper. This will be the main and only package to connect to Reddit's API and extract desired data.
Nothing too complicated. The source code is written in python, so no worries.
The only thing that needs to be done before execution is the config profile. In the config profile you should fill your Reddit API details and Telegram Bot's unique API key.
For that please follow these steps
git clone https://github.com/thecsw/rjokes
cd rjokes
mv example.config.py config.py
nano config.py
Now here, you can use any text editor you like. When opening the file you will see this
#This is for reddit
client_id = 'take it from your account\'s preferences'
client_secret = 'take it from your account\'s preferences'
username = 'username'
password = 'password'
user_agent = 'something'
#This is for telegram
token = 'YOUR TELEGRAM API KEY'
So what will you need to do now is to get your Reddit API details from here and your Telegram API token from BotFather
After filling out the keys, save and exit.
Config file is ready and you are good to go!
Just run this
python rjokes.py
That is everything. The script now just runs and any user that is connected to your Telegram bot can request a joke via the /joke command.
I know that the script is little bit messy, I tried. Simple and small, but it works!
Now, I want to give little insight on the code. If you want to take posts from any other subreddit, in the main source file rjokes.py, change this variable's value to any subrreddit you like
sub = 'Jokes' # Means it will extract posts from reddit.com/r/Jokes
Also, this script takes only the best jokes of the last 24 hours and updates them every hour. If you want to change the source of jokes, change this line
hot_python = subreddit.top('day', limit=LIMIT)
LIMIT is the amount of posts to extract
Well and also the time interval is in seconds
time.sleep(3600)
- Sagindyk Urazayev - Initial work - thecsw
This project is licensed under the The GNU General Public License - see the LICENSE.md file for details