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.
/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
/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
- 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
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
- Python 3.11+
- MongoDB 6+ (local o Atlas)
- Cuenta de Telegram con bot creado en @BotFather
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.txtcp .env.example .env
# Editar .env con tus valores realespython main.pyVer .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 |
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.
| 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).
| 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.
- Crea un fork del repositorio
- Abre una rama (
git checkout -b feature/mi-mejora) - Realiza tus cambios con commits claros
- Abre un Pull Request describiendo qué cambiaste y por qué
Este proyecto es de uso privado. Contacta al autor para permisos de uso o distribución.