„AppleScript Fun“: automatiškai keičiasi „Safari“ atsisiuntimo aplankas

Nors įvairios kompiuterio programos ir paslaugos yra skirtos jums patogumui, kartais gali tekti atlikti pakartotines užduotis naudojant įvairias sistemoje esančias priemones ir programas. Tokiais atvejais skriptų įrankių naudojimas gali būti ypač naudingas. Skirtingai nuo programavimo, scenarijus yra kai naudojate esamus įrankius ir įrankius ir automatizuojate jų sąveiką su komandomis. Pvz., Su „Javascript“ galite pasakyti naršyklei, kaip pakeisti HTML turinį, arba su „Automator“ galite pasakyti „Finder“ tam tikru būdu tvarkyti failus.

Neseniai kolega čia CNET kreipėsi į mane su unikalia situacija, kur jis norėjo, kad jo „Mac“ automatiškai pakeistų „Safari“ atsisiuntimo aplanką, remdamasis išorinio disko buvimu. Idėja čia būtų, kad „Safari“ atsisiuntusius failus įdėtų į numatytuosius atsisiuntimų katalogus, bet kai pridedate konkretų išorinį diską (pvz., Thumbdrive, vadinamą „Atsisiuntimais“), tada norint, kad sistema automatiškai persijungtų „Safari“ atsisiuntimo katalogą į išorinį diską, nes gali būti sunku jį keisti rankiniu būdu.

Deja, „Safari“ neturi galimybės to daryti, tačiau „OS X“ turi išteklių, kuriuos galima naudoti šiam tikslui, ir scenarijus, naudojant „AppleScript“, kad būtų galima valdyti „Safari“ programą ir kai kurias „OS X“ paslaugas, „Shell“ scenarijus atlikti kai kuriuos veiksmus, kurie nenaudojami programinės įrangos sąsaja ir sistemos paleidimo priemonė, skirta tik scenarijų veikimui, kai yra prijungtas diskas.

Iš pradžių, kai galvojate apie šią problemą, sprendimas gali atrodyti gana paprastas, o šis scenarijus gali atrodyti kaip geras atsakymas:

  1. Sukurkite scenarijų, kad paleistumėte komandą „numatytieji nustatymai com.apple.Safari DownloadFolder NAME“, kad pakeistumėte atsisiuntimo aplanką į „NAME“ nurodytą vietą
  2. Vykdykite šį scenarijų naudodami sistemos paleidiklį tik tada, kai pridedamas konkretus diskas.
  3. Pakartokite tai su panašiomis komandomis, nukreipiančiomis į kitą vietą, kai diskas nebėra prijungtas.

Nors šis pagrindinis metodas gali atrodyti pagrįstas, jis neveiks daugeliu priežasčių. Pirma, kai „Safari“ veikia, vienintelis būdas pakeisti jo nuostatas yra pačioje programoje. Kai programa įkeliama, ji perskaitys nuostatas į RAM ir valdys jos nustatymus, taigi, jei redaguosite pirmenybės failą naudodami „TextEdit“ arba „Defaults“ komandą, kaip minėta aukščiau, tai neturės įtakos programai. Be to, „Safari“, kai jis baigia, įrašo savo nuostatas atgal į diską, kuris pakeis visus pakeistus nustatymus.

Be to, šis metodas leidžia manyti, kad sistema turi turimų išteklių, kurie stebės konkretaus disko buvimą ir paleis scenarijų, kai tik yra diskas, o tai nėra. Sistema gali stebėti, ar prijungti diskai, bet norint nustatyti disko pavadinimą, reikia patikrinti papildomus scenarijus, kad patikrintumėte, ar prijungtas diskas.

Galiausiai reikia apsvarstyti keletą niuansų. Pvz., Kadangi „Safari“ turi būti naudojama norint keisti savo nuostatas, kai veikia, tai bus priversti jį tapti svarbiausia programa, kur ji išliks, nebent pirmą kartą scenarijus aptiks svarbiausią taikomąją programą ir ją atkurtų, kai bus atlikti „Safari“ pakeitimai yra baigtos. Be to, nenorite, kad scenarijus būtų paleistas, o aktyvioji programa bus perjungta, kai pridedamas bet koks atsitiktinis diskas.

Dėl šių priežasčių scenarijus turėtų apimti šiuos penkis aspektus:

  1. Paleiskite tik tada, kai pridedamas naujas diskas
  2. Pakeiskite nustatymus tik tada, jei pridedamas įrenginys, pavadintas „Atsisiuntimai“ (arba bet koks išvestas pavadinimas)
  3. Būkite priklausomi nuo savo požiūrio, kaip pakeisti „Safari“ paleidimo parametrus
  4. Nustatymus keiskite tik tada, kai yra nauja norima atsisiuntimo vieta
  5. Galėsite atkurti svarbiausią programą, jei scenarijus turi pereiti į „Safari“

Norint įgyvendinti šias galimybes, reikia sukurti du scenarijus. Pirmasis yra sistemos paleidimo įrenginys „launchd“, kuris bus naudojamas sistemos disko tvirtinimo taškų stebėjimui, siekiant nustatyti, ar prijungtas ir sumontuotas naujas diskas. Jei taip, tada bus paleistas scenarijus, kuris patikrins disko pavadinimą, pamatys, ar veikia „Safari“, ir pakeiskite „Safari“ nustatymus tik tada, jei jie skiriasi nuo visų pirma pasirinkus išorinį diską, bet jei jo nėra, naudokite numatytuosius atsisiuntimų aplankus .

„Script 1“: „LaunchAgent“ diskų stebėjimui

Pirmasis scenarijus skirtas sistemos paleidėjui, kuris vadinamas paleidimo agentu. Norėdami ją sukurti, atidarykite terminalą ir įveskite šią komandą (nukopijuokite ir įklijuokite jį paprastumui):

palieskite ~ / Library / LaunchAgents / local.ChangeSafariDownload.plist

Kai tai bus padaryta, atidarykite ją „TextEdit“, atlikdami šią komandą:

atidarykite -e ~ / Library / LaunchAgents / local.ChangeSafariDownload.plist

Dabar turėtumėte atidaryti tuščią „TextEdit“ dokumentą, todėl nukopijuokite šį tekstą į jį ir išsaugokite dokumentą, tačiau išsaugokite jį dabar. Jei norite pakeisti scenarijaus vietą, turėsite pakeisti skyrių „FILEPATH“:

 Etiketė local.ChangeSafariDownloads QueueDirectories WatchPaths / Volume Programa / usr / bin / osascript ProgramArguments osascript FILEPATH 

Kai prisijungsite, šis scenarijus bus įkeltas į sistemos paleidimo procesą ir suteiks jam sąlygas ir instrukcijas, kaip paleisti pagrindinį scenarijų, kad galėtumėte redaguoti „Safari“ nuostatas. Tokiu atveju paleidėjui bus paprašyta žiūrėti katalogą / tomus, kad pamatytumėte, ar per tą katalogą įvyksta kokių nors pakeitimų. Kadangi tai yra vieta, kur yra sumontuotos failų sistemos, bet kuriuo metu prijungus arba atjungus diską, pagrindinis scenarijus bus paleistas.

2 scenarijus: „AppleScript“ nustatymų keitimui

Antrasis scenarijus yra pagrindinis, kuris atliks visus veiksmus, įskaitant diskų pavadinimų tikrinimą, nepriklausomai nuo to, ar „Safari“ yra atviras, ir bet kokias kitas sąlygas, kuriomis galima keisti nuostatas. Norėdami ją sukurti, eikite į / Applications / Utilities / aplanką ir atidarykite AppleScript redaktoriaus programą. Atsidarys tuščias redaktoriaus langas ir, kai jis nukopijuos ir įklijuos šį scenarijų į jį:

- Nustatykite alternatyvų disko pavadinimą, kurį galite naudoti kaip parsisiuntimo aplanką

nustatykite dlFolder konvertuotiHome ("/ apimtis / atsisiuntimai")

pasakyti „Finder“ programai

jei yra [ POSIX failas dlFolder]

- Nieko nenaudokite ir naudokite aplanką

Kitas

- nustatyti dlFolder į numatytąjį namų katalogą

nustatykite dlFolder į (POSIX kelias ( kelias į namų katalogą kaip tekstą )) ir „Atsisiuntimai“

pabaigos, jei

pabaigos pasakyti

- gauti dabartinį kelią iš „Safari plist“

nustatyti dabartinį kelią konvertuotiHome ( ar apvalkalo scenarijus ) pagal nutylėjimą skaityti com.apple.Safari DownloadsPath ")

- keisti kelią tik tuo atveju, jei dabartinis nustatymas neatitinka įvesties kelio (yra ką pakeisti)

jei (currentpath as text ) tada nėra lygus (dlFolder kaip tekstas )

- jei „Safari“ veikia, pakeiskite nustatymus „Safari“ parinktimis

jei appIsRunning ("Safari") tada

- nustatyti pagrindinę programą, kurią reikia atkurti, kai atliekamas scenarijus

nustatykite frontApp kelią į priekinę programą kaip tekstą

- nukopijuokite atsisiuntimo aplanko kelią į iškarpinę

kaip tekstą nustatykite iškarpinę į dlFolder

aktyvuoti programą „Safari“

pasakyti „Sistemos įvykiai“ taikomojoje programoje „Safari“

- atidarykite nuostatas arba atkelkite į priekį (1 langas)

klavišą „, “ naudodami {command down}

uždelsimas 1 - pristabdymas lango ekrane gali sukelti klaidą, todėl laukiame sekundės

- Pakeiskite į skirtuką Bendra

spustelėkite 1 lango įrankių juostos 1 mygtuką „Bendra“

- Pakeiskite atsisiuntimo vietą į „Kita“

lango „Bendroji“ 1 grupės 1 grupės pranešti iššokantį mygtuką „Išsaugoti atsisiųstus failus į“.

spustelėkite

spustelėkite meniu punktą „Kiti ...“ 1 meniu - trys taškai yra elipsė, o ne trys laikotarpiai

pabaigos pasakyti

- Atidarykite dialogo langą „eiti į aplanką“

klavišą „g“, naudodami {Shift Down, komanda žemyn}

- Įklijuokite aplanko kelią į vietos lauką

langas „Eiti į aplanką“

klavišas „v“, naudojant {komandą žemyn}

klavišų grąžinimas

pabaigos pasakyti

spustelėkite mygtuką „Pasirinkti“ lango „Bendra“ 1 lape

- uždarykite nuostatas

klavišas „w“, naudojant {komandą žemyn}

pabaigos pasakyti

- atkurti priekinį taikymą po darbo pabaigos

pasakyti, kad programa „ FrontApp“ aktyvuos

Kitas

- jei „Safari“ neveikia, naudokite numatytųjų reikšmių komandą, kad pakeistumėte nuostatas

„Shell Script“ („Defaults“ rašo „com.apple.Safari DownloadsPath“ & dlFolder)

pabaigos, jei

pabaigos, jei

- Funkcija konvertuoti namų kelio nuorodas į visus kelius

konvertuoti namuose (dabartinis kelias)

jei dabartinis kelias turi „~ /“

nustatykite „ oldDelimiter“ į „ AppleScript“ teksto elementų ribotuvus

nustatyti „ AppleScript“ teksto elemento ribotuvus į {"~ /"}

nustatyti teksto kelią kiekvienam dabartinio kelio teksto elementui

nustatykite „ AppleScript“ teksto elemento ribotuvus į seną „Dinaminį“

nustatyti dabartinį kelią į POSIX kelią ( kelias į namų katalogą kaip tekstą ) ir 2 punktą teksto tekste

pabaigos, jei

grįžti dabartinį kelią

pabaiga konvertuotiHome

- funkcija patikrinti, ar programa „appName“ veikia (šiuo atveju naudojama „Safari“)

programose „ Veikia“ („AppName“)

pasakykite, kad programoje „Sistemos įvykiai“ ( procesų pavadinime) yra „ appName“

baigti programas

Scenarijaus tekstas iš pradžių bus raudonos spalvos, tačiau, kai spustelėsite įrankį „Sukurti“ arba jei išsaugosite scenarijų, jis taps spalvotas, panašus į tai, ką matote čia. Išsaugokite scenarijų su pavadinimu kaip „ChangeDownloads“ į pasirinktą vietą (galite ją perkelti į aplanką „Dokumentai“ aplanke „Dokumentai“ arba savo vartotojo bibliotekoje) ir uždaryti „AppleScript“ redaktorių.

Dabar atidarykite naują terminalo langą ir vilkite naujai sukurtą scenarijų failą. Kai tai padarysite, į langą bus įvestas visas failo kelias į scenarijų, kuris atrodys panašus į "/Users/username/Documents/ChangeDownloads.scpt". Naudodami pelę, pasirinkite visą failo kelią, paspauskite Command-C, kad nukopijuotumėte į iškarpinę, ir grįžkite į 1 scenarijų, esantį „TextEdit“, ir pakeiskite įrašą „FILEPATH“ su nukopijuotu tekstu. Tada išsaugokite ir uždarykite dokumentą.

Šiuo metu visi scenarijai yra sukurti. Tiesiog atsijunkite ir prisijunkite, kad įkeltumėte paleidimo agento scenarijų („Script 1“), o dabar, kai įdiegiate diską, pavadintą „Atsisiuntimai“, „Safari“ nustatymai bus automatiškai pakeisti, kad jis naudotų šį diską kaip atsisiuntimo aplanką. Jei atjungsite diską, nustatymas bus grąžintas. Taip pat atsitiks, jei pervadinsite diską pavadinimu „Atsisiuntimai“ arba pakeisite jo pavadinimą iš „Atsisiuntimų“ į kitą.

Atminkite, kad nors šis scenarijus veikia, jis buvo išbandytas tik OS X 10.6 „Snow Leopard“ ir OS X 10.7 „Lion“, kuriame veikia „Safari 5.1“; vis dėlto ji turėtų veikti puikiai ir kitose sistemos konfigūracijose, kuriose veikia mažiausiai „Safari 5.0“. Pagrindiniai reikalavimai yra tada, kai scenarijus manipuliuoja „Safari“ parinktimis programoje, jis naudoja mygtukų rodykles, kad atidarytų įvairius meniu, ir spustelėkite įvairius ekrano mygtukus. Jei „Apple“ ateityje pakeis „Safari“ organizavimo nuostatas, ši skripto dalis neveiks tol, kol nebus redaguota, kad vėl būtų rodomas tinkamas mygtukas. Tačiau dabar tai yra apribojimas, kurį turėsime spręsti. Vienas iš šios problemos sprendimo „Lion“ yra pasinaudoti „Apple“ atnaujinimo funkcija scenarijuje, norint išeiti iš „Safari“, keisti nuostatas ir tada iš naujo paleisti programą, o ne užprogramuoti sąsają.

Galiausiai, jei nuspręsite, kad nebenorite šio scenarijaus, galite jį pašalinti, ištrindami „AppleScript“ failą ir tada pašalindami „LaunchAgent“ failą rankiniu būdu arba vykdydami šią komandą terminale. Kai tai padaroma, tiesiog atsijunkite ir prisijunkite, ir būsite grįžę į kvadratinį:

rm ~ / Biblioteka / LaunchAgents / local.ChangeSafariDownload.plist


 

Palikite Komentarą