#!/usr/bin/perl -n
-use 5.010; use strict; use warnings;
+use 5.012;
+use warnings;
our %count;
our $mobile;
+our $VERSION = '1.02';
+
if (m{<td class=hl>} .. m{</?td>}) {
$count{-source} = 'http://stats.wikimedia.org/archive/squid_reports/';
$count{-title } = 'Wikimedia';
next;
}
-# select relevant columns
-/>Browser versions(.*)/ ... m{</table>} && last or next;
-my ($tr, $id, $count2, $count) = split /(?:<[^>]*>)+/;
-$mobile = $count2 =~ /(?<!non) mobile/ if $id ~~ ' ';
-next if $id ~~ ['Total', ' '];
+# select relevant data
+/>In alphabetical order/ .. eof or next; # second table
+my ($id, $count2, $count) = map { s/<[^>]*>//gr } split /<\/td>/;
+
+# select version data
+/>Browser versions(.*)/ ... !defined $count2 or next;
+unless (defined $count2) {
+ # header row if no td separator
+ $mobile = $id !~ /non mobile/;
+ next;
+}
# convert to usable syntax
-my ($browser, $version) = split /\h+/, $id, 2;
+my ($browser, $version) = split /\h+/, $id || ' ', 2;
$count =~ s/,//g;
$count =~ s/%$//;
$version //= 0;
given ($browser) {
when (['Firefox', 'Iceweasel']) {
- $browser = 'firefox';
+ $browser = $mobile ? 'and_ff' : 'firefox';
continue;
}
when ('MSIE') {
- $browser = 'ie';
+ $browser = $mobile ? 'ie_mob' : 'ie';
continue;
}
when ('Opera') {
}
}
when ('Chrome') {
- $browser = 'chrome';
+ $browser = $mobile ? 'and_chr' : 'chrome';
s/\.\d+$// for $version;
}
when ('Android') {
$browser = 'android';
}
+ when ('BlackBerry') {
+ $browser = 'bb';
+ }
+ when ('UCWEB') {
+ $browser = 'and_uc';
+ }
s/\.0$// for $version;
}