9bceb516c2
Added bad browser page Organized scripts
95 lines
1.8 KiB
JavaScript
95 lines
1.8 KiB
JavaScript
var fs = require('fs'), path = require('path');
|
|
var uaList = fs.readFileSync(path.join(__dirname, 'ua.txt'));
|
|
|
|
|
|
uaList = uaList.toString().split('\n');
|
|
|
|
|
|
var OSs = {};
|
|
var browsers = {};
|
|
var browserVersions = {};
|
|
var unknown = [];
|
|
|
|
var osMatch = {
|
|
ios: /iOS|iPhone OS/i,
|
|
android: /Android/i,
|
|
linux: /Linux/i,
|
|
win: /Windows/i,
|
|
osx: /Mac|OS X/i,
|
|
blackberry: /BlackBerry|BB10/i,
|
|
series60: /Series 60|Series60/i,
|
|
series40: /Series 40|Series40/i,
|
|
j2me: /J2ME|MIDP/i
|
|
};
|
|
|
|
var browserMatch = {
|
|
opera: /opera/i,
|
|
ie: /msie|trident\//i,
|
|
chrome: /chrome/i,
|
|
chromium: /chromium/i,
|
|
safari: /safari|AppleWebKit/i,
|
|
firefox: /firefox/i,
|
|
blackberry: /BlackBerry/i
|
|
};
|
|
|
|
var featureMatch = {
|
|
ipad: /ipad/i,
|
|
opera_mobile: /opera mini|opera mobi/i,
|
|
opera_mini: /opera mini/i,
|
|
blackberry: /blackberry/i
|
|
};
|
|
|
|
uaList.forEach(function (uaName) {
|
|
var os = 'unknown';
|
|
for (var curOs in osMatch) {
|
|
if (uaName.match(osMatch[curOs])) {
|
|
os = curOs;
|
|
break;
|
|
}
|
|
}
|
|
|
|
var browser = 'unknown';
|
|
for (var curBrowser in browserMatch) {
|
|
if (uaName.match(browserMatch[curBrowser])) {
|
|
browser = curBrowser;
|
|
break;
|
|
}
|
|
}
|
|
|
|
var version = (
|
|
uaName.match(/MSIE ([\d.]+)/) ||
|
|
uaName.match( /.+(?:me|ox|on|rv|it|era|opr|ie)[\/: ]([\d.]+)/) ||
|
|
[0,'0']
|
|
)[1];
|
|
|
|
if (!OSs[os]) {
|
|
OSs[os] = 1;
|
|
} else {
|
|
OSs[os]++;
|
|
}
|
|
|
|
if (!browsers[os + ' ' + browser]) {
|
|
browsers[os + ' ' + browser] = 1;
|
|
} else {
|
|
browsers[os + ' ' + browser]++;
|
|
}
|
|
|
|
if (os == 'unknown' || browser == 'unknown') {
|
|
unknown.push(uaName);
|
|
}
|
|
|
|
if (!browserVersions[os + ' ' + browser + ' ' + version]) {
|
|
browserVersions[os + ' ' + browser + ' ' + version] = 1;
|
|
} else {
|
|
browserVersions[os + ' ' + browser + ' ' + version]++;
|
|
}
|
|
|
|
})
|
|
|
|
|
|
console.log(OSs);
|
|
console.log(browsers);
|
|
console.log(browserVersions);
|
|
// console.log(unknown);
|
|
|