52ecd4f5df298074a53d76bbac31f3281047064d
[sheet.git] / tools / convert-stats-gs.pl
1 #!/usr/bin/env perl
2 use 5.010;
3 use strict;
4 use warnings;
5
6 use Data::Dump 'pp';
7 use Text::CSV;
8
9 my %BROWSERID = qw(
10         IE          trident
11         Firefox     gecko
12         Safari      webkit_saf
13         Safari-iPad ios_saf
14         Chrome      webkit_chr
15         Opera       presto
16 );
17
18 my %count = (
19         -source => 'StatCounter',
20         -site   => 'http://gs.statcounter.com/',
21 );
22
23 my $csv = Text::CSV->new or die Text::CSV->error_diag;
24 while (my $row = $csv->getline(\*STDIN)) {
25         my ($browser, $pct) = @$row;
26         $browser and $pct or next;
27
28         my $version = $browser =~ s/ (\d\S*)$// ? $1 : 0;
29         given ($browser) {
30                 when ('Browser Version') {
31                         $pct =~ s/^Market Share % // and $count{-date} = $pct;
32                 }
33                 $browser =~ tr/ /-/;
34                 $browser = $_ for $BROWSERID{$browser} // ();
35                 $version =~ s/\.0$//;
36                 $count{$browser}->{$version} += $pct;
37         }
38 }
39 $csv->eof or $csv->error_diag;
40
41 print pp(\%count);
42
43 __END__
44
45 =head1 USAGE
46
47 cat <csv data> | F<convert-stats-gs> > browser-usage-gs.inc.pl
48