From e230cc1920c74b5538f3d68e0dee3483e3b0d416 Mon Sep 17 00:00:00 2001 From: szchenghuang Date: Fri, 20 Nov 2015 15:30:28 +0800 Subject: [PATCH 1/4] UAParser is exposed globally to the window object. It can be used directly. --- package.js | 1 - 1 file changed, 1 deletion(-) diff --git a/package.js b/package.js index 419e1a2..6bc18a7 100644 --- a/package.js +++ b/package.js @@ -7,6 +7,5 @@ Package.describe({ }); Package.on_use(function (api) { - api.export("UAParser"); api.addFiles("src/ua-parser.js"); }); From 43b0ee79d6a247c804528d8025956eac5912f3c8 Mon Sep 17 00:00:00 2001 From: Faisal Salman Date: Sat, 12 Dec 2015 14:43:16 +0700 Subject: [PATCH 2/4] Seems to fix the issue for specific UA found in #159 --- src/ua-parser.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ua-parser.js b/src/ua-parser.js index ccc62f3..6f719c8 100644 --- a/src/ua-parser.js +++ b/src/ua-parser.js @@ -731,7 +731,7 @@ /\s([frentopc-]{0,4}bsd|dragonfly)\s?([\w\.]+)*/i // FreeBSD/NetBSD/OpenBSD/PC-BSD/DragonFly ], [NAME, VERSION],[ - /(ip[honead]+)(?:.*os\s*([\w]+)*\slike\smac|;\sopera)/i // iOS + /(ip[honead]+)(?:.*os\s([\w]+)*\slike\smac|;\sopera)/i // iOS ], [[NAME, 'iOS'], [VERSION, /_/g, '.']], [ /(mac\sos\sx)\s?([\w\s\.]+\w)*/i, From 09bf4ecf7f2b9ac2a7e56b5185d5feb60149b2e0 Mon Sep 17 00:00:00 2001 From: Faisal Salman Date: Sat, 12 Dec 2015 15:23:11 +0700 Subject: [PATCH 3/4] Fix #153 mistaken Search phrase for Arch OS --- src/ua-parser.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ua-parser.js b/src/ua-parser.js index 6f719c8..009bae8 100644 --- a/src/ua-parser.js +++ b/src/ua-parser.js @@ -713,7 +713,7 @@ // GNU/Linux based /(mint)[\/\s\(]?(\w+)*/i, // Mint /(mageia|vectorlinux)[;\s]/i, // Mageia/VectorLinux - /(joli|[kxln]?ubuntu|debian|[open]*suse|gentoo|arch|slackware|fedora|mandriva|centos|pclinuxos|redhat|zenwalk|linpus)[\/\s-]?([\w\.-]+)*/i, + /(joli|[kxln]?ubuntu|debian|[open]*suse|gentoo|(?=\s)arch|slackware|fedora|mandriva|centos|pclinuxos|redhat|zenwalk|linpus)[\/\s-]?([\w\.-]+)*/i, // Joli/Ubuntu/Debian/SUSE/Gentoo/Arch/Slackware // Fedora/Mandriva/CentOS/PCLinuxOS/RedHat/Zenwalk/Linpus /(hurd|linux)\s?([\w\.]+)*/i, // Hurd/Linux From cf5c1f9e011cf7013133f35bd032dd86f702477d Mon Sep 17 00:00:00 2001 From: Faisal Salman Date: Sat, 12 Dec 2015 17:34:00 +0700 Subject: [PATCH 4/4] Check for tablet first --- src/ua-parser.js | 3 ++- test/device-test.json | 10 ++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/ua-parser.js b/src/ua-parser.js index 009bae8..7348fec 100644 --- a/src/ua-parser.js +++ b/src/ua-parser.js @@ -599,7 +599,8 @@ /android.+(mi[\s\-_]*(?:one|one[\s_]plus)?[\s_]*(?:\d\w)?)\s+build/i // Xiaomi Mi ], [[MODEL, /_/g, ' '], [VENDOR, 'Xiaomi'], [TYPE, MOBILE]], [ - /(mobile|tablet)/i // Unidentifiable + /\s(tablet)[;\/\s]/i, // Unidentifiable Tablet + /\s(mobile)[;\/\s]/i // Unidentifiable Mobile ], [[TYPE, util.lowerize], VENDOR, MODEL] /*////////////////////////// diff --git a/test/device-test.json b/test/device-test.json index 49bbc5c..fa10540 100644 --- a/test/device-test.json +++ b/test/device-test.json @@ -258,5 +258,15 @@ "model" : "PlayStation 4", "type" : "console" } + }, + { + "desc" : "Galaxy Nexus", + "ua" : "Mozilla/5.0 (Linux; Android 4.0.4; Galaxy Nexus Build/IMM76B) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.133 Mobile Safari/535.19", + "expect" : + { + "vendor" : "Samsung", + "model" : "Galaxy Nexus", + "type" : "mobile" + } } ]