No description
  • Python 99.8%
  • Dockerfile 0.2%
Find a file
2026-06-16 12:00:20 +02:00
bot.py first commit 2026-06-16 12:00:20 +02:00
config.yaml first commit 2026-06-16 12:00:20 +02:00
db.py first commit 2026-06-16 12:00:20 +02:00
db_security.py first commit 2026-06-16 12:00:20 +02:00
docker-compose.yaml first commit 2026-06-16 12:00:20 +02:00
Dockerfile first commit 2026-06-16 12:00:20 +02:00
file_manager.py first commit 2026-06-16 12:00:20 +02:00
pylint_check.txt first commit 2026-06-16 12:00:20 +02:00
pylint_report.txt first commit 2026-06-16 12:00:20 +02:00
README – Comprobador Automático y desinstalador.txt first commit 2026-06-16 12:00:20 +02:00
README.md first commit 2026-06-16 12:00:20 +02:00
requirements.txt first commit 2026-06-16 12:00:20 +02:00
security.py first commit 2026-06-16 12:00:20 +02:00
synology_client.py first commit 2026-06-16 12:00:20 +02:00

Telegram NAS Bot

Bot de Telegram para gestión y descarga de archivos en NAS Synology (DSM).

🚀 Instalación en DSM con Docker

  1. Copia el proyecto a una carpeta compartida del NAS (ejemplo: /volume1/Bot_telegram).
  2. Edita config.yaml para personalizar token, admins, rutas, etc (ver sección Configuración).
  3. Construye la imagen Docker:
    cd /volume1/Bot_telegram
    docker build -t telegram-nas-bot .
    
  4. Levanta el bot con Docker Compose:
    docker-compose up -d
    
    Esto usará el archivo docker-compose.yaml incluido.

🛠️ Actualizar el bot

  • Para actualizar el código:
    git pull
    docker-compose build
    docker-compose up -d
    
  • Para detener el bot:
    docker-compose down
    
  • Para ver logs:
    docker-compose logs -f
    

⚙️ Personalización y configuración

Edita el archivo config.yaml antes de iniciar el bot. Ejemplo:

telegram:
  token: "TU_TOKEN_DE_BOT"
  admin_ids: [12345678]
  allowed_user_ids: [12345678, 87654321]
  allowed_chat_ids: [-1001234567890]
  allowed_thread_ids: [19]
  allow_private: true

paths:
  base: "/app/telegram_bot_data"  # Carpeta de descargas dentro del contenedor
  archive: "/app/telegram_bot_data/archive"
  db: "/app/telegram_bot_data/telegram_bot.db"

allowed_extensions: ["pdf","zip","jpg","jpeg","png","mp4","mp3","m4a","txt","docx","opus", ...]

notification_dm: true
log_file: "/app/telegram_bot_data/telegram_nas_bot.log"
  • token: El token de tu bot de Telegram
  • admin_ids: IDs de usuarios con permisos de administración
  • allowed_user_ids: IDs de usuarios permitidos para subir/descargar
  • allowed_chat_ids: IDs de grupos/chats permitidos
  • allowed_thread_ids: IDs de topics permitidos
  • allow_private: Permitir uso en chats privados
  • paths.base: Carpeta donde se guardan los archivos (debe coincidir con el volumen Docker)
  • allowed_extensions: Extensiones permitidas para subir/descargar
  • notification_dm: Si el bot debe notificar por DM

📝 Ejemplo de comandos

📥 DESCARGA & BÚSQUEDA

/get — Descargar archivo (ej: /get documento.pdf) /search <término> — Buscar por nombre (ej: /search foto) /searchby <término> — Buscar por tipo (ej: /searchby audio canción) /filterdate — Archivos en rango (ej: /filterdate 2025-01-01 2025-01-31) /listfiles — Listar archivos del usuario (ej: /listfiles Thanatos) /recent [n] — Últimos n archivos (ej: /recent 20) /lastdownloads — Últimas descargas

📊 ESTADÍSTICAS

/stats — Estadísticas generales del sistema /userinfo — Info de un usuario (ej: /userinfo Thanatos) /diskusage — Uso de disco por usuario

🔍 GESTIÓN DE ARCHIVOS

/duplicate [usuario] — Encontrar duplicados (ej: /duplicate Thanatos) /cleanup [usuario] — Eliminar archivos corruptos/pequeños /rename <nuevo_nombre> — Renombrar archivo /move — Mover archivo a otro usuario

🔧 SISTEMA

/status — Uso de disco del path configurado /diskmap — Uso de todos los discos /whoami — Mostrar chat_id y message_thread_id /config — Ver configuración actual /dbbackup — Crear backup de la BD /dbrepair — Optimizar y reparar BD /testconnection — Probar conexión con Synology

👨‍💼 COMANDOS ADMIN (solo admins)

/listusers — Lista usuarios con archivos /auditlog [límite] — Ver historial del usuario (ej: /auditlog Thanatos 50) /bulkdelete <patrón> [usuario] — Eliminar múltiples (ej: /bulkdelete *.tmp) /zipuser — Comprimir carpeta del usuario /deleteuser — Borrar usuario y archivos /cleanlogs — Limpiar events de la BD /downloadtasks — Mostrar tareas DSM /nashealth — Estado DSM /resourcemonitor — Monitor de recursos /nasnetwork — Info de red /bothealth — Salud del bot /dbbackup — Backup de la BD /dbrepair — Optimizar BD /testconnection — Probar conexión DSM

📚 Ejemplos prácticos

Descargar un archivo específico

/get informe_final.pdf

Buscar todos los archivos de imagen que contengan "vacaciones"

/searchby photo vacaciones

Listar los archivos de un usuario

/listfiles Thanatos

Filtrar archivos por fecha

/filterdate 2025-01-01 2025-01-31

Renombrar un archivo

/rename documento.pdf informe_2025.pdf

Mover un archivo a otro usuario

/move informe_2025.pdf usuario_destino

Eliminar archivos temporales de un usuario

/bulkdelete *.tmp Thanatos

Ver estadísticas generales

/stats

Ver historial de acciones de un usuario

/auditlog Thanatos 50

Comprimir todos los archivos de un usuario en un ZIP

/zipuser Thanatos

🧑‍💻 Personalizar para otro bot/cuenta

  1. Cambia el token en config.yaml por el nuevo token de Bot.
  2. Actualiza los admin_ids y allowed_user_ids con los nuevos IDs de usuarios.
  3. Cambia las rutas en paths.base, paths.archive, paths.db si quieres guardar en otra carpeta.
  4. Reinicia el contenedor:
    docker-compose restart
    

📦 Requisitos

  • Docker y Docker Compose instalados en DSM
  • Acceso a Internet para el NAS
  • Token válido de Bot de Telegram

Para dudas o soporte, revisa /help en el bot o consulta el código fuente.