2 votos

Mensajes.app Manejador de AppleScript Anular el tiempo de espera de 10 segundos de script

Tengo un manejador de Applescript de Messages.app que funciona. La mayoría de los manejadores están vacíos, excepto el manejador "on message received". Este manejador ejecuta un shell script que responde con salidas que se espera sean enviadas como respuestas al remitente del mensaje.

La cuestión: Mi script tarda entre 6 y 12 segundos. En los casos en que tarda más de 10 segundos, Messages parece tener un tiempo de espera por defecto del manejador de Applescript de 10 segundos. Después de 10 segundos aparece una ventana emergente y Mensajes queda inutilizado hasta que se pulsa el botón "Esperar". Al pulsar el botón, el manejador termina y todo está bien.

Applescript Timout Alert

Posibles soluciones:

  • Ideal: Desactivar/cambiar el tiempo de espera de los mensajes de Applescript.
  • Hacer que el manejador script pase suficiente información para responder al mismo mensaje al script que se ejecuta bajo nohup o $ [script] & luego hacer que el script lance su propio Applescript para responder.
  • hacer que Applescript intente pulsar el botón "Esperar" en los mensajes antes de responder (no estoy seguro de que esto funcione).

Gracias por cualquier ayuda.

3voto

Kevin Puntos 365

Por desgracia, Apple no nos lo ha puesto fácil. No han proporcionado ninguna forma de cambiar este tiempo de espera y a veces es el propio script el que tarda demasiado en ejecutarse (porque Messages.app es terrible ejecutando script). Yo mismo ejecuto un manejador de applescript bastante extenso, e interactúo con Messages.app a través de AppleScripts ejecutados por otros procesos. A veces, las cosas se vuelven locas y no estoy cerca para arreglarlas. La solución que he encontrado es buscar una ventana con el botón "Wait" y hacer clic en ella. Sin embargo, a veces, mis script se ejecutan uno tras otro y acabo con posiblemente docenas de ventanas como la captura de pantalla que has pegado. En mi caso, es más fácil forzar la salida de Mensajes y luego volver a abrirlo. Escribí un pequeño AppleScript que hace exactamente esto. Puedes compilarlo como una aplicación con la opción "permanecer abierto después de ejecutar el controlador" seleccionada y siempre se asegurará de que Mensajes esté funcionando y se abra sin error de Windows. Puedes encontrarlo aquí: https://github.com/davidnewhall/IndigoAppleScripts/blob/master/Restart_Messages.applescript

La otra opción que podrías desarrollar (fácilmente) es ejecutar tu script en segundo plano y responder una vez que los datos estén disponibles; ese es probablemente un mejor enfoque. Puedes ejecutar osascript desde la línea de comandos (o un script) para ejecutar un AppleScript. Hay muchos ejemplos en mi repo de github de cómo enviar mensajes externamente.

Buena suerte.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X