From fa7bb1b7fce85b8445b7f408dc7cb2a15b9013d9 Mon Sep 17 00:00:00 2001 From: Zoffix Znet Date: Thu, 26 Nov 2015 04:48:49 -0500 Subject: Parse data to get timezones --- get-TZs.pl | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 get-TZs.pl (limited to 'get-TZs.pl') diff --git a/get-TZs.pl b/get-TZs.pl new file mode 100644 index 0000000..35361cf --- /dev/null +++ b/get-TZs.pl @@ -0,0 +1,54 @@ +#!/usr/bin/env perl + +use strict; +use warnings; +use Mojo::DOM; +use Mojo::Util qw/spurt/; +use Mojo::JSON qw/encode_json/; +use Mojo::UserAgent; +use 5.020; +use experimental 'postderef'; + +my $dom = Mojo::UserAgent->new->get('http://time.is/time_zones')->res->dom; + +my @tzs; +for my $d ( $dom->find('.section')->each ) { + my $tz = { offset => $d->at('h1')->all_text }; + my @countries = Mojo::DOM->new($d) + ->wrap('')->find('zof > * > div > ul > li ')->each; + for my $cont_d ( @countries ) { + my $name = $cont_d->children('a')->first->all_text; + my @cities = $cont_d->find('li a')->map('all_text')->to_array->@*; + push $tz->{countries}->@*, +{ + name => $name, + cities => \@cities, + }; + } + + push @tzs, $tz; +} + +spurt encode_json(\@tzs) => 'tzs.json'; + +__END__ + +
+

UTC-9

+
+ +
+
\ No newline at end of file -- cgit v1.1