jacklul / inlinegamesbot

A Telegram bot providing games that can be played in any chat via inline keyboards.
https://telegram.me/inlinegamesbot
GNU Affero General Public License v3.0
119 stars 115 forks source link
bot games php-telegram-bot telegram telegram-bot

Inline Games License Telegram

A Telegram bot that provides real-time multiplayer games that can be played in any chat.

You can see the bot in action by messaging @inlinegamesbot.

Currently available games:

Deploying

Heroku

Instructions Use this button to begin deployment: [![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/jacklul/inlinegamesbot) Assuming everything was entered correctly your bot should be instantly working - if it's not you should try running `php bin/console post-install` inside the app. You will also want to add **Heroku Scheduler** addon and set up a hourly task to run the following command to clean up expired games from the database: - `php bin/console cron` _If this command times out too fast try using something like this instead: `php -d max_execution_time=2700 bin/console cron`_

Google Cloud Platform

Instructions - Install dependencies with `composer install` - Copy `env_variables.example.yaml` into `env_variables.yaml` and fill out the details - Run the deployment command: `gcloud app deploy --project YOUR-PROJECT-NAME-HERE app.yaml cron.yaml` - Visit `https://YOUR-PROJECT-NAME-HERE.appspot.com/admin?a=post-install` to perform post-install tasks

Fly.io

Instructions - `flyctl apps create` - `flyctl volumes create data --size=1` - `flyctl secrets set BOT_TOKEN=` - `flyctl secrets set BOT_USERNAME=` - `flyctl secrets set BOT_WEBHOOK=YOUR-APP-NAME.fly.dev` - `flyctl secrets set BOT_SECRET=` - If you want to use web+worker setup you have to replace `web:` line in `Procfile` - `flyctl deploy`

Note on translations

Translations support is implemented but it is not used mainly because translated text would be displayed to both players - this could be problematic in "gaming" groups - people setting language that other player can't understand!

Contributing

See CONTRIBUTING for more information.

License

See LICENSE.