Este es un bot de Discord desarrollado en Python que se encarga de recolectar métricas y datos de servidores de Discord, incluyendo el uso de emoticonos, mensajes, y estadísticas de voz. Utiliza bases de datos PostgreSQL y MongoDB para almacenar y gestionar los datos, respetando la privacidad de los usuarios.
Este bot se conecta a un servidor de Discord y recolecta información sobre el servidor, como la cantidad de mensajes enviados, emoticonos más usados, tiempo en llamadas de voz y estadísticas de usuarios. Los datos son almacenados temporalmente en bases de datos PostgreSQL y MongoDB para un uso específico. Los usuarios pueden personalizar el comportamiento del bot mediante un archivo .env para gestionar las configuraciones como el prefijo de comandos, el idioma y las claves de acceso a la base de datos.
- Python 3.13.2
- uv
- Ruff
- (Opcional) Docker y Docker Compose
-
Instalar
uv(si no está ya instalado):pip install uv
O consulta la documentación oficial de uv para otras opciones de instalación.
-
Clonar este repositorio:
git clone https://github.com/Afordin/beerdin cd beerdin -
Sincronizar dependencias:
uv sync
- Esto creará o actualizará el entorno virtual
.venve instalará todas las dependencias (incluyendo Ruff).
- Esto creará o actualizará el entorno virtual
-
Ejecutar la aplicación (usando el CLI de FastAPI, instalado dentro de
.venv):uv run python app/main.py
Para ejecutar Ruff a través de uv, simplemente ejecuta:
uv run ruff check .Esto analizará tu código y mostrará cualquier sugerencia de estilo o sintaxis.
El Dockerfile incluido:
- Utiliza una imagen base de Python slim.
- Copia el binario de
uv. - Copia el proyecto en
/app. - Ejecuta
uv syncpara instalar las dependencias. - Utiliza
fastapipara iniciar la aplicación dentro del contenedor.
También encontrarás un archivo docker-compose.yml para ejecutar el servicio. Úsalo de la siguiente manera:
docker-compose build
docker-compose up -dEsto:
- Construye la imagen usando el Dockerfile.
- Inicia el bot.