browser: merge renamed browsers
authorMischa POSLAWSKY <perl@shiar.org>
Thu, 27 Apr 2017 00:34:58 +0000 (02:34 +0200)
committerMischa POSLAWSKY <perl@shiar.org>
Mon, 29 May 2017 16:51:18 +0000 (18:51 +0200)
Edge is rebranded IE, Android Browser has merged with Chrome.
Prefer old but more descriptive/recognisable names for now.
No version overlap.

tools/mkcaniuse
tools/mkusage-squid
tools/mkusage-statcounter
tools/mkusage-wikimedia

index 57b36fc..65fcec3 100755 (executable)
@@ -9,6 +9,11 @@ use Time::Piece;
 
 our $VERSION = '1.02';
 
+my %BROWSERJOIN = (
+       edge    => 'ie',
+       and_chr => 'android',
+);
+
 local $/;  # slurp
 my $source = readline;
 
@@ -19,6 +24,7 @@ my $data = decode_json($source);
 my $update = eval { stat(${^LAST_FH} // $ARGV)->mtime }
        or warn "Could not determine input time\n";
 $data->{-date} = Time::Piece->new($update)->datetime;
+
 delete $data->{eras};
 for (values %{ $data->{data} }) {
        delete @{$_}{qw[ usage_perc_a usage_perc_y ]};
@@ -28,6 +34,19 @@ for (values %{ $data->{agents} }) {
        shift @{ $_->{versions} } while !defined $_->{versions}->[0];
 }
 
+while (my ($browser, $target) = each %BROWSERJOIN) {
+       my $agent1 = delete $data->{agents}->{$browser} or next;
+       my $agent2 =        $data->{agents}->{$target}  or next;
+       splice @{ $agent2->{versions} }, -3, 3, @{ $agent1->{versions} };
+       $agent2->{browser} = sprintf '%s (former %s)',
+               $agent1->{browser}, $agent2->{browser};
+
+       for (values %{ $data->{data} }) {
+               my $stats = delete $_->{stats}->{$browser} or next;
+               $_ = { %{$_}, %{$stats} } for $_->{stats}->{$target};
+       }
+}
+
 say "# automatically generated by $0";
 print '+', pp($data);
 
index 7f9a3a5..c751f76 100755 (executable)
@@ -79,7 +79,7 @@ given ($browser) {
                $browser = $mobile ? 'ios_saf' : 'safari';
        }
        when ('Chrome') {
-               $browser = $mobile ? 'and_chr' : 'chrome';
+               $browser = $mobile ? 'android' : 'chrome';
                s/\.\d+$// for $version;
        }
        when ('Android') {
index 6009ce2..d728cae 100755 (executable)
@@ -9,7 +9,7 @@ our $VERSION = '1.01';
 
 my %BROWSERID = qw(
        IE          ie
-       Edge        edge
+       Edge        ie
        Firefox     firefox
        Safari      safari
        Safari-iPad ios_saf
@@ -25,7 +25,7 @@ my %BROWSERID = qw(
 
        IEMobile    ie_mob
        Android     android
-       Chrome-for-Android and_chr
+       Chrome-for-Android android
        UC-Browser  and_uc
        QQ-Browser  and_qq
        iPhone      ios_saf
index 5e264ed..a5a4e58 100755 (executable)
@@ -9,8 +9,8 @@ our $VERSION = '1.00';
 my %BROWSERID = qw(
        IE                      ie
        IE-Mobile               ie_mob
-       Edge                    edge
-       Edge-Mobile             edge
+       Edge                    ie
+       Edge-Mobile             ie
        Firefox                 firefox
        Firefox-Mobile          and_ff
        Safari                  safari
@@ -18,8 +18,8 @@ my %BROWSERID = qw(
        Mobile-Safari-UIWebView ios_saf
        Chrome                  chrome
        Chromium                chrome
-       Chrome-Mobile           and_chr
-       Chrome-Mobile-iOS       and_chr
+       Chrome-Mobile           android
+       Chrome-Mobile-iOS       android
        Android                 android
        Opera                   opera
        Opera-Mini              op_mini