browser: statcounter usage parser convert-stats-gs
authorMischa POSLAWSKY <perl@shiar.org>
Thu, 9 Dec 2010 01:58:12 +0000 (02:58 +0100)
committerMischa POSLAWSKY <perl@shiar.org>
Wed, 15 Dec 2010 21:40:44 +0000 (22:40 +0100)
tools/convert-stats-gs.pl [new file with mode: 0644]

diff --git a/tools/convert-stats-gs.pl b/tools/convert-stats-gs.pl
new file mode 100644 (file)
index 0000000..52ecd4f
--- /dev/null
@@ -0,0 +1,48 @@
+#!/usr/bin/env perl
+use 5.010;
+use strict;
+use warnings;
+
+use Data::Dump 'pp';
+use Text::CSV;
+
+my %BROWSERID = qw(
+       IE          trident
+       Firefox     gecko
+       Safari      webkit_saf
+       Safari-iPad ios_saf
+       Chrome      webkit_chr
+       Opera       presto
+);
+
+my %count = (
+       -source => 'StatCounter',
+       -site   => 'http://gs.statcounter.com/',
+);
+
+my $csv = Text::CSV->new or die Text::CSV->error_diag;
+while (my $row = $csv->getline(\*STDIN)) {
+       my ($browser, $pct) = @$row;
+       $browser and $pct or next;
+
+       my $version = $browser =~ s/ (\d\S*)$// ? $1 : 0;
+       given ($browser) {
+               when ('Browser Version') {
+                       $pct =~ s/^Market Share % // and $count{-date} = $pct;
+               }
+               $browser =~ tr/ /-/;
+               $browser = $_ for $BROWSERID{$browser} // ();
+               $version =~ s/\.0$//;
+               $count{$browser}->{$version} += $pct;
+       }
+}
+$csv->eof or $csv->error_diag;
+
+print pp(\%count);
+
+__END__
+
+=head1 USAGE
+
+cat <csv data> | F<convert-stats-gs> > browser-usage-gs.inc.pl
+