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
git clone http://10.10.4.17:3002/nickpons666/sistema_para_juego.git
cd sistema_para_juego
  1. Instalar dependencias
composer install
  1. Configurar variables de entorno
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
  1. Crear la base de datos
mysql -u tu-usuario -p < shared/database/schema.sql
  1. Crear usuario administrador
php create_admin.php
  1. Configurar permisos de carpetas
chmod -R 755 gallery/uploads gallery/thumbnails
chown -R www-data:www-data gallery/uploads gallery/thumbnails
  1. 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:

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

php discord/test_connection.php

Verificar conexión con Telegram

php telegram/test_connection.php

Verificar idiomas

php check_idiomas.php

Verificar intents de Discord

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

Description
Página web para administrar envió de mensajes a discord y telegram programados o en el momento, soporte para multiples idiomas, traductor en aplicación en tiempo real y soporte de ia en n8n
Readme 3.1 MiB
Languages
PHP 99.4%
JavaScript 0.3%
Hack 0.3%