Skip to content

aido-mth/games-bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Бот для записи на игры (Telegram)

Бот для записи на игры с лимитом участников, листом ожидания и штрафами за неявку.

Возможности

  • Лимит участников — в основную запись попадают первые N человек (по умолчанию 15).
  • Лист ожидания — кто не успел, попадает в очередь; при освобождении места приходит уведомление и автоматический перевод в основную запись.
  • Штраф за неявку — если организатор отмечает участника как не пришедшего, тому назначается штраф: в течение 2 недель (настраивается) он может записываться только в лист ожидания.

Работа в группе

Бота можно добавить в групповой чат: один и тот же бот работает и в личке, и в группе. В группе у чата свой список игр: команды /games и /create относятся к этому чату. В личке — к твоему личному списку. Команда /my показывает все твои записи по всем чатам.

Чат не засоряется: в группе в общем доступе только список игр с кнопками «Записаться». Подтверждения («Ты записан», «В листе ожидания» и т.п.) приходят во всплывающем уведомлении, после нажатия список в чате просто обновляется. Ответ на /my в группе бот отправляет в личку; если пользователь не открывал бота в личке — ответ придёт в группу.

Кто может создавать игры: по умолчанию любой. Можно ограничить: в .env задать ALLOWED_CREATORS=user_id1,user_id2 (только эти пользователи) и/или CREATOR_GROUP_ADMINS=1 (в группе создавать могут только админы группы). Узнать свой user_id можно через бота @userinfobot.

Команды

Команда Описание
/start Приветствие и краткая справка
/games Список предстоящих игр и кнопки «Записаться»
/create Создать новую игру (ввести только название)
/my Мои записи и кнопки «Отписаться»
/no_show <ID игры> Отметить неявку (только создатель игры) — затем выбрать участника в кнопках

Установка и запуск

Бот написан на aiogram 3 (async). Нужен Python 3.10+.

  1. Создай бота в Telegram через @BotFather и получи токен.
  2. Клонируй репозиторий и установи зависимости:
cd witches-bot
python3 -m venv venv
source venv/bin/activate   # Windows: venv\Scripts\activate
pip install -r requirements.txt
  1. Задай переменные окружения (или создай файл .env и подгружай его):
export BOT_TOKEN=твой_токен_от_BotFather
  1. Запуск:
python main.py

Или одной командой (создаст venv и установит зависимости при первом запуске):

chmod +x run.sh && ./run.sh

Настройки (переменные окружения)

Переменная По умолчанию Описание
BOT_TOKEN Токен бота (обязательно)
MAX_PARTICIPANTS 15 Максимум человек в основной записи на одну игру
PENALTY_DAYS 14 Дней штрафа (только лист ожидания) за неявку
DATABASE_PATH bot_data.db Путь к файлу SQLite
ALLOWED_CREATORS Через запятую user_id тех, кто может создавать игры (пусто = все)
CREATOR_GROUP_ADMINS 0 В группе только админы группы могут создавать игры (1/true = да)

Пример .env

Скопируй .env.example в .env и подставь свой токен:

cp .env.example .env
# Отредактируй .env

При запуске можно подгружать .env вручную или через python-dotenv (добавить в проект при необходимости).

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages