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