AppleScript
| AppleScript | |
| Druh | skriptovací, programovanie v prirodzenom jazyku (angl. natural language programming) |
|---|---|
| Dátum vzniku | 1993[1] |
| Použitie | Automatizácia aplikácií v systémoch System 7, Mac OS 8, Mac OS 9 a macOS |
| Typová kontrola | slabá, dynamická |
| Tvorca | Apple Inc. |
| Používané prípony | .scpt, .scptd, .applescript |
AppleScript je skriptovací jazyk, ktorý vytvorila spoločnosť Apple Inc. a ktorý umožňuje automatizované ovládanie aplikácií na počítačoch Mac. Prvýkrát sa objavil v systéme System 7 a v súčasnosti je súčasťou macOS ako jeden z balíka nástrojov na automatizáciu. Výraz AppleScript môže označovať skriptovací jazyk, skript napísaný v tomto jazyku alebo architektúru Open Scripting Architecture systému macOS, na ktorej jazyk stojí.[2][3]
AppleScript je predovšetkým mechanizmus na ovládanie udalostí Apple events – technológie komunikácie medzi aplikáciami (inter-application communication, IAC), ktorá vymieňa údaje medzi aplikáciami a ovláda ich.[2][3] Okrem toho AppleScript podporuje základné výpočty a spracovanie textu a dá sa rozšíriť pomocou doplnkov (angl. scripting additions), ktoré do jazyka pridávajú funkcie.
AppleScript je úzko zviazaný s prostredím Macu, podobne ako je Windows Script Host zviazaný s prostredím Windows. Jedným zo spôsobov, ako je AppleScript viazaný na osobitosti svojho prostredia, je to, že sa spolieha na aplikácie, ktoré zverejňujú slovníky adresovateľných objektov a operácií.
Jazyk má prvky štruktúrovaného, procedurálneho, objektovo orientovaného programovania a programovania v prirodzenom jazyku, ale striktne nezodpovedá žiadnej z týchto programovacích paradigiem.[3]:xxvi
História
[upraviť | upraviť zdroj]Koncom 80. rokov 20. storočia Apple zvažoval, že skriptovací jazyk HyperTalk z aplikácie HyperCard použije ako štandardný jazyk na vývoj programov koncovými používateľmi (end-user development) v celej firme a v jej operačnom systéme klasický Mac OS, ako aj na komunikáciu medzi procesmi produktov Apple a produktov iných výrobcov.[4] HyperTalk mohli začiatočníci používať na programovanie zásobníkov (angl. stacks) v HyperCarde. Inžinieri Apple si uvedomili, že podobný, ale viac objektovo orientovaný skriptovací jazyk by sa dal navrhnúť tak, aby sa dal používať s akoukoľvek aplikáciou. Projekt AppleScript tak vznikol ako odnož výskumného úsilia o celkovú modernizáciu Macintoshu a napokon sa stal súčasťou systému System 7.[1]
Prvé vydanie pre koncových používateľov, AppleScript 1.1, vyšlo v septembri 1993 ako súčasť System 7 Pro; od roku 1994 bol AppleScript súčasťou System 7.5.[1] AppleScript sa rozšíril najmä v počítačovej sadzbe a predtlačovej príprave, kde automatizoval pracovné postupy napríklad v aplikácii QuarkXPress.[1]
Po určitej neistote ohľadom budúcnosti AppleScriptu v operačnom systéme novej generácie prechod na Mac OS X (okolo roku 2002) a jeho frameworky (softvérové rámce) Cocoa výrazne zvýšili užitočnosť a flexibilitu AppleScriptu. Aplikácie Cocoa umožňujú vývojárom s minimálnym úsilím implementovať v aplikáciách základnú skriptovateľnosť, čím sa rozšíril počet aplikácií, ktoré možno priamo ovládať skriptami. Zároveň prechod na unixový základ a schopnosť AppleScriptu priamo spúšťať príkazy Unixu príkazom do shell script[5] poskytli AppleScriptom oveľa väčšiu kontrolu nad samotným operačným systémom.[3]:863 AppleScript Studio, vydané s Mac OS X 10.2 ako súčasť Xcode, a neskôr framework AppleScriptObjC, vydaný v Mac OS X 10.6, umožnili používateľom vytvárať aplikácie Cocoa pomocou AppleScriptu.[3]:969
V článku z roku 2006 zaradil časopis Macworld AppleScript do svojho rebríčka 30 najvýznamnejších produktov Apple na 17. miesto.[6]
V článku pre Macworld z roku 2013 skúsený vývojár softvéru pre Mac a komentátor John Gruber uzavrel svoju úvahu o „nepravdepodobnej životnosti AppleScriptu“ slovami: „Teoreticky by AppleScript mohol byť oveľa lepší; v praxi je to však to najlepšie, čo máme a čo funguje. Je príkladom výhod Macu oproti iOS pre kutilov a pokročilých používateľov.“[7]
V októbri 2016 odišiel z Apple dlhoročný produktový manažér AppleScriptu a propagátor automatizácie Sal Soghoian, keď bola jeho pozícia zrušená „z obchodných dôvodov“.[8] Skúsení členovia komunity okolo Macu, napríklad John Gruber a Andy Ihnatko, reagovali vo všeobecnosti znepokojene a spochybňovali záväzok Apple voči komunite vývojárov a profesionálnym používateľom.[9] Senior viceprezident Apple pre softvérové inžinierstvo Craig Federighi odpovedal e-mailom, že „máme v úmysle naďalej podporovať skvelé technológie automatizácie v macOS!“, hoci Jeff Gamet z The Mac Observer sa vyjadril, že to len málo rozptýlilo jeho pochybnosti o budúcnosti automatizácie u Apple vo všeobecnosti a AppleScriptu zvlášť.[10]
Zámer
[upraviť | upraviť zdroj]AppleScript bol navrhnutý ako prístupný skriptovací jazyk pre koncových používateľov, ktorý im ponúka inteligentný mechanizmus na ovládanie aplikácií a na prístup k údajom a dokumentom a ich úpravu. AppleScript používa udalosti Apple events – súbor štandardizovaných dátových formátov, ktoré operačný systém Macintosh používa na posielanie informácií aplikáciám – čo je zhruba analogické posielaniu dotazov XPath cez XML-RPC vo svete webových služieb.[3]:xxvi Apple events umožňujú skriptu pracovať s viacerými aplikáciami súčasne a odovzdávať medzi nimi údaje, takže zložité úlohy sa dajú vykonať bez ľudského zásahu.[2] Napríklad AppleScript na vytvorenie jednoduchej webovej galérie môže robiť toto:
- Otvorí fotografiu v aplikácii na úpravu fotografií (tak, že tejto aplikácii pošle udalosť Apple event Open File).
- Prikáže aplikácii na úpravu fotografií upraviť obrázok (napr. znížiť jeho rozlíšenie, pridať rámček, pridať údaj o autorovi fotografie).
- Prikáže aplikácii na úpravu fotografií uložiť zmenený obrázok do súboru v inom priečinku (tak, že tejto aplikácii pošle udalosť Apple event Save a/alebo Close).
- Pošle cestu k novému súboru (ďalšou udalosťou Apple event) textovému editoru alebo aplikácii na úpravu webových stránok.
- Prikáže tomuto editoru zapísať odkaz na fotografiu do súboru HTML.
- Zopakuje uvedené kroky pre celý priečinok obrázkov (stovky či dokonca tisíce fotografií).
- Nahrá súbor HTML a priečinok s upravenými fotografiami na webovú lokalitu – poslaním udalostí Apple events grafickému klientovi FTP, pomocou vstavaných príkazov AppleScriptu alebo poslaním udalostí Apple events unixovým nástrojom FTP.
Pre používateľa sa tak stovky alebo tisíce krokov vo viacerých aplikáciách zredukovali na jediný úkon – spustenie skriptu – a úloha sa vykoná za oveľa kratší čas a bez možnosti náhodnej ľudskej chyby. Veľký zložitý skript sa môže vyvinúť na jediné spustenie, iné skripty sa používajú stále znova.
Skriptovateľné prvky aplikácie sú viditeľné v jej skriptovacom slovníku (Scripting Dictionary, distribuuje sa ako súčasť aplikácie), ktorý si možno pozrieť v ktoromkoľvek editore skriptov. Prvky sú spravidla zoskupené do sád (angl. suites) podľa voľných funkčných súvislostí medzi nimi. V každej sade sú dva základné druhy prvkov: triedy a príkazy.
- Triedy sú skriptovateľné objekty – napríklad textový editor bude takmer určite mať triedy pre okná, dokumenty a texty – a tieto triedy majú vlastnosti, ktoré sa dajú meniť (veľkosť okna, farba pozadia dokumentu, veľkosť písma textu atď.), a môžu obsahovať ďalšie triedy (okno obsahuje jeden alebo viac dokumentov, dokument obsahuje text, textový objekt obsahuje odseky, slová a znaky).
- Príkazy sú naopak pokyny, ktoré možno dávať skriptovateľným objektom. Všeobecný tvar bloku v AppleScripte je prikázať (
tell) skriptovateľnému objektu, aby vykonal príkaz.
Všetky skriptovateľné aplikácie zdieľajú niekoľko základných príkazov a objektov, ktoré sa zvyčajne nazývajú štandardná sada (Standard Suite) – príkazy na otvorenie, zatvorenie alebo uloženie súboru, na tlač, na ukončenie, na priradenie údajov do premenných – ako aj základný objekt application, ktorý poskytuje skriptovateľné vlastnosti samotnej aplikácie. Mnohé aplikácie majú množstvo sád, ktoré dokážu vykonať akúkoľvek úlohu, ktorú dokáže vykonať samotná aplikácia. Vo výnimočných prípadoch môžu aplikácie podporovať zásuvné moduly, ktoré obsahujú vlastné skriptovacie slovníky.
AppleScript bol navrhnutý tak, aby sa skripty dali vytvárať intuitívne zaznamenávaním činností používateľa. Túto možnosť zaznamenávania musí podporovať samotná aplikácia – aplikácia musí podporovať udalosti Apple events a zaznamenávanie AppleScriptu;[11] keďže Finder zaznamenávanie AppleScriptu podporuje, môže poslúžiť ako vzor. Keď je otvorená aplikácia AppleScript Editor (Script Editor) a stlačí sa tlačidlo Record, činnosti používateľa v aplikáciách, ktoré zaznamenávanie podporujú, sa prevedú na zodpovedajúce príkazy AppleScriptu a vypíšu do okna Script Editora. Výsledný skript možno uložiť a znova spustiť, aby zopakoval pôvodné činnosti, alebo ho upraviť tak, aby bol všeobecnejšie použiteľný.
Metafora prirodzeného jazyka
[upraviť | upraviť zdroj]Kým Apple events sú spôsob, ako posielať správy do aplikácií, AppleScript je konkrétny jazyk navrhnutý na posielanie Apple events. V súlade s cieľom jednoduchého použitia pre začiatočníkov je jazyk AppleScript postavený na metafore prirodzeného jazyka, tak ako je grafické používateľské rozhranie postavené na metafore pracovnej plochy. Dobre napísaný AppleScript by mal byť dostatočne zrozumiteľný na to, aby ho ktokoľvek dokázal prečítať, pochopiť a ľahko upraviť. Jazyk vychádza vo veľkej miere z jazyka HyperTalk aplikácie HyperCard, rozšíreného tak, aby sa mohol odkazovať nielen na svet kariet a zásobníkov HyperCardu, ale teoreticky na akýkoľvek dokument. Na tento účel tím AppleScriptu zaviedol objektový model AppleEvent Object Model (AEOM), ktorý určuje objekty, ktoré konkrétna aplikácia „pozná“.
Jadrom jazyka AppleScript je používanie výrazov, ktoré fungujú ako podstatné mená a slovesá a ktoré sa dajú kombinovať. Napríklad namiesto rôznych slovies na tlač stránky, dokumentu alebo rozsahu stránok (ako printPage, printDocument, printRange) používa AppleScript jediné sloveso „print“, ktoré sa dá skombinovať s objektom, napríklad so stránkou, dokumentom alebo rozsahom stránok.
print page 1
print document 2
print pages 1 thru 5 of document 2
AEOM vo všeobecnosti definuje množstvo objektov – napríklad „document“ či „paragraph“ – a zodpovedajúcich akcií – napríklad „cut“ a „close“. Systém definuje aj spôsoby odkazovania na vlastnosti objektov, takže sa možno odvolať na „tretí odsek dokumentu 'Good Day'“ alebo na „farbu posledného slova predného okna“. AEOM používa slovník aplikácie na priradenie udalostí Apple events k výrazom čitateľným pre človeka, čo umožňuje preklad oboma smermi medzi AppleScriptom čitateľným pre človeka a udalosťami Apple events v podobe bajtkódu. Ktoré prvky programu sú skriptovateľné, možno zistiť prezretím slovníkov podporovaných aplikácií. (V aplikáciách Xcode a Script Editor je to v ponuke File → Open Dictionary.)
Na určenie, ktorej aplikácii je takáto správa určená, používa AppleScript konštrukciu „tell“:
tell application "Microsoft Word"
quit
end tell
Príkaz tell možno alternatívne vyjadriť na jednom riadku pomocou neurčitku:
tell application "Microsoft Word" to quit
Pri udalostiach zo sady „Core Suite“ (activate, open, reopen, close, print a quit) možno aplikáciu uviesť ako priamy predmet prechodných príkazov:
quit application "Microsoft Word"
Pojem hierarchie objektov možno vyjadriť pomocou vnorených blokov:
tell application "QuarkXPress"
tell document 1
tell page 2
tell text box 1
set word 5 to "Apple"
end tell
end tell
end tell
end tell
Hierarchiu objektov možno vyjadriť aj pomocou vnorených spojení s predložkou of alebo reťazenia privlastňovacích tvarov s ’s:
pixel 7 of row 3 of TIFF image "my bitmap"
TIFF image "my bitmap"'s 3rd row's 7th pixel
čo by sa v inom programovacom jazyku dalo vyjadriť ako postupnosť volaní metód (podprogramov), ako v tomto pseudokóde:
getTIFF("my bitmap").getRow(3).getPixel(7);
AppleScript pozná zápis radovými číslovkami, „the first paragraph“ (prvý odsek), aj základnými číslovkami, „paragraph one“ (odsek jeden). Podobne sa na samotné čísla možno odvolať textom alebo číslom: „five“, „fifth“ aj „5“ sú podporované a v AppleScripte sú synonymami. Slovo „the“ možno navyše v skripte legálne použiť kdekoľvek na zlepšenie čitateľnosti: na fungovanie skriptu nemá žiadny vplyv.
Príklady
[upraviť | upraviť zdroj]Hello, world!
[upraviť | upraviť zdroj]Program „Hello, World!“ možno napísať na jednom riadku.[5] Zobrazenie modálneho okna s tlačidlami „OK“ a „Cancel“:
display dialog "Hello, world!"
Zobrazenie modálneho okna s tlačidlom „OK“ a ikonou upozornenia:
display alert "Hello, world!"
Výstup zvuku syntetizovaným hlasom:
say "Hello, world!"
Vývojové nástroje
[upraviť | upraviť zdroj]Editory skriptov
[upraviť | upraviť zdroj]Nasledujúce vývojové nástroje poskytujú programovacie prostredie na skriptovanie v AppleScripte – podporujú písanie, overovanie, kompiláciu, spúšťanie a ladenie skriptov. Niektoré umožňujú aj zobrazovanie slovníkov AppleScriptu, ukladanie skriptov v rôznych formátoch, zvýrazňovanie syntaxe a vkladanie útržkov kódu.
- AppleScript Editor
- Editor od Apple dodávaný s macOS, ktorý sa v Mac OS X Snow Leopard (10.6) až OS X Mavericks (10.9) volal AppleScript Editor a vo všetkých skorších aj neskorších verziách macOS Script Editor. Skripty sa píšu v oknách na úpravu dokumentov, v ktorých ich možno skompilovať a spustiť; tieto okná obsahujú rôzne panely, v ktorých sú na účely ladenia k dispozícii zaznamenané informácie, výsledky vykonania a ďalšie údaje. Prístup ku skriptovacím slovníkom a k vopred napísaným útržkom kódu poskytujú ponuky aplikácie. Od OS X Yosemite (10.10) umožňuje Script Editor písať v AppleScripte aj v jazyku JavaScript.[12]
- Xcode
- Súbor nástrojov od Apple na vývoj aplikácií s funkciami na úpravu skriptov a vytváranie samostatných aplikácií napísaných v AppleScripte.
- Script Debugger
- Komerčné integrované vývojové prostredie (IDE) od spoločnosti Late Night Software. Script Debugger je pomerne pokročilé prostredie pre AppleScript, ktoré autorovi skriptu umožňuje ladiť skripty krokovaním, bodmi prerušenia (angl. breakpoints), vstupovaním do funkcií a podprogramov a vystupovaním z nich, sledovaním premenných atď. Script Debugger obsahuje aj pokročilý prehliadač slovníkov, ktorý používateľovi umožňuje vidieť slovník v činnosti v reálnych situáciách. To znamená, že namiesto obyčajného výpisu toho, čo slovník pokrýva, možno napríklad otvoriť dokument v aplikácii Pages a pozrieť sa, ako sa výrazy slovníka vzťahujú na tento dokument, čo uľahčuje určenie, ktoré časti slovníka použiť. Script Debugger nie je určený na vytváranie skriptov s grafickým rozhraním, okrem základných upozornení a dialógov, ale zameriava sa skôr na písanie a ladenie skriptov.
- Smile a SmileLab
- Freewarové/komerčné IDE pre AppleScript od tretej strany, postavené na AppleScripte.[13] Smile je bezplatný a určený predovšetkým na vývoj v AppleScripte. SmileLab je komerčný softvér s rozsiahlymi doplnkami na numerickú analýzu, tvorbu grafov, automatizáciu strojov a tvorbu webu. Smile a SmileLab používajú rôzne druhy okien – okná AppleScriptu na spúšťanie a ukladanie celých skriptov, terminály AppleScriptu na testovanie kódu riadok po riadku, okná Unicode na prácu s textom a XML. Používatelia môžu vytvárať zložité rozhrania – takzvané dialógy – pre situácie, keď vstavané dialógy AppleScriptu nestačia.
- ASObjC Explorer 4
- Ukončené komerčné IDE pre AppleScript od Shana Stanleyho, určené najmä pre AppleScriptObjC.[14] Hlavnou funkciou je zaznamenávanie (angl. logging) objektov a udalostí Cocoa, ladenie a dopĺňanie kódu. Vznikol preto, že Script Debugger 5 nedokázal pracovať s kódom AppleScriptObjC. Po vydaní Script Debuggera 6 bol vývoj ukončený; poslednou verziou je 4.1.17.[14]
- FaceSpan
- Ukončené komerčné IDE od spoločnosti Late Night Software na vytváranie aplikácií v AppleScripte s grafickým používateľským rozhraním.[15]
Spúšťače skriptov
[upraviť | upraviť zdroj]Pri vývoji a v jednorazových situáciách možno skript spustiť z editora skriptov, no na automatizáciu sa skript musí spúšťať bez otvárania ďalšej aplikácie. Na to existuje niekoľko možností:
- Applety
- AppleScripty možno z editora skriptov uložiť ako aplikácie (nazývané applety, alebo droplety, ak prijímajú vstup cez ťahanie a pustenie).[3]:69 Applety možno spúšťať z Docku, z panela nástrojov okien Findera, zo Spotlightu, zo spúšťačov aplikácií tretích strán alebo z akéhokoľvek iného miesta, odkiaľ možno spúšťať aplikácie.
- Akcie priečinkov
- Pomocou akcií priečinkov (angl. folder actions) AppleScriptu možno skripty spúšťať pri určitých zmenách v priečinkoch (napríklad pri pridaní alebo odstránení súborov).[16] Akcie priečinkov možno priradiť kliknutím na priečinok a výberom položky Folder Actions Setup... z kontextovej ponuky; umiestnenie tohto príkazu sa v Mac OS X 10.6.x mierne líši od skorších verzií. To isté možno dosiahnuť aj pomocou nástrojov tretích strán, napríklad Hazel.[17]
- Spúšťače cez klávesové skratky
- AppleScriptom v ponuke skriptov možno priradiť klávesové skratky pomocou panela predvolieb Keyboard & Mouse Settings v Systémových nastaveniach (System Preferences). K dispozícii sú aj rôzne nástroje tretích strán – Alfred,[18] FastScripts,[19] Keyboard Maestro,[20] QuicKeys,[21] Quicksilver,[22] TextExpander[23] – ktoré dokážu spúšťať AppleScripty na požiadanie pomocou kombinácií kláves.
- Ponuka skriptov
- Táto systémová ponuka sprístupňuje AppleScripty z panela ponúk macOS bez ohľadu na to, ktorá aplikácia je spustená.[24] (Mnohé aplikácie od Apple, niektoré aplikácie tretích strán a niektoré doplnky navyše poskytujú vlastné ponuky skriptov. Môžu sa aktivovať rôznymi spôsobmi, ale všetky fungujú v podstate rovnako.) Výberom skriptu v ponuke skriptov sa skript spustí. Od Mac OS X 10.6.x možno systémovú ponuku skriptov zapnúť v predvoľbách aplikácie Script Editor; v skorších verziách Mac OS X sa dala zapnúť v aplikácii AppleScript Utility. Po prvom zapnutí zobrazuje ponuka skriptov predvolenú knižnicu pomerne všeobecných, funkčných AppleScriptov, ktoré možno otvoriť aj v Script Editore a použiť ako príklady pri učení sa AppleScriptu. Skripty možno usporiadať tak, aby sa v ponuke zobrazovali iba vtedy, keď sú v popredí určité aplikácie.
- Unixový príkazový riadok a launchd
- AppleScripty možno spúšťať z unixového príkazového riadka alebo ako naplánované úlohy cez launchd[3]:716 pomocou nástroja príkazového riadka osascript.[25] Nástroj osascript dokáže spúšťať skompilované skripty (súbory .scpt) aj súbory s obyčajným textom (súbory .applescript – tie nástroj skompiluje pri spustení). Skriptové aplikácie možno spúšťať unixovým príkazom open.
Doplnkové prostriedky
[upraviť | upraviť zdroj]AppleScript Libraries
[upraviť | upraviť zdroj]Opakovane použiteľné moduly AppleScriptu (dostupné od OS X Mavericks) napísané v AppleScripte alebo v AppleScriptObjC a uložené ako súbory skriptov alebo balíky (bundles) na určitých miestach,[26] ktoré možno volať z iných skriptov. Ak je knižnica uložená ako balík, môže obsahovať súbor slovníka AppleScriptu (sdef),[27] a funguje tak ako doplnok (scripting addition), ale napísaný v AppleScripte alebo AppleScriptObjC.
AppleScript Studio
[upraviť | upraviť zdroj]Framework na pripájanie rozhraní Cocoa k aplikáciám v AppleScripte, súčasť balíka Xcode v Mac OS X 10.4 a 10.5, dnes zastaraný a nahradený frameworkom AppleScriptObjC.[28]:438
AppleScriptObjC
[upraviť | upraviť zdroj]Vývojový framework pre Cocoa, nazývaný aj AppleScript/Objective-C alebo ASOC,[29] súčasť balíka Xcode od Mac OS X Snow Leopard.[30] AppleScriptObjC umožňuje AppleScriptom priamo používať triedy a metódy Cocoa.[31] Nasledujúca tabuľka ukazuje dostupnosť AppleScriptObjC v jednotlivých verziách macOS:[32]
| Verzia OS | V Xcode | V appletoch | V AppleScript Libraries | V Script Editore |
|---|---|---|---|---|
| 10.6 | áno | |||
| 10.7 | áno | áno | ||
| 10.8 | áno | áno | ||
| 10.9 | áno | áno | áno | |
| 10.10 | áno | áno | áno | áno |
Automator
[upraviť | upraviť zdroj]Grafické modulárne prostredie, v ktorom sa z akcií (actions) skladajú pracovné postupy (workflows). Je určené na to, aby duplikovalo mnohé funkcie AppleScriptu bez potreby znalostí programovania. Automator má akciu určenú špeciálne na uchovanie a spustenie AppleScriptov pre úlohy, ktoré sú pre zjednodušený framework Automatora príliš zložité.[33]
Scripting Additions (OSAX)
[upraviť | upraviť zdroj]Zásuvné moduly pre AppleScript vyvinuté spoločnosťou Apple alebo tretími stranami.[34] Sú určené na rozšírenie vstavanej množiny príkazov – rozširujú možnosti AppleScriptu a robia ho o niečo menej závislým od funkcií, ktoré poskytujú aplikácie. macOS obsahuje súbor doplnkov nazývaný Standard Additions (StandardAdditions.osax), ktorý pridáva množinu príkazov a tried, ktoré nie sú súčasťou základných funkcií AppleScriptu – vrátane dialógov na interakciu s používateľom, čítania a zápisu súborov, príkazov súborového systému, funkcií pre dátumy a textových a matematických operácií; bez tohto OSAX by AppleScript nedokázal vykonať mnohé základné činnosti, ktoré priamo neposkytuje niektorá aplikácia.
Jazyk
[upraviť | upraviť zdroj]Typovanie
[upraviť | upraviť zdroj]Premenné nie sú striktne typované a netreba ich deklarovať. Premenné môžu nadobúdať akýkoľvek dátový typ (vrátane skriptov a funkcií). Napríklad:
-- vytvorí celočíselnú premennú variable1
set variable1 to 1
-- vytvorí textovú premennú variable2
set variable2 to "Hello"
-- vytvorí premennú variable3 typu zoznam
copy {17, "doubleday"} to variable3
-- skopíruje položky zoznamu variable3 do samostatných premenných variable4 a variable5
set {variable4, variable5} to variable3
-- priradí premennej inštanciu skriptu
set variable6 to script myScript
Rozsah platnosti
[upraviť | upraviť zdroj]Podprogram nemožno zavolať priamo z bloku tell adresovaného aplikácii. Je potrebné použiť my alebo of me.
tell application "Finder"
set x to my myHandler()
-- alebo
set x to myHandler() of me
end tell
on myHandler()
--príkazy
end myHandler
Rovnaký postup pri príkazoch z doplnkov (angl. scripting additions) môže znížiť počet chýb a zlepšiť výkon.
tell application "Finder"
set anyNumber to my (random number from 5 to 50)
end tell
Typy a objekty
[upraviť | upraviť zdroj]Skript môže definovať vlastné dátové typy alebo použiť niektorú z mnohých vstavaných tried a objektov, ktoré poskytuje jazyk a ktoré skriptovateľné aplikácie spravidla rozpoznávajú. K významným vstavaným typom a objektom patria:
- Základné objekty
- application: používa sa najmä ako určenie cieľa v príkazoch tell (
tell application "Finder" …) - script: objekty skriptu (angl. script objects) sú kontajnery pre skripty; každý AppleScript pri spustení vytvorí objekt skriptu a objekty skriptu možno vytvárať aj v rámci AppleScriptov
- class: metaobjekt, ktorý určuje typ iných objektov
- reference: objekt, ktorý zapuzdruje nevyhodnotený špecifikátor objektu, ktorý môže, ale nemusí ukazovať na platný objekt; možno ho vyhodnotiť na požiadanie prístupom k jeho vlastnosti
contents
- Štandardné dátové objekty
- constant: konštantná hodnota; jazykom definované konštanty sú napríklad
pi,tabalinefeed - boolean: pravdivostná (true/false) hodnota; podtrieda triedy
constant - number: abstraktná nadtrieda tried
integerareal; priamo sa používa zriedka - integer: celé číslo; možno s ním pracovať vstavanými matematickými operátormi
- real: číslo s pohyblivou rádovou čiarkou (reálne číslo); možno s ním pracovať vstavanými matematickými operátormi
- date: dátum a čas
- text: pred AppleScriptom 2.0 (Mac OS X 10.4 a staršie) sa trieda
textlíšila odstringaUnicode texta tieto tri sa správali trochu odlišne; vo verzii 2.0 (10.5) a novších sú všetky synonymá a všetok text sa spracúva ako UTF-16[35]
- Kontajnery
- list: usporiadaný zoznam objektov; môže obsahovať akúkoľvek triedu vrátane iných zoznamov a tried definovaných aplikáciami
- record: zoznam objektov s kľúčmi; ako zoznam, ale usporiadaný ako dvojice kľúč – hodnota; prístup cez kľúč za behu nie je podporovaný; všetky kľúče musia byť identifikátory, ktoré sú konštantné v čase kompilácie
- Súborový systém
- alias: odkaz na existujúci objekt súborového systému (súbor alebo priečinok); zachováva prepojenie na objekt súborového systému aj po jeho presunutí alebo premenovaní
- file: odkaz na objekt súborového systému; môže odkazovať aj na objekt, ktorý neexistuje
- POSIX file: odkaz na objekt súborového systému v podobe obyčajného textu so zápisom s lomkami (/) v štýle Unixu (POSIX); nie je to skutočný dátový typ, pretože AppleScript automaticky prevedie POSIX file na obyčajný file[36]
- Rôzne
- RGB color: určuje trojicu RGB (vo formáte 16-bitového high color) na použitie v príkazoch a objektoch, ktoré pracujú s farbami
- unit types: prevádza medzi štandardnými jednotkami; napríklad hodnotu možno definovať v
square yards(štvorcových yardoch) a potom ju previesť nasquare feet(štvorcové stopy) pretypovaním medzi typmi jednotiek pomocou operátoraas
Blok
[upraviť | upraviť zdroj]AppleScript podporuje zložené príkazy v jednoriadkovej aj viacriadkovej syntaxi. Viacriadková syntax ukončuje blok kódu frázou end kľúčové slovo, kde kľúčové slovo je kľúčové slovo príkazu na začiatku bloku. Napríklad:
-- Jednoduchý tvar
tell application "Safari" to activate
-- Zložený tvar
tell application "MyApp"
-- príkazy pre aplikáciu
end tell
Skript
[upraviť | upraviť zdroj]Objekt skriptu je plnohodnotný objekt – zapuzdruje metódy a údaje a dedí údaje a správanie od rodičovského skriptu. Objekty skriptu môžu používať rovnaké konštrukcie „tell“ ako objekty aplikácií a dajú sa načítať zo súborov a ukladať do nich. Výkon za behu možno v niektorých prípadoch zlepšiť použitím objektov skriptu. Objekt skriptu sa definuje takto:
script scriptName
-- príkazy a handlery špecifické pre tento skript
end script
Cyklus
[upraviť | upraviť zdroj]Konštrukcia cyklu má viacero variantov, všetky používajú kľúčové slovo repeat. Z cyklu možno vystúpiť príkazom exit repeat.
- Nepodmienený
repeat
-- opakované príkazy
end repeat
- Opakovanie s daným počtom
repeat 10 times
-- opakované príkazy
end repeat
- Podmienený
Pri repeat while sa blok vykonáva, kým sa podmienka vyhodnocuje ako pravdivá. Cyklus repeat until je rovnaký, len sa blok vykonáva, kým sa podmienka vyhodnocuje ako nepravdivá.
set x to 5
repeat while x > 0
set x to x - 1
end repeat
set x to 5
repeat until x ≤ 0
set x to x - 1
end repeat
- S premennou
Premenná sa inicializuje na hodnotu a po každom vykonaní bloku sa zvýši o hodnotu kroku; ak krok nie je zadaný, o 1.
-- zopakuje blok 2000-krát, i nadobudne všetky hodnoty od 1 do 2000
repeat with i from 1 to 2000
-- opakované príkazy
end repeat
-- zopakuje blok 4-krát, i nadobudne hodnoty 100, 75, 50 a 25
repeat with i from 100 to 25 by -25
-- opakované príkazy
end repeat
- Prechádzanie zoznamu
Premenná postupne nadobúda hodnotu každej položky zoznamu.
set total to 0
repeat with loopVariable in {1, 2, 3, 4, 5}
set total to total + loopVariable
end repeat
Handler
[upraviť | upraviť zdroj]Handler (obslužná rutina), variant blokovej štruktúry, definuje podprogram.
- Funkčný handler
on myFunction(parameters...)
-- príkazy podprogramu
end myFunction
- Blok akcie priečinka
on adding folder items to thisFolder after receiving theseItems
-- príkazy, ktoré sa vykonajú na priečinku alebo položkách
end adding folder items to
- Handler run
on run
-- príkazy
end run
Handlery možno definovať aj pomocou „to“ namiesto „on“ a možno ich napísať tak, aby prijímali pomenované parametre, ktoré nie sú uzavreté v zátvorkách.
- Handler s pomenovanými parametrami
on rock around the clock
display dialog (clock as string)
end rock
-- volanie:
rock around the current date
- Handler s „to“ a pomenovanými parametrami
to check for yourNumber from bottom thru top
if bottom ≤ yourNumber and yourNumber ≤ top then
display dialog "Congratulations! You scored."
end if
end check
--volanie:
check for 8 from 7 thru 10
AppleScript má štyri druhy preddefinovaných handlerov – run, open, idle a quit –, z ktorých sa každý vytvára rovnako ako uvedený handler run.
- Handler run
- Definuje hlavný kód skriptu, ktorý sa zavolá pri spustení skriptu. Bloky handlera run sú nepovinné, pokiaľ sa skriptu neodovzdávajú argumenty. Ak sa explicitný blok handlera run vynechá, celý kód, ktorý nie je v blokoch handlerov, sa vykoná, akoby bol v implicitnom handleri run.
- Handler open
- Definuje sa pomocou „on open theItems“.
on open theItems
repeat with thisItem in theItems
tell application "Finder" to update thisItem
end repeat
end open
Keď sa skript obsahujúci handler open uloží ako applet, applet sa stane dropletom. Droplet možno vo Finderi rozpoznať podľa ikony so šípkou, ktorá naznačuje, že na ikonu možno pustiť položky. Handler open dropletu sa vykoná, keď sa na jeho ikonu pustia súbory alebo priečinky. Odkazy na položky pustené na ikonu dropletu sa odovzdajú skriptu dropletu ako parameter handlera open. Droplet možno spustiť aj rovnako ako obyčajný applet – vtedy sa vykoná jeho handler run.
- Handler idle
- Podprogram, ktorý systém pravidelne spúšťa, keď je aplikácia nečinná.
on idle
--kód, ktorý sa vykoná po dokončení behu skriptu
return 60 -- počet sekúnd pauzy pred ďalším vykonaním handlera idle
end idle
Handler idle možno používať v appletoch alebo dropletoch uložených ako applety, ktoré zostávajú otvorené (stay-open), a hodí sa pre skripty, ktoré sledujú určité údaje alebo udalosti. Interval nečinnosti je predvolene 30 sekúnd,[37] ale možno ho zmeniť príkazom „return x“ na konci podprogramu, kde x je počet sekúnd, ktorý má systém počkať pred ďalším spustením handlera.
- Handler quit
- Handler, ktorý sa spustí, keď applet dostane požiadavku na ukončenie (Quit). Možno ho použiť na uloženie údajov alebo vykonanie iných záverečných úloh pred ukončením.
on quit
--príkazy, ktoré sa vykonajú pred ukončením skriptu
continue quit -- potrebné na to, aby sa skript skutočne ukončil
end quit
Komentár
[upraviť | upraviť zdroj]Komentár možno zapísať rôznymi spôsobmi. Riadkový komentár začína znakmi -- alebo v novších verziách (AppleScript 2.0, prvýkrát vydaný v Mac OS X Leopard) znakom #. Druhá možnosť umožňuje spustiť skript v AppleScripte ako spustiteľný súbor, ak sa začína riadkom shebang #!/usr/bin/osascript.[38] Napríklad:
--Toto je riadkový komentár
# Aj toto (v novších verziách)
Blokový komentár (môže mať viac riadkov) je ohraničený znakmi (* a *). Napríklad:
(* Toto je
viacriadkový
komentár *)
Interakcia s používateľom
[upraviť | upraviť zdroj]AppleScript má niekoľko možností používateľského rozhrania vrátane dialógov, upozornení a zoznamov na výber. (Znak ¬, ktorý sa v Script Editore vloží stlačením option+return, označuje pokračovanie jedného príkazu na viacerých riadkoch.)[38]
-- Dialóg
set dialogReply to display dialog "Dialog Text" ¬
default answer "Text Answer" ¬
hidden answer false ¬
buttons {"Skip", "Okay", "Cancel"} ¬
default button "Okay" ¬
cancel button "Skip" ¬
with title "Dialog Window Title" ¬
with icon note ¬
giving up after 15
-- Výber zo zoznamu
set chosenListItem to choose from list {"A", "B", "3"} ¬
with title "List Title" ¬
with prompt "Prompt Text" ¬
default items "B" ¬
OK button name "Looks Good!" ¬
cancel button name "Nope, try again" ¬
multiple selections allowed false ¬
with empty selection allowed
-- Upozornenie
set resultAlertReply to display alert "Alert Text" ¬
as warning ¬
buttons {"Skip", "Okay", "Cancel"} ¬
default button 2 ¬
cancel button 1 ¬
giving up after 2
Každý spôsob interakcie s používateľom môže vrátiť hodnoty stlačených tlačidiel, vybraných položiek alebo zadaného textu na ďalšie spracovanie. Napríklad:
display alert "Hello, world!" buttons {"Rudely decline", "Happily accept"}
set theAnswer to button returned of the result
if theAnswer is "Happily accept" then
beep 5
else
say "Piffle!"
end if
Open Scripting Architecture
[upraviť | upraviť zdroj]Apple poskytuje architektúru Open Scripting Architecture (OSA), aby ďalšie skriptovacie jazyky a produkty tretích strán na skriptovanie a automatizáciu (napríklad QuicKeys a Frontier od UserLand) mohli fungovať rovnocenne s AppleScriptom. AppleScript je implementovaný ako komponent správcu komponentov (Component Manager) a základné špecifikácie na pripojenie takých komponentov k OSA sú verejné, takže ďalší vývojári môžu do systému pridávať vlastné skriptovacie komponenty. Verejné klientske API na načítanie, ukladanie a kompiláciu skriptov fungujú rovnako pre všetky takéto komponenty, čo znamená, že applety a droplety môžu obsahovať skripty v ktoromkoľvek z týchto skriptovacích jazykov.[39]
Jednou z funkcií OSA sú doplnky (angl. scripting additions), čiže OSAX (angl. Open Scripting Architecture eXtension),[34] inšpirované externými príkazmi (External Commands) aplikácie HyperCard. Doplnky sú knižnice, ktoré programátorom umožňujú rozšíriť funkcie AppleScriptu. Príkazy obsiahnuté v doplnkoch sú dostupné v celom systéme a nezávisia od žiadnej aplikácie (pozri aj časť AppleScript Libraries). AppleScript Editor dokáže aj priamo upravovať a spúšťať niektoré jazyky OSA.
JavaScript for Automation
[upraviť | upraviť zdroj]Od OS X Yosemite je medzi jazykmi OSA aj JavaScript for Automation (JXA); dovtedy bol AppleScript jediným jazykom OSA, ktorý väčšina používateľov Macu poznala,[12] hoci verzie jazykov Perl, Python, Ruby a Tcl pre Macintosh podporujú natívne spôsoby práce s udalosťami Apple events bez toho, aby boli komponentmi OSA.[28]:516
JXA poskytuje aj rozhranie na volanie kódu v jazyku Objective-C (a v jazyku C).[12] Keďže ide o prostredie založené na engine JavaScriptCore z WebKitu, množina funkcií JavaScriptu je zosúladená so systémovým jadrom prehliadača Safari. JXA poskytuje modulový systém JavaScriptu a pomocou nástroja browserify možno používať aj moduly CommonJS.[40]
Referencie
[upraviť | upraviť zdroj]- 1 2 3 4 COOK, William. AppleScript. Proceedings of the third ACM SIGPLAN conference on History of programming languages (Association for Computing Machinery), 2007, s. 1–21. Dostupné online. DOI: 10.1145/1238844.1238845. (po anglicky)
- 1 2 3 GOLDSTEIN, Adam. AppleScript: the missing manual. Sebastopol, CA : O'Reilly Media, 2005. ISBN 0596008503. OCLC 56912218. (po anglicky)
- 1 2 3 4 5 6 7 8 SANDERSON, Hamish; ROSENTHAL, Hanaan. Learn AppleScript. 3. vyd. Berkeley : Apress, 2009. ISBN 9781430223610. DOI:10.1007/978-1-4302-2362-7_27 OCLC 308193726. Kapitola Interacting with the Unix Command Line, s. 863–896. (po anglicky)
- ↑ FLYNN, Laurie. Apple Ponders Standardizing on HyperTalk. InfoWorld, 1989-02-27, roč. 11, čís. 9, s. 31. (po anglicky)
- 1 2 AppleScript Language Guide commands reference: do shell script [online]. developer.apple.com, [cit. 2019-09-15]. Dostupné online. (po anglicky)
- ↑ Apple's greatest hits: 30 significant products [online]. macworld.com, 2006-04-06, [cit. 2019-09-12]. Dostupné online. (po anglicky)
- ↑ GRUBER, John. The unlikely persistence of AppleScript. Macworld, 2013-03, roč. 30, čís. 3, s. 100. Dostupné online. (po anglicky)
- ↑ LOVEJOY, Ben. Sal Soghoian says 'ask Apple' about future of Mac user automation as company eliminates position [online]. 9to5mac.com, 2016-11-17, [cit. 2017-05-08]. Dostupné online. (po anglicky)
- ↑ EVANS, Jonny. Does Apple really want to kill Automator, AppleScript? Shock termination of veteran Apple developer guru sends shockwaves across the Mac community [online]. Computerworld.com, 2016-11-17, [cit. 2017-05-08]. Dostupné online. (po anglicky)
- ↑ GAMET, Jeff. Apple's intent isn't the same as committing to mac automation [online]. macobserver.com, 2016-11-23, [cit. 2017-05-08]. Dostupné online. Archivované 2016-11-24 z originálu. (po anglicky)
- ↑ Scriptable Applications [online]. developer.apple.com, [cit. 2018-07-26]. Dostupné online. (po anglicky)
- 1 2 3 SIRACUSA, John. OS X 10.10 Yosemite: The Ars Technica Review: JavaScript automation [online]. Ars Technica, 2014-10-16, [cit. 2017-05-08]. Dostupné online. (po anglicky)
- ↑ Smile and SmileLab Home Page [online]. satimage.fr, [cit. 2017-05-08]. Dostupné online. (po anglicky)
- 1 2 ASObjC Explorer 4 Discontinued [online]. macosxautomation.com, [cit. 2017-05-08]. Dostupné online. Archivované 2017-06-21 z originálu. (po anglicky)
- ↑ Mark Alldritt's Journal » FaceSpan [online]. blog.latenightsw.com, [cit. 2017-05-08]. Dostupné online. (po anglicky)
- ↑ AppleScript Language Guide: Folder Actions Reference [online]. developer.apple.com, [cit. 2017-05-08]. Dostupné online. (po anglicky)
- ↑ MILLER, Dan. Capsule review: Hazel 2.3 [online]. Macworld.com, 2010-12-22, [cit. 2017-05-08]. Dostupné online. (po anglicky)
- ↑ BEAM, Brian. Alfred review: This Mac app launcher continues to shine, but Alfred Remote doesn't stack up [online]. Macworld.com, 2015-02-10, [cit. 2017-05-10]. Dostupné online. (po anglicky)
- ↑ FRAKES, Dan. Capsule review: FastScripts 2.5 [online]. Macworld.com, 2011-06-02, [cit. 2017-05-08]. Dostupné online. (po anglicky)
- ↑ BREEN, Christopher. Mac Gems: Keyboard Maestro 6 is a genius at repetitive tasks [online]. Macworld.com, 2013-06-04, [cit. 2017-05-10]. Dostupné online. (po anglicky)
- ↑ BREEN, Christopher. Capsule review: QuicKeys 4 [online]. Macworld.com, 2010-05-07, [cit. 2017-05-08]. Dostupné online. (po anglicky)
- ↑ AppleScripts – Quicksilver Wiki [online]. qsapp.com, [cit. 2017-05-10]. Dostupné online. Archivované 2025-01-29 z originálu. (po anglicky)
- ↑ FLEISHMAN, Glenn. TextExpander 5 review [online]. Macworld.com, 2015-06-12, [cit. 2017-05-08]. Dostupné online. (po anglicky)
- ↑ Mac Automation Scripting Guide: Using the Systemwide Script Menu [online]. developer.apple.com, [cit. 2017-05-08]. Dostupné online. (po anglicky)
- ↑ osascript(1) Mac OS X Manual Page [online]. www.unix.com, [cit. 2024-07-23]. Dostupné online. (po anglicky)
- ↑ AppleScript Libraries [online]. macosautomation.com, [cit. 2017-05-08]. Dostupné online. Archivované 2020-07-26 z originálu. (po anglicky)
- ↑ WWDC 2013 Session 416: Introducing AppleScript Libraries [online]. asciiwwdc.com, [cit. 2017-05-08]. Dostupné online. (po anglicky)
- 1 2 NEUBURG, Matt. AppleScript: the definitive guide. 2. vyd. Beijing : O'Reilly Media, 2006. ISBN 0596102119. OCLC 68694976. (po anglicky)
- ↑ TSAI, Michael. AppleScript and Yosemite [online]. mjtsai.com, 2014-10-29, [cit. 2017-05-09]. Dostupné online. (po anglicky)
- ↑ AppleScriptObjC Release Notes [online]. developer.apple.com, [cit. 2017-05-08]. Dostupné online. (po anglicky)
- ↑ WALDIE, Ben. Building a basic AppleScriptObjC (Cocoa-AppleScript) application with Xcode [online]. peachpit.com, 2012-09-06, [cit. 2017-05-09]. Dostupné online. Archivované 2015-10-06 z originálu. (po anglicky)
- ↑ Tabuľka prevzatá z: NAGANOYA, Takaaki. ASObjCExtras Scripting Guide [online]. piyocast.com, [cit. 2017-05-09]. Dostupné online. Archivované 2022-10-09 z originálu. (po anglicky)
- ↑ Introduction to Automator AppleScript Actions Tutorial [online]. developer.apple.com, [cit. 2017-05-08]. Dostupné online. (po anglicky)
- 1 2 Technical Note TN1164: Scripting Additions for Mac OS X [online]. developer.apple.com, [cit. 2017-05-08]. Dostupné online. (po anglicky)
- ↑ AppleScript Release Notes: 10.5 Changes [online]. developer.apple.com, [cit. 2017-05-08]. Dostupné online. (po anglicky)
- ↑ POSIX file — Class Reference — AppleScript Language Guide [online]. developer.apple.com, [cit. 2018-01-08]. Dostupné online. (po anglicky)
- ↑ AppleScript Language Guide: Handlers in Script Applications [online]. developer.apple.com, [cit. 2026-10-03]. Dostupné online. (po anglicky)
- 1 2 AppleScript Language Guide: AppleScript Lexical Conventions [online]. developer.apple.com, [cit. 2026-10-15]. Dostupné online. (po anglicky)
- ↑ AppleScript Overview: Open Scripting Architecture [online]. developer.apple.com, [cit. 2017-05-08]. Dostupné online. (po anglicky)
- ↑ Importing Scripts [online]. JXA-Cookbook (GitHub), 2019-12-06, [cit. 2019-12-09]. Dostupné online. (po anglicky)
Ďalšia literatúra
[upraviť | upraviť zdroj]- AppleScript Language Guide [online]. developer.apple.com, 2016, [cit. 2017-05-09]. Dostupné online. (po anglicky)
- MUNRO, Mark Conway. AppleScript. Indianapolis : Wiley, 2010. (Developer Reference.) ISBN 978-0-470-56229-1. OCLC 468969567. (po anglicky)
- ROSENTHAL, Hanaan; SANDERSON, Hamish. Learn AppleScript: The Comprehensive Guide to Scripting and Automation on Mac OS X. 3. vyd. Berkeley : Apress, 2009. ISBN 978-1-4302-2361-0. DOI:10.1007/978-1-4302-2362-7 OCLC 308193726. (po anglicky)
- SOGHOIAN, Sal; CHEESEMAN, Bill. Apple Training Series: AppleScript 1-2-3. Berkeley : Peachpit Press, 2009. (Apple Pro training series.) Dostupné online. ISBN 978-0-321-14931-2. OCLC 298560807. (po anglicky)
- COOK, William. AppleScript. Proceedings of the third ACM SIGPLAN conference on History of programming languages (ACM), 2007, s. 1–21. Dostupné online. DOI: 10.1145/1238844.1238845. (po anglicky)
- FORD, Jerry Lee, Jr.. AppleScript Programming for the Absolute Beginner. Boston : Thomson Course Technology, 2007. Dostupné online. ISBN 978-1-59863-384-9. OCLC 76910522. (po anglicky)
- NEUBURG, Matt. AppleScript: The Definitive Guide. 2. vyd. Beijing; Farnham : O'Reilly Media, 2006. Dostupné online. ISBN 0-596-10211-9. OCLC 68694976. (po anglicky)
- GOLDSTEIN, Adam. AppleScript: The Missing Manual. Sebastopol, CA; Farnham : O'Reilly Media, 2005. (Missing Manual series.) Dostupné online. ISBN 0-596-00850-3. OCLC 56912218. (po anglicky)
- TRINKO, Tom. AppleScript for Dummies. 2. vyd. Hoboken, NJ : Wiley, 2004. (For Dummies series.) Dostupné online. ISBN 978-0-7645-7494-8. OCLC 56500506. (po anglicky)
Externé odkazy
[upraviť | upraviť zdroj]- AppleScript Overview – developer.apple.com, 2007 (po anglicky)
- AppleScript for Python Programmers (Comparison Chart) – aurelio.net, 2005 (po anglicky)
- Doug's AppleScripts for iTunes – dougscripts.com (po anglicky)
- MacScripter AppleScript community – macscripter.net (po anglicky)
Zdroj
[upraviť | upraviť zdroj]Tento článok je čiastočný alebo úplný preklad článku AppleScript na anglickej Wikipédii.