Телеграм бот для проведения розыгрышей
Профессиональный бот для организации розыгрышей и конкурсов в Телеграм каналах с расширенными возможностями автоматизации.
Основные возможности
Бот позволяет администраторам каналов создавать и управлять розыгрышами с настраиваемыми условиями участия. Поддерживает два режима участия: ручной, когда пользователи нажимают кнопку для участия, и автоматический, когда все участники канала добавляются мгновенно. Администраторы могут требовать подписку на несколько каналов перед участием.
Планирование и управление
Розыгрыши могут быть опубликованы немедленно или запланированы на конкретную дату и время. Условия завершения гибкие - либо при достижении целевого количества участников, либо в указанное время. Бот автоматически выбирает случайных победителей и объявляет результаты в канале.
Расширенный функционал
Встроенная система управления участниками позволяет добавлять или удалять пользователей вручную. Активные розыгрыши можно редактировать в реальном времени включая текст, надписи кнопок, количество победителей и время завершения. Функция рассылки отправляет персонализированные уведомления о розыгрыше всем участникам канала.
Техническая реализация
Создан на Python с использованием фреймворка aiogram для функционала бота и Telethon для расширенных возможностей Telegram API. Использует базу данных SQLite для хранения данных. Поддерживает несколько часовых поясов и включает автоматические планировщики для розыгрышей по времени. Управление сессиями обеспечивает постоянную аутентификацию для автоматизированных функций.
Автоматизация
Автоматическое сканирование участников использует Telegram API для сбора всех участников канала кроме администраторов и ботов. Система рассылки отправляет сообщения участникам канала с защитой от флуда и автоматической логикой повторных попыток. Фоновые планировщики проверяют завершенные розыгрыши и запланированные публикации каждые 30 секунд.
Безопасность
Доступ администратора контролируется проверкой ID пользователя. Переменные окружения для конфиденциальных данных. Файлы сессий хранятся безопасно. Проверка подписки перед участием. Реализовано ограничение частоты запросов для предотвращения злоупотребления Telegram API.
На чём сделано
- Python 3.8+
- aiogram для Telegram Bot API
- Telethon для MTProto
- SQLite для базы данных
- pytz для обработки часовых поясов. Модульная архитектура с отдельными обработчиками для разных функций бота


