# 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/setWebhook" \ -d "url=https://tu-dominio.com/telegram/webhook/index.php" \ -d "secret_token=" ``` ## 📁 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**