mirror of
https://github.com/faisalman/ua-parser-js.git
synced 2025-10-01 09:47:43 +03:00
Added support for honor separated from Huawei
This commit is contained in:
2
dist/ua-parser.min.js
vendored
2
dist/ua-parser.min.js
vendored
File diff suppressed because one or more lines are too long
2
dist/ua-parser.pack.js
vendored
2
dist/ua-parser.pack.js
vendored
File diff suppressed because one or more lines are too long
@@ -52,6 +52,7 @@ const DeviceVendor = Object.freeze({
|
|||||||
APPLE : 'Apple',
|
APPLE : 'Apple',
|
||||||
SAMSUNG : 'Samsung',
|
SAMSUNG : 'Samsung',
|
||||||
HUAWEI : 'Huawei',
|
HUAWEI : 'Huawei',
|
||||||
|
HONOR : 'Honor',
|
||||||
XIAOMI : 'Xiaomi',
|
XIAOMI : 'Xiaomi',
|
||||||
OPPO : 'OPPO',
|
OPPO : 'OPPO',
|
||||||
VIVO : 'Vivo',
|
VIVO : 'Vivo',
|
||||||
|
@@ -56,6 +56,7 @@ const DeviceVendor = Object.freeze({
|
|||||||
APPLE : 'Apple',
|
APPLE : 'Apple',
|
||||||
SAMSUNG : 'Samsung',
|
SAMSUNG : 'Samsung',
|
||||||
HUAWEI : 'Huawei',
|
HUAWEI : 'Huawei',
|
||||||
|
HONOR : 'Honor',
|
||||||
XIAOMI : 'Xiaomi',
|
XIAOMI : 'Xiaomi',
|
||||||
OPPO : 'OPPO',
|
OPPO : 'OPPO',
|
||||||
VIVO : 'Vivo',
|
VIVO : 'Vivo',
|
||||||
|
@@ -28,109 +28,214 @@ const Apps = Object.freeze({
|
|||||||
const Bots = Object.freeze({
|
const Bots = Object.freeze({
|
||||||
browser : [
|
browser : [
|
||||||
// Googlebot / BingBot / MSNBot / FacebookBot
|
// Googlebot / BingBot / MSNBot / FacebookBot
|
||||||
[/((?:google|bing|msn|facebook)bot(?:\-[imagevdo]{5})?|bingpreview)\/([\w\.]+)/i], [NAME, VERSION, [TYPE, 'bot']],
|
[/((?:google|bing|msn|facebook)bot(?:[\-imagevdo]{0,6})|bingpreview)\/([\w\.]+)/i], [NAME, VERSION, [TYPE, 'bot']],
|
||||||
|
|
||||||
// Slackbot - https://api.slack.com/robots
|
// Slackbot - https://api.slack.com/robots
|
||||||
[/(slack(?:bot)?(?:-imgproxy|-linkexpanding)?) ([\w\.]+)/i], [NAME, VERSION, [TYPE, 'bot']]
|
[/(slack(?:bot)?(?:-imgproxy|-linkexpanding)?) ([\w\.]+)/i], [NAME, VERSION, [TYPE, 'bot']]
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const CLIs = Object.freeze({
|
||||||
|
browser : [
|
||||||
|
// wget / curl / lynx
|
||||||
|
[/(wget|curl|lynx)\/([\w\.]+)/i], [NAME, VERSION, [TYPE, 'cli']]
|
||||||
|
]
|
||||||
|
});
|
||||||
|
|
||||||
const ExtraDevices = Object.freeze({
|
const ExtraDevices = Object.freeze({
|
||||||
device : [
|
device : [[
|
||||||
[
|
/(nook)[\w ]+build\/(\w+)/i, // Nook
|
||||||
/(nook)[\w ]+build\/(\w+)/i, // Nook
|
/(dell) (strea[kpr\d ]*[\dko])/i, // Dell Streak
|
||||||
/(dell) (strea[kpr\d ]*[\dko])/i, // Dell Streak
|
/(le[- ]+pan)[- ]+(\w{1,9}) bui/i, // Le Pan Tablets
|
||||||
/(le[- ]+pan)[- ]+(\w{1,9}) bui/i, // Le Pan Tablets
|
/(trinity)[- ]*(t\d{3}) bui/i, // Trinity Tablets
|
||||||
/(trinity)[- ]*(t\d{3}) bui/i, // Trinity Tablets
|
/(gigaset)[- ]+(q\w{1,9}) bui/i, // Gigaset Tablets
|
||||||
/(gigaset)[- ]+(q\w{1,9}) bui/i, // Gigaset Tablets
|
/(vodafone) ([\w ]+)(?:\)| bui)/i // Vodafone
|
||||||
/(vodafone) ([\w ]+)(?:\)| bui)/i // Vodafone
|
], [VENDOR, MODEL, [TYPE, TABLET]], [
|
||||||
], [VENDOR, MODEL, [TYPE, TABLET]], [
|
|
||||||
|
|
||||||
/(u304aa)/i // AT&T
|
/(u304aa)/i // AT&T
|
||||||
], [MODEL, [VENDOR, 'AT&T'], [TYPE, MOBILE]], [
|
], [MODEL, [VENDOR, 'AT&T'], [TYPE, MOBILE]], [
|
||||||
|
|
||||||
/\bsie-(\w*)/i // Siemens
|
/\bsie-(\w*)/i // Siemens
|
||||||
], [MODEL, [VENDOR, 'Siemens'], [TYPE, MOBILE]], [
|
], [MODEL, [VENDOR, 'Siemens'], [TYPE, MOBILE]], [
|
||||||
|
|
||||||
/\b(rct\w+) b/i // RCA Tablets
|
/\b(rct\w+) b/i // RCA Tablets
|
||||||
], [MODEL, [VENDOR, 'RCA'], [TYPE, TABLET]], [
|
], [MODEL, [VENDOR, 'RCA'], [TYPE, TABLET]], [
|
||||||
|
|
||||||
/\b(venue[\d ]{2,7}) b/i // Dell Venue Tablets
|
/\b(venue[\d ]{2,7}) b/i // Dell Venue Tablets
|
||||||
], [MODEL, [VENDOR, 'Dell'], [TYPE, TABLET]], [
|
], [MODEL, [VENDOR, 'Dell'], [TYPE, TABLET]], [
|
||||||
|
|
||||||
/\b(q(?:mv|ta)\w+) b/i // Verizon Tablet
|
/\b(q(?:mv|ta)\w+) b/i // Verizon Tablet
|
||||||
], [MODEL, [VENDOR, 'Verizon'], [TYPE, TABLET]], [
|
], [MODEL, [VENDOR, 'Verizon'], [TYPE, TABLET]], [
|
||||||
|
|
||||||
/\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i // Barnes & Noble Tablet
|
/\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i // Barnes & Noble Tablet
|
||||||
], [MODEL, [VENDOR, 'Barnes & Noble'], [TYPE, TABLET]], [
|
], [MODEL, [VENDOR, 'Barnes & Noble'], [TYPE, TABLET]], [
|
||||||
|
|
||||||
/\b(tm\d{3}\w+) b/i
|
/\b(tm\d{3}\w+) b/i
|
||||||
], [MODEL, [VENDOR, 'NuVision'], [TYPE, TABLET]], [
|
], [MODEL, [VENDOR, 'NuVision'], [TYPE, TABLET]], [
|
||||||
|
|
||||||
/\b(k88) b/i // ZTE K Series Tablet
|
/\b(k88) b/i // ZTE K Series Tablet
|
||||||
], [MODEL, [VENDOR, 'ZTE'], [TYPE, TABLET]], [
|
], [MODEL, [VENDOR, 'ZTE'], [TYPE, TABLET]], [
|
||||||
|
|
||||||
/\b(nx\d{3}j) b/i // ZTE Nubia
|
/\b(nx\d{3}j) b/i // ZTE Nubia
|
||||||
], [MODEL, [VENDOR, 'ZTE'], [TYPE, MOBILE]], [
|
], [MODEL, [VENDOR, 'ZTE'], [TYPE, MOBILE]], [
|
||||||
|
|
||||||
/\b(gen\d{3}) b.+49h/i // Swiss GEN Mobile
|
/\b(gen\d{3}) b.+49h/i // Swiss GEN Mobile
|
||||||
], [MODEL, [VENDOR, 'Swiss'], [TYPE, MOBILE]], [
|
], [MODEL, [VENDOR, 'Swiss'], [TYPE, MOBILE]], [
|
||||||
|
|
||||||
/\b(zur\d{3}) b/i // Swiss ZUR Tablet
|
/\b(zur\d{3}) b/i // Swiss ZUR Tablet
|
||||||
], [MODEL, [VENDOR, 'Swiss'], [TYPE, TABLET]], [
|
], [MODEL, [VENDOR, 'Swiss'], [TYPE, TABLET]], [
|
||||||
|
|
||||||
/\b((zeki)?tb.*\b) b/i // Zeki Tablets
|
/\b((zeki)?tb.*\b) b/i // Zeki Tablets
|
||||||
], [MODEL, [VENDOR, 'Zeki'], [TYPE, TABLET]], [
|
], [MODEL, [VENDOR, 'Zeki'], [TYPE, TABLET]], [
|
||||||
|
|
||||||
/\b([yr]\d{2}) b/i,
|
/\b([yr]\d{2}) b/i,
|
||||||
/\b(?:dragon[- ]+touch |dt)(\w{5}) b/i // Dragon Touch Tablet
|
/\b(?:dragon[- ]+touch |dt)(\w{5}) b/i // Dragon Touch Tablet
|
||||||
], [MODEL, [VENDOR, 'Dragon Touch'], [TYPE, TABLET]], [
|
], [MODEL, [VENDOR, 'Dragon Touch'], [TYPE, TABLET]], [
|
||||||
|
|
||||||
/\b(ns-?\w{0,9}) b/i // Insignia Tablets
|
/\b(ns-?\w{0,9}) b/i // Insignia Tablets
|
||||||
], [MODEL, [VENDOR, 'Insignia'], [TYPE, TABLET]], [
|
], [MODEL, [VENDOR, 'Insignia'], [TYPE, TABLET]], [
|
||||||
|
|
||||||
/\b((nxa|next)-?\w{0,9}) b/i // NextBook Tablets
|
/\b((nxa|next)-?\w{0,9}) b/i // NextBook Tablets
|
||||||
], [MODEL, [VENDOR, 'NextBook'], [TYPE, TABLET]], [
|
], [MODEL, [VENDOR, 'NextBook'], [TYPE, TABLET]], [
|
||||||
|
|
||||||
/\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i // Voice Xtreme Phones
|
/\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i // Voice Xtreme Phones
|
||||||
], [[VENDOR, 'Voice'], MODEL, [TYPE, MOBILE]], [
|
], [[VENDOR, 'Voice'], MODEL, [TYPE, MOBILE]], [
|
||||||
|
|
||||||
/\b(lvtel\-)?(v1[12]) b/i // LvTel Phones
|
/\b(lvtel\-)?(v1[12]) b/i // LvTel Phones
|
||||||
], [[VENDOR, 'LvTel'], MODEL, [TYPE, MOBILE]], [
|
], [[VENDOR, 'LvTel'], MODEL, [TYPE, MOBILE]], [
|
||||||
|
|
||||||
/\b(ph-1) /i // Essential PH-1
|
/\b(ph-1) /i // Essential PH-1
|
||||||
], [MODEL, [VENDOR, 'Essential'], [TYPE, MOBILE]], [
|
], [MODEL, [VENDOR, 'Essential'], [TYPE, MOBILE]], [
|
||||||
|
|
||||||
/\b(v(100md|700na|7011|917g).*\b) b/i // Envizen Tablets
|
/\b(v(100md|700na|7011|917g).*\b) b/i // Envizen Tablets
|
||||||
], [MODEL, [VENDOR, 'Envizen'], [TYPE, TABLET]], [
|
], [MODEL, [VENDOR, 'Envizen'], [TYPE, TABLET]], [
|
||||||
|
|
||||||
/\b(trio[-\w\. ]+) b/i // MachSpeed Tablets
|
/\b(trio[-\w\. ]+) b/i // MachSpeed Tablets
|
||||||
], [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]]
|
||||||
]
|
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
|
|
||||||
const Emails = Object.freeze({
|
const Emails = Object.freeze({
|
||||||
browser : [
|
browser : [
|
||||||
// Microsoft Outlook / Thunderbird
|
// Microsoft Outlook / Thunderbird
|
||||||
[/(microsoft outlook|thunderbird)[\s\/]([\w\.]+)/i], [NAME, VERSION, [TYPE, 'email']]
|
[/(microsoft outlook|thunderbird)[\s\/]([\w\.]+)/i], [NAME, VERSION, [TYPE, 'email']]
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
|
|
||||||
const CLI = Object.freeze({
|
const MediaPlayers = Object.freeze({
|
||||||
browser : [
|
browser : [[
|
||||||
// wget / curl / lynx
|
|
||||||
[/(wget|curl|lynx)\/([\w\.]+)/i], [NAME, VERSION, [TYPE, 'cli']]
|
/(apple(?:coremedia|))\/([\w\._]+)/i, // Generic Apple CoreMedia
|
||||||
|
/(coremedia) v([\w\._]+)/i
|
||||||
|
], [NAME, VERSION], [
|
||||||
|
|
||||||
|
/(aqualung|lyssna|bsplayer)\/([\w\.-]+)/i // Aqualung/Lyssna/BSPlayer
|
||||||
|
], [NAME, VERSION], [
|
||||||
|
|
||||||
|
/(ares|ossproxy)\s([\w\.-]+)/i // Ares/OSSProxy
|
||||||
|
], [NAME, VERSION], [
|
||||||
|
|
||||||
|
/(audacious|audimusicstream|amarok|bass|core|dalvik|gnomemplayer|music on console|nsplayer|psp-internetradioplayer|videos)\/([\w\.-]+)/i,
|
||||||
|
// Audacious/AudiMusicStream/Amarok/BASS/OpenCORE/Dalvik/GnomeMplayer/MoC
|
||||||
|
// NSPlayer/PSP-InternetRadioPlayer/Videos
|
||||||
|
/(clementine|music player daemon)\s([\w\.-]+)/i, // Clementine/MPD
|
||||||
|
/(lg player|nexplayer)\s([\d\.]+)/i,
|
||||||
|
/player\/(nexplayer|lg player)\s([\w\.-]+)/i // NexPlayer/LG Player
|
||||||
|
], [NAME, VERSION], [
|
||||||
|
/(nexplayer)\s([\w\.-]+)/i // Nexplayer
|
||||||
|
], [NAME, VERSION], [
|
||||||
|
|
||||||
|
/(flrp)\/([\w\.-]+)/i // Flip Player
|
||||||
|
], [[NAME, 'Flip Player'], VERSION], [
|
||||||
|
|
||||||
|
/(fstream|nativehost|queryseekspider|ia-archiver|facebookexternalhit)/i
|
||||||
|
// FStream/NativeHost/QuerySeekSpider/IA Archiver/facebookexternalhit
|
||||||
|
], [NAME], [
|
||||||
|
|
||||||
|
/(gstreamer) souphttpsrc.+libsoup\/([\w\.-]+)/i
|
||||||
|
// Gstreamer
|
||||||
|
], [NAME, VERSION], [
|
||||||
|
|
||||||
|
/(htc streaming player)\s[\w_]+\s\/\s([\d\.]+)/i, // HTC Streaming Player
|
||||||
|
/(java|python-urllib|python-requests|wget|libcurl)\/([\w\.-_]+)/i,
|
||||||
|
// Java/urllib/requests/wget/cURL
|
||||||
|
/(lavf)([\d\.]+)/i // Lavf (FFMPEG)
|
||||||
|
], [NAME, VERSION], [
|
||||||
|
|
||||||
|
/(htc_one_s)\/([\d\.]+)/i, // HTC One S
|
||||||
|
], [[NAME, /_/g, ' '], VERSION], [
|
||||||
|
|
||||||
|
/(mplayer)(?:\s|\/)(?:(?:sherpya-){0,1}svn)(?:-|\s)(r\d+(?:-\d+[\w\.-]+))/i,
|
||||||
|
// MPlayer SVN
|
||||||
|
], [NAME, VERSION], [
|
||||||
|
|
||||||
|
/(mplayer)(?:\s|\/)([\w\.-]+)/i, // MPlayer
|
||||||
|
/(mplayer) unknown-([\w\.\-]+)/i // MPlayer UNKNOWN
|
||||||
|
], [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))\/([\w\.-]+)/i // Nero Home/Nero Scout
|
||||||
|
], [NAME, VERSION], [
|
||||||
|
|
||||||
|
/(nokia\d+)\/([\w\.-]+)/i // Nokia
|
||||||
|
], [NAME, VERSION], [
|
||||||
|
|
||||||
|
/\s(songbird)\/([\w\.-]+)/i // Songbird/Philips-Songbird
|
||||||
|
], [NAME, VERSION], [
|
||||||
|
|
||||||
|
/(winamp)3 version ([\w\.-]+)/i, // Winamp
|
||||||
|
/(winamp)\s([\w\.-]+)/i,
|
||||||
|
/(winamp)mpeg\/([\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)\/([\w\.-]+)/i
|
||||||
|
// QuickTime/RealMedia/RadioApp/RadioClientApplication/
|
||||||
|
// SoundTap/Totem/Stagefright/Streamium
|
||||||
|
], [NAME, VERSION], [
|
||||||
|
|
||||||
|
/(smp)([\d\.]+)/i // SMP
|
||||||
|
], [NAME, VERSION], [
|
||||||
|
|
||||||
|
/(vlc) media player - version ([\w\.]+)/i, // VLC Videolan
|
||||||
|
/(vlc)\/([\w\.-]+)/i,
|
||||||
|
/(xbmc|gvfs|xine|xmms|irapp)\/([\w\.-]+)/i, // XBMC/gvfs/Xine/XMMS/irapp
|
||||||
|
/(foobar2000)\/([\d\.]+)/i, // Foobar2000
|
||||||
|
/(itunes)\/([\d\.]+)/i // iTunes
|
||||||
|
], [NAME, VERSION], [
|
||||||
|
|
||||||
|
/(wmplayer)\/([\w\.-]+)/i, // Windows Media Player
|
||||||
|
/(windows-media-player)\/([\w\.-]+)/i
|
||||||
|
], [[NAME, /-/g, ' '], VERSION], [
|
||||||
|
|
||||||
|
/windows\/([\w\.-]+) upnp\/[\d\.]+ dlnadoc\/[\d\.]+ (home media server)/i,
|
||||||
|
// Windows Media Server
|
||||||
|
], [VERSION, [NAME, 'Windows']], [
|
||||||
|
|
||||||
|
/(com\.riseupradioalarm)\/([\d\.]*)/i // RiseUP Radio Alarm
|
||||||
|
], [NAME, VERSION], [
|
||||||
|
|
||||||
|
/(rad.io)\s([\d\.]+)/i, // Rad.io
|
||||||
|
/(radio.(?:de|at|fr))\s([\d\.]+)/i
|
||||||
|
], [[NAME, 'rad.io'], VERSION]
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
|
|
||||||
export {
|
export {
|
||||||
Apps,
|
Apps,
|
||||||
Bots,
|
Bots,
|
||||||
|
CLIs,
|
||||||
ExtraDevices,
|
ExtraDevices,
|
||||||
Emails,
|
Emails,
|
||||||
CLI
|
MediaPlayers
|
||||||
};
|
};
|
@@ -68,6 +68,7 @@
|
|||||||
BLACKBERRY = 'BlackBerry',
|
BLACKBERRY = 'BlackBerry',
|
||||||
GOOGLE = 'Google',
|
GOOGLE = 'Google',
|
||||||
HUAWEI = 'Huawei',
|
HUAWEI = 'Huawei',
|
||||||
|
HONOR = 'Honor',
|
||||||
LG = 'LG',
|
LG = 'LG',
|
||||||
MICROSOFT = 'Microsoft',
|
MICROSOFT = 'Microsoft',
|
||||||
MOTOROLA = 'Motorola',
|
MOTOROLA = 'Motorola',
|
||||||
@@ -467,10 +468,14 @@
|
|||||||
/\b(sh-?[altvz]?\d\d[a-ekm]?)/i
|
/\b(sh-?[altvz]?\d\d[a-ekm]?)/i
|
||||||
], [MODEL, [VENDOR, SHARP], [TYPE, MOBILE]], [
|
], [MODEL, [VENDOR, SHARP], [TYPE, MOBILE]], [
|
||||||
|
|
||||||
|
// Honor
|
||||||
|
/(?: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][23]?|bah2?|sht?|btv)-a?[lw]\d{2})\b(?!.+d\/s)/i
|
||||||
], [MODEL, [VENDOR, HUAWEI], [TYPE, TABLET]], [
|
], [MODEL, [VENDOR, HUAWEI], [TYPE, TABLET]], [
|
||||||
/(?:huawei|honor)([-\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]], [
|
||||||
|
|
||||||
|
@@ -70,6 +70,7 @@
|
|||||||
BLACKBERRY = 'BlackBerry',
|
BLACKBERRY = 'BlackBerry',
|
||||||
GOOGLE = 'Google',
|
GOOGLE = 'Google',
|
||||||
HUAWEI = 'Huawei',
|
HUAWEI = 'Huawei',
|
||||||
|
HONOR = 'Honor',
|
||||||
LG = 'LG',
|
LG = 'LG',
|
||||||
MICROSOFT = 'Microsoft',
|
MICROSOFT = 'Microsoft',
|
||||||
MOTOROLA = 'Motorola',
|
MOTOROLA = 'Motorola',
|
||||||
@@ -287,6 +288,7 @@
|
|||||||
// Mixed
|
// Mixed
|
||||||
/(kindle)\/([\w\.]+)/i, // Kindle
|
/(kindle)\/([\w\.]+)/i, // Kindle
|
||||||
/(lunascape|maxthon|netfront|jasmine|blazer)[\/ ]?([\w\.]*)/i, // Lunascape/Maxthon/Netfront/Jasmine/Blazer
|
/(lunascape|maxthon|netfront|jasmine|blazer)[\/ ]?([\w\.]*)/i, // Lunascape/Maxthon/Netfront/Jasmine/Blazer
|
||||||
|
/(webmaf)\/([a-z0-9\.-]+)/i, // Sony/Playstation WebMAF
|
||||||
// Trident based
|
// Trident based
|
||||||
/(avant |iemobile|slim)(?:browser)?[\/ ]?([\w\.]*)/i, // Avant/IEMobile/SlimBrowser
|
/(avant |iemobile|slim)(?:browser)?[\/ ]?([\w\.]*)/i, // Avant/IEMobile/SlimBrowser
|
||||||
/(ba?idubrowser)[\/ ]?([\w\.]+)/i, // Baidu Browser
|
/(ba?idubrowser)[\/ ]?([\w\.]+)/i, // Baidu Browser
|
||||||
@@ -468,10 +470,14 @@
|
|||||||
/\b(sh-?[altvz]?\d\d[a-ekm]?)/i
|
/\b(sh-?[altvz]?\d\d[a-ekm]?)/i
|
||||||
], [MODEL, [VENDOR, SHARP], [TYPE, MOBILE]], [
|
], [MODEL, [VENDOR, SHARP], [TYPE, MOBILE]], [
|
||||||
|
|
||||||
|
// Honor
|
||||||
|
/(?: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][23]?|bah2?|sht?|btv)-a?[lw]\d{2})\b(?!.+d\/s)/i
|
||||||
], [MODEL, [VENDOR, HUAWEI], [TYPE, TABLET]], [
|
], [MODEL, [VENDOR, HUAWEI], [TYPE, TABLET]], [
|
||||||
/(?:huawei|honor)([-\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]], [
|
||||||
|
|
||||||
@@ -629,7 +635,7 @@
|
|||||||
], [VENDOR, [MODEL, APPLE+' TV'], [TYPE, SMARTTV]], [
|
], [VENDOR, [MODEL, APPLE+' TV'], [TYPE, SMARTTV]], [
|
||||||
/crkey/i // Google Chromecast
|
/crkey/i // Google Chromecast
|
||||||
], [[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]], [
|
||||||
/\(dtv[\);].+(aquos)/i,
|
/\(dtv[\);].+(aquos)/i,
|
||||||
/(aquos-tv[\w ]+)\)/i // Sharp
|
/(aquos-tv[\w ]+)\)/i // Sharp
|
||||||
@@ -927,7 +933,6 @@
|
|||||||
setProps.call(this, [
|
setProps.call(this, [
|
||||||
[BRANDS, itemListToArray(uach[CH_HEADER])],
|
[BRANDS, itemListToArray(uach[CH_HEADER])],
|
||||||
[FULLVERLIST, itemListToArray(uach[CH_HEADER_FULL_VER_LIST])],
|
[FULLVERLIST, itemListToArray(uach[CH_HEADER_FULL_VER_LIST])],
|
||||||
[BRANDS, itemListToArray(uach[CH_HEADER])],
|
|
||||||
[MOBILE, /\?1/.test(uach[CH_HEADER_MOBILE])],
|
[MOBILE, /\?1/.test(uach[CH_HEADER_MOBILE])],
|
||||||
[MODEL, stripQuotes(uach[CH_HEADER_MODEL])],
|
[MODEL, stripQuotes(uach[CH_HEADER_MODEL])],
|
||||||
[PLATFORM, stripQuotes(uach[CH_HEADER_PLATFORM])],
|
[PLATFORM, stripQuotes(uach[CH_HEADER_PLATFORM])],
|
||||||
@@ -1149,7 +1154,8 @@
|
|||||||
['getResult', createItemFunc(UA_RESULT)],
|
['getResult', createItemFunc(UA_RESULT)],
|
||||||
['getUA', function () { return userAgent; }],
|
['getUA', function () { return userAgent; }],
|
||||||
['setUA', function (ua) {
|
['setUA', function (ua) {
|
||||||
userAgent = (typeof ua === STR_TYPE && ua.length > UA_MAX_LENGTH) ? trim(ua, UA_MAX_LENGTH) : ua;
|
if (typeof ua === STR_TYPE)
|
||||||
|
userAgent = ua.length > UA_MAX_LENGTH ? trim(ua, UA_MAX_LENGTH) : ua;
|
||||||
return this;
|
return this;
|
||||||
}]
|
}]
|
||||||
])
|
])
|
||||||
|
@@ -632,7 +632,7 @@
|
|||||||
"desc": "Huawei Honor 6A",
|
"desc": "Huawei Honor 6A",
|
||||||
"ua": "Mozilla/5.0 (Linux; Android 7.0; DLI-L22 Build/HONORDLI-L22; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/79.0.3945.116 Mobile Safari/537.36 [FB_IAB/FB4A;FBAV/252.0.0.22.355;]",
|
"ua": "Mozilla/5.0 (Linux; Android 7.0; DLI-L22 Build/HONORDLI-L22; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/79.0.3945.116 Mobile Safari/537.36 [FB_IAB/FB4A;FBAV/252.0.0.22.355;]",
|
||||||
"expect": {
|
"expect": {
|
||||||
"vendor": "Huawei",
|
"vendor": "Honor",
|
||||||
"model": "DLI-L22",
|
"model": "DLI-L22",
|
||||||
"type": "mobile"
|
"type": "mobile"
|
||||||
}
|
}
|
||||||
@@ -641,7 +641,7 @@
|
|||||||
"desc": "Huawei Honor 7",
|
"desc": "Huawei Honor 7",
|
||||||
"ua": "Mozilla/5.0 (Linux; Android 6.0; PLK-L01 Build/HONORPLK-L01; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/79.0.3945.116 Mobile Safari/537.36",
|
"ua": "Mozilla/5.0 (Linux; Android 6.0; PLK-L01 Build/HONORPLK-L01; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/79.0.3945.116 Mobile Safari/537.36",
|
||||||
"expect": {
|
"expect": {
|
||||||
"vendor": "Huawei",
|
"vendor": "Honor",
|
||||||
"model": "PLK-L01",
|
"model": "PLK-L01",
|
||||||
"type": "mobile"
|
"type": "mobile"
|
||||||
}
|
}
|
||||||
@@ -650,7 +650,7 @@
|
|||||||
"desc": "Huawei 10 Lite",
|
"desc": "Huawei 10 Lite",
|
||||||
"ua": "Mozilla/5.0 (Linux; Android 9; HRY-LX1 Build/HONORHRY-LX1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.91 Mobile Safari/537.36",
|
"ua": "Mozilla/5.0 (Linux; Android 9; HRY-LX1 Build/HONORHRY-LX1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.91 Mobile Safari/537.36",
|
||||||
"expect": {
|
"expect": {
|
||||||
"vendor": "Huawei",
|
"vendor": "Honor",
|
||||||
"model": "HRY-LX1",
|
"model": "HRY-LX1",
|
||||||
"type": "mobile"
|
"type": "mobile"
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user