X-Git-Url: http://git.shiar.nl/sheet.git/blobdiff_plain/6a67847f60b0a80a9026f8d219476acf92cc4d37..b97ebd969b2e520d3e65509c0f892edacae70520:/tools/mkusage-wikimedia?ds=sidebyside
diff --git a/tools/mkusage-wikimedia b/tools/mkusage-wikimedia
index 41ed977..7f9a3a5 100755
--- a/tools/mkusage-wikimedia
+++ b/tools/mkusage-wikimedia
@@ -1,5 +1,5 @@
#!/usr/bin/perl -n
-use 5.012;
+use 5.014;
use warnings;
our %count;
our $mobile;
@@ -17,6 +17,30 @@ if (m{
} .. m{?td>}) {
/>In alphabetical order/ .. eof or next; # second table
my ($id, $count2, $count) = map { s/<[^>]*>//gr } split /<\/td>/;
+if (/>Browser engines/ ... m{}) {
+ my $apple = $id =~ s/^AppleWebKit ?//;
+ $apple .. 1 or next;
+ my ($abs) = m/>showCount\((\d+),/;
+
+ state %version;
+ if (defined $count2) {
+ $version{$id} = $abs;
+ next;
+ }
+
+ # replace safari total percentage by individual version counts
+ # have to use combined distribution for multiple platforms :(
+ for my $browser (qw/ safari ios_saf /) {
+ my $multiplier = delete $count{$browser}{'0.0'} or next;
+ $multiplier /= $abs; # total number
+ while (my ($verwebkit, $count) = each %version) {
+ my $ver = safariver($verwebkit, $browser eq 'ios_saf');
+ $count{$browser}{$ver} += $count * $multiplier;
+ }
+ }
+ last;
+}
+
# select version data
/>Browser versions(.*)/ ... !defined $count2 or next;
unless (defined $count2) {
@@ -53,32 +77,6 @@ given ($browser) {
}
when ('Safari') {
$browser = $mobile ? 'ios_saf' : 'safari';
- my $numversion = join('.', map { sprintf '%03d', $_ } split /\./, $version);
- $numversion =~ s/6(?=\d{3})//; # incomparable 6532.22 â 523
- for (
- # http://en.wikipedia.org/wiki/Safari_version_history
- $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 = $mobile ? 'and_chr' : 'chrome';
@@ -103,6 +101,41 @@ END {
print pp(\%count);
}
+sub safariver {
+ my ($webkitnum, $ios) = @_;
+ my $safarinum = '';
+ for (
+ $ios ? (
+ [ 413 => '1' ],
+ [ 419 => '1.1' ],
+ [ 525 => '2' ],
+ [ 528 => '3' ],
+ [ 531 => '3.2' ], # or 4 from 531.022
+ [ 532 => '4' ],
+ [ 533 => '4.2' ],
+ [ 534 => '5' ],
+ [ 536 => '7' ],
+ [ 537 => '8' ],
+ [ 600 => '8.1' ],
+ ) : (
+ # http://en.wikipedia.org/wiki/Safari_version_history
+ [ 412 => '2' ],
+ [ 522 => '3' ],
+ [ 525 => '3.1' ], # 3.2 from 525.026
+ [ 526 => '4' ],
+ [ 533 => '5' ], # or 4.1
+ [ 534 => '5.1' ],
+ [ 536 => '6' ],
+ [ 537 => '7.1' ], # or 6.1 or 7.0
+ [ 538 => '8' ],
+ )
+ ) {
+ last if $webkitnum lt $_->[0];
+ $safarinum = $_->[1];
+ }
+ return $safarinum;
+}
+
__END__
=head1 USAGE
|