Skip to content

v5.3.0

Choose a tag to compare

@dgongut dgongut released this 26 Oct 10:51
· 3 commits to main since this release

v5.3.0

✨ Novedades

  • /schedule rehecho de arriba abajo, más claro y más difícil de romper:
    • Nueva opción de salida «⚠️ Solo errores o salida» para los exec y los prune programados. Un comando solo avisa si falla (código distinto de 0), si escribe algo o si no se ha podido ejecutar; un prune, solo si falla o si ha borrado algo. Ideal para comprobaciones que callan cuando todo va bien.
    • Ves cuándo se ejecutará, junto al cron, en cuanto lo escribes: 0 4 * * * (próxima: mañana, 04:00).
    • «▶️ Ejecutar ahora» en cada tarea, para probarla sin esperar a su cron. Funciona también con una tarea desactivada, sin activarla.
    • Cada tarea dice cómo fue la última vez: ✅, ⏳ mientras corre, ⏭️ saltada (y por qué) o ❌ fallida (con el código de salida o el motivo).
    • Borrar una tarea pide confirmación.
    • Al programar un exec se pregunta contenedor, comando y salida, en ese orden.
    • Al editar una tarea o activarla/desactivarla vuelves a su detalle.
  • /logs en vivo: el mensaje se actualiza cada 5 s durante 30 s, como un tail -f, con ⏸️ Pausar y ▶️ Reanudar. Solo se edita cuando el log cambia y hay uno en vivo por chat, para quedar lejos de los límites de Telegram.
  • /exec dice el código de salida cuando no es 0, y un comando que falla sin escribir nada ya no sale como «ejecutado correctamente».

🐛 Correcciones

  • Programaciones:
    • Una tarea cuyo contenedor no está cuando le toca (por ejemplo, porque se está recreando) ya no se desactiva para siempre: se salta, lo dice una vez y avisa cuando vuelve a encontrarlo.
    • Un doble toque en Confirmar ya no guarda la tarea dos veces ni pide otro nombre, y uno en Desactivar ya no la deja activada.
    • En un grupo con varios admins, pulsar la pregunta de otro ya no se la lleva ni hace que su siguiente mensaje se tome como respuesta.
    • Si no se pueden guardar las tareas (disco lleno, volumen de solo lectura), el bot lo dice, en vez de darlas por guardadas y perderlas al reiniciar.
    • Las tareas de un host que no responde ya no esperan su timeout una detrás de otra, retrasando a las demás.
    • Se avisa de que un host remoto vuelve a responder aunque vuelva antes de 2 minutos.
    • El prune programado dice de qué host es.
    • El aviso de que una tarea se ha desactivado porque se quitó su host llega aunque el bot esté silenciado.
    • Dos tareas con el mismo nombre (escritas a mano en el fichero) ya se pueden editar y desactivar.
    • Una tarea del fichero que no se puede ejecutar se deja tal cual y se avisa al arrancar, en vez de fallar en cada pasada.
  • /logs y /exec: el corte cuenta los caracteres como Telegram, donde un emoji vale dos, así que un log o una salida llena de emoji ya no hace que el mensaje no llegue. /logs empieza siempre en una línea entera, y la salida de /exec que no cabe va en un fichero.
  • Un contenedor que se queda sin memoria se anuncia como tal aunque Docker mande el aviso de memoria después de la parada.
  • Un botón de un mensaje antiguo ya no toma por suyo un contenedor creado después cuyo id empiece igual.

⚠️ A tener en cuenta

  • Los botones de /schedule que queden en mensajes de versiones anteriores dejan de funcionar. Abre /schedule de nuevo.
  • Tus programaciones se mantienen tal cual: no tienes que tocar nada.

🔧 Otros

  • /schedule vive en su propio módulo, con sus propios tests, que lo manejan como lo haría un usuario.

Full Changelog: v5.2.0...v5.3.0