Этот проект представляет собой Discord-бота, который управляет выдачей ролей пользователям на основе их запросов. Бот использует базу данных для хранения запросов и взаимодействует с пользователями через кнопки и сообщения.
- Язык программирования: Python 3.9+
- Библиотеки:
discord.py— для взаимодействия с Discord API.asyncpg— для асинхронной работы с PostgreSQL.json— для работы с данными в формате JSON.asyncio— для асинхронного выполнения задач.
- База данных:
PostgreSQL - Дополнительные инструменты:
traceback— для отладки и вывода информации об ошибках.python-dotenv— для управления переменными окружения.
-
Запрос ролей:
- Пользователи могут запрашивать роли, нажимая на кнопку в специальном канале.
- Запросы сохраняются в базе данных.
-
Обработка запросов администраторами:
- Администраторы могут просматривать запросы и одобрять или отклонять их.
- После обработки запроса статус обновляется в базе данных.
-
Асинхронная работа:
- Бот использует асинхронные запросы к базе данных и Discord API для обеспечения высокой производительности.
-
Логирование ошибок:
- Все ошибки логируются с помощью
tracebackдля упрощения отладки.
- Все ошибки логируются с помощью
git clone https://github.com/ваш-username/ваш-репозиторий.git
cd ваш-репозиторийУбедитесь, что у вас установлен Python 3.9 или новее. Затем установите зависимости:
pip install -r requirements.txt- Установите
PostgreSQL, если он еще не установлен. - Создайте базу данных и пользователя:
CREATE DATABASE discord_bot;
CREATE USER bot_user WITH PASSWORD 'ваш_пароль';
GRANT ALL PRIVILEGES ON DATABASE discord_bot TO bot_user;Создайте файл .env в корне проекта и добавьте в него:
TOKEN=ваш_токен_бота
GUILD_ID=ваш_guild_id
ADM_ROLES_CH=id_канала_для_администраторов
CL_REQUEST_CH=id_канала_для_запросов
DATABASE_URL=postgresql://bot_user:ваш_пароль@localhost/discord_bot
python -m bot.botdiscord-bot/
├── bot/
│ ├── __init__.py
│ ├── config.py # Конфигурация бота
│ ├── database.py # Подключение к БД
├── events/
│ ├── __init__.py
│ ├── on_ready.py # Обработчик on_ready
│ ├── on_error.py # Обработчик on_error
├── models/
│ ├── __init__.py
│ ├── roles_request.py # Модели запросов
├── main.py # Точка входа
├── README.md
├── requirements.txt
└── .env # Переменные окружения
Проект распространяется под лицензией MIT.
- Убедитесь, что бот имеет необходимые разрешения (intents) на сервере Discord.
- Для работы с базой данных убедитесь, что PostgreSQL запущен.