Mój Alfred – pogoda
Kontynuuję przewodnik po workflows, z których korzystam w Alfredzie. Dwa ostatnie dotyczyły gotowych przepisów, dlatego dziś wracam znów do własnego tworu.
Tym razem pokażę Wam mój workflow pokazujący prognozę pogody z wykorzystaniem serwisu meteo.pl oraz aktualny stan burz w Polsce na podstawie serwisu blitzortung.org.
Pogoda
Jak to działa?
- Po wywołaniu Alfreda wpisuję słowo
pogoda
. - Do wyboru mam trzy opcje: pogoda krótkoterminowa, pogoda długoterminowa oraz burze.
- Po wyborze któregoś z powyższych ukaże się okno (w stylu Quick Look) ukazujące żądany wynik.
A teraz trochę objaśnień.
Wejście
W odróżnieniu od wcześniej opisywanych przeze mnie workflows, tym razem do wejścia nie potrzebne są dodatkowe parametry, czyli nic więcej nie wpisujemy. Zamiast tego mamy trzy gotowe opcje. Jak to możliwe? Wszystko przez zastosowanie elementu Script Filter, w którym posłużyłem się następującym kodem XML:
cat<<EOB
<?xml version="1.0"?>
<items>
<item uid="krotka">
<arg>krotka</arg>
<title>Pogoda krótkoterminowa</title>
<subtitle>Wciśnij Enter, żeby podejrzeć</subtitle>
<icon>short.png</icon>
</item>
<item uid="dluga">
<arg>dluga</arg>
<title>Pogoda długoterminowa</title>
<subtitle>Wciśnij Enter, żeby podejrzeć</subtitle>
<icon>long.png</icon>
</item>
<item uid="burza">
<arg>burza</arg>
<title>burza</title>
<subtitle>Wciśnij Enter, żeby podejrzeć</subtitle>
<icon>blitz.png</icon>
</item>
</items>
EOB
W powyższym kodzie można wyodrębnić trzy sekcje oznaczone znacznikami <item>
i w nich właśnie ustalone są dostępne opcje: Pogoda krótkoterminowa, Pogoda długoterminowa oraz burza. Każda z nich ma również własną ikonę, którą można dodać do katalogu danego workflow (aby dostać się do takiego katalogu należy w preferencjach Alfreda, w sekcji Workflows kliknąć prawym przyciskiem myszy dany workflow i wybrać Show in Finder). Po wybraniu danej opcji przekazywany dalej jest jeden z trzech argumentów: krotka
, dluga
i burza
.
Akcja i wyjście
Wspomniany przed chwilą argument trafia do elementu Run Script, w którym wykonywany jest poniższy skrypt:
KROTKA="http://new.meteo.pl/um/php/meteorogram_id_um.php?ntype=0u&id=1879"
DLUGA="http://new.meteo.pl/php/meteorogram_id_coamps.php?ntype=2n&id=1879"
BURZA="http://images.blitzortung.org/Images/image_b_pl.png?t=22830450"
if [ {query} == "krotka" ]; then
automator -i "$KROTKA" pogoda.workflow
elif [ {query} == "dluga" ]; then
automator -i "$DLUGA" pogoda.workflow
elif [ {query} == "burza" ]; then
automator -i "$BURZA" pogoda.workflow
fi
Co to wszystko oznacza?
KROTKA="http://new.meteo.pl/um/php/meteorogram_id_um.php?ntype=0u&id=1879"
,DLUGA="http://new.meteo.pl/php/meteorogram_id_coamps.php?ntype=2n&id=1879"
– pod zmienne$KROTKA
i$DLUGA
podstawiany jest adres URL odwołujący się do konkretnej strony prognozy w serwisie meteo.pl. Aby wygenerować własny należy:- w przypadku prognozy krótkoterminowej – przejść na stronę www.meteo.pl/um/php/gpp/search.php, wskazać swoją miejscowość, a potem skopiować adres z okna przeglądarki;
- w przypadku prognozy długoterminowej – przejść na stronę www.meteo.pl/php/gpp/search.php, wskazać swoją miejscowość i również skopiować adres z okna przeglądarki.
BURZA="http://images.blitzortung.org/Images/image_b_pl.png?t=22830450"
– jest to odnośnik URL do obrazka generowanego automatycznie co minutę, zawierającego mapę burzową Polski.if … fi
– wykonywane jest polecenie jeśli coś, to coś w zależności od przekazanego argumentu.automator -i "$DLUGA" pogoda.workflow
– w tym momencie wywoływany jest utworzony w systemowej aplikacji Automator specjalny workflow, który otrzymuje któryś z trzech adresów URL.
Opisana akcja jest jednocześnie wyjściem, ponieważ cały workflow nie posiada dodatkowego elementu wyjściowego. Tutaj jego rolę spełnia wspomniany plik z Automatora, który wygląda następująco:
Otrzymuje on odpowiedni adres URL, który następnie jest otwierany w specjalnym oknie. To ostatnie możemy skonfigurować zarówno jeśli chodzi o jego rozmiary, pozycję oraz klienta użytkownika.
A tak wyglądają trzy kolejne wyniki dla workflow pogoda:
Pogoda krótkoterminowa
Pogoda długo terminowa
Burza
Komentarze: 3
Czy zrzut przedstawia prawidłowy plik Automatora? Po wpisaniu i zatwierdzeniu komendy nic mi się nie wyświetla.
Jak najbardziej. Możesz sobie pobrać mój workflow i porównać, jak to wygląda.