Messages.app Gestore di AppleScript Sostituisce il timeout di script di 10 secondi

2

Ho un gestore di messaggi Appscript funzionante. La maggior parte dei gestori sono vuoti, tranne il gestore "on message received". Questo gestore esegue uno script di shell che risponde con gli output che dovrebbero essere inviati come risposte al mittente del messaggio.

Il problema: My Script richiede tra 6 e 12 secondi. Nei casi in cui sono necessari più di 10 secondi, Messaggi sembra avere un timeout del gestore di Applescript predefinito di 10 secondi. Dopo 10 secondi viene visualizzato un popup e i messaggi diventano inutilizzabili finché non viene premuto il pulsante "Attesa". Premendo il pulsante, il gestore termina e tutto va bene.

Possibilisoluzioni:

  • Ideale:Disattiva/ModificailtimeoutdeimessaggidiApplescript.
  • Faiinmodocheloscriptdelgestoretrasmettainformazionisufficientiperrispondereallostessomessaggionelloscriptinesecuzioneinnohupo$[script]&,quindifaiinmodocheloscriptavviiilproprioApplescriptperrispondere.
  • faiinmodocheApplescriptprendaclicsulpulsante"Attendi" nei messaggi prima di rispondere (non è sicuro se ciò funzionerebbe).

Grazie per l'aiuto!

    
posta zggz12 11.09.2016 - 20:21
fonte

1 risposta

3

Sfortunatamente Apple non ci ha reso così facile. Non hanno fornito alcun modo per modificare questo timeout e talvolta è lo script stesso che impiega troppo tempo per essere eseguito (perché Messages.app è terribile per l'esecuzione degli script). Gestisco me stesso un gestore melecript piuttosto ampio e interagisco con Messages.app tramite AppleScript eseguito da altri processi. A volte le cose vanno male e io non sono in giro per sistemarlo. La soluzione alternativa che ho trovato è controllare una finestra con il pulsante "Attendi" e fare clic su di essa. A volte però, i miei script corrono subito dopo l'altro e finisco con forse dozzine di finestre come lo screenshot che hai incollato. Nel mio caso, è più semplice forzare i messaggi a uscire e quindi riaprirlo. Ho scritto un piccolo AppleScript che fa esattamente questo. È possibile compilarlo come un'applicazione con "rimani aperto dopo l'esecuzione del gestore" selezionato e si accerterà sempre che i messaggi funzionino e si aprano senza finestre di errore. Puoi trovarlo qui: link

L'altra opzione che potresti (facilmente) sviluppare è eseguire il tuo script in background e rispondere una volta che i dati sono disponibili; questo è probabilmente un approccio migliore. Puoi eseguire osascript dalla riga di comando (o da uno script) per eseguire un AppleScript. Ci sono molti esempi nel mio repository di github su come inviare messaggi esternamente.

Buona fortuna!

    
risposta data 10.03.2017 - 10:52
fonte

Leggi altre domande sui tag