Crea sito

AppleScript, il potere dello scripting

AppleScriptOggi parleremo di una funzione molto potente presente in ogni Mac, AppleScript.

Sicuramente ne avrete sentito parlare, ma che cos’è l’applescript? L’AppleScript è un linguaggio di scripting integrato in Osx, ed è un evoluzione del potentissimo HyperTalk usato in HyperCard. Il linguaggio si avvicina molto al normale inglese e ci permette di fare qualsiasi cosa. Inoltre molte applicazioni per Mac includono un dizionario che ci permette di usare AppleScript per interagire con loro e automatizzare operazioni ripetitive.

Apple ci mette a disposizione AppleScript Editor che ci permette di creare i nostri script, il software si presenta con un interfaccia molto semplice:

Interfaccia editor

Bene, per creare il nostro primo script di prova faremo in modo che si apra iTunes e riproduca la prima cosa che è selezionata, il codice sarà:

tell application “iTunes”
   play
end tell

Una volta scritto, premiamo il tasto play di colore verde nella barra degli strumenti di applescript editor e vedremo che si aprirà iTunes e riprodurrà la prima cosa che capita.

Di seguito uno script invece più complicato (lo uso per creare le icone per le app di iPhone e iPad) che ci permette di ridimensionare un’immagine in vari formati.

−− drag files to script icon 

on open some_items
 repeat with this_item in some_items
 try
 rescale_and_save(this_item, 152, “ipadApp2x”)
 rescale_and_save(this_item, 76, “ipadApp1x”)
 rescale_and_save(this_item, 80, “ipadSpootlight2x”)
 rescale_and_save(this_item, 40, “ipadSpootlight1x”)
 rescale_and_save(this_item, 58, “ipadSettings2x”)
 rescale_and_save(this_item, 29, “ipadSettings1x”)
 
 rescale_and_save(this_item, 120, “iphoneApp2x”)
 rescale_and_save(this_item, 60, “iphoneApp1x”)
 rescale_and_save(this_item, 80, “iphoneSpootlight2x”)
 rescale_and_save(this_item, 40, “iphoneSpootlight1x”)
 rescale_and_save(this_item, 58, “iphoneSettings2x”)
 rescale_and_save(this_item, 29, “iphoneSettings1x”)
 
 end try
 end repeat
end open
to rescale_and_save(this_item, size, type)
 tell application “Image Events”
 launch
 set the target_width to size
 −− open the image file
 set this_image to open this_item
 
 set type to this_image’s file type
 
 copy dimensions of this_image to {current_width, current_height}
 if current_width is greater than current_height then
 scale this_image to size target_width
 else
 −− figure out new height
 −− y2 = (y1 * x2) / x1
 set the new_height to (current_height * target_width) / current_width
 scale this_image to size new_height
 end if
 
 tell application “Finder” to set new_item to ¬
 (container of this_item as string) & type & “.” & (name of this_item)
 save this_image in new_item as typ
 
 end tell
end rescale_and_save

Lo script è un po’ più complicato e per essere utilizzato va salvato come applicazione, (dal menù File>Salva scegliere il formato applicazione), qualsiasi file immagine trascinato sull’icona dello script verrà ridimensionato nei formati indicati in “rescale_and_save”, in questo caso 152, 76, 80, 40, 58, 29 con i nomi rispettivamente ipadApp2x, ipadApp1x, ecc.

Salvataggio AppleScript

Come potete vedere, con apple script potete fare qualsiasi cosa, su google trovate molti esempi, inoltre apple mette a disposizione Automator, il quale permette di creare script in modo visuale.