You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
Gourav Kumar ada26687a8 Modified readme for sqlite support 2 years ago
.env.sample Modified readme for sqlite support 2 years ago
.gitignore First commit 2 years ago
readme.md Modified readme for sqlite support 2 years ago
requirements.txt Added env file sample and requirements.txt for easy cloning 2 years ago
word_bot.py added support for sqlite database 2 years ago
wordbot.sqlite added support for sqlite database 2 years ago

readme.md

Telegram WordBot

This bot helps you learn new words for your GRE/GMAT preparations. All you have to do is start a chat with the @random_gre_word_bot and send /word. WordBot will respond with a randomly selected word, its grammatical type, and its definition. You'll also have the option of fetching the pronunciation and synonyms if you wish.

To run the bot on your own server

  1. Open Telegram and create a bot using @BotFather
  2. Get the bot's token
  3. Clone this repository
  4. Rename .env.sample to .env
  5. Add all the values in the .env file including the bot token
  6. Install all the addons from requirements.txt
  7. Start the bot with the command python word_bot.py

Database

Postgres and Sqlite databases are supported by the script natively. The included sqlite database will work out of the box. For connecting to sqlite, only the database file name is required, which is already provided in the .env.sample file. Hence, no changes to the database section will be required for sqlite.

If you wish to use PostgreSQL database, change the value of the DATABASE key in the .env file to postgres. Make sure you also populate the rest of the values for the database. In case of postgres, the DB_FILE variable will be ignored.

Have fun learning random words!

To-do

  1. Complete synonyms functionality
  2. Add the ability to fetch specific words
  3. Get a complete list of words (current list is less common words only)
  4. Linkify synonyms