Бот на aiogram, который помогает собрать участников, обменять пожеланиями к подаркам и провести Тайного санту. Стараюсь запускать каждый ноябрь-декабрь тут: @taini_santa_bot
- создание комнат с ограничением по количеству, приглашение по коду
roomName:1234; - редактирование настроек комнаты: бюджет, дата/время мероприятия, тип обмена;
- участие как админа или гостя, удаление участников и закрытие комнаты;
- запись пожеланий с текстом и фото, дублирование фото в резервный чат;
- запуск розыгрыша и рассылка пар «кому даришь» всем участникам;
- Python 3.11+ (Dockerfile использует 3.13);
- зависимости из
requirements.txt.
Создайте файл .env в корне проекта:
BOT_TOKEN="<токен вашего Telegram-бота от @BotFather>"
CHAT_ID="<ID технического чата/канала, куда бот дублирует фото желаний туда надо добавить бота с доступом к записи>"
ADMIN_ID="<обязательный ID администратора для команд /backup и /status>"
BOT_TOKEN— обязательный токен бота.CHAT_ID— необязательный, но полезный ID чата/канала, куда бот отправляет копии фото из желаний, чтобы они не пропали из-за ограничений Telegram. Получить можно командой/ID, переслав боту сообщение из нужного чата/канала.ADMIN_ID— обязательный ID администратора, которому доступны команды/backupи/status.
Не храните .env в репозитории.
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
python main.pySQLite-база создаётся автоматически в src/db/database.db.
docker build -t saint-bot .
docker run --rm -it -e BOT_TOKEN=XXX -e CHAT_ID=YYY saint-botpytest