DropBot v4.0.1
Versión de correcciones tras una revisión a fondo de seguridad y fallos.
⚠️ Antes de actualizar
TELEGRAM_ADMINsolo 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/idpor privado.- La sesión de Telegram se guarda ahora en
/configy 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.
/listy/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.jpgque 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
/configno se puede escribir o/downloadsno 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: trueya 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