Skip to content

Latest commit

 

History

History
40 lines (28 loc) · 3.4 KB

README.ru.md

File metadata and controls

40 lines (28 loc) · 3.4 KB

Виртуальное казино в Telegram

В конце октября 2020 года команда Telegram выпустила очередное обновление мессенджера с поддержкой дайса игрового автомата. Вот он:

игровой автомат

Согласно документации на тип Dice в Bot API, слот-машина может принимать значения от 1 до 64 включительно. В файле dice_check.py вы найдёте функции для сопоставления значения дайса с тройкой выпавших элементов игрового автомата. Для демонстрации создан бот @DifichentoBot с ведением счёта на виртуальные очки.
Важным отличием от «традиционного» казино является невозможность влиять на выпадающие комбинации, т.к. итоговое значение генерируется на стороне Telegram.

Технологии

  • aiogram — работа с Telegram Bot API;
  • redis — персистентное хранение данных (персистентность включается отдельно);
  • cachetools — реализация троттлинга для борьбы с флудом;
  • Docker и Docker-Compose — быстрое разворачивание бота в изолированном контейнере.
  • Systemd

Установка

Скопируйте файл env_example как .env (с точкой в начале), откройте и отредактируйте содержимое. Создайте каталоги redis_data и redis_config, в последний подложите свой конфиг redis.conf (в репозитории есть пример). Также создайте каталог locales, и положите туда подкатологи с файлами локализаций для нужных языков (одновременно бот будет использовать только один язык). В директории bot/locales/example есть пример переводов для двух языков и инструкция.

Наконец, запустите бота командой docker-compose up -d.

Альтернативный вариант: используйте Systemd, пример службы тоже есть в репозитории.

Благодарности

  • @Tishka17 за изначальный вектор направления
  • @svinerus за компактную реализацию определения выпавшей комбинации (f6f42a841d3c1778f0e32)