https://github.com/vovan12361/lspd-manager
Bot for LSPD Community sa-es
https://github.com/vovan12361/lspd-manager
discord-bot discord-py gsheets python
Last synced: about 1 month ago
JSON representation
Bot for LSPD Community sa-es
- Host: GitHub
- URL: https://github.com/vovan12361/lspd-manager
- Owner: vovan12361
- License: mit
- Created: 2025-02-17T22:14:38.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-03-24T20:26:41.000Z (about 1 year ago)
- Last Synced: 2025-03-24T21:29:57.449Z (about 1 year ago)
- Topics: discord-bot, discord-py, gsheets, python
- Language: Python
- Homepage:
- Size: 82 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.MD
- License: LICENSE.txt
Awesome Lists containing this project
README
# Discord Bot for Role Management
Этот проект представляет собой Discord-бота, который управляет выдачей ролей пользователям на основе их запросов. Бот использует базу данных для хранения запросов и взаимодействует с пользователями через кнопки и сообщения.
## Используемый стек технологий
- **Язык программирования**: Python 3.9+
- **Библиотеки**:
- `discord.py` — для взаимодействия с Discord API.
- `asyncpg` — для асинхронной работы с PostgreSQL.
- `json` — для работы с данными в формате JSON.
- `asyncio` — для асинхронного выполнения задач.
- **База данных**: `PostgreSQL`
- **Дополнительные инструменты**:
- `traceback` — для отладки и вывода информации об ошибках.
- `python-dotenv` — для управления переменными окружения.
## Основные функции
1. **Запрос ролей**:
- Пользователи могут запрашивать роли, нажимая на кнопку в специальном канале.
- Запросы сохраняются в базе данных.
2. **Обработка запросов администраторами**:
- Администраторы могут просматривать запросы и одобрять или отклонять их.
- После обработки запроса статус обновляется в базе данных.
3. **Асинхронная работа**:
- Бот использует асинхронные запросы к базе данных и Discord API для обеспечения высокой производительности.
4. **Логирование ошибок**:
- Все ошибки логируются с помощью `traceback` для упрощения отладки.
## Установка и запуск
### 1. Клонирование репозитория
```bash
git clone https://github.com/ваш-username/ваш-репозиторий.git
cd ваш-репозиторий
```
### 2. Установка зависимостей
Убедитесь, что у вас установлен `Python 3.9` или новее. Затем установите зависимости:
```bash
pip install -r requirements.txt
```
### 3. Настройка базы данных
1. Установите `PostgreSQL`, если он еще не установлен.
2. Создайте базу данных и пользователя:
```bash
CREATE DATABASE discord_bot;
CREATE USER bot_user WITH PASSWORD 'ваш_пароль';
GRANT ALL PRIVILEGES ON DATABASE discord_bot TO bot_user;
```
### 4. Настройка переменных окружения
Создайте файл `.env` в корне проекта и добавьте в него:
```
TOKEN=ваш_токен_бота
GUILD_ID=ваш_guild_id
ADM_ROLES_CH=id_канала_для_администраторов
CL_REQUEST_CH=id_канала_для_запросов
DATABASE_URL=postgresql://bot_user:ваш_пароль@localhost/discord_bot
```
### 5. Запуск бота
```bash
python -m bot.bot
```
### Структура
```
discord-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 запущен.