Skip to content

dansrubio/RG_TB

Repository files navigation

🎮 Rednite Bot

Bot de Telegram para distribución de contenido gaming. Gestiona grupos, verifica membresías, sirve archivos bajo demanda mediante tokens únicos y ofrece herramientas de búsqueda y administración.


✨ Funcionalidades

Para usuarios

  • /start [TOKEN] — Recibe archivos de un elemento directamente en el chat privado
  • /catalogo — Navega el listado paginado de elementos disponibles
  • /top_juegos — Ve los juegos más solicitados
  • /juego_aleatorio — Recibe una recomendación aleatoria
  • /wow_token — Consulta el precio actual del WoW Token por región
  • Búsqueda libre — Escribe en el chat privado para buscar elementos por nombre

Para administradores y moderadores

  • /buscar <palabras> — Búsqueda avanzada con ID interno visible
  • /status — Estado del sistema (CPU, RAM, disco, latencia, uptime)
  • /acortar <URL> — Acorta enlaces con Rebrandly
  • /qr <URL> — Genera un código QR

Automatizaciones

  • Verificación de membresía — Requiere que el usuario esté en los canales configurados antes de recibir archivos
  • Reenvío por hashtag — Redirige solicitudes y reportes al grupo de administración
  • Indexador (userbot) — Indexa contenido del canal automáticamente vía Telethon
  • Limpieza automática — Elimina mensajes de servicio periódicamente

🗂 Estructura del proyecto

rednite_bot/
├── main.py                         # Punto de entrada, lanza bot y userbot
├── config.py                       # Variables de entorno y helpers de permisos
├── requirements.txt
│
├── database/
│   ├── base.py                     # Conexiones pymongo y motor (async)
│   ├── manager.py                  # Setup y shutdown de la BD
│   ├── models/
│   │   └── schemas.py
│   └── crud/
│       ├── elemento_crud.py
│       └── usuario_crud.py
│
├── admin/                          # Handlers exclusivos de administración
│   ├── elemento_handler.py
│   ├── busqueda_elemento_handler.py
│   ├── top_elementos_handler.py
│   ├── juego_aleatorio_handler.py
│   ├── stats_handler.py
│   ├── mod_manager.py
│   ├── notify_handler.py
│   ├── index_publisher_handler.py
│   ├── db_backup.py
│   ├── db_restore.py
│   └── status.py
│
├── automation/                     # Handlers automáticos
│   ├── start_handler.py
│   ├── verification_handler.py
│   ├── hashtag_forwarder.py
│   ├── catalogo_handler.py
│   ├── message_tracker.py
│   ├── cleaner.py
│   └── autoliker_userbot.py
│
├── external_apis/                  # Integraciones externas
│   ├── game_search.py
│   ├── rebrandly.py
│   └── qr_generator.py
│
├── helpers/                        # Utilidades reutilizables
│   ├── verification_system.py
│   ├── wow_token_handler.py
│   ├── wow_token_service.py
│   ├── auto_publisher.py
│   ├── random_handler.py
│   └── auto_response.py
│
├── info/                           # Comandos informativos
│   ├── userinfo.py
│   ├── channelinfo.py
│   ├── user_command.py
│   └── watchdog.py
│
├── userbot_indexer.py              # Userbot Telethon para indexado
└── data/
    └── rednite_image.jpg           # Imagen de bienvenida

⚙️ Instalación

1. Requisitos

  • Python 3.11+
  • MongoDB 6+ (local o Atlas)
  • Cuenta de Telegram con bot creado en @BotFather

2. Clonar e instalar dependencias

git clone https://github.com/tu-usuario/rednite-bot.git
cd rednite-bot
python -m venv venv
source venv/bin/activate        # Windows: venv\Scripts\activate
pip install -r requirements.txt

3. Configurar variables de entorno

cp .env.example .env
# Editar .env con tus valores reales

4. Ejecutar

python main.py

🔑 Variables de entorno

Ver .env.example para la referencia completa con descripciones.

Las variables críticas sin las que el bot no arranca son:

Variable Descripción
BOT_TOKEN Token del bot (BotFather)
MONGODB_URI URI de conexión a MongoDB
MONGODB_DATABASE Nombre de la base de datos
ADMIN_IDS IDs de Telegram de los administradores

🗄️ Base de datos

El bot usa MongoDB con las siguientes colecciones:

Colección Descripción
usuarios Registro de usuarios (_id = Telegram user ID)
elementos Elementos con token, rango de mensajes y contador de solicitudes
elemento_solicitudes Registro de qué usuario solicitó qué elemento

Los índices se crean automáticamente al iniciar. Se incluye un índice de texto completo en español sobre nombre e informacion_completa para búsquedas eficientes.


🔐 Sistema de permisos

Rol Acceso
Admin Todos los comandos, backups, gestión de moderadores
Moderador Comandos de moderación y búsqueda
Usuario Búsqueda libre, catálogo, elementos públicos

Los IDs se configuran en .env mediante ADMIN_IDS y MOD_IDS (separados por coma).


📡 APIs externas opcionales

API Variable Función
Rebrandly REBRANDLY_API_KEY Acortar URLs (/acortar)
Groq GROQ_API_KEY Fichas de videojuegos con IA
TMDB TMDB_ACCESS_TOKEN Búsqueda de películas/series
Steam STEAM_API_KEY Búsqueda de videojuegos
IGDB IGDB_CLIENT_ID + IGDB_CLIENT_SECRET Base de datos de videojuegos

El bot funciona sin estas APIs; simplemente desactiva las funcionalidades que dependen de ellas.


🤝 Contribuciones

  1. Crea un fork del repositorio
  2. Abre una rama (git checkout -b feature/mi-mejora)
  3. Realiza tus cambios con commits claros
  4. Abre un Pull Request describiendo qué cambiaste y por qué

📄 Licencia

Este proyecto es de uso privado. Contacta al autor para permisos de uso o distribución.

About

Bot de Telegram diseñado para gestionar Refugio Gamer

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages