Automator in AppleScript
Računalnikom dajejo pamet programi. Brez njih so zgolj neumne škatle. Programe pišejo programerji. Programiranje zahteva precej znanja določenega programskega jezika in obvladovanje algoritmov. Za oboje so v Applu iznašli svoj recept. S pripomočkoma Automator in AppleScript se programiranja loti slehernik.
Če se utapljamo v dolgočasnih, vsakodnevnih, ponavljajočih se opravilih, bo prvo predstavljeno Applovo orodje, Automator, kakor nalašč za nas. Programiranje brez programiranja omogoča posamezniku izdelavo preprostih ali zahtevnejših avtomatiziranih opravil. Automator je sestavljen iz dveh vrst komponent, akcij in delovnih tokov. Akcije ustvarijo razvijalci in jih na Maca namestimo bodisi posamezno bodisi v sklopu nove aplikacije. Zadolžene so za posamezna opravila, iz njih pa nato uporabnik tvori delovni tok. Vanj kot korake naniza posamezne akcije in jih pretvori v izvršljiv pripomoček, ki ga zaženemo znotraj Automatorja, iz sistema, znotraj posamezne aplikacije ...
Delo z Automatorjem je v resnici veliko lažje, kot se zdi sprva.
Za začetek bomo ustvarili postopek, ki nam bo pomagal pri preimenovanju datotek. Kljub temu da gre za sorazmerno preprosto opravilo, je lahko ob večjem številu novega imena potrebnih predmetov precej utrujajoče, zato ne bo nič narobe, če se z orodjem Automator spoznamo na zgledu. Najprej zaženemo aplikacijo Automator in za predlogo izberemo Workflow. Poleg postopka, ki ga zaganjamo znotraj Automatorja, pozna slednji še predloge za izdelavo samostojne aplikacije, servisa, ki se prikaže v kontekstu odprtega programa znotraj padajočega izbirnika ob uporabi desnega klika, vtičnika za pogovorno okno pri tiskanju in akcij pri delu z imeniki, koledarjem in fotografijami. Za prvo pokušino torej izberemo postopek, ki ga bomo izvajali v okviru Automatorja. Prikaže se nam uporabniški vmesnik orodja. Na vrhu je orodna vrstica, s katero hitro dosežemo pogosto rabljene funkcije. Tako na primer z gumbom Media projektu bliskovito dodamo fotografije, zvok in druge medijske datoteke, ki jih imamo na disku. Na desni strani so krmila snemalnika. Če na seznamu razpoložljivih akcij ni takšne, kot jo pri izdelavi postopka potrebujemo, si lahko pomagamo z njim. Manjkajočo akcijo preprosto posnamemo in jo vključimo v nastajajoči projekt. Preostanek uporabniškega vmesnika je razdeljen na dva dela, na knjižnico in delovno površino. V knjižnici so akcije, ki jih imamo na voljo, združene v skupine po vsebini in povezanih aplikacijah, delovna površina pa je prostor, kamor nanizamo želene korake, ki bodo izvedli avtomatizirano opravilo namesto nas. Za naš primer potrebujemo akciji Get Specified Finder Items in Rename Finder Items, ki ju najdemo v skupini Files & Folders in povlečemo na delovno površino. Pri tem nas Rename Finder Items vpraša, ali želimo ob preimenovanju ustvariti kopije izvirnikov, saj se bodo ti po izvedbi ukaza spremenili. Tudi sicer ima korak, ki datoteke prekrsti, silno veliko možnosti, s katerimi se lahko poigramo. Datotekam lahko v ime dodamo datum in čas, vstavimo poljubno besedilo, zamenjamo velike in male črke in še kaj. Zelo uporabna je možnost dodajanja zaporednih številk (Make Sequential), ki izbranim datotekam na začetek ali konec imena doda unikatno cifro. Za konec v koraku Get Specified Finder Items izberemo želene datoteke in pritisnemo gumb Run. Postopek za večkratno rabo shranimo z izbiro File/Save.
S spremenljivkami si olajšamo delo v daljših in bolj zapletenih postopkih. Vanje shranimo pogosto rabljene vrednosti, do katerih nato zlahka pridemo v spodnjem delu pogovornega okna. Želeno spremenljivko povlečemo na izbrano mesto, nato se akcija samodejno napolni z ustrezno vrednostjo.
Postopkom je že od operacijskega sistema Mac OS X 10.5 naprej moč dodajati spremenljivke. Programerji vedo, da se vanje shranjujejo drobci informacij, kot so številke, imena, datum in podobno. Za ponazoritev uporabe spremenljivk bomo ustvarili postopek, ki s spletne strani pobere besedilo in ga shrani v datoteko na izbrani imenik krajevnega diska. Navadno bi tak postopek začeli z ustvarjanjem nove mape, nato bi s trenutno odprte spletne strani izluščili besedilo in ga zapisali v datoteko, ki bi prebivala v narejenem imeniku. Za lažje delo z določenimi vrednostmi pri daljših postopkih dodamo spremenljivke. Naš zgled je preprost, a ga bomo prilagodili na način, da bomo z njim prvič uporabili spremenljivko. Začnemo enako, s korakom Files & Folders / New Folder. Imeniku v polje Name vpišemo ime. Da ga bomo laže uporabljali, skozi celoten postopek dodamo iz knjižnice na delovno površino akcijo Utilities / Set Value of Variable. Spremenljivko poimenujemo, nato prevzame vrednost imenika z začetka postopka. S koraki Internet / Get Current Webpage from Safari, Internet / Get Text from Webpage in Text / New Text File končamo postopek. V New Text File pod Where povlečemo spremenljivko z dna zaslona namesto ponujenih imenikov z diska. Obiščemo poljubno spletno stran in zaženemo ustvarjeni pripomoček. Postopek z obiskane spletne strani prebere besedilo in ga zapiše v datoteko ter jo shrani v imenik, poimenovan z vrednostjo spremenljivke.
Zadnji postopek za prikaz dela v orodju Automator bomo shranili v obliki storitve, da ga bomo imeli vedno pri roki. Naredili bomo avtomatizacijo za obdelavo fotografij. Kljub bogatim možnostim operacijskega sistema OS X in namenskih programov, kot je iPhoto, je urejanje množice slikovnega gradiva za objavo v spletu zamudno opravilo. Poenostavimo si ga z Automatorjem. Za izdelavo postopka moramo v računalniku imeti program iPhoto (11,99 EUR), ki nam v Automatorja doda nekaj potrebnih akcij. Za predlogo izberemo Service, nato v delovni tok povlečemo Photos / Find iPhoto Items. Fotografije po želji filtriramo (npr. po datumu), nato poiščemo naslednji korak Files and Folders / Copy Finder Items in ga dodamo na delovno površino. V njem določimo ciljni imenik in nadaljujemo z akcijo Photos / Scale Images. Preostane nam le, da izberemo ciljno velikost izbranih fotografij, ki jo podamo v pikah ali odstotkih, shranimo postopek in ga preizkusimo z Run.
AppleScript
AppleScript je skriptni programski jezik, ki je del vsakega Maca. S skupkom razumljivih ukazov upravljamo operacijski sistem ter barantamo z datotekami in aplikacijami, ki so v računalniku. Primeren je za zelence v programiranju, saj uporablja človeško razumljive direktive, bolj podobne ljudskemu jeziku kot klasičnemu programiranju. AppleScript odlično dopolni zmogljivosti Automatorja in skupaj sta res nepremagljiv par, s katerim lahko ustvarimo praktično vse. Potrebujemo le domišljijo, navdih in zamisli, pa bodo naporna opravila v hipu pristala na plečih pomočnika z logotipom ugriznjenega jabolka.
Za spoznavanje s programskim jezikom AppleScript se bomo lotili pogostega opravila praznjenja Koša. Preden začnemo, je treba vedeti, da je avtomatizacija tega opravila lahko usodna in ob uporabi v naslednjih vrsticah opisanega postopka nevarna, saj lahko izgubimo podatke. Hitro se zgodi, da izpraznimo Koš, ne da bi pogledali, kaj je v njem. Sistemsko opozorilo pred brisanjem je tam z razlogom. Ker med akcijami v Files & Folders najdemo le Move Finder Items to Trash, ki datoteke premakne v Koš, moramo postopek za praznjenje spisati sami. Iz Utilities povlečemo Run AppleScript na delovni tok, nato pa v pogovorno okno pod oznako Your script goes here vnesemo:
tell application "Finder"
empty the trash
end tell
Ko postopek izvedemo, vsebina v Košu hipoma izgine. Brez vprašanj, brez sledi, zato bodimo ob uporabi previdni. Morda je še najbolje, da napisani postopek ostane to, kar je bil že na začetku, zgolj učni zgled rabe AppleScripta.
AppleAutomator3.jpg
Pisanje kode v jeziku AppleScript je olajšano z obarvanjem različnih elementov.
Malce zahtevnejši je naslednji skript, ki nam bo ob zagonu izpisal zunanjo IP številko. Ker je varnejši in pogosto zelo uporaben, bomo izdelali postopek v obliki aplikacije, da ga bomo lahko zaganjali tudi kasneje. V Choose a type for your document izberemo Application ter iz Utilities v delovni prostor dodamo Run AppleScript. Vanj vpišemo spodaj navedeno kodo in z njo prepišemo predhodno nastavljene ukaze. Aplikacijo shranimo na poljubno mesto.
property ZunanjiIP : ""
property TockaChar : "<"
on run {input, parameters}
set Rezultat to (do shell script "curl -f http://checkip.dyndns.org")
set Stari to AppleScript's text item delimiters
set AppleScript's text item delimiters to "Current IP address: "
set dolgiIP to item 2 of every text item of Rezultat as text
set AppleScript's text item delimiters to ""
set Tocka to (offset of "<" in dolgiIP)
set mojIP to characters 1 through (Tocka - 1) of dolgiIP as text
if ZunanjiIP is "" then
set ZunanjiIP to mojIP
display dialog "Tvoj IP je : " & mojIP
end if
if mojIP is not equal to ZunanjiIP then
display dialog "Tvoj IP je : " & mojIP
set ZunanjiIP to mojIP
end if
set AppleScript's text item delimiters to Stari
return input
end run
Zmogljivost Automatorja razširimo s komercialnimi paketi, ki jih najdemo v trgovini Mac App Store ali v spletu. Text Automator Actions Pack na sliki nam doda nove funkcije za obdelavo besedila, kot je na primer akcija Find and Replace Text, ki poišče in zamenja izbrani termin v podanem besedilu. Brez razširitve ali pisanja kode v programskem jeziku AppleScript tega z Automatorjem ni mogoče storiti.
Ob koncu kratkega pregleda avtomatizacije na Macu ugotovimo, da je vse našteto šele začetek, saj pri orodjih, kot sta Automator in AppleScript, v bistvu ni konca. Omejitev je domišljija, ki jo spodbudimo že s pregledovanjem razpoložljivih akcij ali različnih vodičev po spletu. Sicer bogato knjižnico v Automatorju lahko še razširimo s katerim izmed komercialnih paketov. V trgovini Mac App Store je na primer mogoče kupiti paketa Text Automator Actions Pack in File and Folder Automator Action Pack. Oba staneta slabih dvanajst evrov. Prvi razširi zmogljivost Automatorja na področju obdelave besedila, drugi pa je strokovnjak za delo z datotekami in imeniki. Tudi sicer je ljudi, ki obvladajo Automator in AppleScript, v spletu veliko, tistih, ki so pripravljeni bogato znanje deliti z drugimi, pa precej.