Skip to content

A Telegram bot providing games that can be played in any chat via inline keyboards.

License

Notifications You must be signed in to change notification settings

jacklul/inlinegamesbot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

The bot is currently hosted at DOM Cloud.

Currently available games:

  • Tic-Tac-Toe
  • Tic-Tac-Four (@DO97)
  • Elephant XO (@DO97)
  • Connect Four
  • Rock-Paper-Scissors
  • Rock-Paper-Scissors-Lizard-Spock (@DO97)
  • Russian Roulette
  • Checkers
  • Pool Checkers

Deploying

Heroku

Instructions

Use this button to begin deployment:
Deploy

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

DOM Cloud

Instructions
  • Copy .env.example into .env and fill out the details
  • Upload .env and crontab to /home/<your-website-name>/config directory on the FTP
    • crontab will require modifications - use full paths to the script - e.g.: /home/<your-website-name>/public_html/bin/console
  • Run this deployment task:
source: 'https://github.com/jacklul/inlinegamesbot'
commands:
  - 'test -f ../config/.env && cp -f ../config/.env .'
  - 'test -f ../config/config.php && cp -f ../config/config.php . || exit 0'
  - 'composer install --no-dev --optimize-autoloader --ignore-platform-reqs'
  - 'php bin/console install'
  - 'php bin/console set'
  - 'test -f ../config/crontab && cat ../config/crontab | crontab - || exit 0'
features:
  - ssl
  - 'php 7.4'

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.

About

A Telegram bot providing games that can be played in any chat via inline keyboards.

Topics

Resources

License

Stars

Watchers

Forks

Contributors 4

  •  
  •  
  •  
  •  

Languages