# 🤖 Bots de Traducción Multi-Plataforma

Sistema integral de traducción para **Discord** y **Telegram** con **Panel de Control Web**, diseñado para ofrecer una experiencia minimalista y eficiente utilizando el motor de **LibreTranslate**.

## 🌟 Características Principales

### 🟦 Discord Bot
- **Interfaz Minimalista:** Botones de traducción representados únicamente por banderas (flags).
- **Edición en Tiempo Real:** Al pulsar una bandera, el bot edita su propio mensaje con la traducción, evitando el "salto" al final del chat y permitiendo mantener el hilo de la conversación.
- **Soporte de Menciones:** Respeta las menciones de usuarios y roles dentro de las traducciones.

### 🟩 Telegram Bot
- **Diseño Compacto:** Botones organizados en columnas (filas de 4 banderas) para un acceso rápido y visual.
- **Soporte Multimedia:** Traduce texto en fotos, videos, documentos, animaciones, audios y notas de voz.
- **Edición Inteligente:** Actualiza el pie de foto (caption) o el mensaje de texto original con la traducción para no ensuciar el chat.

### 🌐 Panel de Administración
- **Gestión de Idiomas:** Sincroniza idiomas disponibles desde LibreTranslate.
- **Configuración Visual:** Permite asignar y cambiar los emojis de banderas para cada idioma.
- **Control Total:** Configura qué idiomas aparecen en cada bot de forma independiente.

---

## 🚀 Instalación y Despliegue

### Requisitos Previos
- Docker y Docker Compose (Recomendado).
- Python 3.12+ (para ejecución manual).
- Una instancia de LibreTranslate accesible.

### Despliegue con Docker (Recomendado)
1. Configura tu archivo `.env` o utiliza las variables en `docker-compose.yml`.
2. Inicia los servicios:
   ```bash
   docker-compose up -d
   ```
3. Accede al panel web en `http://tu-ip:8091`.

### Ejecución Manual (Entorno Local)
1. Instala las dependencias:
   ```bash
   pip install -r requirements.txt
   ```
2. Inicia todos los servicios simultáneamente:
   ```bash
   python3 iniciar_todo.py
   ```

---

## ⚙️ Configuración

El sistema utiliza un archivo `config.yaml` y una base de datos (SQLite o MySQL) para gestionar los ajustes.

### Variables de Entorno Clave:
- `DISCORD_TOKEN`: Token de tu bot en Discord Developer Portal.
- `TELEGRAM_TOKEN`: Token de tu bot proporcionado por @BotFather.
- `LIBRETRANSLATE_URL`: URL de tu motor de traducción.
- `ADMIN_USERNAME` / `ADMIN_PASSWORD`: Credenciales para el panel web.

---

## ⚠️ Notas de Mantenimiento Importantes

### Conflicto de Servicios
**IMPORTANTE:** No ejecutes los bots mediante un servicio de sistema (`systemd`) y Docker al mismo tiempo, ya que causará desconexiones constantes por duplicidad de tokens.

Para asegurar que solo Docker gestione los bots, desactiva el servicio de sistema:
```bash
sudo systemctl stop bots.service
sudo systemctl disable bots.service
```

### Logs
Puedes consultar la actividad de los bots en la carpeta `/app/data/logs` (dentro del contenedor) o en el directorio `logs/` del proyecto.

---

## 🛠️ Tecnologías Utilizadas
- **Lenguaje:** Python 3.12
- **Frameworks:** Discord.py, Python-Telegram-Bot, FastAPI
- **Base de Datos:** SQLite / MySQL
- **Frontend:** Jinja2 Templates & CSS Minimalista
- **Motor de Traducción:** LibreTranslate API

---
Desarrollado por **nickpons666** 🚀
