git.shiar.nl
/
sheet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
browser: cumulative search prefixes
[sheet.git]
/
tools
/
convert-stats-wikimedia.pl
diff --git
a/tools/convert-stats-wikimedia.pl
b/tools/convert-stats-wikimedia.pl
index d65e5eba85921a6537a1c71db41205a100dcdfab..5ee59ca8671df131e2ab03f8063179673b97a9ce 100644
(file)
--- a/
tools/convert-stats-wikimedia.pl
+++ b/
tools/convert-stats-wikimedia.pl
@@
-1,10
+1,19
@@
#!perl -n
use 5.010; use strict; use warnings;
our %count;
#!perl -n
use 5.010; use strict; use warnings;
our %count;
+our $mobile;
+
+if (m{<td class=hl>} .. m{</?td>}) {
+ $count{-url} = 'http://stats.wikimedia.org/archive/squid_reports/';
+ $count{-source} = 'Wikimedia';
+ $count{-date} = $1 if m{ period: (?:\d+ )?(\w+ \d+) };
+ next;
+}
# select relevant columns
# select relevant columns
-/>Browser versions/ ... m{</table>} && last or next;
+/>Browser versions
(.*)
/ ... m{</table>} && last or next;
my ($tr, $id, $count2, $count) = split /(?:<[^>]*>)+/;
my ($tr, $id, $count2, $count) = split /(?:<[^>]*>)+/;
+$mobile = $count2 =~ /(?<!non) mobile/ if $id ~~ ' ';
next if $id ~~ ['Total', ' '];
# convert to usable syntax
next if $id ~~ ['Total', ' '];
# convert to usable syntax
@@
-22,8
+31,13
@@
given ($browser) {
continue;
}
when ('Opera') {
continue;
}
when ('Opera') {
- $browser = 'presto';
+ $browser =
$mobile ? 'op_mob' :
'presto';
for ($version) {
for ($version) {
+ if (m{\(Mini(.*)\)$}) {
+ $browser = 'op_mini';
+ ($_) = $1 =~ m{^/(\d+)};
+ continue;
+ }
s/\d\d\.\d\K.*// or do {
# major part only, except for ≥v9.6
$_ ge '9.6' ? ($_ = '9.6') : (s/\..*//);
s/\d\d\.\d\K.*// or do {
# major part only, except for ≥v9.6
$_ ge '9.6' ? ($_ = '9.6') : (s/\..*//);
@@
-32,18
+46,29
@@
given ($browser) {
continue;
}
when ('Safari') {
continue;
}
when ('Safari') {
- $browser = 'webkit_saf';
+ $browser =
$mobile ? 'ios_saf' :
'webkit_saf';
my $numversion = join('.', map { sprintf '%03d', $_ } split /\./, $version);
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
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.1' ],
+ [ '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];
) {
last if $numversion lt $_->[0];
$version = $_->[1];
@@
-53,6
+78,9
@@
given ($browser) {
$browser = 'webkit_chr';
s/\.\d+$// for $version;
}
$browser = 'webkit_chr';
s/\.\d+$// for $version;
}
+ when ('Android') {
+ $browser = 'android';
+ }
s/\.0$// for $version;
}
s/\.0$// for $version;
}