Make script ready for missing visibility information in JSON.
[chrisu/seepark.git] / wetter.at.pl
index 87fafa5891f306ca7c239c3c64f472ab69aa74f9..7dd85ac0404b3976b2017be65614702153ee5e45 100755 (executable)
@@ -7,6 +7,7 @@ use 5.010;
 use Web::Scraper;
 use HTTP::Tiny;
 use utf8::all;
+use Encode;
 
 my $url      = 'http://www.wetter.at/wetter/oesterreich/tirol/obsteig';
 my $response = HTTP::Tiny->new->get($url);
@@ -40,23 +41,27 @@ my $timeregexp = qr/^.*?([0-9:]+).*?$/;
 ( my $temp    = $res->{boxNow}->{temp} )
     =~ s/Â?°//;    # real °, and "something" before?!
 my ( $weather, $clouds )
-    = $res->{boxNow}->{icontext} =~ m|^([\w\s]+)\((\d+)% .*$|;
+    = $res->{boxNow}->{icontext} =~ m|^([^(]+)\((\d+)% .*$|;
 my ( $rain, $wind )
     = $res->{boxNow}->{rain} =~ m|Niederschlag: (.+)Wind: (.+)|;
+$weather = decode( "utf8", $weather );
+
+# debug
+if (0) {
+    say 'Wetter in Obsteig (von wetter.at)';
+    say '---------------------------------';
+    say "Datum:\t$date";
+    say "Zeit:\t$time";
+    say "Sonne↑:\t$sunup";
+    say "Sonne↓:\t$sundown";
+    say "Temp:\t$temp°C";
+    say "Nied.:\t$rain";
+    say "Wind:\t$wind";
+    say "Wetter:\t$weather";
+    say "Bewölk:\t$clouds%";
+    say '';
+}
 
-say 'Wetter in Obsteig (von wetter.at)';
-say '---------------------------------';
-say "Datum:\t$date";
-say "Zeit:\t$time";
-say "Sonne↑:\t$sunup";
-say "Sonne↓:\t$sundown";
-say "Temp:\t$temp°C";
-say "Nied.:\t$rain";
-say "Wind:\t$wind";
-say "Wetter:\t$weather";
-say "Bewölk:\t$clouds%";
-
-say '';
 say "$date;$time;$sunup;$sundown;$temp;$rain;$wind;$weather;$clouds";
 
 __END__