X-Git-Url: http://git.shiar.nl/sheet.git/blobdiff_plain/b5b3537710ed9f73e1c867e0cc27d50439eaf4cd..c133e6ad3027e095811931f3e0d21b818865e0e8:/tools/mkusage-statcounter diff --git a/tools/mkusage-statcounter b/tools/mkusage-statcounter index 7d699d4..2465d1a 100755 --- a/tools/mkusage-statcounter +++ b/tools/mkusage-statcounter @@ -6,15 +6,22 @@ use warnings; use Data::Dump 'pp'; use Text::CSV; +our $VERSION = '1.01'; + my %BROWSERID = qw( IE ie Firefox firefox Safari safari Safari-iPad ios_saf Chrome chrome + Chromium chrome Opera opera + BlackBerry bb + IEMobile ie_mob Android android + Chrome-for-Android and_chr + UC-Browser and_uc iPhone ios_saf iPod-Touch ios_saf ); @@ -28,6 +35,8 @@ if (@ARGV) { my %param = ( bar => 1, region_hidden => 'ww', # Worldwide + device_hidden => 'desktop%2Bmobile%2Btablet%2Bconsole', + 'multi-device' => 'true', granularity => 'monthly', fromMonthYear => $ARGV[0], toMonthYear => $ARGV[1] // $ARGV[0], @@ -45,37 +54,6 @@ if (@ARGV) { open my $input, '<', \$download or die $!; parsecsv($input); } - - { - my $url = $site.'mobile_vs_desktop'; - my $download = LWP::Simple::get($url) or warn "No data from $url\n"; - open my $input, '<', \$download or die $!; - parsecsv($input); - - my %mult = map { - $_ => ( delete $count{$_} )->{0} / 100, - } qw(Desktop Mobile); - - # apply desktop multiplier with inverse of mobile (reverted below) - for (values %count) { - ref $_ eq 'HASH' or next; - $_ *= $mult{Desktop} / $mult{Mobile} for values %$_; - } - $count{Opera} = delete $count{opera}; # preserve - - $url = $site.'mobile_browser'; - $download = LWP::Simple::get($url) or warn "No data from $url\n"; - open $input, '<', \$download or die $!; - parsecsv($input); - - # apply mobile multiplier to everything (undoing it for desktop) - for (values %count) { - ref $_ eq 'HASH' or next; - $_ *= $mult{Mobile} for values %$_; - } - $count{op_mini} = delete $count{opera}; # mobile distinction - $count{opera} = delete $count{Opera}; # restore desktop - } } else { parsecsv(\*STDIN); @@ -90,12 +68,21 @@ sub parsecsv { my $version = $browser =~ s/ (\d\S*)$// ? $1 : 0; given ($browser) { - when (['Browser Version', 'Mobile Browser', 'Mobile vs. Desktop']) { - $pct =~ s/^Market Share % // and $count{-date} = $pct; + when ('Browser Version') { + $pct =~ s/^Market Share (?:%|Perc\.) // or break; + $pct =~ s/\A\((.*)\)\z/$1/; + $count{-date} = $pct; } $browser =~ tr/ /-/; $browser = $_ for $BROWSERID{$browser} // (); $version =~ s/\.0$//; + + # desktop variant has version, mobile doesn't + if ($version eq '0') { + $browser = 'op_mini' if $browser eq 'opera'; + $browser = 'and_ff' if $browser eq 'firefox'; + } + $count{$browser}->{$version} += $pct; } }