X-Git-Url: http://git.shiar.nl/sheet.git/blobdiff_plain/9cfdae85d5584a9b0812b31ec77b60fcbc57d977..4e71d82512759ed7da92d213ac66d006dae456a1:/tools/convert-stats-wikimedia.pl diff --git a/tools/convert-stats-wikimedia.pl b/tools/convert-stats-wikimedia.pl old mode 100644 new mode 100755 index 8cbb416..1e9b1c3 --- a/tools/convert-stats-wikimedia.pl +++ b/tools/convert-stats-wikimedia.pl @@ -1,8 +1,15 @@ -#!perl -n +#!/usr/bin/perl -n use 5.010; use strict; use warnings; our %count; our $mobile; +if (m{} .. m{}) { + $count{-source} = 'http://stats.wikimedia.org/archive/squid_reports/'; + $count{-title } = 'Wikimedia'; + $count{-date} = $1 if m{ period: (?:\d+ )?(\w+ \d+) }; + next; +} + # select relevant columns />Browser versions(.*)/ ... m{} && last or next; my ($tr, $id, $count2, $count) = split /(?:<[^>]*>)+/; @@ -16,43 +23,56 @@ $count =~ s/%$//; $version //= 0; given ($browser) { when (['Firefox', 'Iceweasel']) { - $browser = 'gecko'; + $browser = 'firefox'; continue; } when ('MSIE') { - $browser = 'trident'; + $browser = 'ie'; continue; } when ('Opera') { - $browser = $mobile ? 'op_mob' : 'presto'; + $browser = $mobile ? 'op_mob' : 'opera'; for ($version) { - s/\d\d\.\d\K.*// or do { - # major part only, except for ≥v9.6 - $_ ge '9.6' ? ($_ = '9.6') : (s/\..*//); - }; + if (m{\(Mini(.*)\)$}) { + $browser = 'op_mini'; + ($_) = $1 =~ m{^/(\d+)}; + continue; + } + s/^\d*\.\d\K.*//; # one significant digit } continue; } when ('Safari') { - $browser = $mobile ? 'ios_saf' : 'webkit_saf'; + $browser = $mobile ? 'ios_saf' : 'safari'; my $numversion = join('.', map { sprintf '%03d', $_ } split /\./, $version); - $numversion =~ s/6(?=\d{3})//; # erroneous(?) 6532.22 → 523 + $numversion =~ s/6(?=\d{3})//; # incomparable 6532.22 → 523 for ( # http://en.wikipedia.org/wiki/Safari_version_history - [ '413' => '2' ], - [ '522' => '3' ], - [ '525.013' => '3.1' ], - [ '525.026' => '3.2' ], - [ '526' => '4' ], - [ '533' => '5' ], - [ '534' => '5x' ], + $mobile ? ( + [ '413' => '1' ], + [ '419' => '1.1' ], + [ '525' => '2' ], + [ '528' => '3' ], + [ '531' => '3.2' ], + [ '531.022' => '4' ], + [ '533' => '4.2' ], + [ '534' => '4x' ], + ) : ( + [ '413' => '2' ], + [ '522' => '3' ], + [ '525.013' => '3.1' ], + [ '525.026' => '3.2' ], + [ '526' => '4' ], + [ '533' => '5' ], + [ '534' => '5x' ], + ) ) { last if $numversion lt $_->[0]; $version = $_->[1]; } } when ('Chrome') { - $browser = 'webkit_chr'; + $browser = 'chrome'; s/\.\d+$// for $version; } when ('Android') {