mirror of
https://github.com/faisalman/ua-parser-js.git
synced 2025-09-27 07:58:45 +03:00
Bump version 1.0.41
(mirror of 0.7.41
)
This commit is contained in:
commit
90017c98d3
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "ua-parser-js",
|
"name": "ua-parser-js",
|
||||||
"version": "1.0.40",
|
"version": "1.0.41",
|
||||||
"authors": [
|
"authors": [
|
||||||
"Faisal Salman <f@faisalman.com>"
|
"Faisal Salman <f@faisalman.com>"
|
||||||
],
|
],
|
||||||
|
10
changelog.md
10
changelog.md
@ -4,6 +4,16 @@
|
|||||||
|
|
||||||
Version 1.0.x is basically the equivalent of version 0.7.x. See [#536](https://github.com/faisalman/ua-parser-js/issues/536) for the reason behind this confusion.
|
Version 1.0.x is basically the equivalent of version 0.7.x. See [#536](https://github.com/faisalman/ua-parser-js/issues/536) for the reason behind this confusion.
|
||||||
|
|
||||||
|
## Version 0.7.41 / 1.0.41
|
||||||
|
- Add new browser: Daum, Ladybird
|
||||||
|
- Add new device vendor: HMD
|
||||||
|
- Add new engine: LibWeb
|
||||||
|
- Add new os: Windows IoT, Ubuntu Touch
|
||||||
|
- Improve cpu detection: ARM, x86
|
||||||
|
- Improve device vendor detection: Apple, Archos, Generic, Google, Honor, Huawei, Infinix, Nvidia, Lenovo, Nokia, OnePlus, Xiaomi
|
||||||
|
- Improve device type detection: smarttv, wearables
|
||||||
|
- Improve os detection: Linux, Symbian
|
||||||
|
|
||||||
## Version 0.7.40 / 1.0.40
|
## Version 0.7.40 / 1.0.40
|
||||||
- Add new browser: 115, LibreWolf, Slimboat, Slimjet
|
- Add new browser: 115, LibreWolf, Slimboat, Slimjet
|
||||||
- Add new device: Advan, Cat, Energizer, IMO, Micromax, Smartfren
|
- Add new device: Advan, Cat, Energizer, IMO, Micromax, Smartfren
|
||||||
|
6
dist/ua-parser.min.js
vendored
6
dist/ua-parser.min.js
vendored
File diff suppressed because one or more lines are too long
6
dist/ua-parser.pack.js
vendored
6
dist/ua-parser.pack.js
vendored
File diff suppressed because one or more lines are too long
@ -1,6 +1,6 @@
|
|||||||
MIT License
|
MIT License
|
||||||
|
|
||||||
Copyright (c) 2012-2024 Faisal Salman <<f@faisalman.com>>
|
Copyright (c) 2012-2025 Faisal Salman <<f@faisalman.com>>
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
Package.describe({
|
Package.describe({
|
||||||
name: 'faisalman:ua-parser-js',
|
name: 'faisalman:ua-parser-js',
|
||||||
version: '1.0.40',
|
version: '1.0.41',
|
||||||
summary: 'Lightweight JavaScript-based user-agent string parser',
|
summary: 'Lightweight JavaScript-based user-agent string parser',
|
||||||
git: 'https://github.com/faisalman/ua-parser-js.git',
|
git: 'https://github.com/faisalman/ua-parser-js.git',
|
||||||
documentation: 'readme.md'
|
documentation: 'readme.md'
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"title": "UAParser.js",
|
"title": "UAParser.js",
|
||||||
"name": "ua-parser-js",
|
"name": "ua-parser-js",
|
||||||
"version": "1.0.40",
|
"version": "1.0.41",
|
||||||
"author": "Faisal Salman <f@faisalman.com> (http://faisalman.com)",
|
"author": "Faisal Salman <f@faisalman.com> (http://faisalman.com)",
|
||||||
"description": "Detect Browser, Engine, OS, CPU, and Device type/model from User-Agent data. Supports browser & node.js environment",
|
"description": "Detect Browser, Engine, OS, CPU, and Device type/model from User-Agent data. Supports browser & node.js environment",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
|
46
readme.md
46
readme.md
@ -102,21 +102,21 @@ The methods are self explanatory, here's a small overview on all the available m
|
|||||||
# Possible 'browser.name':
|
# Possible 'browser.name':
|
||||||
115 Browser, 2345Explorer, 360 Browser, Alipay, Amaya, Android Browser, Arora,
|
115 Browser, 2345Explorer, 360 Browser, Alipay, Amaya, Android Browser, Arora,
|
||||||
Avant, Avast, AVG, Baidu, Basilisk, Blazer, Bolt, Brave, Bowser, Camino, Chimera,
|
Avant, Avast, AVG, Baidu, Basilisk, Blazer, Bolt, Brave, Bowser, Camino, Chimera,
|
||||||
Chrome Headless, Chrome WebView, Chrome, Chromium, Cobalt, Comodo Dragon, Dillo,
|
Chrome Headless, Chrome WebView, Chrome, Chromium, Cobalt, Comodo Dragon, Daum,
|
||||||
Dolphin, Doris, DuckDuckGo, Edge, Electron, Epiphany, Facebook, Falkon, Fennec,
|
Dillo, Dolphin, Doris, DuckDuckGo, Edge, Electron, Epiphany, Facebook, Falkon,
|
||||||
Firebird, Firefox [Focus/Reality], Flock, Flow, GSA, GoBrowser, Helio, Heytap,
|
Fennec, Firebird, Firefox [Focus/Reality], Flock, Flow, GSA, GoBrowser, Helio,
|
||||||
Huawei Browser, iCab, ICE Browser, IE, IEMobile, IceApe, IceCat, IceDragon,
|
Heytap, Huawei Browser, iCab, ICE Browser, IE, IEMobile, IceApe, IceCat,
|
||||||
Iceweasel, Instagram, Iridium, Iron, Jasmine, Kakao[Story/Talk], K-Meleon,
|
IceDragon, Iceweasel, Instagram, Iridium, Iron, Jasmine, Kakao[Story/Talk],
|
||||||
Kindle, Klar, Klarna, Konqueror, LBBROWSER, LibreWolf, Line, LinkedIn, Links,
|
K-Meleon, Kindle, Klar, Klarna, Konqueror, Ladybird, LBBROWSER, LibreWolf, Line,
|
||||||
Lunascape, Lynx, MIUI Browser, Maemo, Maxthon, Midori, Minimo, Mobile Safari,
|
LinkedIn, Links, Lunascape, Lynx, MIUI Browser, Maemo, Maxthon, Midori, Minimo,
|
||||||
Mosaic, Mozilla, NetFront, NetSurf, Netfront, Netscape, NokiaBrowser, Obigo,
|
Mobile Safari, Mosaic, Mozilla, NetFront, NetSurf, Netfront, Netscape,
|
||||||
Oculus Browser, OmniWeb, Opera Coast, Opera [GX/Mini/Mobi/Tablet], PaleMoon,
|
NokiaBrowser, Obigo, Oculus Browser, OmniWeb, Opera Coast,
|
||||||
PhantomJS, Phoenix, Pico Browser, Polaris, Puffin, QQ, QQBrowser, QQBrowserLite,
|
Opera [GX/Mini/Mobi/Tablet], PaleMoon, PhantomJS, Phoenix, Pico Browser, Polaris,
|
||||||
Quark, QupZilla, RockMelt, Safari, Sailfish Browser, Samsung Internet, SeaMonkey,
|
Puffin, QQ, QQBrowser, QQBrowserLite, Quark, QupZilla, RockMelt, Safari,
|
||||||
Silk, Skyfire, Sleipnir, Slim[Browser/Boat/Jet], Smart Lenovo Browser, Snapchat,
|
Sailfish Browser, Samsung Internet, SeaMonkey, Silk, Skyfire, Sleipnir,
|
||||||
Sogou [Explorer/Mobile], Swiftfox, Tesla, TikTok, Tizen Browser, Twitter,
|
Slim[Browser/Boat/Jet], Smart Lenovo Browser, Snapchat, Sogou [Explorer/Mobile],
|
||||||
UCBrowser, UP.Browser, Vivaldi, Vivo Browser, w3m, Waterfox, WeChat, Weibo,
|
Swiftfox, Tesla, TikTok, Tizen Browser, Twitter, UCBrowser, UP.Browser, Vivaldi,
|
||||||
Whale Browser, Wolvic, Yandex, ...
|
Vivo Browser, w3m, Waterfox, WeChat, Weibo, Whale Browser, Wolvic, Yandex, ...
|
||||||
|
|
||||||
# 'browser.version' determined dynamically
|
# 'browser.version' determined dynamically
|
||||||
```
|
```
|
||||||
@ -137,12 +137,12 @@ console, mobile, tablet, smarttv, wearable, embedded
|
|||||||
|
|
||||||
# Possible 'device.vendor':
|
# Possible 'device.vendor':
|
||||||
Acer, Advan, Alcatel, Amazon, Apple, Archos, ASUS, AT&T, BenQ, BlackBerry, Cat,
|
Acer, Advan, Alcatel, Amazon, Apple, Archos, ASUS, AT&T, BenQ, BlackBerry, Cat,
|
||||||
Dell, Energizer, Essential, Facebook, Fairphone, GeeksPhone, Google, HP, HTC,
|
Dell, Energizer, Essential, Facebook, Fairphone, GeeksPhone, Google, HP, HMD,
|
||||||
Huawei, IMO, Infinix, itel, Jolla, Kobo, Lenovo, LG, Meizu, Micromax, Microsoft,
|
HTC, Huawei, IMO, Infinix, itel, Jolla, Kobo, Lenovo, LG, Meizu, Micromax,
|
||||||
Motorola, Nexian, Nintendo, Nokia, Nothing, Nvidia, OnePlus, OPPO, Ouya, Palm,
|
Microsoft, Motorola, Nexian, Nintendo, Nokia, Nothing, Nvidia, OnePlus, OPPO,
|
||||||
Panasonic, Pebble, Polytron, Realme, RIM, Roku, Samsung, Sharp, Siemens,
|
Ouya, Palm, Panasonic, Pebble, Polytron, Realme, RIM, Roku, Samsung, Sharp,
|
||||||
Smartfren, Sony[Ericsson], Sprint, TCL, Tecno, Tesla, Ulefone, Vivo, Vodafone,
|
Siemens, Smartfren, Sony[Ericsson], Sprint, TCL, Tecno, Tesla, Ulefone, Vivo,
|
||||||
Xbox, Xiaomi, Zebra, ZTE, ...
|
Vodafone, Xbox, Xiaomi, Zebra, ZTE, ...
|
||||||
|
|
||||||
# 'device.model' determined dynamically
|
# 'device.model' determined dynamically
|
||||||
```
|
```
|
||||||
@ -170,8 +170,8 @@ Linpus, Linspire,Linux, Mac OS, Maemo, Mageia, Mandriva, Manjaro, MeeGo, Minix,
|
|||||||
Mint, Morph OS, NetBSD, NetRange, NetTV, Nintendo, OpenBSD, OpenHarmony, OpenVMS,
|
Mint, Morph OS, NetBSD, NetRange, NetTV, Nintendo, OpenBSD, OpenHarmony, OpenVMS,
|
||||||
OS/2, Palm, PC-BSD, PCLinuxOS, Plan9, PlayStation, QNX, Raspbian, RedHat,
|
OS/2, Palm, PC-BSD, PCLinuxOS, Plan9, PlayStation, QNX, Raspbian, RedHat,
|
||||||
RIM Tablet OS, RISC OS, Sabayon, Sailfish, SerenityOS, Series40, Slackware,
|
RIM Tablet OS, RISC OS, Sabayon, Sailfish, SerenityOS, Series40, Slackware,
|
||||||
Solaris, SUSE, Symbian, Tizen, Ubuntu, Unix, VectorLinux, Viera, watchOS, WebOS,
|
Solaris, SUSE, Symbian, Tizen, Ubuntu [Touch], Unix, VectorLinux, Viera, watchOS,
|
||||||
Windows [Phone/Mobile], Zenwalk, ...
|
WebOS, Windows [Phone/Mobile/IoT], Zenwalk, ...
|
||||||
|
|
||||||
# 'os.version' determined dynamically
|
# 'os.version' determined dynamically
|
||||||
```
|
```
|
||||||
|
173
src/ua-parser.js
173
src/ua-parser.js
@ -1,6 +1,6 @@
|
|||||||
/////////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////////
|
||||||
/* UAParser.js v1.0.40
|
/* UAParser.js v1.0.41
|
||||||
Copyright © 2012-2024 Faisal Salman <f@faisalman.com>
|
Copyright © 2012-2025 Faisal Salman <f@faisalman.com>
|
||||||
MIT License *//*
|
MIT License *//*
|
||||||
Detect Browser, Engine, OS, CPU, and Device type/model from User-Agent data.
|
Detect Browser, Engine, OS, CPU, and Device type/model from User-Agent data.
|
||||||
Supports browser & node.js environment.
|
Supports browser & node.js environment.
|
||||||
@ -17,7 +17,7 @@
|
|||||||
/////////////
|
/////////////
|
||||||
|
|
||||||
|
|
||||||
var LIBVERSION = '1.0.40',
|
var LIBVERSION = '1.0.41',
|
||||||
EMPTY = '',
|
EMPTY = '',
|
||||||
UNKNOWN = '?',
|
UNKNOWN = '?',
|
||||||
FUNC_TYPE = 'function',
|
FUNC_TYPE = 'function',
|
||||||
@ -48,11 +48,16 @@
|
|||||||
EDGE = 'Edge',
|
EDGE = 'Edge',
|
||||||
FIREFOX = 'Firefox',
|
FIREFOX = 'Firefox',
|
||||||
GOOGLE = 'Google',
|
GOOGLE = 'Google',
|
||||||
|
HONOR = 'Honor',
|
||||||
HUAWEI = 'Huawei',
|
HUAWEI = 'Huawei',
|
||||||
|
LENOVO = 'Lenovo',
|
||||||
LG = 'LG',
|
LG = 'LG',
|
||||||
MICROSOFT = 'Microsoft',
|
MICROSOFT = 'Microsoft',
|
||||||
MOTOROLA = 'Motorola',
|
MOTOROLA = 'Motorola',
|
||||||
|
NVIDIA = 'Nvidia',
|
||||||
|
ONEPLUS = 'OnePlus',
|
||||||
OPERA = 'Opera',
|
OPERA = 'Opera',
|
||||||
|
OPPO = 'OPPO',
|
||||||
SAMSUNG = 'Samsung',
|
SAMSUNG = 'Samsung',
|
||||||
SHARP = 'Sharp',
|
SHARP = 'Sharp',
|
||||||
SONY = 'Sony',
|
SONY = 'Sony',
|
||||||
@ -310,6 +315,7 @@
|
|||||||
/(Klarna)\/([\w\.]+)/i, // Klarna Shopping Browser for iOS & Android
|
/(Klarna)\/([\w\.]+)/i, // Klarna Shopping Browser for iOS & Android
|
||||||
/(kakao(?:talk|story))[\/ ]([\w\.]+)/i, // Kakao App
|
/(kakao(?:talk|story))[\/ ]([\w\.]+)/i, // Kakao App
|
||||||
/(naver)\(.*?(\d+\.[\w\.]+).*\)/i, // Naver InApp
|
/(naver)\(.*?(\d+\.[\w\.]+).*\)/i, // Naver InApp
|
||||||
|
/(daum)apps[\/ ]([\w\.]+)/i, // Daum App
|
||||||
/safari (line)\/([\w\.]+)/i, // Line App for iOS
|
/safari (line)\/([\w\.]+)/i, // Line App for iOS
|
||||||
/\b(line)\/([\w\.]+)\/iab/i, // Line App for Android
|
/\b(line)\/([\w\.]+)\/iab/i, // Line App for Android
|
||||||
/(alipay)client\/([\w\.]+)/i, // Alipay
|
/(alipay)client\/([\w\.]+)/i, // Alipay
|
||||||
@ -360,9 +366,9 @@
|
|||||||
/(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i, // Mozilla
|
/(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i, // Mozilla
|
||||||
|
|
||||||
// Other
|
// Other
|
||||||
/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|obigo|mosaic|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,
|
/(amaya|dillo|doris|icab|ladybird|lynx|mosaic|netsurf|obigo|polaris|w3m|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,
|
||||||
// Polaris/Lynx/Dillo/iCab/Doris/Amaya/w3m/NetSurf/Obigo/Mosaic/Go/ICE/UP.Browser
|
// Polaris/Lynx/Dillo/iCab/Doris/Amaya/w3m/NetSurf/Obigo/Mosaic/Go/ICE/UP.Browser/Ladybird
|
||||||
/(links) \(([\w\.]+)/i // Links
|
/\b(links) \(([\w\.]+)/i // Links
|
||||||
], [NAME, [VERSION, /_/g, '.']], [
|
], [NAME, [VERSION, /_/g, '.']], [
|
||||||
|
|
||||||
/(cobalt)\/([\w\.]+)/i // Cobalt
|
/(cobalt)\/([\w\.]+)/i // Cobalt
|
||||||
@ -371,32 +377,30 @@
|
|||||||
|
|
||||||
cpu : [[
|
cpu : [[
|
||||||
|
|
||||||
/(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\)]/i // AMD64 (x64)
|
/\b((amd|x|x86[-_]?|wow|win)64)\b/i // AMD64 (x64)
|
||||||
], [[ARCHITECTURE, 'amd64']], [
|
], [[ARCHITECTURE, 'amd64']], [
|
||||||
|
|
||||||
/(ia32(?=;))/i // IA32 (quicktime)
|
/(ia32(?=;))/i, // IA32 (quicktime)
|
||||||
], [[ARCHITECTURE, lowerize]], [
|
/\b((i[346]|x)86)(pc)?\b/i // IA32 (x86)
|
||||||
|
|
||||||
/((?:i[346]|x)86)[;\)]/i // IA32 (x86)
|
|
||||||
], [[ARCHITECTURE, 'ia32']], [
|
], [[ARCHITECTURE, 'ia32']], [
|
||||||
|
|
||||||
/\b(aarch64|arm(v?8e?l?|_?64))\b/i // ARM64
|
/\b(aarch64|arm(v?[89]e?l?|_?64))\b/i // ARM64
|
||||||
], [[ARCHITECTURE, 'arm64']], [
|
], [[ARCHITECTURE, 'arm64']], [
|
||||||
|
|
||||||
/\b(arm(?:v[67])?ht?n?[fl]p?)\b/i // ARMHF
|
/\b(arm(v[67])?ht?n?[fl]p?)\b/i // ARMHF
|
||||||
], [[ARCHITECTURE, 'armhf']], [
|
], [[ARCHITECTURE, 'armhf']], [
|
||||||
|
|
||||||
// PocketPC mistakenly identified as PowerPC
|
// PocketPC mistakenly identified as PowerPC
|
||||||
/windows (ce|mobile); ppc;/i
|
/( (ce|mobile); ppc;|\/[\w\.]+arm\b)/i
|
||||||
], [[ARCHITECTURE, 'arm']], [
|
], [[ARCHITECTURE, 'arm']], [
|
||||||
|
|
||||||
/((?:ppc|powerpc)(?:64)?)(?: mac|;|\))/i // PowerPC
|
/((ppc|powerpc)(64)?)( mac|;|\))/i // PowerPC
|
||||||
], [[ARCHITECTURE, /ower/, EMPTY, lowerize]], [
|
], [[ARCHITECTURE, /ower/, EMPTY, lowerize]], [
|
||||||
|
|
||||||
/(sun4\w)[;\)]/i // SPARC
|
/ sun4\w[;\)]/i // SPARC
|
||||||
], [[ARCHITECTURE, 'sparc']], [
|
], [[ARCHITECTURE, 'sparc']], [
|
||||||
|
|
||||||
/((?:avr32|ia64(?=;))|68k(?=\))|\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\b|pa-risc)/i
|
/\b(avr32|ia64(?=;)|68k(?=\))|\barm(?=v([1-7]|[5-7]1)l?|;|eabi)|(irix|mips|sparc)(64)?\b|pa-risc)/i
|
||||||
// IA64, 68K, ARM/64, AVR/32, IRIX/64, MIPS/64, SPARC/64, PA-RISC
|
// IA64, 68K, ARM/64, AVR/32, IRIX/64, MIPS/64, SPARC/64, PA-RISC
|
||||||
], [[ARCHITECTURE, lowerize]]
|
], [[ARCHITECTURE, lowerize]]
|
||||||
],
|
],
|
||||||
@ -430,34 +434,38 @@
|
|||||||
], [MODEL, [VENDOR, SHARP], [TYPE, MOBILE]], [
|
], [MODEL, [VENDOR, SHARP], [TYPE, MOBILE]], [
|
||||||
|
|
||||||
// Honor
|
// Honor
|
||||||
/(?:honor)([-\w ]+)[;\)]/i
|
/\b((?:brt|eln|hey2?|gdi|jdn)-a?[lnw]09|(?:ag[rm]3?|jdn2|kob2)-a?[lw]0[09]hn)(?: bui|\)|;)/i
|
||||||
], [MODEL, [VENDOR, 'Honor'], [TYPE, MOBILE]], [
|
], [MODEL, [VENDOR, HONOR], [TYPE, TABLET]], [
|
||||||
|
/honor([-\w ]+)[;\)]/i
|
||||||
|
], [MODEL, [VENDOR, HONOR], [TYPE, MOBILE]], [
|
||||||
|
|
||||||
// Huawei
|
// Huawei
|
||||||
/\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\d{2})\b(?!.+d\/s)/i
|
/\b((?:ag[rs][2356]?k?|bah[234]?|bg[2o]|bt[kv]|cmr|cpn|db[ry]2?|jdn2|got|kob2?k?|mon|pce|scm|sht?|[tw]gr|vrd)-[ad]?[lw][0125][09]b?|605hw|bg2-u03|(?:gem|fdr|m2|ple|t1)-[7a]0[1-4][lu]|t1-a2[13][lw]|mediapad[\w\. ]*(?= bui|\)))\b(?!.+d\/s)/i
|
||||||
], [MODEL, [VENDOR, HUAWEI], [TYPE, TABLET]], [
|
], [MODEL, [VENDOR, HUAWEI], [TYPE, TABLET]], [
|
||||||
/(?:huawei)([-\w ]+)[;\)]/i,
|
/(?:huawei)([-\w ]+)[;\)]/i,
|
||||||
/\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][012359c][adn]?)\b(?!.+d\/s)/i
|
/\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][012359c][adn]?)\b(?!.+d\/s)/i
|
||||||
], [MODEL, [VENDOR, HUAWEI], [TYPE, MOBILE]], [
|
], [MODEL, [VENDOR, HUAWEI], [TYPE, MOBILE]], [
|
||||||
|
|
||||||
// Xiaomi
|
// Xiaomi
|
||||||
|
/oid[^\)]+; (2[\dbc]{4}(182|283|rp\w{2})[cgl]|m2105k81a?c)(?: bui|\))/i,
|
||||||
|
/\b((?:red)?mi[-_ ]?pad[\w- ]*)(?: bui|\))/i // Mi Pad tablets
|
||||||
|
],[[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, TABLET]], [
|
||||||
|
|
||||||
/\b(poco[\w ]+|m2\d{3}j\d\d[a-z]{2})(?: bui|\))/i, // Xiaomi POCO
|
/\b(poco[\w ]+|m2\d{3}j\d\d[a-z]{2})(?: bui|\))/i, // Xiaomi POCO
|
||||||
/\b; (\w+) build\/hm\1/i, // Xiaomi Hongmi 'numeric' models
|
/\b; (\w+) build\/hm\1/i, // Xiaomi Hongmi 'numeric' models
|
||||||
/\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i, // Xiaomi Hongmi
|
/\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i, // Xiaomi Hongmi
|
||||||
/\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i, // Xiaomi Redmi
|
/\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i, // Xiaomi Redmi
|
||||||
/oid[^\)]+; (m?[12][0-389][01]\w{3,6}[c-y])( bui|; wv|\))/i, // Xiaomi Redmi 'numeric' models
|
/oid[^\)]+; (m?[12][0-389][01]\w{3,6}[c-y])( bui|; wv|\))/i, // Xiaomi Redmi 'numeric' models
|
||||||
/\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite|pro)?)(?: bui|\))/i // Xiaomi Mi
|
/\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite|pro)?)(?: bui|\))/i, // Xiaomi Mi
|
||||||
|
/ ([\w ]+) miui\/v?\d/i
|
||||||
], [[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, MOBILE]], [
|
], [[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, MOBILE]], [
|
||||||
/oid[^\)]+; (2\d{4}(283|rpbf)[cgl])( bui|\))/i, // Redmi Pad
|
|
||||||
/\b(mi[-_ ]?(?:pad)(?:[\w_ ]+))(?: bui|\))/i // Mi Pad tablets
|
|
||||||
],[[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, TABLET]], [
|
|
||||||
|
|
||||||
// OPPO
|
// OPPO
|
||||||
/; (\w+) bui.+ oppo/i,
|
/; (\w+) bui.+ oppo/i,
|
||||||
/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i
|
/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i
|
||||||
], [MODEL, [VENDOR, 'OPPO'], [TYPE, MOBILE]], [
|
], [MODEL, [VENDOR, OPPO], [TYPE, MOBILE]], [
|
||||||
/\b(opd2\d{3}a?) bui/i
|
/\b(opd2(\d{3}a?))(?: bui|\))/i
|
||||||
], [MODEL, [VENDOR, 'OPPO'], [TYPE, TABLET]], [
|
], [MODEL, [VENDOR, strMapper, { 'OnePlus' : ['304', '403', '203'], '*' : OPPO }], [TYPE, TABLET]], [
|
||||||
|
|
||||||
// Vivo
|
// Vivo
|
||||||
/vivo (\w+)(?: bui|\))/i,
|
/vivo (\w+)(?: bui|\))/i,
|
||||||
@ -471,7 +479,7 @@
|
|||||||
// Motorola
|
// Motorola
|
||||||
/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,
|
/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,
|
||||||
/\bmot(?:orola)?[- ](\w*)/i,
|
/\bmot(?:orola)?[- ](\w*)/i,
|
||||||
/((?:moto[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i
|
/((?:moto(?! 360)[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i
|
||||||
], [MODEL, [VENDOR, MOTOROLA], [TYPE, MOBILE]], [
|
], [MODEL, [VENDOR, MOTOROLA], [TYPE, MOBILE]], [
|
||||||
/\b(mz60\d|xoom[2 ]{0,2}) build\//i
|
/\b(mz60\d|xoom[2 ]{0,2}) build\//i
|
||||||
], [MODEL, [VENDOR, MOTOROLA], [TYPE, TABLET]], [
|
], [MODEL, [VENDOR, MOTOROLA], [TYPE, TABLET]], [
|
||||||
@ -480,22 +488,24 @@
|
|||||||
/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i
|
/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i
|
||||||
], [MODEL, [VENDOR, LG], [TYPE, TABLET]], [
|
], [MODEL, [VENDOR, LG], [TYPE, TABLET]], [
|
||||||
/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,
|
/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,
|
||||||
/\blg[-e;\/ ]+((?!browser|netcast|android tv)\w+)/i,
|
/\blg[-e;\/ ]+((?!browser|netcast|android tv|watch)\w+)/i,
|
||||||
/\blg-?([\d\w]+) bui/i
|
/\blg-?([\d\w]+) bui/i
|
||||||
], [MODEL, [VENDOR, LG], [TYPE, MOBILE]], [
|
], [MODEL, [VENDOR, LG], [TYPE, MOBILE]], [
|
||||||
|
|
||||||
// Lenovo
|
// Lenovo
|
||||||
/(ideatab[-\w ]+)/i,
|
/(ideatab[-\w ]+|602lv|d-42a|a101lv|a2109a|a3500-hv|s[56]000|pb-6505[my]|tb-?x?\d{3,4}(?:f[cu]|xu|[av])|yt\d?-[jx]?\d+[lfmx])( bui|;|\)|\/)/i,
|
||||||
/lenovo ?(s[56]000[-\w]+|tab(?:[\w ]+)|yt[-\d\w]{6}|tb[-\d\w]{6})/i
|
/lenovo ?(b[68]0[08]0-?[hf]?|tab(?:[\w- ]+?)|tb[\w-]{6,7})( bui|;|\)|\/)/i
|
||||||
], [MODEL, [VENDOR, 'Lenovo'], [TYPE, TABLET]], [
|
], [MODEL, [VENDOR, LENOVO], [TYPE, TABLET]], [
|
||||||
|
|
||||||
// Nokia
|
// Nokia
|
||||||
/(?:maemo|nokia).*(n900|lumia \d+)/i,
|
/(nokia) (t[12][01])/i
|
||||||
/nokia[-_ ]?([-\w\.]*)/i
|
], [VENDOR, MODEL, [TYPE, TABLET]], [
|
||||||
], [[MODEL, /_/g, ' '], [VENDOR, 'Nokia'], [TYPE, MOBILE]], [
|
/(?:maemo|nokia).*(n900|lumia \d+|rm-\d+)/i,
|
||||||
|
/nokia[-_ ]?(([-\w\. ]*))/i
|
||||||
|
], [[MODEL, /_/g, ' '], [TYPE, MOBILE], [VENDOR, 'Nokia']], [
|
||||||
|
|
||||||
// Google
|
// Google
|
||||||
/(pixel c)\b/i // Google Pixel C
|
/(pixel (c|tablet))\b/i // Google Pixel C/Tablet
|
||||||
], [MODEL, [VENDOR, GOOGLE], [TYPE, TABLET]], [
|
], [MODEL, [VENDOR, GOOGLE], [TYPE, TABLET]], [
|
||||||
/droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i // Google Pixel
|
/droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i // Google Pixel
|
||||||
], [MODEL, [VENDOR, GOOGLE], [TYPE, MOBILE]], [
|
], [MODEL, [VENDOR, GOOGLE], [TYPE, MOBILE]], [
|
||||||
@ -510,7 +520,7 @@
|
|||||||
// OnePlus
|
// OnePlus
|
||||||
/ (kb2005|in20[12]5|be20[12][59])\b/i,
|
/ (kb2005|in20[12]5|be20[12][59])\b/i,
|
||||||
/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i
|
/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i
|
||||||
], [MODEL, [VENDOR, 'OnePlus'], [TYPE, MOBILE]], [
|
], [MODEL, [VENDOR, ONEPLUS], [TYPE, MOBILE]], [
|
||||||
|
|
||||||
// Amazon
|
// Amazon
|
||||||
/(alexa)webm/i,
|
/(alexa)webm/i,
|
||||||
@ -582,21 +592,29 @@
|
|||||||
/droid.+; (a(?:015|06[35]|142p?))/i
|
/droid.+; (a(?:015|06[35]|142p?))/i
|
||||||
], [MODEL, [VENDOR, 'Nothing'], [TYPE, MOBILE]], [
|
], [MODEL, [VENDOR, 'Nothing'], [TYPE, MOBILE]], [
|
||||||
|
|
||||||
|
// Archos
|
||||||
|
/; (x67 5g|tikeasy \w+|ac[1789]\d\w+)( b|\))/i,
|
||||||
|
/archos ?(5|gamepad2?|([\w ]*[t1789]|hello) ?\d+[\w ]*)( b|\))/i
|
||||||
|
], [MODEL, [VENDOR, 'Archos'], [TYPE, TABLET]], [
|
||||||
|
/archos ([\w ]+)( b|\))/i,
|
||||||
|
/; (ac[3-6]\d\w{2,8})( b|\))/i
|
||||||
|
], [MODEL, [VENDOR, 'Archos'], [TYPE, MOBILE]], [
|
||||||
|
|
||||||
// MIXED
|
// MIXED
|
||||||
/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron|infinix|tecno|micromax|advan)[-_ ]?([-\w]*)/i,
|
/(imo) (tab \w+)/i, // IMO
|
||||||
|
/(infinix) (x1101b?)/i // Infinix XPad
|
||||||
|
], [VENDOR, MODEL, [TYPE, TABLET]], [
|
||||||
|
|
||||||
|
/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus(?! zenw)|dell|jolla|meizu|motorola|polytron|infinix|tecno|micromax|advan)[-_ ]?([-\w]*)/i,
|
||||||
// BlackBerry/BenQ/Palm/Sony-Ericsson/Acer/Asus/Dell/Meizu/Motorola/Polytron/Infinix/Tecno/Micromax/Advan
|
// BlackBerry/BenQ/Palm/Sony-Ericsson/Acer/Asus/Dell/Meizu/Motorola/Polytron/Infinix/Tecno/Micromax/Advan
|
||||||
/; (imo) ((?!tab)[\w ]+?)(?: bui|\))/i, // IMO
|
/; (hmd|imo) ([\w ]+?)(?: bui|\))/i, // HMD/IMO
|
||||||
/(hp) ([\w ]+\w)/i, // HP iPAQ
|
/(hp) ([\w ]+\w)/i, // HP iPAQ
|
||||||
/(asus)-?(\w+)/i, // Asus
|
|
||||||
/(microsoft); (lumia[\w ]+)/i, // Microsoft Lumia
|
/(microsoft); (lumia[\w ]+)/i, // Microsoft Lumia
|
||||||
/(lenovo)[-_ ]?([-\w]+)/i, // Lenovo
|
/(lenovo)[-_ ]?([-\w ]+?)(?: bui|\)|\/)/i, // Lenovo
|
||||||
/(jolla)/i, // Jolla
|
|
||||||
/(oppo) ?([\w ]+) bui/i // OPPO
|
/(oppo) ?([\w ]+) bui/i // OPPO
|
||||||
], [VENDOR, MODEL, [TYPE, MOBILE]], [
|
], [VENDOR, MODEL, [TYPE, MOBILE]], [
|
||||||
|
|
||||||
/(imo) (tab \w+)/i, // IMO
|
|
||||||
/(kobo)\s(ereader|touch)/i, // Kobo
|
/(kobo)\s(ereader|touch)/i, // Kobo
|
||||||
/(archos) (gamepad2?)/i, // Archos
|
|
||||||
/(hp).+(touchpad(?!.+tablet)|tablet)/i, // HP TouchPad
|
/(hp).+(touchpad(?!.+tablet)|tablet)/i, // HP TouchPad
|
||||||
/(kindle)\/([\w\.]+)/i, // Kindle
|
/(kindle)\/([\w\.]+)/i, // Kindle
|
||||||
/(nook)[\w ]+build\/(\w+)/i, // Nook
|
/(nook)[\w ]+build\/(\w+)/i, // Nook
|
||||||
@ -654,8 +672,8 @@
|
|||||||
], [MODEL, [VENDOR, 'MachSpeed'], [TYPE, TABLET]], [
|
], [MODEL, [VENDOR, 'MachSpeed'], [TYPE, TABLET]], [
|
||||||
/\btu_(1491) b/i // Rotor Tablets
|
/\btu_(1491) b/i // Rotor Tablets
|
||||||
], [MODEL, [VENDOR, 'Rotor'], [TYPE, TABLET]], [
|
], [MODEL, [VENDOR, 'Rotor'], [TYPE, TABLET]], [
|
||||||
/(shield[\w ]+) b/i // Nvidia Shield Tablets
|
/((?:tegranote|shield t(?!.+d tv))[\w- ]*?)(?: b|\))/i // Nvidia Tablets
|
||||||
], [MODEL, [VENDOR, 'Nvidia'], [TYPE, TABLET]], [
|
], [MODEL, [VENDOR, NVIDIA], [TYPE, TABLET]], [
|
||||||
/(sprint) (\w+)/i // Sprint Phones
|
/(sprint) (\w+)/i // Sprint Phones
|
||||||
], [VENDOR, MODEL, [TYPE, MOBILE]], [
|
], [VENDOR, MODEL, [TYPE, MOBILE]], [
|
||||||
/(kin\.[onetw]{3})/i // Microsoft Kin
|
/(kin\.[onetw]{3})/i // Microsoft Kin
|
||||||
@ -681,19 +699,24 @@
|
|||||||
], [[MODEL, CHROME+'cast'], [VENDOR, GOOGLE], [TYPE, SMARTTV]], [
|
], [[MODEL, CHROME+'cast'], [VENDOR, GOOGLE], [TYPE, SMARTTV]], [
|
||||||
/droid.+aft(\w+)( bui|\))/i // Fire TV
|
/droid.+aft(\w+)( bui|\))/i // Fire TV
|
||||||
], [MODEL, [VENDOR, AMAZON], [TYPE, SMARTTV]], [
|
], [MODEL, [VENDOR, AMAZON], [TYPE, SMARTTV]], [
|
||||||
|
/(shield \w+ tv)/i // Nvidia Shield TV
|
||||||
|
], [MODEL, [VENDOR, NVIDIA], [TYPE, SMARTTV]], [
|
||||||
/\(dtv[\);].+(aquos)/i,
|
/\(dtv[\);].+(aquos)/i,
|
||||||
/(aquos-tv[\w ]+)\)/i // Sharp
|
/(aquos-tv[\w ]+)\)/i // Sharp
|
||||||
], [MODEL, [VENDOR, SHARP], [TYPE, SMARTTV]],[
|
], [MODEL, [VENDOR, SHARP], [TYPE, SMARTTV]],[
|
||||||
/(bravia[\w ]+)( bui|\))/i // Sony
|
/(bravia[\w ]+)( bui|\))/i // Sony
|
||||||
], [MODEL, [VENDOR, SONY], [TYPE, SMARTTV]], [
|
], [MODEL, [VENDOR, SONY], [TYPE, SMARTTV]], [
|
||||||
/(mitv-\w{5}) bui/i // Xiaomi
|
/(mi(tv|box)-?\w+) bui/i // Xiaomi
|
||||||
], [MODEL, [VENDOR, XIAOMI], [TYPE, SMARTTV]], [
|
], [MODEL, [VENDOR, XIAOMI], [TYPE, SMARTTV]], [
|
||||||
/Hbbtv.*(technisat) (.*);/i // TechniSAT
|
/Hbbtv.*(technisat) (.*);/i // TechniSAT
|
||||||
], [VENDOR, MODEL, [TYPE, SMARTTV]], [
|
], [VENDOR, MODEL, [TYPE, SMARTTV]], [
|
||||||
/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i, // Roku
|
/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i, // Roku
|
||||||
/hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i // HbbTV devices
|
/hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i // HbbTV devices
|
||||||
], [[VENDOR, trim], [MODEL, trim], [TYPE, SMARTTV]], [
|
], [[VENDOR, trim], [MODEL, trim], [TYPE, SMARTTV]], [
|
||||||
/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i // SmartTV from Unidentified Vendors
|
// SmartTV from Unidentified Vendors
|
||||||
|
/droid.+; ([\w- ]+) (?:android tv|smart[- ]?tv)/i
|
||||||
|
], [MODEL, [TYPE, SMARTTV]], [
|
||||||
|
/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i
|
||||||
], [[TYPE, SMARTTV]], [
|
], [[TYPE, SMARTTV]], [
|
||||||
|
|
||||||
///////////////////
|
///////////////////
|
||||||
@ -703,9 +726,9 @@
|
|||||||
/(ouya)/i, // Ouya
|
/(ouya)/i, // Ouya
|
||||||
/(nintendo) ([wids3utch]+)/i // Nintendo
|
/(nintendo) ([wids3utch]+)/i // Nintendo
|
||||||
], [VENDOR, MODEL, [TYPE, CONSOLE]], [
|
], [VENDOR, MODEL, [TYPE, CONSOLE]], [
|
||||||
/droid.+; (shield) bui/i // Nvidia
|
/droid.+; (shield)( bui|\))/i // Nvidia Portable
|
||||||
], [MODEL, [VENDOR, 'Nvidia'], [TYPE, CONSOLE]], [
|
], [MODEL, [VENDOR, NVIDIA], [TYPE, CONSOLE]], [
|
||||||
/(playstation [345portablevi]+)/i // Playstation
|
/(playstation \w+)/i // Playstation
|
||||||
], [MODEL, [VENDOR, SONY], [TYPE, CONSOLE]], [
|
], [MODEL, [VENDOR, SONY], [TYPE, CONSOLE]], [
|
||||||
/\b(xbox(?: one)?(?!; xbox))[\); ]/i // Microsoft Xbox
|
/\b(xbox(?: one)?(?!; xbox))[\); ]/i // Microsoft Xbox
|
||||||
], [MODEL, [VENDOR, MICROSOFT], [TYPE, CONSOLE]], [
|
], [MODEL, [VENDOR, MICROSOFT], [TYPE, CONSOLE]], [
|
||||||
@ -714,14 +737,23 @@
|
|||||||
// WEARABLES
|
// WEARABLES
|
||||||
///////////////////
|
///////////////////
|
||||||
|
|
||||||
/\b(sm-[lr]\d\d[05][fnuw]?s?)\b/i // Samsung Galaxy Watch
|
/\b(sm-[lr]\d\d[0156][fnuw]?s?|gear live)\b/i // Samsung Galaxy Watch
|
||||||
], [MODEL, [VENDOR, SAMSUNG], [TYPE, WEARABLE]], [
|
], [MODEL, [VENDOR, SAMSUNG], [TYPE, WEARABLE]], [
|
||||||
/((pebble))app/i // Pebble
|
/((pebble))app/i, // Pebble
|
||||||
|
/(asus|google|lg|oppo) ((pixel |zen)?watch[\w ]*)( bui|\))/i // Asus ZenWatch / LG Watch / Pixel Watch
|
||||||
], [VENDOR, MODEL, [TYPE, WEARABLE]], [
|
], [VENDOR, MODEL, [TYPE, WEARABLE]], [
|
||||||
|
/(ow(?:19|20)?we?[1-3]{1,3})/i // Oppo Watch
|
||||||
|
], [MODEL, [VENDOR, OPPO], [TYPE, WEARABLE]], [
|
||||||
/(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i // Apple Watch
|
/(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i // Apple Watch
|
||||||
], [MODEL, [VENDOR, APPLE], [TYPE, WEARABLE]], [
|
], [MODEL, [VENDOR, APPLE], [TYPE, WEARABLE]], [
|
||||||
/droid.+; (glass) \d/i // Google Glass
|
/(opwwe\d{3})/i // OnePlus Watch
|
||||||
], [MODEL, [VENDOR, GOOGLE], [TYPE, WEARABLE]], [
|
], [MODEL, [VENDOR, ONEPLUS], [TYPE, WEARABLE]], [
|
||||||
|
/(moto 360)/i // Motorola 360
|
||||||
|
], [MODEL, [VENDOR, MOTOROLA], [TYPE, WEARABLE]], [
|
||||||
|
/(smartwatch 3)/i // Sony SmartWatch
|
||||||
|
], [MODEL, [VENDOR, SONY], [TYPE, WEARABLE]], [
|
||||||
|
/(g watch r)/i // LG G Watch R
|
||||||
|
], [MODEL, [VENDOR, LG], [TYPE, WEARABLE]], [
|
||||||
/droid.+; (wt63?0{2,3})\)/i
|
/droid.+; (wt63?0{2,3})\)/i
|
||||||
], [MODEL, [VENDOR, ZEBRA], [TYPE, WEARABLE]], [
|
], [MODEL, [VENDOR, ZEBRA], [TYPE, WEARABLE]], [
|
||||||
|
|
||||||
@ -744,6 +776,10 @@
|
|||||||
], [VENDOR, [TYPE, EMBEDDED]], [
|
], [VENDOR, [TYPE, EMBEDDED]], [
|
||||||
/(aeobc)\b/i // Echo Dot
|
/(aeobc)\b/i // Echo Dot
|
||||||
], [MODEL, [VENDOR, AMAZON], [TYPE, EMBEDDED]], [
|
], [MODEL, [VENDOR, AMAZON], [TYPE, EMBEDDED]], [
|
||||||
|
/(homepod).+mac os/i // Apple HomePod
|
||||||
|
], [MODEL, [VENDOR, APPLE], [TYPE, EMBEDDED]], [
|
||||||
|
/windows iot/i
|
||||||
|
], [[TYPE, EMBEDDED]], [
|
||||||
|
|
||||||
////////////////////
|
////////////////////
|
||||||
// MIXED (GENERIC)
|
// MIXED (GENERIC)
|
||||||
@ -757,7 +793,7 @@
|
|||||||
], [[TYPE, TABLET]], [
|
], [[TYPE, TABLET]], [
|
||||||
/(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i // Unidentifiable Mobile
|
/(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i // Unidentifiable Mobile
|
||||||
], [[TYPE, MOBILE]], [
|
], [[TYPE, MOBILE]], [
|
||||||
/(android[-\w\. ]{0,9});.+buil/i // Generic Android Device
|
/droid .+?; ([\w\. -]+)( bui|\))/i // Generic Android Device
|
||||||
], [MODEL, [VENDOR, 'Generic']]
|
], [MODEL, [VENDOR, 'Generic']]
|
||||||
],
|
],
|
||||||
|
|
||||||
@ -777,8 +813,11 @@
|
|||||||
/ekioh(flow)\/([\w\.]+)/i, // Flow
|
/ekioh(flow)\/([\w\.]+)/i, // Flow
|
||||||
/(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i, // KHTML/Tasman/Links
|
/(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i, // KHTML/Tasman/Links
|
||||||
/(icab)[\/ ]([23]\.[\d\.]+)/i, // iCab
|
/(icab)[\/ ]([23]\.[\d\.]+)/i, // iCab
|
||||||
/\b(libweb)/i
|
|
||||||
|
/\b(libweb)/i // LibWeb
|
||||||
], [NAME, VERSION], [
|
], [NAME, VERSION], [
|
||||||
|
/ladybird\//i
|
||||||
|
], [[NAME, 'LibWeb']], [
|
||||||
|
|
||||||
/rv\:([\w\.]{1,9})\b.+(gecko)/i // Gecko
|
/rv\:([\w\.]{1,9})\b.+(gecko)/i // Gecko
|
||||||
], [VERSION, NAME]
|
], [VERSION, NAME]
|
||||||
@ -789,15 +828,15 @@
|
|||||||
// Windows
|
// Windows
|
||||||
/microsoft (windows) (vista|xp)/i // Windows (iTunes)
|
/microsoft (windows) (vista|xp)/i // Windows (iTunes)
|
||||||
], [NAME, VERSION], [
|
], [NAME, VERSION], [
|
||||||
/(windows (?:phone(?: os)?|mobile))[\/ ]?([\d\.\w ]*)/i // Windows Phone
|
/(windows (?:phone(?: os)?|mobile|iot))[\/ ]?([\d\.\w ]*)/i // Windows Phone
|
||||||
], [NAME, [VERSION, strMapper, windowsVersionMap]], [
|
], [NAME, [VERSION, strMapper, windowsVersionMap]], [
|
||||||
/windows nt 6\.2; (arm)/i, // Windows RT
|
/windows nt 6\.2; (arm)/i, // Windows RT
|
||||||
/windows[\/ ]?([ntce\d\. ]+\w)(?!.+xbox)/i,
|
/windows[\/ ]([ntce\d\. ]+\w)(?!.+xbox)/i,
|
||||||
/(?:win(?=3|9|n)|win 9x )([nt\d\.]+)/i
|
/(?:win(?=3|9|n)|win 9x )([nt\d\.]+)/i
|
||||||
], [[VERSION, strMapper, windowsVersionMap], [NAME, 'Windows']], [
|
], [[VERSION, strMapper, windowsVersionMap], [NAME, 'Windows']], [
|
||||||
|
|
||||||
// iOS/macOS
|
// iOS/macOS
|
||||||
/ip[honead]{2,4}\b(?:.*os ([\w]+) like mac|; opera)/i, // iOS
|
/[adehimnop]{4,7}\b(?:.*os ([\w]+) like mac|; opera)/i, // iOS
|
||||||
/(?:ios;fbsv\/|iphone.+ios[\/ ])([\d\.]+)/i,
|
/(?:ios;fbsv\/|iphone.+ios[\/ ])([\d\.]+)/i,
|
||||||
/cfnetwork\/.+darwin/i
|
/cfnetwork\/.+darwin/i
|
||||||
], [[VERSION, /_/g, '.'], [NAME, 'iOS']], [
|
], [[VERSION, /_/g, '.'], [NAME, 'iOS']], [
|
||||||
@ -807,15 +846,15 @@
|
|||||||
|
|
||||||
// Mobile OSes
|
// Mobile OSes
|
||||||
/droid ([\w\.]+)\b.+(android[- ]x86|harmonyos)/i // Android-x86/HarmonyOS
|
/droid ([\w\.]+)\b.+(android[- ]x86|harmonyos)/i // Android-x86/HarmonyOS
|
||||||
], [VERSION, NAME], [ // Android/WebOS/QNX/Bada/RIM/Maemo/MeeGo/Sailfish OS/OpenHarmony
|
], [VERSION, NAME], [
|
||||||
/(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish|openharmony)[-\/ ]?([\w\.]*)/i,
|
/(ubuntu) ([\w\.]+) like android/i // Ubuntu Touch
|
||||||
/(blackberry)\w*\/([\w\.]*)/i, // Blackberry
|
], [[NAME, /(.+)/, '$1 Touch'], VERSION], [
|
||||||
/(tizen|kaios)[\/ ]([\w\.]+)/i, // Tizen/KaiOS
|
// Android/Blackberry/WebOS/QNX/Bada/RIM/KaiOS/Maemo/MeeGo/S40/Sailfish OS/OpenHarmony/Tizen
|
||||||
/\((series40);/i // Series 40
|
/(android|bada|blackberry|kaios|maemo|meego|openharmony|qnx|rim tablet os|sailfish|series40|symbian|tizen|webos)\w*[-\/; ]?([\d\.]*)/i
|
||||||
], [NAME, VERSION], [
|
], [NAME, VERSION], [
|
||||||
/\(bb(10);/i // BlackBerry 10
|
/\(bb(10);/i // BlackBerry 10
|
||||||
], [VERSION, [NAME, BLACKBERRY]], [
|
], [VERSION, [NAME, BLACKBERRY]], [
|
||||||
/(?:symbian ?os|symbos|s60(?=;)|series60)[-\/ ]?([\w\.]*)/i // Symbian
|
/(?:symbian ?os|symbos|s60(?=;)|series ?60)[-\/ ]?([\w\.]*)/i // Symbian
|
||||||
], [VERSION, [NAME, 'Symbian']], [
|
], [VERSION, [NAME, 'Symbian']], [
|
||||||
/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i // Firefox OS
|
/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i // Firefox OS
|
||||||
], [VERSION, [NAME, FIREFOX+' OS']], [
|
], [VERSION, [NAME, FIREFOX+' OS']], [
|
||||||
@ -846,7 +885,7 @@
|
|||||||
/(mageia|vectorlinux)[; ]/i, // Mageia/VectorLinux
|
/(mageia|vectorlinux)[; ]/i, // Mageia/VectorLinux
|
||||||
/([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i,
|
/([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i,
|
||||||
// Ubuntu/Debian/SUSE/Gentoo/Arch/Slackware/Fedora/Mandriva/CentOS/PCLinuxOS/RedHat/Zenwalk/Linpus/Raspbian/Plan9/Minix/RISCOS/Contiki/Deepin/Manjaro/elementary/Sabayon/Linspire
|
// Ubuntu/Debian/SUSE/Gentoo/Arch/Slackware/Fedora/Mandriva/CentOS/PCLinuxOS/RedHat/Zenwalk/Linpus/Raspbian/Plan9/Minix/RISCOS/Contiki/Deepin/Manjaro/elementary/Sabayon/Linspire
|
||||||
/(hurd|linux) ?([\w\.]*)/i, // Hurd/Linux
|
/(hurd|linux)(?: arm\w*| x86\w*| ?)([\w\.]*)/i, // Hurd/Linux
|
||||||
/(gnu) ?([\w\.]*)/i, // GNU
|
/(gnu) ?([\w\.]*)/i, // GNU
|
||||||
/\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i, // FreeBSD/NetBSD/OpenBSD/PC-BSD/GhostBSD/DragonFly
|
/\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i, // FreeBSD/NetBSD/OpenBSD/PC-BSD/GhostBSD/DragonFly
|
||||||
/(haiku) (\w+)/i // Haiku
|
/(haiku) (\w+)/i // Haiku
|
||||||
|
@ -1058,6 +1058,16 @@
|
|||||||
"major" : "91"
|
"major" : "91"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Ladybird",
|
||||||
|
"ua" : "Mozilla/5.0 (Linux; x86_64) Ladybird/1.0",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Ladybird",
|
||||||
|
"version" : "1.0",
|
||||||
|
"major" : "1"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"desc" : "LibreWolf",
|
"desc" : "LibreWolf",
|
||||||
"ua" : "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0 LibreWolf/97.0.1",
|
"ua" : "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0 LibreWolf/97.0.1",
|
||||||
@ -2436,6 +2446,26 @@
|
|||||||
"major" : "10"
|
"major" : "10"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Daum App Android",
|
||||||
|
"ua" : "Mozilla/5.0 (Linux; Android 11; SM-G970N Build/RP1A.200720.012; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/83.0.4103.106 Mobile Safari/537.36 DaumApps/7.5.0 DaumDevice/mobile",
|
||||||
|
"expect" : {
|
||||||
|
"name" : "Daum",
|
||||||
|
"version": "7.5.0",
|
||||||
|
"major" : "7",
|
||||||
|
"type" : "inapp"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Daum App iOS",
|
||||||
|
"ua" : "Mozilla/5.0 (iPhone; CPU iPhone OS 18_1_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Safari/605.1.15 Mobile/15E148 DaumApps/7.5.1 DaumDevice/mobile",
|
||||||
|
"expect" : {
|
||||||
|
"name" : "Daum",
|
||||||
|
"version": "7.5.1",
|
||||||
|
"major" : "7",
|
||||||
|
"type" : "inapp"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"desc" : "TikTok",
|
"desc" : "TikTok",
|
||||||
"ua" : "Mozilla/5.0 (Linux; Android 11; 21061119AG Build/RP1A.200720.011; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/92.0.4515.131 Mobile Safari/537.36 trill_2022109040 JsSdk/1.0 NetType/MOBILE Channel/googleplay AppName/musical_ly app_version/21.9.4 ByteLocale/ru-RU ByteFullLocale/ru-RU Region/KG BytedanceWebview/d8a21c6",
|
"ua" : "Mozilla/5.0 (Linux; Android 11; 21061119AG Build/RP1A.200720.011; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/92.0.4515.131 Mobile Safari/537.36 trill_2022109040 JsSdk/1.0 NetType/MOBILE Channel/googleplay AppName/musical_ly app_version/21.9.4 ByteLocale/ru-RU ByteFullLocale/ru-RU Region/KG BytedanceWebview/d8a21c6",
|
||||||
|
@ -7,6 +7,14 @@
|
|||||||
"architecture" : "ia32"
|
"architecture" : "ia32"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"desc" : "i686",
|
||||||
|
"ua" : "Mozilla/5.0 (X11; U; CrOS i686 9.10.0; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.0.253.0 Safari/532.5",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"architecture" : "ia32"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"desc" : "i386",
|
"desc" : "i386",
|
||||||
"ua" : "Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.7) Gecko/20040628 Epiphany/1.2.6",
|
"ua" : "Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.7) Gecko/20040628 Epiphany/1.2.6",
|
||||||
@ -167,6 +175,22 @@
|
|||||||
"architecture" : "arm64"
|
"architecture" : "arm64"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Google Search App",
|
||||||
|
"ua" : "Mozilla/5.0 (Linux; Android 9; JAT-LX1 Build/HONORJAT-LX1; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/83.0.4103.96 Mobile Safari/537.36 GoogleApp/11.11.10.21.arm",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"architecture" : "arm"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Google Search App",
|
||||||
|
"ua" : "Mozilla/5.0 (Linux; Android 6.0; M5s Build/MRA58K; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/44.0.2403.147 Mobile Safari/537.36 GSA/12.40.17.23.arm64",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"architecture" : "arm64"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"desc" : "Pocket PC",
|
"desc" : "Pocket PC",
|
||||||
"ua" : "Opera/9.7 (Windows Mobile; PPC; Opera Mobi/35166; U; en) Presto/2.2.1",
|
"ua" : "Opera/9.7 (Windows Mobile; PPC; Opera Mobi/35166; U; en) Presto/2.2.1",
|
||||||
@ -246,5 +270,21 @@
|
|||||||
{
|
{
|
||||||
"architecture" : "irix64"
|
"architecture" : "irix64"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "68k",
|
||||||
|
"ua" : "'Mozilla/1.1 (Macintosh; U; 68K)'",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"architecture" : "68k"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "x86",
|
||||||
|
"ua" : "Mozilla/5.0 (Photon; U; QNX x86pc; en-US; rv:1.8.1.20) Gecko/20090127 BonEcho/2.0.0.20",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"architecture" : "ia32"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -62,6 +62,15 @@
|
|||||||
"version" : "4.5.4"
|
"version" : "4.5.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"desc" : "LibWeb",
|
||||||
|
"ua" : "Mozilla/5.0 (Linux; x86_64) Ladybird/1.0",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "LibWeb",
|
||||||
|
"version" : "undefined"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"desc" : "LibWeb",
|
"desc" : "LibWeb",
|
||||||
"ua" : "Mozilla/4.0 (SerenityOS; x86) LibWeb+LibJS (Not KHTML, nor Gecko) LibWeb",
|
"ua" : "Mozilla/4.0 (SerenityOS; x86) LibWeb+LibJS (Not KHTML, nor Gecko) LibWeb",
|
||||||
|
@ -80,6 +80,15 @@
|
|||||||
"version" : "10"
|
"version" : "10"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Windows IoT",
|
||||||
|
"ua" : "Mozilla/5.0 (Windows IoT 10.0; Android 6.0.1; WebView/3.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Mobile Safari/537.36 Edge/18.17763",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Windows IoT",
|
||||||
|
"version" : "10.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"desc" : "WeChat Desktop for Windows Built-in Browser",
|
"desc" : "WeChat Desktop for Windows Built-in Browser",
|
||||||
"ua" : "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 MicroMessenger/6.5.2.501 NetType/WIFI WindowsWechat QBCore/3.43.901.400 QQBrowser/9.0.2524.400",
|
"ua" : "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 MicroMessenger/6.5.2.501 NetType/WIFI WindowsWechat QBCore/3.43.901.400 QQBrowser/9.0.2524.400",
|
||||||
@ -233,6 +242,15 @@
|
|||||||
"version" : "2.2.2"
|
"version" : "2.2.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"desc" : "MIUI",
|
||||||
|
"ua" : "Dalvik/2.1.0 (Linux; U; Android 9; Mi MIX 3 5G MIUI/V10.3.2.0.PEMEUVF)",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Android",
|
||||||
|
"version" : "9"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"desc" : "HarmonyOS",
|
"desc" : "HarmonyOS",
|
||||||
"ua" : "Mozilla/5.0 (Linux; Android 10; HarmonyOS; YAL-AL10; HMSCore 6.3.0.327; GMSCore 21.48.15) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.105 HuaweiBrowser/12.0.3.310 Mobile Safari/537.36",
|
"ua" : "Mozilla/5.0 (Linux; Android 10; HarmonyOS; YAL-AL10; HMSCore 6.3.0.327; GMSCore 21.48.15) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.105 HuaweiBrowser/12.0.3.310 Mobile Safari/537.36",
|
||||||
@ -320,7 +338,7 @@
|
|||||||
"expect" :
|
"expect" :
|
||||||
{
|
{
|
||||||
"name" : "QNX",
|
"name" : "QNX",
|
||||||
"version" : "x86pc"
|
"version" : "undefined"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -350,6 +368,24 @@
|
|||||||
"version" : "undefined"
|
"version" : "undefined"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Nokia N900 Linux mobile, on the Maemo browser",
|
||||||
|
"ua" : "Mozilla/5.0(X11; U; Linux armv7l; fr-FR; rv:1.9.2a1pre) Gecko/20091127 Firefox/3.5 Maemo Browser 1.5.6 RX-51 N900",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Maemo",
|
||||||
|
"version" : "undefined"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Nokia N900 Linux mobile, on the Maemo browser",
|
||||||
|
"ua" : "Mozilla/5.0 (Linux; Maemo 5.0; Nokia N900; Build/4.0.0.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0 Mobile Safari/537.36",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Maemo",
|
||||||
|
"version" : "5.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"desc" : "MeeGo",
|
"desc" : "MeeGo",
|
||||||
"ua" : "Mozilla/5.0 (MeeGo; NokiaN9) AppleWebKit/534.13 (KHTML, like Gecko) NokiaBrowser/8.5.0 Mobile Safari/534.13",
|
"ua" : "Mozilla/5.0 (MeeGo; NokiaN9) AppleWebKit/534.13 (KHTML, like Gecko) NokiaBrowser/8.5.0 Mobile Safari/534.13",
|
||||||
@ -360,7 +396,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"desc" : "Symbian",
|
"desc" : "Nokia 5250",
|
||||||
"ua" : "Nokia5250/10.0.011 (SymbianOS/9.4; U; Series60/5.0 Mozilla/5.0; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/525 (KHTML, like Gecko) Safari/525 3gpp-gba",
|
"ua" : "Nokia5250/10.0.011 (SymbianOS/9.4; U; Series60/5.0 Mozilla/5.0; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/525 (KHTML, like Gecko) Safari/525 3gpp-gba",
|
||||||
"expect" :
|
"expect" :
|
||||||
{
|
{
|
||||||
@ -369,12 +405,57 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"desc" : "Symbian",
|
"desc" : "Nokia N79",
|
||||||
|
"ua" : "Mozilla/5.0 (SymbianOS/9.3; U; Series60/3.2 NokiaN79-1/32.001; Profile/MIDP-2.1 Configuration/CLDC-1",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Symbian",
|
||||||
|
"version" : "9.3"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Nokia E71",
|
||||||
|
"ua" : "Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 NokiaE71-1/110.07.127; Profile/MIDP-2.0 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Symbian",
|
||||||
|
"version" : "9.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Opera Mini on S60",
|
||||||
|
"ua" : "Opera/9.80 (Series 60; Opera Mini/7.1.32444/191.361; U; de) Presto/2.12.423 Version/12.16",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Symbian",
|
||||||
|
"version" : "undefined"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "NokiaBrowser on Nokia C7",
|
||||||
"ua" : "Mozilla/5.0 (Symbian/3; Series60/5.2 NokiaC7-00/024.001; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/533.4 (KHTML, like Gecko) NokiaBrowser/7.3.1.37 Mobile Safari/533.4 3gpp-gba",
|
"ua" : "Mozilla/5.0 (Symbian/3; Series60/5.2 NokiaC7-00/024.001; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/533.4 (KHTML, like Gecko) NokiaBrowser/7.3.1.37 Mobile Safari/533.4 3gpp-gba",
|
||||||
"expect" :
|
"expect" :
|
||||||
{
|
{
|
||||||
"name" : "Symbian",
|
"name" : "Symbian",
|
||||||
"version" : "5.2"
|
"version" : "3"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Nokia 808 PureView",
|
||||||
|
"ua" : "Mozilla/5.0 (Symbian/3; Series60/5.5 Nokia808PureView/113.010.1508; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/535.1 (KHTML, like Gecko) NokiaBrowser/8.3.2.21 Mobile Safari/535.1 3gpp-gba",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Symbian",
|
||||||
|
"version" : "3"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Nokia 808 PureView",
|
||||||
|
"ua" : "Mozilla/5.0 (Symbian; U; Nokia808 PureView; en-GB) AppleWebKit/534.3 (KHTML, like Gecko) Version/3.0 Mobile/1A543a Mobile Safari/534.3",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Symbian",
|
||||||
|
"version" : "undefined"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -521,6 +602,15 @@
|
|||||||
"version" : "undefined"
|
"version" : "undefined"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Ubuntu Touch",
|
||||||
|
"ua" : "Mozilla/5.0 (Linux; Ubuntu 16.04 like Android 4.4) AppleWebKit/537.36 Chromium/65.0.3325.151 Mobile Safari/537.36",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Ubuntu Touch",
|
||||||
|
"version" : "16.04"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"desc" : "Kubuntu",
|
"desc" : "Kubuntu",
|
||||||
"ua" : "Mozilla/5.0 (compatible; Konqueror/4.4; Linux 2.6.32-22-generic; X11; en_US) KHTML/4.4.3 (like Gecko) Kubuntu",
|
"ua" : "Mozilla/5.0 (compatible; Konqueror/4.4; Linux 2.6.32-22-generic; X11; en_US) KHTML/4.4.3 (like Gecko) Kubuntu",
|
||||||
@ -800,6 +890,15 @@
|
|||||||
"version" : "16.4.1"
|
"version" : "16.4.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"desc": "Apple HomePod",
|
||||||
|
"ua": "AppleCoreMedia/1.0.0.15D61 (HomePod; U; CPU OS 11_2_5 like Mac OS X; en_us)",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "iOS",
|
||||||
|
"version" : "11.2.5"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"desc" : "watchOS",
|
"desc" : "watchOS",
|
||||||
"ua" : "server-bag [Watch OS,8.4,19S546,Watch3,4]",
|
"ua" : "server-bag [Watch OS,8.4,19S546,Watch3,4]",
|
||||||
@ -1103,7 +1202,7 @@
|
|||||||
"expect" :
|
"expect" :
|
||||||
{
|
{
|
||||||
"name" : "Linux",
|
"name" : "Linux",
|
||||||
"version" : "x86_64"
|
"version" : "undefined"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user