Simple weather bar applet
This commit is contained in:
parent
8842d7a3b0
commit
dcbb22bf8a
|
@ -0,0 +1,38 @@
|
||||||
|
#!/usr/bin/perl
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
|
||||||
|
my $cmd = 'bar';
|
||||||
|
if (defined($ARGV[0])) {
|
||||||
|
$cmd = $ARGV[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
my $url = "https://john.me.tz/weather/weather.json";
|
||||||
|
|
||||||
|
my %icons = (
|
||||||
|
'04d' => "☁",
|
||||||
|
);
|
||||||
|
use LWP::UserAgent;
|
||||||
|
my $ua = LWP::UserAgent->new();
|
||||||
|
|
||||||
|
my $ret = $ua->get($url);
|
||||||
|
unless (defined($ret->{_rc}) && $ret->{_rc} == 200) {
|
||||||
|
die "Failed to fetch $url";
|
||||||
|
}
|
||||||
|
|
||||||
|
use JSON::XS;
|
||||||
|
my $json = JSON::XS->new();
|
||||||
|
|
||||||
|
my $ref = $json->decode($ret->{_content});
|
||||||
|
|
||||||
|
if ($cmd eq 'bar') {
|
||||||
|
my $temp = $ref->{current}->{temp} - 273.15;
|
||||||
|
my $icon = $ref->{current}->{weather}->[0]->{icon};
|
||||||
|
|
||||||
|
printf("%s%.1f%s", $icons{$icon}, ${temp}, "°C");
|
||||||
|
} elsif ($cmd eq 'notify') {
|
||||||
|
`notify-send weather TODO`;
|
||||||
|
} else {
|
||||||
|
die "Invalid command\n";
|
||||||
|
}
|
Loading…
Reference in New Issue