# Sistema de Administración de Bots - Discord & Telegram

Sistema completo de administración para bots de Discord y Telegram con panel web, gestión de mensajes, plantillas, destinatarios y más.

## 🚀 Características Principales

- ✨ **Panel de Administración Web** - Interfaz moderna para gestionar ambos bots
- 🔐 **Autenticación JWT** con roles (Admin, Editor) y permisos granulares
- 📝 **Gestión de Mensajes** - Envío inmediato, programado y recurrente
- 📋 **Sistema de Plantillas** - Crear y reutilizar plantillas de mensajes
- 👥 **Gestión de Destinatarios** - Usuarios, canales y grupos
- 🖼️ **Galería de Imágenes** compartida con thumbnails automáticos
- 🤖 **Comandos** - Slash Commands (Discord) y comandos de texto (Telegram)
- 👋 **Mensaje de Bienvenida** configurable con soporte multiidioma
- 📊 **Sistema de Logs** completo con filtrado y visualización
- 🌐 **Traducción Automática** con LibreTranslate
- 🔔 **Notificaciones Toast** no intrusivas

## 📋 Requisitos

- PHP >= 8.0
- MySQL 5.7+ o MariaDB 10.3+
- Extensiones PHP: pdo, pdo_mysql, json, gd, curl, sodium
- Composer
- Servidor web (Apache/Nginx)
- LibreTranslate (opcional, para traducciones)

## 🔧 Instalación

1. **Clonar el repositorio**
```bash
git clone http://10.10.4.17:3002/nickpons666/sistema_para_juego.git
cd sistema_para_juego
```

2. **Instalar dependencias**
```bash
composer install
```

3. **Configurar variables de entorno**
```bash
cp .env.example .env
nano .env
```

Edita las siguientes variables:
```
APP_URL=https://tu-dominio.com
DB_HOST=tu-host-db
DB_PORT=3306
DB_NAME=tu-base-de-datos
DB_USER=tu-usuario
DB_PASS=tu-contraseña

DISCORD_GUILD_ID=tu-guild-id
DISCORD_BOT_TOKEN=tu-bot-token

TELEGRAM_BOT_TOKEN=tu-bot-token
TELEGRAM_WEBHOOK_TOKEN=token-secreto-webhook

JWT_SECRET=clave-secreta-muy-larga

LIBRETRANSLATE_URL=http://localhost:5000
```

4. **Crear la base de datos**
```bash
mysql -u tu-usuario -p < shared/database/schema.sql
```

5. **Crear usuario administrador**
```bash
php create_admin.php
```

6. **Configurar permisos de carpetas**
```bash
chmod -R 755 gallery/uploads gallery/thumbnails
chown -R www-data:www-data gallery/uploads gallery/thumbnails
```

7. **Configurar Webhooks**

**Discord:**
- Ve a la configuración del bot en Discord Developer Portal
- Configura el webhook: `https://tu-dominio.com/discord/webhook/index.php`

**Telegram:**
```bash
curl -X POST "https://api.telegram.org/bot<TU_BOT_TOKEN>/setWebhook" \
-d "url=https://tu-dominio.com/telegram/webhook/index.php" \
-d "secret_token=<TU_TOKEN_WEBHOOK>"
```

## 📁 Estructura del Proyecto

```
/
├── discord/                    # Módulos de Discord
│   ├── api/                   # APIs REST (messages, templates, recipients)
│   ├── views/                 # Vistas HTML (messages, templates, recipients, logs)
│   └── webhook/               # Webhook receptor de Discord
├── telegram/                  # Módulos de Telegram
│   ├── api/                   # APIs REST (messages, templates, recipients)
│   ├── views/                 # Vistas HTML (messages, templates, recipients, logs)
│   └── webhook/               # Webhook receptor de Telegram
├── gallery/                   # Sistema de galería compartido
│   ├── api/                   # APIs REST (upload, list, edit, delete)
│   ├── uploads/               # Imágenes subidas
│   └── thumbnails/            # Thumbnails generados
├── shared/                    # Código compartido
│   ├── auth/                  # Sistema de autenticación JWT
│   ├── database/              # Conexión a base de datos
│   ├── languages/             # Gestión de idiomas
│   ├── translations/          # Archivos de traducción
│   ├── utils/                 # Helpers y funciones utilitarias
│   └── public/js/             # JavaScript compartido (notificaciones)
├── admin/                     # Panel de administración de usuarios
├── .env                       # Variables de entorno
├── login.php                  # Página de login
├── index.php                  # Panel principal
└── create_admin.php           # Script para crear admin
```

## 🎯 Uso

### Acceso al Sistema

1. Abre tu navegador y ve a `https://tu-dominio.com/login.php`
2. Ingresa con las credenciales del admin que creaste
3. Selecciona Discord o Telegram desde el panel principal

### Enviar un Mensaje

1. Ve a **Crear Mensaje** en la plataforma deseada
2. Selecciona el destinatario (o múltiples)
3. Escribe el contenido o carga una plantilla
4. Puedes insertar imágenes desde la galería
5. Selecciona: Inmediato, Programado o Recurrente
6. Haz clic en **Enviar**

### Crear una Plantilla

1. Ve a **Plantillas**
2. Haz clic en **Crear Plantilla**
3. Asigna un nombre, comando (opcional) y contenido
4. Guarda y previsualiza

### Configurar Mensaje de Bienvenida

1. Ve a **Mensaje de Bienvenida**
2. Activa/Desactiva la opción
3. Configura el canal destino
4. Escribe el mensaje con soporte HTML
5. Selecciona imagen opcional
6. Elige idiomas habilitados
7. Prueba el mensaje antes de guardar

## 🔒 Seguridad

- Tokens JWT con expiración configurable
- Verificación de permisos por rol para cada acción
- Validación de webhooks (Discord Ed25519, Telegram secret_token)
- Sanitización de entradas y prevención de SQL injection
- Logs de errores y actividad

## 📊 Estado del Proyecto

- ✅ Fase 1-3: Preparación, Base de Datos, Autenticación - **100%**
- ✅ Fase 4.1: Plataforma Discord - **100%**
- ✅ Fase 4.2: Plataforma Telegram - **100%**
- ✅ Fase 5: Módulos Compartidos - **100%**
- ⏳ Fase 6: Documentación y Pruebas Finales - **En progreso**

## 🛠️ Tecnologías Utilizadas

- **Backend:** PHP 8.0+
- **Frontend:** HTML5, CSS3, JavaScript, Bootstrap 5, Summernote
- **Autenticación:** Firebase JWT
- **Base de Datos:** MySQL/MariaDB
- **API Discord:** team-reflex/discord-php
- **API Telegram:** telegram-bot/api
- **Traducción:** LibreTranslate
- **Automatización:** n8n (integración opcional)

## 📝 Scripts de Mantenimiento

### Verificar conexión con Discord
```bash
php discord/test_connection.php
```

### Verificar conexión con Telegram
```bash
php telegram/test_connection.php
```

### Verificar idiomas
```bash
php check_idiomas.php
```

### Verificar intents de Discord
```bash
php check_intents.php
```

## 🐛 Troubleshooting

### Error de conexión a base de datos
- Verifica las credenciales en `.env`
- Asegúrate de que el servidor MySQL esté corriendo
- Verifica permisos del usuario en la base de datos

### Webhook no recibe mensajes
- Verifica que la URL sea accesible públicamente (HTTPS)
- Para Discord: Verifica la verificación Ed25519 (extensión sodium)
- Para Telegram: Verifica el secret_token en el webhook

### Imágenes no se suben
- Verifica permisos de las carpetas `gallery/uploads` y `gallery/thumbnails`
- Verifica configuración de upload_max_filesize en php.ini
- Asegúrate de que GD esté habilitado en PHP

## 📞 Soporte

Para reportar issues o sugerir mejoras, visita el repositorio en Gitea:
http://10.10.4.17:3002/nickpons666/sistema_para_juego

## 📄 Licencia

Este proyecto es de uso privado. Todos los derechos reservados.

---
**Desarrollado para gestión de bots de Discord y Telegram**