The Ultimate Beginner's Guide di AppleScript

Questo è il primo post di una nuova serie che rivisita alcuni dei post preferiti dei nostri lettori del passato che contengono ancora informazioni fantastiche e pertinenti che potresti trovare utili. Questo post è stato originariamente pubblicato il 7 luglio 2009.

La parte migliore di AppleScript è che non devi essere un programmatore geniale per usarlo. In realtà, non è necessario avere alcuna esperienza di programmazione. Questo articolo ti mostrerà come scrivere un AppleScript per quasi tutte le applicazioni usando le semplici istruzioni che vengono nascoste all'interno del framework di ogni app. Incuriosito? Continuare a leggere!


Che cos'è AppleScript?

AppleScript è un potente linguaggio di scripting che viene integrato in OS X. L'uso principale di AppleScript è l'automazione di attività che sono normalmente ripetitive e richiedono molto tempo. Ad esempio, come libero professionista, odio creare fatture ogni settimana per i miei vari clienti. Per risolvere questo problema, ho scritto un AppleScript che legge le ore di accesso a iCal, crea una fattura in Microsoft Excel in base a tali orari e invia le fatture via e-mail ai miei clienti. Tutto con un clic di un pulsante!


La finestra principale

Per iniziare: The Tell Block

Per creare un AppleScript, apri l'applicazione "Script Editor" che si trova all'interno della cartella AppleScript all'interno della cartella Applicazioni. Dovresti vedere una semplice finestra contenente un grande campo di testo con una striscia di pulsanti lungo la parte superiore. All'interno del campo di testo digitare il seguente codice:

[AppleScript]
dì all'applicazione "Finder"

mostra la finestra di dialogo "Hello World"

fine raccontare
[/ AppleScript]

AppleScript tenta di utilizzare l'inglese semplice laddove possibile per rendere la codifica estremamente semplice. La maggior parte dei comandi in AppleScript si trovano all'interno di un "tell block". Si chiama "tell block" perché stai "dicendo" a una determinata applicazione cosa vuoi che faccia. Ad esempio, il codice sopra indica al Finder di visualizzare una finestra di dialogo contenente le parole "Hello World". Dopo aver finito con un comando o una stringa di comandi per una determinata applicazione, si termina il blocco con "end tell".

Ricorda sempre di terminare correttamente i blocchi tell o il codice non verrà compilato!

Dopo aver inserito il codice sopra, fare clic sull'icona "Compila". Se la tua sintassi è corretta, il tuo codice verrà automaticamente formattato e colorato. Se hai commesso un errore, Script Editor metterà in evidenza l'area problematica e ti darà un messaggio su ciò che potrebbe essere andato storto. Ecco un rapido riferimento ai vari colori che vedrai nel tuo codice compilato (trovato in Script Editor> Preferenze).


Guida ai colori

Dopo aver compilato il codice, fai clic sul pulsante "Esegui". Dovresti vedere la seguente finestra di dialogo:


Ciao mondo

Ora fai clic sul pulsante "OK" e guarda la parte inferiore della finestra di Script Editor. Quando si esegue uno script, Script Editor ti dice quale sia stato il risultato o cosa è stato "restituito". In questo caso ti sta dicendo che è stato fatto clic sul pulsante "OK".


Il ritorno OK

Dichiarazione delle variabili

Le variabili sono essenzialmente le stesse in ogni linguaggio di programmazione. Forniscono un modo semplice per accedere e manipolare molte informazioni in uno snippet di codice compatto. Creare o "dichiarare" le variabili è diverso per ogni lingua. In AppleScript dichiarate le variabili come segue:

[AppleScript]
imposta theString su "Hello World"

dì all'applicazione "Finder"

mostra la finestra di dialogo theString

fine raccontare
[/ AppleScript]

Ci sono diverse cose da notare sull'esempio precedente. Innanzitutto, si noti che le variabili vengono dichiarate utilizzando i comandi "set" e "to". In questo modo si imposta il nome della variabile, in questo caso "theString", per uguagliare qualcosa, in questo caso il testo "Hello World". Molti linguaggi di programmazione richiedono di indicare il tipo di variabile desiderato nella dichiarazione (intero, virgola mobile, testo, ecc.). AppleScript tuttavia è abbastanza intelligente da funzionare con le variabili senza alcuna istruzione sul formato.

Notate anche come ho digitato il mio nome di variabile. Non è possibile avere spazi nel nome di una variabile, quindi è buona norma usare il caso cammello (theString) o il metodo underscore (the_string). Non importa quale metodo scegli, ma assicurati di essere coerente per tutto il codice. È anche una buona idea dare a tutte le tue variabili nomi significativi. Quando stai guardando il codice di un altro programmatore, può essere fastidioso vedere nomi di variabili come "myVariable" che non danno alcuna indicazione su cosa sono o su cosa verranno utilizzati per.

Infine, notate che ora che ho inserito il testo "Hello World" all'interno di una variabile, posso chiamarlo ancora e ancora attraverso il mio codice. Quindi se successivamente deciderò di cambiare il testo "Hello World" in "Good Morning Dave", devo solo cambiare il testo sulla riga in cui ho dichiarato la variabile.


Lavorare con le variabili

Puoi fare ogni sorta di cose pazze con le variabili, ma dal momento che questa è solo una breve introduzione ad AppleScript, ti mostrerò solo alcune. Digita il seguente codice:

[AppleScript]
--Variabili intere
impostare il FirstNumber su 3
impostare il NumeroSecondo su 2

--Operazioni variabili
imposta theAnswer su (theFirstNumber + theSecondNumber)
imposta theAnswer su (theAnswer + 1)

--Variabili a stringa
imposta theString su "3 + 2 + 1 ="

--Visualizza finestra di dialogo
dì all'applicazione "Finder"

mostra la finestra di dialogo theString & theAnswer

fine raccontare
[/ AppleScript]

Puoi compilare rapidamente il tuo codice premendo il tasto "invio" (non il tasto di invio). Questo si trova sul tastierino numerico a dieci tasti sui computer desktop e accanto al tasto "Comando" a destra della barra spaziatrice sui laptop.

Man mano che la sceneggiatura diventa più complessa, è necessario un po 'di organizzazione. Digitando due trattini "-" prima di una riga di testo, è possibile inserire un commento. Usa i commenti per separare e descrivere le sezioni del codice per una facile navigazione. In questo esempio ho creato una variabile stringa (solo testo) e alcune variabili intere. Si noti che è possibile eseguire operazioni matematiche su variabili. Qui ho impostato "theFirstNumber" uguale a tre e "theSecondNumber" uguale a due e poi li abbiamo aggiunti insieme in "theAnswer".

Si noti inoltre che è possibile modificare una variabile dopo che è stata dichiarata. Immediatamente dopo aver impostato "theAnswer" sulla somma di "theFirstNumber" e "theSecondNumber" (risultante in 5), ho cambiato il valore di "theAnswer" aggiungendone uno (risultante in 6). Se esegui questo script dovresti vedere il seguente risultato:


Qualche matematica di base

Di nuovo, questo graffia solo la superficie dei tipi di operazioni che è possibile eseguire sulle variabili. Per ora devi solo capire che una variabile non è statica. Gran parte della forza di ogni linguaggio di programmazione è la capacità di manipolare le variabili per eseguire un'ampia varietà di compiti.


La chiave di tutto: dizionari AppleScript

Sebbene AppleScript abbia una vasta gamma di comandi che possono essere applicati a qualsiasi programma o elemento in OS X, gli sviluppatori di ogni applicazione hanno il compito di aggiungere il pieno supporto AppleScript alle loro app. Ciò significa che gli sviluppatori devono scrivere semplici manuali su come comunicare con le loro applicazioni tramite AppleScript. Questi manuali sono chiamati "dizionari". Per visualizzare un dizionario, vai su File> Apri dizionario in Script Editor. Scorri l'elenco delle applicazioni, fai clic su Posta e premi "OK". Dovresti vedere la seguente finestra:


Il dizionario di posta

La colonna a sinistra contiene le "Suite" disponibili di comandi e voci. Quando fai clic su una suite, vedrai tutto ciò che è contenuto nella suite visualizzata di seguito. È possibile restringere questa anteprima facendo clic nella seconda colonna, quindi di nuovo nella terza. Le suite contengono comandi (C con un cerchio) e classi (C con un quadrato), le classi contengono proprietà (P) ed elementi (E). Per capire come funziona tutto questo, usiamo questo dizionario per creare uno script.


Passaggio 1: crea un algoritmo per il nostro script

Per prima cosa abbiamo bisogno di un algoritmo, che è un modo elegante per dire che abbiamo bisogno di annotare esattamente ciò che farà il nostro script. Vogliamo creare uno script per comporre e inviare una email. Vogliamo utilizzare le variabili per facilitare la modifica del messaggio stesso e di chi viene inviato il messaggio. Mentre scriviamo il nostro algoritmo, dobbiamo tenere a mente il modo in cui funziona AppleScript. Ecco i passi che ho trovato:

  1. Crea variabili per il destinatario, l'indirizzo email del destinatario, l'oggetto dell'email e il testo per il corpo dell'e-mail.
  2. Crea una variabile che trattiene il nostro nuovo messaggio insieme alle sue varie proprietà
  3. Crea il nuovo messaggio
  4. Invia il nuovo messaggio

Passaggio 2: crea alcune variabili

Sappiamo già come creare variabili contenenti testo, quindi non abbiamo nemmeno bisogno del dizionario per il primo passo. Ecco come appare il codice:

[AppleScript]
--variabili
imposta recipientName su "John Doe"
imposta destinatari su "[email protected]"
imposta theSubject su "Email automatica AppleScript"
imposta theContent su "Questa email è stata creata e inviata usando AppleScript!"
[/ AppleScript]

Come puoi vedere, abbiamo inserito il testo segnaposto nelle variabili per il nome e l'indirizzo email del destinatario, nonché l'oggetto e il contenuto del nostro messaggio. Puoi cambiarli in qualsiasi cosa desideri. Assicurati di inserire il tuo indirizzo e-mail nella variabile recipientAddress in modo da assicurarti che lo script funzioni correttamente quando ricevi l'e-mail.


Passaggio 3: creare la variabile del messaggio con il dizionario di posta elettronica

Dato che non abbiamo idea di come dire a Mail di creare un nuovo messaggio, è qui che dobbiamo fare riferimento al dizionario AppleScript. Se fai clic su "Suite standard" vedrai diversi comandi comuni forniti di serie in AppleScript. Sapendo che vogliamo "creare" un nuovo messaggio, scorrono le opzioni e troviamo qualcosa di equivalente. Vedrai che non c'è un comando "crea" ma a metà circa c'è un comando "make". Sembra perfetto, quindi ora sappiamo di dire a AppleScript che vogliamo "fare" qualcosa.

Quindi fai clic sulla suite "Mail". Abbiamo già ottenuto il comando (make), quindi scorri verso il basso oltre i comandi (verbi) finché non vedi le classi (nomi). La prima lezione che incontriamo è "messaggio in uscita", che è eccezionale perché è esattamente ciò che vogliamo! Ora fai clic sulla classe "messaggio in uscita" e guarda le proprietà disponibili in basso.

Dobbiamo inserire le nostre variabili per il nome del destinatario, l'indirizzo e-mail del destinatario, l'oggetto e il contenuto del messaggio. Nell'elenco delle proprietà non c'è nulla sul destinatario ma ci sono proprietà per l'oggetto e il contenuto. Ora conosciamo la sintassi corretta per fare riferimento a queste proprietà. Si noti che il dizionario fornisce il formato per definire le proprietà. Ad esempio per il soggetto, digiteremo la parola "soggetto" seguito da due punti seguiti dal testo del soggetto.


Contenuto soggetto

Anche in questa suite troverai un comando "invia", che possiamo usare per inviare il messaggio semplicemente digitando "invia". Dobbiamo ancora conoscere la sintassi corretta per il nome e l'indirizzo email del destinatario. Dal momento che non è in questa suite, fai clic sulla suite "Messaggio". A circa metà dell'elenco delle classi troviamo "destinatario". Fare clic sulla classe del destinatario e vediamo che, ancora una volta, possiamo usare l'inglese semplice per fare riferimento alle proprietà del destinatario. Digiteremo semplicemente "nome" e "indirizzo".

Puoi utilizzare la funzione di ricerca per cercare rapidamente proprietà, classi, elementi e comandi.

Ora siamo pronti per creare la nostra variabile di messaggio usando la sintassi che abbiamo appena appreso. Ecco come appare il codice:

[AppleScript]
--variabili
imposta recipientName su "John Doe"
imposta destinatari su "[email protected]"
imposta theSubject su "Email automatica AppleScript"
imposta theContent su "Questa email è stata creata e inviata usando AppleScript!"

--Mail Tell Block
dire all'applicazione "Mail"

--Crea il messaggio
imposta theMessage per creare un nuovo messaggio in uscita con proprietà subject: theSubject, content: theContent, visible: true

fine raccontare
[/ AppleScript]

Si noti che ho creato un tell block per includere tutti i comandi nell'applicazione Mail. Quindi ho impostato una variabile (theMessage) per "creare" un nuovo "messaggio in uscita" con le proprietà sopra discusse. Si noti inoltre che i set di proprietà sono sempre contenuti tra parentesi .


Passaggio 4: impostare il destinatario e inviare il messaggio

Ora che abbiamo creato la nostra variabile di messaggio, dobbiamo chiamare quella variabile e creare un nuovo messaggio con le proprietà di theMessage. Abbiamo anche bisogno di impostare i destinatari e inviare il messaggio. Per fare ciò, useremo un tell block sulla nostra variabile. Ecco la nostra sceneggiatura finita.

[AppleScript]
--variabili
imposta recipientName su "John Doe"
imposta destinatari su "[email protected]"
imposta theSubject su "Email automatica AppleScript"
imposta theContent su "Questa email è stata creata e inviata usando AppleScript!"

--Mail Tell Block
dire all'applicazione "Mail"

--Crea il messaggio
imposta theMessage per creare un nuovo messaggio in uscita con proprietà subject: theSubject, content: theContent, visible: true

--Imposta un destinatario
dillo al messaggio
rendi nuovo al destinatario con proprietà name: recipientName, address: recipientAddress

--Invia il messaggio
inviare

fine raccontare
fine raccontare
[/ AppleScript]

Per prima cosa, abbiamo creato una nuova copia di theMessage (che eredita tutte le proprietà che abbiamo inserito) e la imposta "al destinatario con proprietà". Questo dice a Mail che vogliamo aggiungere un destinatario con le seguenti proprietà. Qui abbiamo usato solo la sintassi che abbiamo imparato prima e le variabili per il nome e l'indirizzo del destinatario.

Infine, abbiamo invocato il comando "invia" per inviare il nostro messaggio. Si noti che abbiamo due blocchi di tell per chiudere questa volta. Una volta che hai compilato il tuo codice e corretto eventuali errori, premi "Esegui". La posta dovrebbe creare automaticamente e inviare il messaggio. Tadaah! Controlla la tua cartella inviata per assicurarti che tutto funzioni.


Messaggio di posta

Congratulazioni, hai creato il tuo primo AppleScript! Puoi salvarlo come un semplice script che puoi tornare indietro e modificare o come un'applicazione che viene eseguita automaticamente quando la apri.


Conclusione: continua ad imparare

Spero che questa guida per principianti ti stia pensando a tutti i tipi di processi e attività che vorresti automatizzare. La sintassi che ti ho mostrato con i dizionari AppleScript ti farà guadagnare molto. Tuttavia, se sei davvero interessato all'implementazione di AppleScript in una serie di modi utili, devi leggere di più. Apple fornisce molte informazioni su AppleScript sul loro sito web. Ecco un buon punto di partenza.

Un altro sito web che ho raccolto molto da T & B. Offre alcune spiegazioni e tutorial davvero approfonditi da seguire (un po 'datati, ma completi e gratuiti). Per favore sentitevi liberi di lasciare un commento e fateci sapere se avete trovato utile questo tutorial! Quali altri suggerimenti AppleScript vorresti vedere trattati in futuro?