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

2

Tengo un manejador de APplescript Messages.app en funcionamiento. La mayoría de los controladores están vacíos, excepto el controlador "en mensaje recibido". Este controlador ejecuta un script de shell que responde con salidas que se espera que se envíen como respuestas al remitente del mensaje.

El problema: mi script toma entre 6 y 12 segundos. En los casos en que tarda más de 10 segundos, los mensajes parecen tener un tiempo de espera predeterminado del controlador de Apple de 10 segundos. Después de 10 segundos, se envía una ventana emergente y los Mensajes se vuelven inutilizables hasta que se presiona el botón "Esperar". Al presionar el botón, el controlador termina, y todo está bien.

Solucionesposibles:

  • Ideal:deshabilitar/cambiareltiempodeesperadelosmensajesdeApple.
  • Hagaquelasecuenciadecomandosdelmanejadorpaselainformaciónsuficientepararesponderalmismomensajeenlasecuenciadecomandosqueseejecutaennohupo$[script]&yluegohagaquelasecuenciadecomandosiniciesupropioApplescriptpararesponder.
  • hagaqueApplescriptintentehacerclicenelbotón"Esperar" en los mensajes antes de responder (no estoy seguro de si esto funcionará).

¡Gracias por cualquier ayuda!

    
pregunta zggz12 11.09.2016 - 20:21

1 respuesta

3

Desafortunadamente, Apple no nos lo ha facilitado. No han proporcionado ninguna manera de cambiar este tiempo de espera y, a veces, el script tarda demasiado en ejecutarse (porque Messages.app es terrible para ejecutar scripts). 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 arreglarlo. La solución que se me ha ocurrido es buscar una ventana con el botón "Esperar" y hacer clic en ella. A veces, sin embargo, mis scripts se ejecutan justo después de otro y posiblemente tenga docenas de ventanas como la captura de pantalla que pegaste. En mi caso, es más fácil forzar a los mensajes a salir y luego volver a abrirlos. Escribí un pequeño AppleScript que hace exactamente esto. Puede compilarlo como una aplicación con "Mantener abierto después de ejecutar el controlador" seleccionado y siempre se asegurará de que los mensajes funcionen y se abran sin ventanas de error. Puede encontrarlo aquí: enlace

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; eso 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 sobre cómo enviar mensajes de forma externa.

¡Buena suerte!

    
respondido por el David Newhall II 10.03.2017 - 10:52

Lea otras preguntas en las etiquetas