Telegram-бот для ивентов и конкурсов на aiogram.
- Проверка обязательной подписки на канал перед доступом к боту.
- Главное меню с активными ивентами (inline-кнопки).
- Карточка ивента с датами, описанием, призовыми местами и участием.
- Регистрация в ивенте + уведомление админов.
- Шаблоны ивентов:
- отправить фото;
- отправить файл;
- отправить сообщение;
- без отправки материалов (только участие, поддержан deep-link
join_<id>).
- Для формата «только участие» победители выбираются автоматически случайным образом после завершения ивента, сразу фиксируются в БД и отправляются админам в ЛС.
- Команда
/myс перечнем ивентов пользователя и статусом выигрыша. - Авто-уведомления участникам:
- подтверждение участия;
- старт ивента (если пользователь был зарегистрирован заранее);
- напоминание за 24 часа до дедлайна;
- сообщение о результатах после завершения.
- Отправка работы (максимум 1) + пересылка администраторам.
- Автоматическая отправка всех работ администраторам после завершения ивента.
- Для формата «просто участие» победители выбираются случайно и получают отдельное уведомление в ЛС сразу после розыгрыша.
- Админ-панель
/admin:- создание ивента;
- список ивентов;
- активация/деактивация;
- изменение дедлайна;
- назначение победителей;
- удаление ивента;
- ручная выгрузка работ.
- Установите зависимости:
pip install -r requirements.txt- Создайте
.envна основе.env.exampleи заполните:
BOT_TOKENADMIN_IDS(через запятую)
- Запустите бота:
python3 -m app.main- Бот должен быть админом канала
REQUIRED_CHANNEL, иначе проверка подписки не будет работать корректно. - Даты в админ-панели вводятся в UTC, формат:
ДД.ММ.ГГГГ ЧЧ:ММ.