Skip to content

Telegram Bot for playing the Akinator guessing game.(Unofficial)

Notifications You must be signed in to change notification settings

advnpzn/Akinator-Bot

Repository files navigation

Akinator-Bot

A Telegram bot where you can play the Akinator Guessing game check out Akinator on Telegram. If the bot is offline, contact me on telegram, so that I can look into it.

Self Host (Containers)

Create a .env file and fill up the following in it.

BOT_TOKEN=<your-bot-token>

# Mongo DB Username and Password
MONGO_ROOT_USER=admin
MONGO_ROOT_PASSWORD=admin

# Mongo Express Username and Password
MONGOEXPRESS_LOGIN=admin
MONGOEXPRESS_PASSWORD=admin

Change the username & password for MongoDB and MongoExpress as you like above.

Put the compose.yml in the same directory where .env file is present. After that, run the following:

docker compose up -d

Cloud Deployments (I'm not sure if this still works)

Deploy

Deploy on Railway

Setting up the database (In MondoDB Atlas if you don't wanna self host the Database)

Akinator uses MongoDB by default to store the user stats such as number of games won, abandoned, played and their telegram provided info and also to facilitate for the leaderboard function. MongoDB is easy to set up and work with, noSQL is easy compared to SQL. MongoDB even offers free cloud database for small use. You can create a local mongoDB cluster or use the online mongoDB Atlas to start.. Here, the scope of the following steps is to follow on the footpath of the online setup using mongoDB Atlas.

steps

  1. Go to mongoDB official site and login/register.

  2. On the Atlas tab, click create to create a new cluster.

  3. Now configure the cluster as you want such as the cloud service provider, region, cluster tier etc..

  4. Now click on the cluster name which will take you to the Overview page.

  5. Click Collections and create a database called aki-db. Inside aki-db create a collection called users

  6. Now on the left side, under the Security click the Database Access and add a user. Don't forget to note down the username and password!

  7. Now go to Network Access right under Database Access and check whether 0.0.0.0/0 is in the IP Access List. If not, then click Add IP Address and add 0.0.0.0/0.

  8. Now everything is set up! But there's still one step left, i.e to copy the mongoDB address to your database to be accessed by Akinator.

  9. Now under the Deployment tab, click Databases and you should see the cluster you created. Now click the button named Connect. Choose Connect your application. Select python as Driver and appropriate version.

  10. It should now give you a template string and will give you instructions on what need to be changed/replaced with. It usually askes you to replace <username>, <password> and myFirstDatabase.

  11. Do you now remember step 6 ? Where you should have noted down the username and password. yeah, now you have to replace the username, password. And for myFirstDatabase, replace it with your cluster name.

  12. Everything's done! Finally just copy the string and paste it in the appropriate environmenal variable.

Commands

/start - Start the bot

/language - Change language of the questions asked by Akinator ( This doesn't change the language of the bot interface! )

/childmode - Enable/Disable NSFW Content

/play - Start playing!

/me - Shows stats about you.

/leaderboard - Check leaderboard. It includes various categories!

Credits

  1. Infiniticity's Akinator.py (akinator on PyPI)
  2. python-telegram-bot
  3. hellboi-atul for heroku deploy button.