browser: convert mobile browsers in wikimedia stats
[sheet.git] / tools / convert-stats-wikimedia.pl
index d65e5eba85921a6537a1c71db41205a100dcdfab..8cbb4169b18d4c9a002e4b297fbbb164c2332dfc 100644 (file)
@@ -1,10 +1,12 @@
 #!perl -n
 use 5.010; use strict; use warnings;
 our %count;
+our $mobile;
 
 # select relevant columns
-/>Browser versions/ ... m{</table>} && last or next;
+/>Browser versions(.*)/ ... m{</table>} && last or next;
 my ($tr, $id, $count2, $count) = split /(?:<[^>]*>)+/;
+$mobile = $count2 =~ /(?<!non) mobile/ if $id ~~ '&nbsp;';
 next if $id ~~ ['Total', '&nbsp;'];
 
 # convert to usable syntax
@@ -22,7 +24,7 @@ given ($browser) {
                continue;
        }
        when ('Opera') {
-               $browser = 'presto';
+               $browser = $mobile ? 'op_mob' : 'presto';
                for ($version) {
                        s/\d\d\.\d\K.*// or do {
                                # major part only, except for ≥v9.6
@@ -32,7 +34,7 @@ given ($browser) {
                continue;
        }
        when ('Safari') {
-               $browser = 'webkit_saf';
+               $browser = $mobile ? 'ios_saf' : 'webkit_saf';
                my $numversion = join('.', map { sprintf '%03d', $_ } split /\./, $version);
                $numversion =~ s/6(?=\d{3})//;  # erroneous(?) 6532.22 → 523
                for (
@@ -53,6 +55,9 @@ given ($browser) {
                $browser = 'webkit_chr';
                s/\.\d+$// for $version;
        }
+       when ('Android') {
+               $browser = 'android';
+       }
        s/\.0$// for $version;
 }