Tengo un controlador Applescript Messages.app en funcionamiento. La mayoría de los controladores están vacíos, excepto el controlador "sobre el mensaje recibido". Este controlador ejecuta un script de shell que responde con resultados que se espera que se envíen como respuestas al remitente del mensaje.
El problema: My Script tarda entre 6 y 12 segundos. En los casos en que tarda más de 10 segundos, Mensajes parece tener un tiempo de espera del controlador de Applescript predeterminado de 10 segundos. Después de 10 segundos, aparece una ventana emergente y Mensajes se vuelve inutilizable hasta que se presiona el botón "Esperar". Al presionar el botón, el controlador termina y todo está bien.
Soluciones posibles:
nohup
o $ [script] &
luego haga que el script inicie su propio Applescript para responder.¡Gracias por cualquier ayuda!
Desafortunadamente, 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 para ejecutar scripts). Yo mismo ejecuto un controlador 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 arreglarlo. La solución alternativa que se me ocurrió es buscar una ventana con el botón "Esperar" y hacer clic en ella. Sin embargo, a veces, mis scripts se ejecutan inmediatamente después de otro y termino con posiblemente docenas de ventanas como la captura de pantalla que pegaste. En mi caso, es más fácil forzar el cierre de Mensajes y luego volver a abrirlo. Escribí un pequeño AppleScript que hace exactamente esto. Puede compilarlo como una aplicación con "permanecer abierto después de ejecutar el controlador" seleccionado y siempre se asegurará de que Mensajes funcione y se abra sin ventanas de error. Lo puedes encontrar aquí:https://github.com/davidnewhall/IndigoAppleScripts/blob/master/Restart_Messages.applescript
La otra opción que podría (fácilmente) desarrollar es ejecutar su script en segundo plano y responder una vez que los datos estén disponibles; ese es probablemente un mejor enfoque. Puede ejecutar osascript
desde la línea de comandos (o un script) para ejecutar un AppleScript. Hay muchos ejemplos en mi repositorio de github de cómo enviar mensajes externamente.
¡Buena suerte!