Az Apple még a Mac OS 9-ben mutatta be az AppleScript programnyelvet, egy olyan egyszerű nyelvet, amely végletekig leegyszerűsített angol mondatokra épül. Majd a macOS rendszer 10.4-es változatában prezentálta az Auomator alkalmazást, amely segítségével gyárilag definiált funkciókat ötvözhetünk akár AppleScript parancsokkal is, és hozhatunk létre alkalmazásokat, mappa eseményeket, meghívható automatizáló megoldásokat, illetve rendszer szolgáltatásokat.

Megjegyzés: Cikkünk angol nyelvű illusztrációval készült és angol nyelvű rendszert használ, mivel a téma által érintett alkalmazások többségében angol nyelvűek.

A cikkünk során egy olyan szolgáltatást építünk a rendszerbe, amely a kijelölt szöveget másolja, majd megnyitja a Google Translate oldalt a Safari egy címkéje alatt, és oda beilleszti a szöveget, amelyet a korábbi beállítási preferenciánk szerint automatikusan lefordít. Ezzel a szolgáltatással megspóroljuk a másolás, új Tab nyitás, navigálás és beillesztés műveletét, azaz értékes másodperceket.

Első lépésként nyissuk meg az Automator alkalmazást, amely a Macintosh HD: Applications (Command + Shift + A) mappában található.

Tipp: Az alkalmazások megnyitása terén sokak kedvelt megoldása a jobb felső sarokban lévő, nagyítóval jelzett keresőmező igénybevétele: ha ide elkezdjük begépelni az Automator nevét, nagyon hamar kiadja a találatot, amelyet egy kattintással vagy a Return (Enter) billentyű lenyomásával megnyithatunk.
Hasonlóan gyors módszer lehet az egér használata nélkül a Finder aktivitása esetén használható billentyűs megoldás: Command + Shift + A paranccsal megnyitjuk az Applications mappát, majd az "au" betűket gyorsan lenyomva a kiválasztás az Automator alkalmazásra kerül. Ekkor a Command + lefelé nyíl gombbal meg tudjuk nyitni az alkalmazást villámgyorsan.


Az Automator első párbeszédablaka a létrehozni kívánt tartalom típusára kérdez rá: esetünkbwn a fogaskerékkel jelzett Service (szolgáltatás) opciót kell választani. Ennek azért van jelentősége, mert a végén ennek megfelelően menti az Automator a létrehozott alkalmazást, illetve a rendszer számára megfelelő helyre helyezi azt.

Az Automator alkalmazás felülete két oszlopból és egy munkafelületből áll: a bal oszlop alkalmazásokat és média típusokat tartalmaz, a jobb oszlop a kiválasztott alkalmazás vagy média típushoz kapcsolódó eseményeket, parancsokat.



Az említett művelet során a Copy to Clipboard (másold a vágólapra) parancsot fogjuk használni, így a keresőben érdemes rákeresni a "copy" szóra, amely révén a Utilities (segédprogramok) kategóriában helyet foglaló, annak szerszámokkal jelzett ikonjával ellátott parancs jelenik meg.

Ezt kell a jobb oldali szerkesztő felületre húzni, ahol egymás alatt helyezhetők el a különböző események.

Az Automator rendelkezik felvételi képességgel, vagyis képes arra, hogy rögzítse az általunk végrehajtott műveletet, amely lehet akár a Safari böngészőben a translate.google.com oldal megnyitása is, de ez a megoldás az egérmozgások pozícióján alapul, így aztán kijelző felbontás függő, és pontatlan, ha például máshová húzzuk a böngészőablakot. Ezért aztán a művelethez egy AppleScriptet javaslunk használatra, amely garantáltan működik minden rendszeren.

Az AppleScript, bár a világ legegyszerűbb programnyelvének nevezi az Apple, tartalmaz szabályokat. Minden parancs kezdete a "tell", amelynek definiálni kell a típusát (application, process, window, stb.), majd konkretizálni kell a célját (meg kell nevezni, hogy a parancs által érintett típus pontosan micsoda: meg kell nevezni az alkalmazást, a folyamatot, stb.). A "tell" parancsot a művelet végén az "end tell" paranccsal kell lezárni.

Az AppleScript alapú alkalmazások létrehozása hasonlatos, mint a weblap szerkesztési paraméterek alkotása: általában webes keresést igényel. Mielőtt azonban elmélyednénk a Google találataiban, érdemes megismerni az AppleScript Editor alkalmazás Open Dictionary parancsát, amely segítségével alkalmazásokra és folyamatokra lebontva találjuk meg az összes parancsot és azok leírását. Nem csak az Apple alkalmazásai támogatják az AppleScriptet, hanem rengeteg külső szoftver is. Némelyik csak nagyon alap szolgáltatásokat, némelyik igen összetett funkciókat kínál az AppleScript parancsai között.

Az Automator felületét átnézve például felfigyelhettünk arra, hogy bár a folyamat képes átvenni az előző parancs vágólapon hagyott tartalmát, beillesztés (paste) parancs semelyik alkalmazás vagy média típus listájában nincsen. Az Automator önmagában nem képes arra, hogy beillesszen, így a Command + V billentyűparancsot az AppleScript Editor segítségével kell meghívnunk. Szerencsére erre a System Events szótárának "keystroke" kifejezése formájában találunk megoldást: ez a kifejezés azt imitálja, mintha lenyomtunk volna billentyűket. Egészen összetett parancsokat is kiadhatunk vele.



A megalkotni kívánt szolgáltatásunkhoz visszakanyarodva tehát a Safari alkalmazást kell megszólítanunk:
tell application Safari
Mivel a Safari több ablakot is tartalmazhat, így az éppen aktív ablakot is meg kell címeznünk:
tell window 1
Ezeket majd a végén egy-egy end tell paranccsal le is kell zárnunk.

Az összetettebb parancs a weblap megnyitása új címke alatt, ahol is egy új, a "set" parancsot ismerjük meg. A set parancs esetünkben weblapot nyit meg, de ezt nem az "open" paranccsal definiáljuk, mivel ez nem indít el új folyamatot.

AppleScripttel a következőképpen tudjuk megnyitni a lapot a meglévő oldal megtartásával, amellett egy új címke (tab) alatt:
set current tab to (make new tab with properties {URL:"http://translate.google.com"})
Mit is mondunk itt el a Safarinak? A meglévő címkét állítsd be úgy, hogy új címkét hozzon létre a következő paraméterekkel: webcím: http://translate.google.com.

Tipp: A kapcsos zárójeleket a magyar billentyűzeten az Alt + 7 és Alt + Ö parancsokkal érhetjük el.



Természetesen ezek nem olyan kifejezések, amelyeket magunktól ki tudunk találni, de a szótár segít, hiszen a Safari AppleScript szótárát megnyitva az url kifejezésre keresve megtaláljuk, hogy a címke (tab) paramétereit properties névvel illeti az AppleScript, és ott a webcím, azaz URL is megtalálható.

A webcím megnyitása a Safari böngészőben AppleScript segítségével önmagában nem nagy mutatvány, de még hátravan a beillesztés. Itt azonban a rendszer váratlan kihívások elé állít: alap állapot szerint a beillesztés AppleScript parancsa így nézne ki:
tell application "System Events"
keystroke "v" using {command down}

Vagyis utasítsd a rendszeresemények alkalmazást, hogy nyomja le a v billentyűt a command billentyű nyomva tartása mellett. Ez a beillesztés (⌘V). Igen ám, de a fenti folyamatok végrehajtása időt igényel mind a Safari, mind az internet kapcsolatunk részéről, és a beillesztés előbb megtörténik, mint ahogyan a Safari megnyitná a kért weboldalt. Vagyis alaphelyzetben a jónak tűnő szkript nem működik.

Ennek érdekében be kell szúrnunk egy sort, amely várakozásra, késésre utasítja a Safarit, mielőtt a V billentyűt lenyomná a Command nyomva tartása mellett, azaz a beillesztést végrehajtaná.

Ez pedig a delay (késs) parancs, amelynek alapértelmezett mértékegysége a másodperc, tehát ha fél másodpercet akarunk várni, akkor 0.5, ha nyolc másodpercet, akkor 8 a begépelendő számadat.

Ugyan a Safari az aktív alkalmazás, de praktikus itt is megcímezni egy tell process "Safari" parancs használatával, amelyet majd szintén le kell zárnunk.

A működő beillesztés tehát így néz ki:
   tell application "System Events"
      tell process "Safari"
             delay 1
             keystroke "v" using {command down}
       end tell
    end tell

Vagyis utasítjuk a Rendszereseményeket, hogy a Safari folyamatban - egy másodperc várakozást követően - nyomja le a Command + V billentyűparancsot. Ezzel megtörténik a beillesztés.

A munkánkat ellenőrizhetjük a Complie paranccsal, amelyet egy kalapács jelöl az eszköztárban. Ez ellenőrzi, hogy minden megfelelően van-e kódolva, illetve jelzi az esetleges hibákat. Fontos, hogy használjuk az idézőjeleket, ahol kell, és mindig lezárjuk a tell parancsot, amikor azok rendesen véget érnek.

A végső szkript így fog kinézni:



Ezt kell kimásolni és beilleszteni az Automator felületére, mégpedig úgy, hogy a Library gyűjteményt kiválasztva a keresőbe az AppleScript szót írjuk, és ott a Run AppliScript nevű, Automator által támogatott folyamatot kiválasztjuk. Az Automator nagyszerűsége, hogy az előre definiált parancsokon kívül képes arra is, hogy AppleScripteket nyisson meg: Az AppleScript Editor révén sokkal mélyrehatóbb megoldásokat érhetünk el, és bár kényelmes, hogy olyan alap dolgokat, mint a vágólapra másolás, nem kell karakteresen megírni, a bonyolultabb feladatokat kézzel meg tudjuk szerkeszteni.

A Run AppleScript Automator parancs jelzi azt, hogy mely részére kell illeszteni a saját kódunkat: (* Your script goes here *). Ezt az egész sort kijelölve, annak helyére beilleszthetjük az AppleScript Editor által alkotott forráskódot.

A Run AppleScript esemény felső részén szintén található egy kalapács, amely a Compile paranccsal egyenértékű: erre kattintva az Automator is végig ellenőrzi, hogy megfelelő-e a kód, és ellátja a szükséges színkódolással is.

A Command + S paranccsal menthetjük a szolgáltatásunkat: ekkor a Save Service As párbeszédablak jelenik meg, és az Automator önműködően a ~:Library:Services mappába menti a létrehozott szolgáltatást. Ez rögtön beépül a szolgáltatások menübe, de tipikusan ki- és bejelentkezésig vagy újraindításig nem működik, így praktikus lehet újraindítani a gépet.

Az új szolgáltatást ezt követően minden programban elérhetjük, és a kijelölt szövegre Control-kattintva a Services menüben jelen lesz Translate néven. Noha alapból a Safari felületén lévő szöveg fordítására alkottuk, bármely program kijelölt szöveges tartalmát másolja és a Safari böngészőben a Google Translate megnyitását követően önműködően lefordítja. Fontos, hogy a Google Translate beállításait nem befolyásolja, így ott a felhasználói beállítások érvényesülnek: praktikus a nyelv önműködő felismerését meghagyni a bal oldalon, és a kívánt nyelvet - például magyart vagy angolt - beállítani egyszer jobb oldalon.



A kevésbé forráskód író kedvű olvasóink számára pedig íme a letölthető szolgáltatás, amelyet Automator alkalmazásban megnyitva elmenthetnek a saját szolgáltatásik közé.

A fordító szolgáltatás letöltése… (ZIP: 154 KB)

© 2013. MacMag.hu | Cikk: Birincsik József 2013. 08. 12.
Frissítve: 2021. március 6.


 



 


     Keresés a lap tartalmában a Google motorja segítségével: