Skip to content

Kitiketov/saintBotTg

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

75 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SaintBotTg — Telegram‑бот для тайного Санты

Бот на 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.py

SQLite-база создаётся автоматически в src/db/database.db.

Запуск в Docker

docker build -t saint-bot .
docker run --rm -it -e BOT_TOKEN=XXX -e CHAT_ID=YYY saint-bot

Тесты

pytest

About

Telegram bot to play secret santa.

Resources

License

Stars

Watchers

Forks

Packages