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
.venv
e 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 sync
para instalar las dependencias. - Utiliza
fastapi
para 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 -d
Esto:
- Construye la imagen usando el Dockerfile.
- Inicia el bot.