ďťż
 
 
   Pogoda - skrypt (bash)
 
 

Tematy

 
    
 

 

 

 

Pogoda - skrypt (bash)





sigo - 30-06-2009 01:36
0. Changelog:
    l15 lipca 2009: Ze względu na wakcje, okres kilku dni przedłuża się jednak w czasie; wkrótce skończę.
    8 lipca 2009: W ciągu kilku dni poprawię skrypt (głównie pod względem zewnętrznym) oraz zmienię używane oprogramowanie (przeglądarkę, na wgeta lub curl-a).
    8 lipca 2009: Poprawiony bug, wskazany przez użytkownika Wieloryb.
    30 czerwca 2009: Utworzenie pierwszej wersji skryptu.l

1. Informacje:
Napisałem skrypt sprawdzający pogodę (maksymalną i minimalną temperaturę, prędkość wiatru, ilość opadów - deszcz i śnieg, ciśnienie, godzina wschodu i zachodu słońca) dla dowolnego miasta na świecie; osobiście używam go w conky'm.

Skrypt wykorzystuje serwis http://pogoda.money.pl/, który udostępnia dane pogodowe dla ponad 200 polskich miast i wielu innych, zagranicznych miejscowości.

Manual znajduje się w samym skrypcie.

Zauważone błędy proszę zgłaszać w tym temacie lub poprzez wysłanie prywatnej wiadomości (preferuję drugą możliwość).

2. Backup:
Tymczasowo brak.

3. Skrypt:
#!/bin/bash

# Autor: sigo.
# Licencja: GNU GPL v3.

# Informacje.
# Skrypt sprawdzający dane pogodowe na bieżący i następny dzień, wykorzystujący
# serwis http://pogoda.money.pl/.
# Do użycia skryptu, wymagana jest przeglądarka tekstowa. Testowane były 'w3m'
# oraz 'elinks'. Inne, które powinny działać to: 'lynx', 'links' oraz 'links2'.

# Użycie.
# By móc używać skryptu, należy wskazać dla jakiego miasta będzie sprawdzana
# pogoda.
# 1. Wchodzimy na stronę http://pogoda.money.pl/
# 2. Wybieramy dowolne miasto; oczywiście nie musi być to polska miejscowość.
# 3. Kopiujemy z adresu url, ciąg znaków po slashu (bez końcówki .html).
#    Przykładowo, dla Warszawy, adres url wygląda tak:
#    http://pogoda.money.pl/warszawa,miasto,178.html
#    kopiujemy ciąg znaków 'warszawa,miasto,178' i wklejamy go do zmiennej
#    $city.
# 4. Po modyfikacji, zapisujemy plik.
# Przed uruchomieniem skryptu należy pamiętać o nadaniu prawa wykonywalności.

# Działanie.
# Skrypt, za pomocą tekstowej przeglądarki, (domyślnie 'w3m') odwiedza stronę
# z pogodą. Następnie pobiera potrzebne dane i zapisuje je w dwóch plikach:
# 'today' oraz 'tomorrow', które umieszcza w katalogu określonym w
# $tmpdir (domyślnie '/tmp/weather').
# Po zakończeniu działania, skrypt usuwa utworzony przez siebie katalog.

# Konfiguracja.
city="warszawa,miasto,178"
browser="w3m"
tmpdir=/tmp/weather

# Skrypt.
# Utworzenie tymczasowego katalogu.
mkdir ${tmpdir}

# Odwiedzenie strony z pogodą.
${browser} -dump "http://pogoda.money.pl/${city}.html" | grep -iA9 'dziś' | \
  tail -n8 > ${tmpdir}/today
${browser} -dump "http://pogoda.money.pl/${city}.html" | grep -iB9 'jutro' | \
  head -n8 > ${tmpdir}/tomorrow

# Przypisanie danych pogodowych do zmiennych.
todMax=`grep -i max ${tmpdir}/today | awk '{print $3}'`
todMin=`grep -i min ${tmpdir}/today | awk '{print $3}'`
todWind=`grep -i wiatr ${tmpdir}/today | awk '{print $3}'`
todRain=`grep -i deszcz ${tmpdir}/today | awk '{print $2" "$3}'`
todSnow=`grep -i śnieg ${tmpdir}/today | awk '{print $2" "$3}'`
todPressure=`grep -i ciśnienie ${tmpdir}/today | awk '{print $2}'`
todSunrise=`grep -i wsch ${tmpdir}/today | awk '{print $3}'`
todSunset=`grep -i zach ${tmpdir}/today | awk '{print $3}'`

tomMax=`grep -i max ${tmpdir}/tomorrow | awk '{print $3}'`
tomMin=`grep -i min ${tmpdir}/tomorrow | awk '{print $3}'`
tomWind=`grep -i wiatr ${tmpdir}/tomorrow | awk '{print $3}'`
tomRain=`grep -i deszcz ${tmpdir}/tomorrow | awk '{print $2" "$3}'`
tomSnow=`grep -i śnieg ${tmpdir}/tomorrow | awk '{print $2" "$3}'`
tomPressure=`grep -i ciśnienie ${tmpdir}/tomorrow | awk '{print $2}'`
tomSunrise=`grep -i wsch ${tmpdir}/tomorrow | awk '{print $3}'`
tomSunset=`grep -i zach ${tmpdir}/tomorrow | awk '{print $3}'`

# Wyświetlenie danych pogodowych.
echo "Dziś:"
echo "Temperatura: ${todMin}°C - ${todMax}°C"
echo "Wiatr: ${todWind}km/h"
echo "Deszcz: ${todRain}"
echo "ÂŚnieg: ${todSnow}"
echo "Ciśnienie: ${todPressure}hPa"
echo "Wschód słońca: ${todSunrise}"
echo "Zachód słońca: ${todSunset}"
echo
echo "Jutro:"
echo "Temperatura: ${tomMin}°C - ${tomMax}°C"
echo "Wiatr: ${tomWind}km/h"
echo "Deszcz: ${tomRain}"
echo "ÂŚnieg: ${tomSnow}"
echo "Ciśnienie: ${tomPressure}hPa"
echo "Wschód słońca: ${tomSunrise}"
echo "Zachód słońca: ${tomSunset}"

# Usunięcie utworzonego katalogu.
rm -rf ${tmpdir} 4. Przykładowy wynik użycia:
Dziś:
Temperatura: 18°C - 27°C
Wiatr: 7km/h
Deszcz: brak
ÂŚnieg: brak
Ciśnienie: 1016.6hPa
Wschód słońca: 04:18
Zachód słońca: 21:00

Jutro:
Temperatura: 17°C - 27°C
Wiatr: 13km/h
Deszcz: 1.3 mm
ÂŚnieg: brak
Ciśnienie: 1018.8hPa
Wschód słońca: 04:18
Zachód słońca: 21:00



PhockouS - 04-07-2009 10:34
Taki skrypt istnieje od bardzo dawna i nazywa się pogodynka :P



yantar - 04-07-2009 13:05

Taki skrypt istnieje od bardzo dawna i nazywa się pogodynka :P Pogodynka nie zadziała dla każdego maista.



Wieloryb - 04-07-2009 19:01
Zmień wyświetlanie jutrzejszej maksymalnej temperatury, bo jest zła nazwa zmiennej :)

Na pewno skorzystam, dziiękuję.
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • minister.pev.pl

  •  

     


     

     
    Copyright 2003. MĂłj serwis