AppleScript, czyli dlaczego naprawdę warto czytać manual

Na początek dykteryjka, którą podzielił się ze mną Grzegorz, a dotyczy czytania manuali przez użytkowników :)

Jest historia, którą należy powtarzać. Dawno temu na Atari był taki program Okami, do usenetu. I on, po uruchomieniu, wyświetlał pytanie „Przeczytałeś manual?” TAK – NIE. Jak kliknąłeś w Nie, to kończył działanie z informacją, że masz przeczytać. Chyba nawet otwierał automatycznie. Jak kliknąłeś w Tak, to kończył działanie z informacją, że kłamiesz, bo jakbyś przeczytał, to byś wiedział, jak usunąć to pytanie. Coś tam trzeba było dopisać do pliku konfiguracyjnego, było o tym w readme.

Doskonałe, nie sądzicie? Wróćmy jednak teraz do PYM Playera.

Wśród nowych funkcji, które pojawiły się w wersji 5.1, jest jedna, która wymaga głębszego zaznajomienia się z plikiem pomocy. Chodzi o obsługę AppleSrciptu, dzięki której można tworzyć katalogi, w których automatycznie, bez ingerencji użytkownika, pojawią się napisy do filmów.

„Jabłko-C, Jabłko-V i wierszówkę będę miał”

Poniżej instrukcja w całości skopiowana z pomocy programu. Można ją przeczytać w sekcji Polecenia AppleScript. Przy okazji przypominam, że w „helpie” do PYM Playera znajdują się odpowiedzi prawie na wszystkie pytania, które można zadać :)

AppleScript – czynność katalogu

AppleScript to technologia pozwalająca na automatyzowanie różnych powtarzających się czynności. Programy obsługujące AppleScript (takie jak PYM Player) reagują na określone polecenia. Dzięki temu można użyć systemowego programu Edytor skryptów (lub Edytor AppleScript w starszych wersjach OS X), aby przygotować listę czynności, jaką dany program ma wykonać. Taka lista czynności nazywa się „skrypt”. Przykładowym zastosowaniem tej funkcji może być skrypt automatycznie pobierający napisy do każdego nowego filmu, jaki zostanie wrzucony do określonego katalogu.

Czynność katalogu to skrypt wykonywany przez system za każdym razem, gdy w danym katalogu pojawi się nowy plik. Dodawanie czynności katalogów do poszczególnych katalogów możliwe jest przy użyciu dołączonego do OS X programu Automator.

Oto sposób działania naszego przykładu:
  1. W wybranym katalogu pojawia się nowy plik (np. pobrany lub przeciągnięty tam film).
  2. System uruchamia nasz skrypt (czyli listę poleceń dla PYM Playera, którą przygotujemy poniżej).
  3. Skrypt nakazuje PYM Playerowi uruchomić się i pobrać napisy do filmu, który pojawił się w katalogu.

Po pierwsze: tworzymy nasz „specjalny” katalog

Zaczniemy od utworzenia katalogu, który będzie naszym „aktywnym” miejscem – za każdym razem po umieszczeniu w nim pliku z filmem automatycznie pobrane zostaną napisy. Utwórz więc nowy katalog na biurku Findera (lub w dowolnym innym miejscu) i nadaj mu nazwę „Filmy z napisami”.

Po drugie: dodajemy czynność

Mamy nasz katalog, ale na razie niczym nie różni się on od innych, zwykłych katalogów. Aby napisy były automatycznie pobierane, musimy przypisać do tego katalogu tzw. „czynność katalogu”, czyli skrypt — odpowiednią listę poleceń, które komputer będzie wykonywać za każdym razem, gdy w tym katalogu pojawi się nowy plik.

  1. Otwórz Automatora (jest w katalogu Programy/Narzędzia lub Programy > Inne w Launchpadzie).
  2. Wybierz polecenie menu Plik > Nowy
  3. Kliknij w Czynność katalogu.
  4. Kliknij w Wybierz.

Teraz musimy wskazać katalog, do którego chcemy przypisać naszą „czynność katalogu”.

  1. Kliknij w menu podręczne Wybierz katalog (na górze okna).
  2. Wybierz Inne.
  3. Wskaż utworzony wcześniej katalog Filmy z napisami.
  4. Kliknij w Wybierz.

Po trzecie: tworzymy skrypt

Najwyższy czas ustalić, co komputer ma robić, gdy w naszym katalogu pojawi się nowy plik. W tym celu trzeba utworzyć skrypt AppleScript nakazujący PYM Playerowi pobranie napisów.

  1. Kliknij w Czynności na górze paska bocznego po lewej.
  2. Zaznacz Narzędzia na pasku bocznym po lewej.
  3. Zaznacz Uruchom AppleScript i przeciągnij ten element do pola kolejki czynności.

W ten sposób dodaliśmy do naszego katalogu pusty, przykładowy skrypt. Aby kazać PYM Playerowi pobierać napisy, musimy wpisać zestaw odpowiednich poleceń.

Zastąp tekst przykładowego skryptu w oknie Automatora poniższymi poleceniami. Najłatwiej będzie zaznaczyć je w całości, wybrać polecenie menu Edycja > Kopiuj, przejść do okna Automatora, a następnie użyć polecenia menu Edycja > Wklej.

on run {input, parameters}
	repeat with i from 1 to the count of input
		set myFile to item i of input
		tell application "PYM Player" to download and convert Polish subtitles for myFile
	end repeat
	return input
end run

Gotowe! Teraz zamknij okno Automatora, zachowując wprowadzone zmiany. Od tego momentu, gdy tylko w katalogu Filmy z napisami pojawi się nowy film (obojętne: przeciągnięty z Findera, pobrany przez Safari, skopiowany przez sieć), nasz skrypt automatycznie uruchomi PYM Playera i każe mu pobrać z NapiProjektu polskie napisy do tego filmu (w formacie txt), a następnie przekonwertować je na format srt.

Gdy klikniesz w przycisk z ikoną przedstawiającą młotek, skrypt zostanie sprawdzony pod względem poprawności składniowej i ładnie pokolorowany, tak jak na ilustracji widocznej obok.

Polecenia skryptu wykonywane są z góry na dół. Wcięcia widoczne po lewej oznaczają hierarchię poleceń. Polecenia z największym wcięciem, znajdujące się między linią „repeat” a linią „end repeat” są wykonywane wielokrotnie, stanowiąc tzw. „pętlę”. Jest to potrzebne, ponieważ do katalogu może zostać wrzuconych wiele filmów jednocześnie. Dzięki pętli nasz skrypt kolejno poprosi PYM Playera o pobranie napisów do każdego z dodanych filmów. Bez użycia pętli PYM Player otrzymałby tylko polecenie pobrania napisów do pierwszego z nowo dodanych filmów.

Aby dowiedzieć się więcej o AppleScript, otwórz Edytor skryptów (lub Edytor AppleScript w starszych wersjach systemu), a następnie wybierz polecenie menu Pomoc > Pokaż przewodnik języka AppleScript.

 

Share on FacebookTweet about this on TwitterShare on Google+Pin on PinterestShare on LinkedInShare on Tumblr
Kategoria: Mac OS X, Odtwarzanie video, PYM Player, PYM Software oraz tagi: , , , , .

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *