browser: convert-stats-gs download option
authorMischa POSLAWSKY <perl@shiar.org>
Thu, 9 Dec 2010 02:50:07 +0000 (03:50 +0100)
committerMischa POSLAWSKY <perl@shiar.org>
Wed, 15 Dec 2010 21:40:44 +0000 (22:40 +0100)
tools/convert-stats-gs.pl

index 52ecd4f5df298074a53d76bbac31f3281047064d..8a8a43037bf82ad0ca71b307b296287f22fce30d 100644 (file)
@@ -19,9 +19,31 @@ my %count = (
        -source => 'StatCounter',
        -site   => 'http://gs.statcounter.com/',
 );
+my $input = \*STDIN;
+
+if (@ARGV) {
+       my %param = (
+               bar             => 1,
+               statType_hidden => 'browser_version',
+               region_hidden   => 'ww', # NL
+               granularity     => 'monthly',
+               statType        => 'Browser%20Version',
+               region          => 'Worldwide', # Netherlands
+               fromMonthYear   => $ARGV[0],
+               toMonthYear     => $ARGV[1] // $ARGV[0],
+               csv             => 1,
+       );
+       my $url = $count{-site};
+       $url .= 'chart.php?'.join('&', map "$_=$param{$_}", keys %param);
+       $count{-url} = $url;
+       require LWP::Simple;
+       my $download = LWP::Simple::get($url) or die "No data from $url\n";
+       undef $input;
+       open $input, '<', \$download or die $!;
+}
 
 my $csv = Text::CSV->new or die Text::CSV->error_diag;
-while (my $row = $csv->getline(\*STDIN)) {
+while (my $row = $csv->getline($input)) {
        my ($browser, $pct) = @$row;
        $browser and $pct or next;
 
@@ -46,3 +68,5 @@ __END__
 
 cat <csv data> | F<convert-stats-gs> > browser-usage-gs.inc.pl
 
+F<convert-stats-gs> <year-month>
+