Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Latest commit

 

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DiscordEmoteBot

Discord-бот для прогнозов через реакции. Администратор через GUI регистрирует сообщение и время, в течение которого принимаются ответы. Пользователи голосуют реакциями 1️⃣ / 2️⃣, а когда время выходит и правильный вариант отмечен, угадавшие получают очко.

Возможности

  • Окно управления на CustomTkinter: добавление сообщений и выбор правильного ответа (Team 1 / Team 2)
  • Учёт реакций пользователей (засчитывается последняя реакция)
  • Автоматический подсчёт очков каждые 10 секунд по истечении времени
  • Команда !score [@user] — показать количество очков
  • Хранение данных в PostgreSQL через SQLAlchemy

Требования

  • Python 3.10+
  • PostgreSQL
  • Токен Discord-бота с включённым Message Content Intent (Developer Portal → Bot → Privileged Gateway Intents)

Установка

git clone <url-репозитория>
cd DiscordEmoteBot
python -m venv venv
venv\Scripts\activate        # Windows
# source venv/bin/activate   # Linux / macOS
pip install -r requirements.txt

Настройка

  1. Создайте базу данных в PostgreSQL (например, EmoteBotDB). Таблицы создаются автоматически при первом запуске.
  2. Скопируйте .env.example в .env и заполните значения:
DISCORD_TOKEN=your-discord-bot-token
DATABASE_URL=postgresql+psycopg2://user:password@localhost:5432/EmoteBotDB
Переменная Описание
DISCORD_TOKEN Токен бота из Discord Developer Portal
DATABASE_URL Строка подключения SQLAlchemy к PostgreSQL

Запуск

cd src
python bot_controller.py

Бот запускается в отдельном потоке, параллельно открывается окно управления.

Использование

  1. Опубликуйте в Discord сообщение с вопросом и скопируйте его ID (режим разработчика → «Копировать ID»).
  2. В окне бота введите Message id и Duration (длительность в секундах), нажмите Submit.
  3. Пользователи ставят реакции 1️⃣ или 2️⃣.
  4. В таблице выберите правильный вариант (Team 1 или Team 2).
  5. После окончания времени бот начислит очки угадавшим. Посмотреть счёт — !score или !score @user.

Структура проекта

src/
├── bot_controller.py   # логика бота, обработка реакций, подсчёт очков, точка входа
├── gui.py              # окно управления (CustomTkinter)
└── models.py           # модели SQLAlchemy и подключение к БД

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages