An open API service indexing awesome lists of open source software.

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

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 запущен.