From 8fe6b1c8a9572d0be18d4f23f0f8b28c98cb92cd Mon Sep 17 00:00:00 2001
From: Přemysl Janouch
Date: Sun, 7 May 2017 12:01:41 +0200
Subject: Add wmstatus-weather.pl
---
wmstatus-weather.pl | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 50 insertions(+)
create mode 100755 wmstatus-weather.pl
diff --git a/wmstatus-weather.pl b/wmstatus-weather.pl
new file mode 100755
index 0000000..bce6c3d
--- /dev/null
+++ b/wmstatus-weather.pl
@@ -0,0 +1,50 @@
+#!/usr/bin/env perl
+# Example slave command showing how to easily add additional things to the bar.
+#
+# You can place this in ~/.local/bin, customize it and direct wmstatus.conf
+# towards by setting e.g.: command=~/.local/bin/wmstatus-weather.pl
+use strict;
+use warnings;
+use Time::Piece;
+use IO::Socket::INET;
+
+my $host = 'www.yr.no';
+my $path = '/place/Czech_Republic/Prague/Prague/forecast.xml';
+
+# Retrieve current weather information from the Norwegian weather service
+sub weather {
+ # There are no redirects and it's not exactly confidential either
+ my $sock = IO::Socket::INET->new(
+ PeerAddr => $host,
+ PeerPort => 'http(80)',
+ Proto => 'tcp'
+ ) or return '?';
+
+ print $sock "GET $path HTTP/1.1\r\n"
+ . "Host: $host\r\n"
+ . "Connection: close\r\n\r\n";
+
+ # Quick and dirty XML parsing is more than fine for our purpose
+ my ($offset, $acceptable, $temp, $symbol) = (0, 0);
+ while (<$sock>) {
+ $offset = $1 * 60 if /utcoffsetMinutes="(.+?)"/;
+ next unless /