diff options
Diffstat (limited to 'kachelmann/changes')
-rw-r--r-- | kachelmann/changes | 35 |
1 files changed, 14 insertions, 21 deletions
diff --git a/kachelmann/changes b/kachelmann/changes index dfd22b64..1875dabd 100644 --- a/kachelmann/changes +++ b/kachelmann/changes @@ -1,31 +1,24 @@ #!/usr/bin/perl use XML::Simple; my $xml = new XML::Simple; +my $xml_store = undef; my $data_new = undef; my $data_old = undef; +my $condition_store = undef; -&startup; -while (true) { - if($status_new != $status_old){ - system("espeak -v de \"Das Wetter hat sich von $status_old in $status_new verändert\""); +my $data_old = $condition_store; +while (1) { + &xml_update(); + $data_new = $condition_store; + if($data_new == $data_old){ + system("espeak Das Wetter hat sich von $data_old in $data_new verändert"); } - sleep(300); - &get_status; + sleep 300; + $data_new = $data_old; } - - -# The startup sub is used to get the first weather state. it should only be used on startup. sorry. -sub startup(){ - system("w3m -dump \"http://www.google.com/ig/api?weather=70327-stuttgart&hl=de\" > /tmp/kachelmann/weather.xml"); - $data_new = $xml->XMLin("/tmp/kachelmann/weather.xml"); - $data_new = $data_new->{weather}->{current_conditions}->{condition}->{data}; -} - -# The get_status sub moves the current data to $data_old and then gets a new one from Googles API -sub get_status(){ - system("w3m -dump \"http://www.google.com/ig/api?weather=70327-stuttgart&hl=de\" > /tmp/kachelmann/weather.xml"); - $data_old = $data_new; - $data_new = $xml->XMLin("/tmp/kachelmann/weather.xml"); - $data_new = $data_new->{weather}->{current_conditions}->{condition}->{data}; +sub xml_update(){ + $xml_store = system("w3m -dump \"http://www.google.com/ig/api?weather=70327-stuttgart&hl=de\""); + $xml_store = $xml->XMLin($xml_store); + $condition_store = $xml_store->{weather}->{current_conditions}->{condition}->{data}; } |