X-Git-Url: http://git.shiar.nl/sheet.git/blobdiff_plain/c524a2904a0184a0df3ecd61ed411ec90a4efe93..HEAD:/tools/mkusage-statcounter diff --git a/tools/mkusage-statcounter b/tools/mkusage-statcounter index 76fac3d..0548fc9 100755 --- a/tools/mkusage-statcounter +++ b/tools/mkusage-statcounter @@ -1,24 +1,36 @@ #!/usr/bin/env perl -use 5.010; -use strict; +use 5.014; use warnings; use Data::Dump 'pp'; use Text::CSV; -our $VERSION = '1.00'; +our $VERSION = '1.01'; my %BROWSERID = qw( - IE ie + IE edge + Edge edge Firefox firefox Safari safari Safari-iPad ios_saf + Safari-iPod-Touch ios_saf + Safari-iPhone ios_saf Chrome chrome + Chrome-iPad chrome + Chrome-for-iPhone chrome + Chromium chrome Opera opera - - Android android + Opera-Mini op_mini + BlackBerry bb + + IEMobile ie_mob + Android and_chr + Chrome-for-Android and_chr + UC-Browser and_uc + QQ-Browser and_qq iPhone ios_saf iPod-Touch ios_saf + Samsung-Internet samsung ); my %count = ( @@ -30,6 +42,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], @@ -47,37 +61,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); @@ -92,7 +75,7 @@ sub parsecsv { my $version = $browser =~ s/ (\d\S*)$// ? $1 : 0; given ($browser) { - when (['Browser', 'Browser Version', 'Mobile Browser', 'Mobile vs. Desktop', 'Comparison']) { + when ('Browser Version') { $pct =~ s/^Market Share (?:%|Perc\.) // or break; $pct =~ s/\A\((.*)\)\z/$1/; $count{-date} = $pct; @@ -100,6 +83,13 @@ sub parsecsv { $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; } }