summaryrefslogtreecommitdiffstats
path: root/kachelmann
diff options
context:
space:
mode:
Diffstat (limited to 'kachelmann')
-rw-r--r--kachelmann/changes35
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};
}