2016-03-08 09:11:38 +08:00
|
|
|
# UNO Bot
|
2017-02-24 13:26:58 +08:00
|
|
|
|
|
|
|
[![License: AGPL v3](https://img.shields.io/badge/License-AGPL%20v3-blue.svg)](./LICENSE)
|
|
|
|
|
2017-08-19 05:36:30 +08:00
|
|
|
Telegram Bot that allows you to play the popular card game UNO via inline queries. The bot currently runs as [@unobot](http://telegram.me/unobot).
|
2016-03-08 09:11:38 +08:00
|
|
|
|
|
|
|
To run the bot yourself, you will need:
|
2017-08-19 05:36:30 +08:00
|
|
|
- Python (tested with 3.4+)
|
|
|
|
- The [python-telegram-bot](https://github.com/python-telegram-bot/python-telegram-bot) module
|
2016-09-01 09:58:46 +08:00
|
|
|
- [Pony ORM](https://ponyorm.com/)
|
2016-03-08 09:11:38 +08:00
|
|
|
|
2017-02-24 13:26:58 +08:00
|
|
|
## Setup
|
2017-08-19 05:36:30 +08:00
|
|
|
- Get a bot token from [@BotFather](http://telegram.me/BotFather) and change configurations in `config.json`.
|
2017-09-20 05:37:47 +08:00
|
|
|
- Convert all language files from `.po` files to `.mo` by executing the bash script `compile.sh` located in the `locales` folder.
|
|
|
|
Another option is: `find . -maxdepth 2 -type d -name 'LC_MESSAGES' -exec bash -c 'msgfmt {}/unobot.po -o {}/unobot.mo' \;`.
|
2017-08-19 05:36:30 +08:00
|
|
|
- Use `/setinline` and `/setinlinefeedback` with BotFather for your bot.
|
2021-01-24 20:29:31 +08:00
|
|
|
- Use `/setcommands` and submit the list of commands in commandlist.txt
|
2017-08-22 03:44:30 +08:00
|
|
|
- Install requirements (using a `virtualenv` is recommended): `pip install -r requirements.txt`
|
2016-09-01 09:58:46 +08:00
|
|
|
|
2017-12-07 16:27:51 +08:00
|
|
|
You can change some gameplay parameters like turn times, minimum amount of players and default gamemode in `config.json`.
|
|
|
|
Current gamemodes available: classic, fast and wild. Check the details with the `/modes` command.
|
2017-11-28 00:59:19 +08:00
|
|
|
|
2017-08-19 05:36:30 +08:00
|
|
|
Then run the bot with `python3 bot.py`.
|
2016-03-08 09:11:38 +08:00
|
|
|
|
2017-08-19 05:36:30 +08:00
|
|
|
Code documentation is minimal but there.
|