mirror of
https://github.com/faisalman/ua-parser-js.git
synced 2025-09-28 00:18:45 +03:00
Refine some OS detection
This commit is contained in:
parent
a0b40be04f
commit
ef4eeadcd8
@ -676,14 +676,16 @@
|
|||||||
/(blackberry)\w*\/?([\w\.]*)/i, // Blackberry
|
/(blackberry)\w*\/?([\w\.]*)/i, // Blackberry
|
||||||
/(tizen|kaios)[\/\s]([\w\.]+)/i // Tizen/KaiOS
|
/(tizen|kaios)[\/\s]([\w\.]+)/i // Tizen/KaiOS
|
||||||
], [NAME, VERSION], [
|
], [NAME, VERSION], [
|
||||||
/\((bb)(10);/i // BlackBerry 10
|
/\(bb(10);/i // BlackBerry 10
|
||||||
], [[NAME, 'BlackBerry'], VERSION], [
|
], [VERSION, [NAME, 'BlackBerry']], [
|
||||||
/(symbian\s?os|symbos|s60(?=;))[\/\s-]?([\w\.]*)/i // Symbian
|
/(?:symbian\s?os|symbos|s60(?=;))[\/\s-]?([\w\.]*)/i // Symbian
|
||||||
], [[NAME, 'Symbian'], VERSION], [
|
], [VERSION, [NAME, 'Symbian']], [
|
||||||
/\((series40);/i // Series 40
|
/\((series40);/i // Series 40
|
||||||
], [NAME], [
|
], [NAME], [
|
||||||
/mozilla.+\(mobile;.+gecko.+firefox/i // Firefox OS
|
/mozilla.+\(mobile;.+gecko.+firefox/i // Firefox OS
|
||||||
], [[NAME, 'Firefox OS'], VERSION], [
|
], [[NAME, 'Firefox OS']], [
|
||||||
|
/\bhpwos\/([\w\.]+)/i // WebOS
|
||||||
|
], [VERSION, [NAME, 'WebOS']], [
|
||||||
|
|
||||||
// Google Chromecast
|
// Google Chromecast
|
||||||
/crkey\/([\d\.]+)/i // Google Chromecast
|
/crkey\/([\d\.]+)/i // Google Chromecast
|
||||||
@ -694,9 +696,9 @@
|
|||||||
/(xbox);\s+xbox\s([^\);]+)/i, // Microsoft Xbox (360, One, X, S, Series X, Series S)
|
/(xbox);\s+xbox\s([^\);]+)/i, // Microsoft Xbox (360, One, X, S, Series X, Series S)
|
||||||
|
|
||||||
// GNU/Linux based
|
// GNU/Linux based
|
||||||
/(mint)[\/\s\(]?(\w*)/i, // Mint
|
/(mint)[\/\s\(\)]?(\w*)/i, // Mint
|
||||||
/(mageia|vectorlinux)[;\s]/i, // Mageia/VectorLinux
|
/(mageia|vectorlinux)[;\s]/i, // Mageia/VectorLinux
|
||||||
/(joli|[kxln]?ubuntu|debian|suse|opensuse|gentoo|(?=\s)arch|slackware|fedora|mandriva|centos|pclinuxos|redhat|zenwalk|linpus)[\/\s-]?(?!chrom)([\w\.-]*)/i,
|
/(joli|[kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?=\slinux)|slackware|fedora|mandriva|centos|pclinuxos|redhat|zenwalk|linpus)(?:\sgnu\/linux)?(?:\slinux)?[\/\s-]?(?!chrom|package)([\w\.-]*)/i,
|
||||||
// Joli/Ubuntu/Debian/SUSE/Gentoo/Arch/Slackware
|
// Joli/Ubuntu/Debian/SUSE/Gentoo/Arch/Slackware
|
||||||
// Fedora/Mandriva/CentOS/PCLinuxOS/RedHat/Zenwalk/Linpus
|
// Fedora/Mandriva/CentOS/PCLinuxOS/RedHat/Zenwalk/Linpus
|
||||||
/(hurd|linux)\s?([\w\.]*)/i, // Hurd/Linux
|
/(hurd|linux)\s?([\w\.]*)/i, // Hurd/Linux
|
||||||
@ -711,7 +713,7 @@
|
|||||||
], [[NAME, 'Solaris'], VERSION], [
|
], [[NAME, 'Solaris'], VERSION], [
|
||||||
|
|
||||||
// BSD based
|
// BSD based
|
||||||
/\s([frentopc-]{0,4}bsd|dragonfly)\s?([\w\.]*)/i // FreeBSD/NetBSD/OpenBSD/PC-BSD/DragonFly
|
/\s([frentopc-]{0,4}bsd|dragonfly)\s?(?!amd|[ix346]{1,2}86)([\w\.]*)/i // FreeBSD/NetBSD/OpenBSD/PC-BSD/DragonFly
|
||||||
], [NAME, VERSION],[
|
], [NAME, VERSION],[
|
||||||
|
|
||||||
/(haiku)\s(\w+)/i // Haiku
|
/(haiku)\s(\w+)/i // Haiku
|
||||||
@ -742,9 +744,9 @@
|
|||||||
return new UAParser(ua, extensions).getResult();
|
return new UAParser(ua, extensions).getResult();
|
||||||
}
|
}
|
||||||
|
|
||||||
var _ua;
|
var _ua = ua || ((typeof window !== 'undefined' && window.navigator && window.navigator.userAgent) ? window.navigator.userAgent : EMPTY);
|
||||||
var _rgxmap = extensions ? util.extend(regexes, extensions) : regexes;
|
var _rgxmap = extensions ? util.extend(regexes, extensions) : regexes;
|
||||||
|
|
||||||
this.getBrowser = function () {
|
this.getBrowser = function () {
|
||||||
var _browser = { name: undefined, version: undefined };
|
var _browser = { name: undefined, version: undefined };
|
||||||
mapper.rgx.call(_browser, _ua, _rgxmap.browser);
|
mapper.rgx.call(_browser, _ua, _rgxmap.browser);
|
||||||
@ -788,7 +790,7 @@
|
|||||||
_ua = ua.length > UA_MAX_LENGTH ? util.trim(ua, UA_MAX_LENGTH) : ua;
|
_ua = ua.length > UA_MAX_LENGTH ? util.trim(ua, UA_MAX_LENGTH) : ua;
|
||||||
return this;
|
return this;
|
||||||
};
|
};
|
||||||
this.setUA(ua || ((typeof window !== 'undefined' && window.navigator && window.navigator.userAgent) ? window.navigator.userAgent : EMPTY));
|
this.setUA(_ua);
|
||||||
return this;
|
return this;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -135,6 +135,14 @@
|
|||||||
"architecture" : "sparc"
|
"architecture" : "sparc"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"desc" : "sparc64",
|
||||||
|
"ua" : "ELinks (0.4.3; NetBSD 3.0.2PATCH sparc64; 141x19)",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"architecture" : "sparc64"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"desc" : "QuickTime",
|
"desc" : "QuickTime",
|
||||||
"ua" : "QuickTime/7.5.6 (qtver=7.5.6;cpu=IA32;os=Mac 10.5.8)",
|
"ua" : "QuickTime/7.5.6 (qtver=7.5.6;cpu=IA32;os=Mac 10.5.8)",
|
||||||
|
@ -181,11 +181,11 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"desc" : "WebOS",
|
"desc" : "WebOS",
|
||||||
"ua" : "",
|
"ua" : "Mozilla/5.0 (hp-tablet; Linux; hpwOS/3.0.5; U; en-US) AppleWebKit/534.6 (KHTML, like Gecko) wOSBrowser/234.83 Safari/534.6 TouchPad/1.0",
|
||||||
"expect" :
|
"expect" :
|
||||||
{
|
{
|
||||||
"name" : "",
|
"name" : "WebOS",
|
||||||
"version" : ""
|
"version" : "3.0.5"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -325,11 +325,29 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"desc" : "Mint",
|
"desc" : "Mint",
|
||||||
"ua" : "",
|
"ua" : "Opera/9.80 (X11; Linux x86_64; Edition Linux Mint) Presto/2.12.388 Version/12.16",
|
||||||
"expect" :
|
"expect" :
|
||||||
{
|
{
|
||||||
"name" : "",
|
"name" : "Mint",
|
||||||
"version" : ""
|
"version" : "undefined"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Mint",
|
||||||
|
"ua" : "Opera/9.64 (X11; Linux i686; U; Linux Mint; nb) Presto/2.1.1",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Mint",
|
||||||
|
"version" : "undefined"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Mint",
|
||||||
|
"ua" : "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.5) Gecko/2008121622 Linux Mint/6 (Felicia) Firefox/3.0.4",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Mint",
|
||||||
|
"version" : "6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -360,21 +378,75 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"desc" : "Debian",
|
"desc" : "Kubuntu",
|
||||||
"ua" : "",
|
"ua" : "Mozilla/5.0 (compatible; Konqueror/4.4; Linux 2.6.32-22-generic; X11; en_US) KHTML/4.4.3 (like Gecko) Kubuntu",
|
||||||
"expect" :
|
"expect" :
|
||||||
{
|
{
|
||||||
"name" : "",
|
"name" : "Kubuntu",
|
||||||
"version" : ""
|
"version" : "undefined"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Debian",
|
||||||
|
"ua" : "Mozilla/5.0 (compatible; Konqueror/3.5; Linux) KHTML/3.5.7 (like Gecko) (Debian)",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Debian",
|
||||||
|
"version" : "undefined"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Debian",
|
||||||
|
"ua" : "Mozilla/5.0 (X11; Linux x86_64; Debian GNU/Linux 8.1 (jessie)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.0 Maxthon/1.0.5.3 Safari/537.36",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Debian",
|
||||||
|
"version" : "8.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Debian",
|
||||||
|
"ua" : "ELinks/0.12~pre5-4 (textmode; Debian; Linux 3.2.0-4-amd64 x86_64 192x47-2)",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Debian",
|
||||||
|
"version" : "undefined"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Debian",
|
||||||
|
"ua" : "w3m/0.5.3+debian-19",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "debian",
|
||||||
|
"version" : "19"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Debian",
|
||||||
|
"ua" : "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.0.3) Gecko/2008092814 (Debian-3.0.1-1)",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Debian",
|
||||||
|
"version" : "3.0.1-1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Debian",
|
||||||
|
"ua" : "Mozilla/5.0 (compatible; Konqueror/3.5; Linux 2.6.24.4; X11) KHTML/3.5.9 (like Gecko) (Debian package 4:3.5.9.dfsg.1-2+b1)",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Debian",
|
||||||
|
"version" : "undefined"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"desc" : "OpenSUSE",
|
"desc" : "OpenSUSE",
|
||||||
"ua" : "",
|
"ua" : "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.17) Gecko/20110420 SUSE/3.6.17-0.2.1 Firefox/3.6.17",
|
||||||
"expect" :
|
"expect" :
|
||||||
{
|
{
|
||||||
"name" : "",
|
"name" : "SUSE",
|
||||||
"version" : ""
|
"version" : "3.6.17-0.2.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -388,11 +460,11 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"desc" : "Arch",
|
"desc" : "Arch",
|
||||||
"ua" : "",
|
"ua" : "Uzbl (Webkit 1.1.10) (Arch Linux)",
|
||||||
"expect" :
|
"expect" :
|
||||||
{
|
{
|
||||||
"name" : "",
|
"name" : "Arch",
|
||||||
"version" : ""
|
"version" : "undefined"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -406,11 +478,29 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"desc" : "Fedora",
|
"desc" : "Fedora",
|
||||||
"ua" : "",
|
"ua" : "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:40.0) Gecko/20100101 Firefox/40.0",
|
||||||
"expect" :
|
"expect" :
|
||||||
{
|
{
|
||||||
"name" : "",
|
"name" : "Fedora",
|
||||||
"version" : ""
|
"version" : "undefined"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Fedora",
|
||||||
|
"ua" : "Mozilla/5.0 (X11; U; Linux i686; en-GB; rv:2.0) Gecko/20110404 Fedora/16-dev Firefox/4.0",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Fedora",
|
||||||
|
"version" : "16-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Fedora",
|
||||||
|
"ua" : "Mozilla/5.0 (X11; U; Linux i686; sk; rv:1.9.0.4) Gecko/2008111217 Fedora/3.0.4-1.fc10 Firefox/3.0.4",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Fedora",
|
||||||
|
"version" : "3.0.4-1.fc10"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -514,29 +604,29 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"desc" : "FreeBSD",
|
"desc" : "FreeBSD",
|
||||||
"ua" : "",
|
"ua" : "Mozilla/5.0 (X11; U; FreeBSD x86_64; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.204 Safari/534.16",
|
||||||
"expect" :
|
"expect" :
|
||||||
{
|
{
|
||||||
"name" : "",
|
"name" : "FreeBSD",
|
||||||
"version" : ""
|
"version" : "undefined"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"desc" : "OpenBSD",
|
"desc" : "OpenBSD",
|
||||||
"ua" : "",
|
"ua" : "Mozilla/5.0 (X11; U; OpenBSD i386; en-US; rv:1.9.1) Gecko/20090702 Firefox/3.5",
|
||||||
"expect" :
|
"expect" :
|
||||||
{
|
{
|
||||||
"name" : "",
|
"name" : "OpenBSD",
|
||||||
"version" : ""
|
"version" : "undefined"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"desc" : "NetBSD",
|
"desc" : "NetBSD",
|
||||||
"ua" : "",
|
"ua" : "ELinks (0.4.3; NetBSD 3.0.2PATCH sparc64; 141x19)",
|
||||||
"expect" :
|
"expect" :
|
||||||
{
|
{
|
||||||
"name" : "",
|
"name" : "NetBSD",
|
||||||
"version" : ""
|
"version" : "3.0.2PATCH"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -709,5 +799,14 @@
|
|||||||
"name" : "Android",
|
"name" : "Android",
|
||||||
"version" : "4.2.1"
|
"version" : "4.2.1"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Solaris",
|
||||||
|
"ua" : "NCSA Mosaic/1.0 (X11;SunOS 4.1.4 sun4m)",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Solaris",
|
||||||
|
"version" : "4.1.4"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user