github dgongut/dropbot v4.0.1

4 hours ago

DropBot v4.0.1

Versión de correcciones tras una revisión a fondo de seguridad y fallos.

⚠️ Antes de actualizar

  • TELEGRAM_ADMIN solo admite ids de persona. Si tenías el id de un grupo o de un canal (empiezan por -) para manejar el bot como admin anónimo, ahora se ignora: el bot arranca con los demás ids y te lo dice en el mensaje de arranque. Si era el único, no arranca y lo explica en el log. Pon tu propio id, que te da el bot Rose si le escribes /id por privado.
  • La sesión de Telegram se guarda ahora en /config y se mueve ahí sola. No tienes que hacer nada más que tener el volumen /config, que ya era necesario.
  • No hace falta tocar el compose.

🔒 Seguridad

  • Un título de playlist preparado ya no puede hacer que el bot mueva ficheros del contenedor a la carpeta de descargas.
  • Los RAR se extraen sin permisos especiales (setuid, setgid, sticky).
  • A quien no es admin ya no se le contesta en grupos, y en privado como mucho una vez cada 10 minutos: nadie puede atascar las respuestas del bot.
  • Los comandos dirigidos a otro bot (/start@otro_bot) se ignoran, y el comando solo se borra si es del admin.
  • Las descargas directas no siguen una redirección de una web pública a tu red local.
  • Los textos que vienen de fuera (títulos de playlist, errores) ya no pueden meter enlaces ni romper el formato de los mensajes.
  • Los logs ya no muestran usuarios, contraseñas ni tokens de las URLs, ni caracteres de control.
  • Los nombres de fichero se limpian de marcas bidi y caracteres invisibles que podían disfrazar la extensión.

🐛 Correcciones

  • Descomprimir desde /manage:
    • Un RAR al que le falta una parte, cifrado o dañado, o un TAR truncado, ya no se dan por descomprimidos ni se borra el comprimido.
    • Los RAR grandes o sólidos se extraen de una vez: antes podían tardar horas.
    • Se comprueba que haya espacio antes de extraer, y la carpeta no aparece hasta que la extracción termina.
    • Al borrar un RAR se borran exactamente sus partes.
  • Ficheros que envías al bot:
    • Se descargan directamente en su carpeta y no dentro del contenedor, así que un fichero grande ya no llena el disco de Docker.
    • Un corte o un reinicio ya no deja un fichero a medias con su nombre.
    • Una descarga lenta ya no se corta mientras avance: solo si se queda 5 minutos parada.
    • Los que esperan turno muestran «⏳ En cola» con su botón de cancelar.
    • Arreglados los ficheros sin extensión, los nombres muy largos y las fotos con referencia caducada. Las notas de voz se guardan como .ogg.
  • Enlaces:
    • En una playlist entera, cada vídeo pasa a su carpeta en cuanto termina: un reinicio ya no se lleva lo descargado.
    • «Solo el primero» baja un solo vídeo también cuando el enlace es solo una playlist.
    • Cancelar para también la conversión, y no se guardan MP3 a medias. Si falla la conversión a audio, se avisa.
    • «Audio» funciona en sitios sin pista de audio separada.
    • Las cookies se pueden montar como solo lectura (:ro) y ya no se pierden con varias descargas a la vez.
    • El análisis del enlace se puede cancelar y ya no se queda colgado.
    • Un fichero con un enlace en el pie ya no se descarga dos veces.
  • Descargas directas: respetan el tamaño máximo, no se quedan colgadas si el servidor deja de enviar y los nombres con acentos llegan bien.
  • Envío: el límite es 2000 MB, lo que admite Telegram, y se mide después de convertir. «Enviar y borrar» nunca borra otro fichero.
  • /list y /manage: botones viejos que podían actuar sobre otro fichero, la doble pulsación, el bot congelado al borrar carpetas grandes, nombres que no son UTF-8 que rompían el listado y ficheros *_thumb.jpg que no aparecían.
  • El renombrado pendiente queda atado a su chat y caduca a los 15 minutos.
  • En grupos con temas, las respuestas salen en el tema de la petición.
  • Red y arranque: tras un corte de red el bot sigue reintentando en vez de salir, recoge lo que le mandaste mientras estaba parado y avisa si /config no se puede escribir o /downloads no está montado.
  • Una espera impuesta por Telegram (FloodWait) en un mensaje ya no detiene todos los demás.

🐳 Docker

  • tini como proceso principal: el bot recibe la orden de parar y no quedan procesos zombis. init: true ya no hace falta, aunque puedes dejarlo.
  • Deno fijado a 2.9.7 con su sha256, y el proveedor de PO Token y el cliente de estadísticas por commit.

🔧 Interno

  • 2.118 tests.
  • yt-dlp 2026.10.21, bgutil-ytdlp-pot-provider 2.0.2 y pyflakes 4.0.3.

Full Changelog: v4.0.0...v4.0.1

Don't miss a new dropbot release

NewReleases is sending notifications on new releases.