mirror of
https://github.com/faisalman/ua-parser-js.git
synced 2025-09-27 16:08:47 +03:00
Merge pull request #372 from maxnordlund/patch-2
Remove outcommented code
This commit is contained in:
commit
de3b3bd55e
12
readme.md
12
readme.md
@ -241,18 +241,6 @@ $ npm install --save @types/ua-parser-js
|
||||
# https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/ua-parser-js
|
||||
```
|
||||
|
||||
## Using CLI
|
||||
|
||||
```sh
|
||||
$ node ua-parser.min.js "Mozilla/4.0 (compatible; MSIE 4.01; Windows 98)"
|
||||
# multiple args
|
||||
$ node ua-parser.min.js "Opera/1.2" "Opera/3.4"
|
||||
# piped args
|
||||
$ echo "Opera/1.2" | node ua-parser.min.js
|
||||
# log file
|
||||
$ cat ua.log | node ua-parser.min.js
|
||||
```
|
||||
|
||||
## Using jQuery/Zepto ($.ua)
|
||||
|
||||
Although written in vanilla js (which means it doesn't depends on jQuery), this library will automatically detect if jQuery/Zepto is present and create `$.ua` object based on browser's user-agent (although in case you need, `window.UAParser` constructor is still present). To get/set user-agent you can use: `$.ua.get()` / `$.ua.set(uastring)`.
|
||||
|
230
src/ua-parser.js
230
src/ua-parser.js
@ -83,14 +83,7 @@
|
||||
|
||||
rgx : function (ua, arrays) {
|
||||
|
||||
//var result = {},
|
||||
var i = 0, j, k, p, q, matches, match;//, args = arguments;
|
||||
|
||||
/*// construct object barebones
|
||||
for (p = 0; p < args[1].length; p++) {
|
||||
q = args[1][p];
|
||||
result[typeof q === OBJ_TYPE ? q[0] : q] = undefined;
|
||||
}*/
|
||||
var i = 0, j, k, p, q, matches, match;
|
||||
|
||||
// loop through all regexes maps
|
||||
while (i < arrays.length && !matches) {
|
||||
@ -138,8 +131,6 @@
|
||||
}
|
||||
i += 2;
|
||||
}
|
||||
// console.log(this);
|
||||
//return this;
|
||||
},
|
||||
|
||||
str : function (str, map) {
|
||||
@ -390,117 +381,6 @@
|
||||
/(ice\s?browser)\/v?([\w\._]+)/i, // ICE Browser
|
||||
/(mosaic)[\/\s]([\w\.]+)/i // Mosaic
|
||||
], [NAME, VERSION]
|
||||
|
||||
/* /////////////////////
|
||||
// Media players BEGIN
|
||||
////////////////////////
|
||||
|
||||
, [
|
||||
|
||||
/(apple(?:coremedia|))\/((\d+)[\w\._]+)/i, // Generic Apple CoreMedia
|
||||
/(coremedia) v((\d+)[\w\._]+)/i
|
||||
], [NAME, VERSION], [
|
||||
|
||||
/(aqualung|lyssna|bsplayer)\/((\d+)?[\w\.-]+)/i // Aqualung/Lyssna/BSPlayer
|
||||
], [NAME, VERSION], [
|
||||
|
||||
/(ares|ossproxy)\s((\d+)[\w\.-]+)/i // Ares/OSSProxy
|
||||
], [NAME, VERSION], [
|
||||
|
||||
/(audacious|audimusicstream|amarok|bass|core|dalvik|gnomemplayer|music on console|nsplayer|psp-internetradioplayer|videos)\/((\d+)[\w\.-]+)/i,
|
||||
// Audacious/AudiMusicStream/Amarok/BASS/OpenCORE/Dalvik/GnomeMplayer/MoC
|
||||
// NSPlayer/PSP-InternetRadioPlayer/Videos
|
||||
/(clementine|music player daemon)\s((\d+)[\w\.-]+)/i, // Clementine/MPD
|
||||
/(lg player|nexplayer)\s((\d+)[\d\.]+)/i,
|
||||
/player\/(nexplayer|lg player)\s((\d+)[\w\.-]+)/i // NexPlayer/LG Player
|
||||
], [NAME, VERSION], [
|
||||
/(nexplayer)\s((\d+)[\w\.-]+)/i // Nexplayer
|
||||
], [NAME, VERSION], [
|
||||
|
||||
/(flrp)\/((\d+)[\w\.-]+)/i // Flip Player
|
||||
], [[NAME, 'Flip Player'], VERSION], [
|
||||
|
||||
/(fstream|nativehost|queryseekspider|ia-archiver|facebookexternalhit)/i
|
||||
// FStream/NativeHost/QuerySeekSpider/IA Archiver/facebookexternalhit
|
||||
], [NAME], [
|
||||
|
||||
/(gstreamer) souphttpsrc (?:\([^\)]+\)){0,1} libsoup\/((\d+)[\w\.-]+)/i
|
||||
// Gstreamer
|
||||
], [NAME, VERSION], [
|
||||
|
||||
/(htc streaming player)\s[\w_]+\s\/\s((\d+)[\d\.]+)/i, // HTC Streaming Player
|
||||
/(java|python-urllib|python-requests|wget|libcurl)\/((\d+)[\w\.-_]+)/i,
|
||||
// Java/urllib/requests/wget/cURL
|
||||
/(lavf)((\d+)[\d\.]+)/i // Lavf (FFMPEG)
|
||||
], [NAME, VERSION], [
|
||||
|
||||
/(htc_one_s)\/((\d+)[\d\.]+)/i // HTC One S
|
||||
], [[NAME, /_/g, ' '], VERSION], [
|
||||
|
||||
/(mplayer)(?:\s|\/)(?:(?:sherpya-){0,1}svn)(?:-|\s)(r\d+(?:-\d+[\w\.-]+){0,1})/i
|
||||
// MPlayer SVN
|
||||
], [NAME, VERSION], [
|
||||
|
||||
/(mplayer)(?:\s|\/|[unkow-]+)((\d+)[\w\.-]+)/i // MPlayer
|
||||
], [NAME, VERSION], [
|
||||
|
||||
/(mplayer)/i, // MPlayer (no other info)
|
||||
/(yourmuze)/i, // YourMuze
|
||||
/(media player classic|nero showtime)/i // Media Player Classic/Nero ShowTime
|
||||
], [NAME], [
|
||||
|
||||
/(nero (?:home|scout))\/((\d+)[\w\.-]+)/i // Nero Home/Nero Scout
|
||||
], [NAME, VERSION], [
|
||||
|
||||
/(nokia\d+)\/((\d+)[\w\.-]+)/i // Nokia
|
||||
], [NAME, VERSION], [
|
||||
|
||||
/\s(songbird)\/((\d+)[\w\.-]+)/i // Songbird/Philips-Songbird
|
||||
], [NAME, VERSION], [
|
||||
|
||||
/(winamp)3 version ((\d+)[\w\.-]+)/i, // Winamp
|
||||
/(winamp)\s((\d+)[\w\.-]+)/i,
|
||||
/(winamp)mpeg\/((\d+)[\w\.-]+)/i
|
||||
], [NAME, VERSION], [
|
||||
|
||||
/(ocms-bot|tapinradio|tunein radio|unknown|winamp|inlight radio)/i // OCMS-bot/tap in radio/tunein/unknown/winamp (no other info)
|
||||
// inlight radio
|
||||
], [NAME], [
|
||||
|
||||
/(quicktime|rma|radioapp|radioclientapplication|soundtap|totem|stagefright|streamium)\/((\d+)[\w\.-]+)/i
|
||||
// QuickTime/RealMedia/RadioApp/RadioClientApplication/
|
||||
// SoundTap/Totem/Stagefright/Streamium
|
||||
], [NAME, VERSION], [
|
||||
|
||||
/(smp)((\d+)[\d\.]+)/i // SMP
|
||||
], [NAME, VERSION], [
|
||||
|
||||
/(vlc) media player - version ((\d+)[\w\.]+)/i, // VLC Videolan
|
||||
/(vlc)\/((\d+)[\w\.-]+)/i,
|
||||
/(xbmc|gvfs|xine|xmms|irapp)\/((\d+)[\w\.-]+)/i, // XBMC/gvfs/Xine/XMMS/irapp
|
||||
/(foobar2000)\/((\d+)[\d\.]+)/i, // Foobar2000
|
||||
/(itunes)\/((\d+)[\d\.]+)/i // iTunes
|
||||
], [NAME, VERSION], [
|
||||
|
||||
/(wmplayer)\/((\d+)[\w\.-]+)/i, // Windows Media Player
|
||||
/(windows-media-player)\/((\d+)[\w\.-]+)/i
|
||||
], [[NAME, /-/g, ' '], VERSION], [
|
||||
|
||||
/windows\/((\d+)[\w\.-]+) upnp\/[\d\.]+ dlnadoc\/[\d\.]+ (home media server)/i
|
||||
// Windows Media Server
|
||||
], [VERSION, [NAME, 'Windows']], [
|
||||
|
||||
/(com\.riseupradioalarm)\/((\d+)[\d\.]*)/i // RiseUP Radio Alarm
|
||||
], [NAME, VERSION], [
|
||||
|
||||
/(rad.io)\s((\d+)[\d\.]+)/i, // Rad.io
|
||||
/(radio.(?:de|at|fr))\s((\d+)[\d\.]+)/i
|
||||
], [[NAME, 'rad.io'], VERSION]
|
||||
|
||||
//////////////////////
|
||||
// Media players END
|
||||
////////////////////*/
|
||||
|
||||
],
|
||||
|
||||
cpu : [[
|
||||
@ -780,58 +660,6 @@
|
||||
|
||||
/(android[\w\.\s\-]{0,9});.+build/i // Generic Android Device
|
||||
], [MODEL, [VENDOR, 'Generic']]
|
||||
|
||||
|
||||
/*//////////////////////////
|
||||
// TODO: move to string map
|
||||
////////////////////////////
|
||||
|
||||
/(C6603)/i // Sony Xperia Z C6603
|
||||
], [[MODEL, 'Xperia Z C6603'], [VENDOR, 'Sony'], [TYPE, MOBILE]], [
|
||||
/(C6903)/i // Sony Xperia Z 1
|
||||
], [[MODEL, 'Xperia Z 1'], [VENDOR, 'Sony'], [TYPE, MOBILE]], [
|
||||
|
||||
/(SM-G900[F|H])/i // Samsung Galaxy S5
|
||||
], [[MODEL, 'Galaxy S5'], [VENDOR, 'Samsung'], [TYPE, MOBILE]], [
|
||||
/(SM-G7102)/i // Samsung Galaxy Grand 2
|
||||
], [[MODEL, 'Galaxy Grand 2'], [VENDOR, 'Samsung'], [TYPE, MOBILE]], [
|
||||
/(SM-G530H)/i // Samsung Galaxy Grand Prime
|
||||
], [[MODEL, 'Galaxy Grand Prime'], [VENDOR, 'Samsung'], [TYPE, MOBILE]], [
|
||||
/(SM-G313HZ)/i // Samsung Galaxy V
|
||||
], [[MODEL, 'Galaxy V'], [VENDOR, 'Samsung'], [TYPE, MOBILE]], [
|
||||
/(SM-T805)/i // Samsung Galaxy Tab S 10.5
|
||||
], [[MODEL, 'Galaxy Tab S 10.5'], [VENDOR, 'Samsung'], [TYPE, TABLET]], [
|
||||
/(SM-G800F)/i // Samsung Galaxy S5 Mini
|
||||
], [[MODEL, 'Galaxy S5 Mini'], [VENDOR, 'Samsung'], [TYPE, MOBILE]], [
|
||||
/(SM-T311)/i // Samsung Galaxy Tab 3 8.0
|
||||
], [[MODEL, 'Galaxy Tab 3 8.0'], [VENDOR, 'Samsung'], [TYPE, TABLET]], [
|
||||
|
||||
/(T3C)/i // Advan Vandroid T3C
|
||||
], [MODEL, [VENDOR, 'Advan'], [TYPE, TABLET]], [
|
||||
/(ADVAN T1J\+)/i // Advan Vandroid T1J+
|
||||
], [[MODEL, 'Vandroid T1J+'], [VENDOR, 'Advan'], [TYPE, TABLET]], [
|
||||
/(ADVAN S4A)/i // Advan Vandroid S4A
|
||||
], [[MODEL, 'Vandroid S4A'], [VENDOR, 'Advan'], [TYPE, MOBILE]], [
|
||||
|
||||
/(V972M)/i // ZTE V972M
|
||||
], [MODEL, [VENDOR, 'ZTE'], [TYPE, MOBILE]], [
|
||||
|
||||
/(i-mobile)\s(IQ\s[\d\.]+)/i // i-mobile IQ
|
||||
], [VENDOR, MODEL, [TYPE, MOBILE]], [
|
||||
/(IQ6.3)/i // i-mobile IQ IQ 6.3
|
||||
], [[MODEL, 'IQ 6.3'], [VENDOR, 'i-mobile'], [TYPE, MOBILE]], [
|
||||
/(i-mobile)\s(i-style\s[\d\.]+)/i // i-mobile i-STYLE
|
||||
], [VENDOR, MODEL, [TYPE, MOBILE]], [
|
||||
/(i-STYLE2.1)/i // i-mobile i-STYLE 2.1
|
||||
], [[MODEL, 'i-STYLE 2.1'], [VENDOR, 'i-mobile'], [TYPE, MOBILE]], [
|
||||
|
||||
/(mobiistar touch LAI 512)/i // mobiistar touch LAI 512
|
||||
], [[MODEL, 'Touch LAI 512'], [VENDOR, 'mobiistar'], [TYPE, MOBILE]], [
|
||||
|
||||
/////////////
|
||||
// END TODO
|
||||
///////////*/
|
||||
|
||||
],
|
||||
|
||||
engine : [[
|
||||
@ -929,22 +757,6 @@
|
||||
/////////////////
|
||||
// Constructor
|
||||
////////////////
|
||||
/*
|
||||
var Browser = function (name, version) {
|
||||
this[NAME] = name;
|
||||
this[VERSION] = version;
|
||||
};
|
||||
var CPU = function (arch) {
|
||||
this[ARCHITECTURE] = arch;
|
||||
};
|
||||
var Device = function (vendor, model, type) {
|
||||
this[VENDOR] = vendor;
|
||||
this[MODEL] = model;
|
||||
this[TYPE] = type;
|
||||
};
|
||||
var Engine = Browser;
|
||||
var OS = Browser;
|
||||
*/
|
||||
var UAParser = function (uastring, extensions) {
|
||||
|
||||
if (typeof uastring === 'object') {
|
||||
@ -958,11 +770,6 @@
|
||||
|
||||
var ua = uastring || ((window && window.navigator && window.navigator.userAgent) ? window.navigator.userAgent : EMPTY);
|
||||
var rgxmap = extensions ? util.extend(regexes, extensions) : regexes;
|
||||
//var browser = new Browser();
|
||||
//var cpu = new CPU();
|
||||
//var device = new Device();
|
||||
//var engine = new Engine();
|
||||
//var os = new OS();
|
||||
|
||||
this.getBrowser = function () {
|
||||
var browser = { name: undefined, version: undefined };
|
||||
@ -1005,11 +812,6 @@
|
||||
};
|
||||
this.setUA = function (uastring) {
|
||||
ua = uastring;
|
||||
//browser = new Browser();
|
||||
//cpu = new CPU();
|
||||
//device = new Device();
|
||||
//engine = new Engine();
|
||||
//os = new OS();
|
||||
return this;
|
||||
};
|
||||
return this;
|
||||
@ -1043,7 +845,6 @@
|
||||
NAME : NAME,
|
||||
VERSION : VERSION
|
||||
};
|
||||
//UAParser.Utils = util;
|
||||
|
||||
///////////
|
||||
// Export
|
||||
@ -1056,35 +857,6 @@
|
||||
if (typeof module !== UNDEF_TYPE && module.exports) {
|
||||
exports = module.exports = UAParser;
|
||||
}
|
||||
// TODO: test!!!!!!!!
|
||||
/*
|
||||
if (require && require.main === module && process) {
|
||||
// cli
|
||||
var jsonize = function (arr) {
|
||||
var res = [];
|
||||
for (var i in arr) {
|
||||
res.push(new UAParser(arr[i]).getResult());
|
||||
}
|
||||
process.stdout.write(JSON.stringify(res, null, 2) + '\n');
|
||||
};
|
||||
if (process.stdin.isTTY) {
|
||||
// via args
|
||||
jsonize(process.argv.slice(2));
|
||||
} else {
|
||||
// via pipe
|
||||
var str = '';
|
||||
process.stdin.on('readable', function() {
|
||||
var read = process.stdin.read();
|
||||
if (read !== null) {
|
||||
str += read;
|
||||
}
|
||||
});
|
||||
process.stdin.on('end', function () {
|
||||
jsonize(str.replace(/\n$/, '').split('\n'));
|
||||
});
|
||||
}
|
||||
}
|
||||
*/
|
||||
exports.UAParser = UAParser;
|
||||
} else {
|
||||
// requirejs env (optional)
|
||||
|
Loading…
x
Reference in New Issue
Block a user