Files
sistema_para_juego/README.md

236 lines
7.3 KiB
Markdown
Executable File

# 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**