Skrypt do pobierania pogody w conky cz.1

Piękna tapeta przydatny conky to coś czego pragnie wielu. Możemy wzbogacić nasz pulpit także prognozą pogody jeśli ktoś sobie zażyczy. Wystarczy chwilę pomyśleć albo przeczytać ten artykuł🙂.
Aby skrypt mógł działać trzeba zainstalować dwa programy sed i lynx. Dzięki lynx pobierzemy sobie do pliku stronę z pogodą aby za pomocą seda wyciągnąć linijki np z temperaturą. Według mnie najlepszą prognozę podaje strona mojapogoda.com . Lynx to przeglądarka plików więc nie łamiemy prawa tylko zapisujemy stronę do pliku🙂 Skrypt nie został zabezpieczony przed brakiem internetu stąd w nazwie pisze część 1 możemy później sobie dodać zamiast samych napisów obrazki np że pada deszcz albo animowany termometr.

Musimy w ustawieniach zmienić sobie gdzie będziemy zapisywać stronę i utworzyć taki plik oraz podać adres do strony na której ta pogoda wisi. Możemy zmienić też nagłówek. Skyptowi trzeba nadać prawa do uruchomienia czyli:

chmod +x skrypt.sh

można także przetestować sobie go w terminalu.

#!/bin/bash
###############################
## Pobranie pogody ze strony ##
## mojapogoda.com ##
## Tomasz Pachołek ##
## elektronik666@o2.pl ##
###############################
#ustawienia skryptu
plik_strony=”~/.pogoda_conky/strona.txt”
adres_strony=”http://www.mojapogoda.com/pogoda-na-swiecie/pogoda-lokalna/miasto/48X685/tomaszow-lubelski/dzis.html”
naglowek=”Pogoda Tomaszów”

#pobranie strony do pliku
lynx $adres_strony -dump > $plik_strony

#wyłuskanie linijki z datą
dzien=`sed -n 86p $plik_strony`

#wyłuskanie linijki z temperaturą z pliku i przypisanie do zmiennej itd
temp_rano=`sed -n 101p $plik_strony`
temp_poludnie=`sed -n 105p $plik_strony`
temp_wieczor=`sed -n 109p $plik_strony`

#wyłuskanie stanu pogody – deszcz, pochmurnie, itd
stan_rano=`sed -n 103p $plik_strony`
stan_poludnie=`sed -n 107p $plik_strony`
stan_wieczor=`sed -n 111p $plik_strony`

#usunięcie spacji z początku stringu
temp_rano=”${temp_rano#”${temp_rano%%[![:space:]]*}”}”
temp_poludnie=”${temp_poludnie#”${temp_poludnie%%[![:space:]]*}”}”
temp_wieczor=”${temp_wieczor#”${temp_wieczor%%[![:space:]]*}”}”
stan_rano=”${stan_rano#”${stan_rano%%[![:space:]]*}”}”
stan_poludnie=”${stan_poludnie#”${stan_poludnie%%[![:space:]]*}”}”
stan_wieczor=”${stan_wieczor#”${stan_wieczor%%[![:space:]]*}”}”

#usunięcie spacji z końcu stringu
temp_rano=”${temp_rano%”${temp_rano##*[![:space:]]}”}”
temp_poludnie=”${temp_poludnie%”${temp_poludnie##*[![:space:]]}”}”
temp_wieczor=”${temp_wieczor%”${temp_wieczor##*[![:space:]]}”}”
stan_rano=”${stan_rano%”${stan_rano##*[![:space:]]}”}”
stan_poludnie=”${stan_poludnie%”${stan_poludnie##*[![:space:]]}”}”
stan_wieczor=”${stan_wieczor%”${stan_wieczor##*[![:space:]]}”}”

echo $naglowek
echo $dzien
echo ” ——————– „
echo „Temperatura”
echo „Rano: $temp_rano”
echo „Południe: $temp_poludnie”
echo „Wieczór: $temp_wieczor”
echo ” ——————– „
echo „Warunki pogodowe”
echo „Rano: $stan_rano”
echo „Południe: $stan_poludnie”
echo „Wieczór: $stan_wieczor”
echo ” ——————– „

Pozostaje jeszcze dodanie tego do conky. Przykładowy config:

background yes

# y-szerokość x-wysokość punktu zazczęcia rysowania conky
gap_x 260
gap_y 500

# maksymalna szerokość
maximum_width 190

# wyrównywanie punktu rozpoczęcia
alignment top_right

# marinesy
#border_margin 8
#border_width 8

#Sprawia że conky działa cały czas
total_run_times 0

# co ile sekund będzie odświerzany
update_interval 2.0

#Ustawienia okna
own_window yes
own_window_type normal
own_window_transparent yes
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager

# domyślne kolory
default_color white
default_shade_color black
default_outline_color black

# kodowanie znaków
override_utf8_locale yes

#podwójne buforowanie
double_buffer yes

# Wyświetlanie cieni
draw_shades yes
draw_outline no

# Używać Xft
use_xft yes

# Domyślna czcionka Xft jeśli ten jest aktywny
xftfont DejaVu Sans Mono:size=7.5

# Przeźroczystość tekstu Xft (0-1)
xftalpha 0.8 

TEXT
${image /home/tomek/.conky/tlo.png -p -4,-4 -s 500×1000}
Pogoda ${hr 3}

${execi 60 ~/.conky_pogoda/skrypt.sh}

Pliki do pobrania: skrypt pogody i conky pogoda

Autor

Tomasz

Pasjonat Elektroniki Linuxa i open source

4 myśli na temat “Skrypt do pobierania pogody w conky cz.1”

  1. witam chciałbym dodać kilka drobnostek semantycznych
    skrypt jest zadeklarowany że jest napisany w bash to czemu ma końcówkę .sh (bash to nie sh to coś więcej)

    „plik_strony=”~/.pogoda_conky/strona.txt” — w skrypcie powinno się podawać pełną ścieszkę

    skrypt jest fajny bo jest porosty pozdrawiam

  2. Skrypty z góry biorąc im prostsze tym lepsze🙂
    jako część pierwsza z góry oznacza że będzie poprawiana dlatego na przykład była podana niepełna ścieżka – ale: jeśli mamy kilku użytkowników odniesienie typu:
    ~/.pogoda_conky/strona.txt
    odnosi się do urzytkownika na którego jesteśmy zalogowanie czyli jego folder /home/nazwa_urzytkownika

    Końcówka .sh oznacza że jest to skrypt shelowy – dzięki temu mozemy powiązać z nimi program który je wykonuje – np. terminal xterm
    Można powiedzieć że pozwala nam to od razu określić – „to jest skrypt i może być wykonywany w powłoce linuxa” nie jest to zatem do końca potrzebne, i bez tego będzie działało ale z zasady tak jest lepiej

    1. mówisz że z zasady jest lepiej ale pytanie jakiej zasady???? (widzę że nie wiesz co ci chce przekazać)
      to jeszcze raz dla opornych
      skrypt shelowy
      deklaracja #!/bin/sh >>>> zapis z końcówką .sh

      skrypt bash
      deklaracja #!/bin/bash >>> niema końcówki

      pozdrawiam
      ps. jak będziesz pisała zaawansowany skrypt a on nie zadziała to ~ w Ścieszce powie co masz źle (bo coś do wszystkiego jest porostu do niczego)

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Log Out / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Log Out / Zmień )

Facebook photo

Komentujesz korzystając z konta Facebook. Log Out / Zmień )

Google+ photo

Komentujesz korzystając z konta Google+. Log Out / Zmień )

Connecting to %s