Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Bot de Reposteo de Archivos para Telegram
- Bot que repostea automáticamente archivos (ZIP, RAR, 7Z, 3MF, STL, etc.) de un canal a otro usando Telethon.
- ## 🚀 Características
- - ✅ Reposteo automático de archivos
- - ✅ Soporta múltiples formatos: `.zip`, `.rar`, `.7z`, `.tar`, `.gz`, `.3mf`, `.stl`
- - ✅ Preserva los captions originales
- - ✅ Sistema de logging detallado
- - ✅ Fácil de configurar
- ## 📋 Requisitos Previos
- 1. **Python 3.8 o superior**
- 2. **Cuenta de Telegram**
- 3. **API ID y API Hash** (de https://my.telegram.org)
- 4. **Bot Token** (de @BotFather)
- ## 🔧 Instalación
- ### Paso 1: Clonar o descargar el proyecto
- ```bash
- # Si usas git
- git clone <tu-repositorio>
- cd repost-bot
- # O simplemente descarga los archivos
- ```
- ### Paso 2: Instalar dependencias
- ```bash
- pip install -r requirements.txt
- ```
- ### Paso 3: Obtener credenciales
- #### A) Obtener API_ID y API_HASH
- 1. Ve a https://my.telegram.org
- 2. Inicia sesión con tu número de teléfono
- 3. Ve a "API Development Tools"
- 4. Crea una nueva aplicación si no tienes una
- 5. Copia el `api_id` y `api_hash`
- #### B) Crear el bot y obtener BOT_TOKEN
- 1. Abre Telegram y busca **@BotFather**
- 2. Envía `/newbot`
- 3. Sigue las instrucciones:
- - Elige un nombre para tu bot (ej: "Mi Repost Bot")
- - Elige un username (debe terminar en 'bot', ej: "mi_repost_bot")
- 4. Copia el **token** que te da BotFather (algo como `1234567890:ABCdefGHIjklMNOpqrsTUVwxyz`)
- #### C) Agregar el bot a tus canales
- 1. Ve al **canal origen** (donde se publican los archivos)
- - Haz clic en el nombre del canal → Administradores → Agregar administrador
- - Busca tu bot y agrégalo
- - **Permisos necesarios**: "Publicar mensajes" (opcional pero recomendado)
- 2. Ve al **canal destino** (donde se repostearán los archivos)
- - Haz clic en el nombre del canal → Administradores → Agregar administrador
- - Busca tu bot y agrégalo
- - **Permisos necesarios**: "Publicar mensajes" ✅
- #### D) Obtener los IDs de los canales
- **Opción 1: Usar el username del canal**
- ```python
- SOURCE_CHANNEL = '@mi_canal_origen'
- TARGET_CHANNEL = '@mi_canal_destino'
- ```
- **Opción 2: Usar el ID numérico**
- - Puedes usar bots como @userinfobot para obtener el ID
- - O reenviar un mensaje del canal a @userinfobot
- - El ID será algo como `-1001234567890`
- ```python
- SOURCE_CHANNEL = -1001234567890
- TARGET_CHANNEL = -1009876543210
- ```
- ### Paso 4: Configurar el bot
- Edita el archivo `repost_bot.py` y completa:
- ```python
- API_ID = 12345678 # Tu API ID (número)
- API_HASH = 'tu_api_hash_aqui' # Tu API Hash
- BOT_TOKEN = '1234567890:ABCdefGHIjklMNOpqrsTUVwxyz' # Token del bot
- SOURCE_CHANNEL = '@canal_origen' # Canal de donde se toman los archivos
- TARGET_CHANNEL = '@canal_destino' # Canal donde se repostean
- ```
- ### Paso 5: Ejecutar el bot
- ```bash
- python repost_bot.py
- ```
- Deberías ver algo como:
- ```
- 2024-02-09 10:30:00 - __main__ - INFO - 🤖 Iniciando bot...
- 2024-02-09 10:30:01 - __main__ - INFO - ✅ Bot conectado: @mi_repost_bot
- 2024-02-09 10:30:01 - __main__ - INFO - 📡 Escuchando mensajes en: @canal_origen
- 2024-02-09 10:30:01 - __main__ - INFO - 📤 Reposteando a: @canal_destino
- 2024-02-09 10:30:01 - __main__ - INFO - 📁 Extensiones permitidas: .zip, .rar, .7z, .tar, .gz, .3mf, .stl
- 2024-02-09 10:30:01 - __main__ - INFO - 🟢 Bot funcionando. Presiona Ctrl+C para detener.
- ```
- ## 🎯 Uso
- El bot funciona automáticamente. Cuando se publique un archivo con extensión permitida en el canal origen, será reposteado automáticamente al canal destino.
- ### Extensiones soportadas por defecto:
- - Archivos comprimidos: `.zip`, `.rar`, `.7z`, `.tar`, `.gz`
- - Archivos 3D: `.3mf`, `.stl`
- ### Agregar más extensiones
- Edita la variable `ALLOWED_EXTENSIONS` en el código:
- ```python
- ALLOWED_EXTENSIONS = ('.zip', '.rar', '.7z', '.tar', '.gz', '.3mf', '.stl', '.pdf', '.dwg')
- ```
- ## 🐛 Solución de Problemas
- ### Error: "Cannot find any entity corresponding to..."
- - Verifica que los IDs de los canales sean correctos
- - Asegúrate de que el bot sea administrador en ambos canales
- ### Error: "The bot doesn't have enough rights..."
- - El bot necesita permisos de administrador con "Publicar mensajes" activado
- ### El bot no repostea nada
- - Verifica que los archivos tengan la extensión correcta
- - Revisa los logs para ver si hay errores
- - Asegúrate de que el bot esté corriendo
- ### Error de autenticación
- - Verifica que API_ID, API_HASH y BOT_TOKEN sean correctos
- - Elimina el archivo `bot_session.session` y vuelve a intentar
- ## 📝 Notas
- - El bot usa `forward_messages` para preservar el mensaje original
- - Los captions se mantienen intactos
- - El bot solo procesa archivos nuevos (después de iniciarse)
- - Para detener el bot, presiona `Ctrl+C`
- ## 🔒 Seguridad
- - **NO compartas** tu `API_HASH` ni `BOT_TOKEN`
- - Considera usar variables de entorno para datos sensibles:
- ```python
- import os
- API_ID = os.getenv('API_ID')
- API_HASH = os.getenv('API_HASH')
- BOT_TOKEN = os.getenv('BOT_TOKEN')
- ```
- ## 📄 Licencia
- Este proyecto es de código abierto y está disponible bajo tu licencia preferida.
- ## 🤝 Contribuciones
- Las contribuciones son bienvenidas. Si encuentras un bug o tienes una sugerencia, abre un issue.
Advertisement