Skip to content

Commit 894512c

Browse files
committed
Move some low-usage devices to extension as ExtraDevices
1 parent 4af26c7 commit 894512c

File tree

6 files changed

+444
-409
lines changed

6 files changed

+444
-409
lines changed

src/ua-parser-extension.js

Lines changed: 93 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,28 +5,117 @@
55
MIT License */
66
//////////////////////////////////////////////
77

8-
const UAParser = require("./ua-parser")
8+
const UAParser = require('ua-parser-js');
9+
const MODEL = 'model';
10+
const NAME = 'name';
11+
const TYPE = 'type';
12+
const VENDOR = 'vendor';
13+
const VERSION = 'version';
14+
const MOBILE = 'mobile';
15+
const TABLET = 'tablet';
916

1017
const Bots = Object.freeze({
1118
browser : [
12-
[/((?:google|bing|msn|facebook)bot(?:\-[imagevdo]{5})?|bingpreview)\/([\w\.]+)/i], [UAParser.BROWSER.NAME, UAParser.BROWSER.VERSION, ['type', 'bot']]
19+
// Googlebot / BingBot / MSNBot / FacebookBot
20+
[/((?:google|bing|msn|facebook)bot(?:\-[imagevdo]{5})?|bingpreview)\/([\w\.]+)/i], [NAME, VERSION, [TYPE, 'bot']]
21+
]
22+
});
23+
24+
const ExtraDevices = Object.freeze({
25+
device : [
26+
[
27+
/(nook)[\w ]+build\/(\w+)/i, // Nook
28+
/(dell) (strea[kpr\d ]*[\dko])/i, // Dell Streak
29+
/(le[- ]+pan)[- ]+(\w{1,9}) bui/i, // Le Pan Tablets
30+
/(trinity)[- ]*(t\d{3}) bui/i, // Trinity Tablets
31+
/(gigaset)[- ]+(q\w{1,9}) bui/i, // Gigaset Tablets
32+
/(vodafone) ([\w ]+)(?:\)| bui)/i // Vodafone
33+
], [VENDOR, MODEL, [TYPE, TABLET]], [
34+
35+
/(u304aa)/i // AT&T
36+
], [MODEL, [VENDOR, 'AT&T'], [TYPE, MOBILE]], [
37+
38+
/\bsie-(\w*)/i // Siemens
39+
], [MODEL, [VENDOR, 'Siemens'], [TYPE, MOBILE]], [
40+
41+
/\b(rct\w+) b/i // RCA Tablets
42+
], [MODEL, [VENDOR, 'RCA'], [TYPE, TABLET]], [
43+
44+
/\b(venue[\d ]{2,7}) b/i // Dell Venue Tablets
45+
], [MODEL, [VENDOR, 'Dell'], [TYPE, TABLET]], [
46+
47+
/\b(q(?:mv|ta)\w+) b/i // Verizon Tablet
48+
], [MODEL, [VENDOR, 'Verizon'], [TYPE, TABLET]], [
49+
50+
/\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i // Barnes & Noble Tablet
51+
], [MODEL, [VENDOR, 'Barnes & Noble'], [TYPE, TABLET]], [
52+
53+
/\b(tm\d{3}\w+) b/i
54+
], [MODEL, [VENDOR, 'NuVision'], [TYPE, TABLET]], [
55+
56+
/\b(k88) b/i // ZTE K Series Tablet
57+
], [MODEL, [VENDOR, 'ZTE'], [TYPE, TABLET]], [
58+
59+
/\b(nx\d{3}j) b/i // ZTE Nubia
60+
], [MODEL, [VENDOR, 'ZTE'], [TYPE, MOBILE]], [
61+
62+
/\b(gen\d{3}) b.+49h/i // Swiss GEN Mobile
63+
], [MODEL, [VENDOR, 'Swiss'], [TYPE, MOBILE]], [
64+
65+
/\b(zur\d{3}) b/i // Swiss ZUR Tablet
66+
], [MODEL, [VENDOR, 'Swiss'], [TYPE, TABLET]], [
67+
68+
/\b((zeki)?tb.*\b) b/i // Zeki Tablets
69+
], [MODEL, [VENDOR, 'Zeki'], [TYPE, TABLET]], [
70+
71+
/\b([yr]\d{2}) b/i,
72+
/\b(?:dragon[- ]+touch |dt)(\w{5}) b/i // Dragon Touch Tablet
73+
], [MODEL, [VENDOR, 'Dragon Touch'], [TYPE, TABLET]], [
74+
75+
/\b(ns-?\w{0,9}) b/i // Insignia Tablets
76+
], [MODEL, [VENDOR, 'Insignia'], [TYPE, TABLET]], [
77+
78+
/\b((nxa|next)-?\w{0,9}) b/i // NextBook Tablets
79+
], [MODEL, [VENDOR, 'NextBook'], [TYPE, TABLET]], [
80+
81+
/\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i // Voice Xtreme Phones
82+
], [[VENDOR, 'Voice'], MODEL, [TYPE, MOBILE]], [
83+
84+
/\b(lvtel\-)?(v1[12]) b/i // LvTel Phones
85+
], [[VENDOR, 'LvTel'], MODEL, [TYPE, MOBILE]], [
86+
87+
/\b(ph-1) /i // Essential PH-1
88+
], [MODEL, [VENDOR, 'Essential'], [TYPE, MOBILE]], [
89+
90+
/\b(v(100md|700na|7011|917g).*\b) b/i // Envizen Tablets
91+
], [MODEL, [VENDOR, 'Envizen'], [TYPE, TABLET]], [
92+
93+
/\b(trio[-\w\. ]+) b/i // MachSpeed Tablets
94+
], [MODEL, [VENDOR, 'MachSpeed'], [TYPE, TABLET]], [
95+
96+
/\btu_(1491) b/i // Rotor Tablets
97+
], [MODEL, [VENDOR, 'Rotor'], [TYPE, TABLET]
98+
]
1399
]
14100
});
15101

16102
const Emails = Object.freeze({
17103
browser : [
18-
[/(microsoft outlook|thunderbird)[\s\/]([\w\.]+)/i], [UAParser.BROWSER.NAME, UAParser.BROWSER.VERSION, ['type', 'email']]
104+
// Microsoft Outlook / Thunderbird
105+
[/(microsoft outlook|thunderbird)[\s\/]([\w\.]+)/i], [NAME, VERSION, [TYPE, 'email']]
19106
]
20107
});
21108

22109
const Tools = Object.freeze({
23110
browser : [
24-
[/(wget|curl|lynx)\/([\w\.]+)/i], [UAParser.BROWSER.NAME, UAParser.BROWSER.VERSION, ['type', 'tool']]
111+
// wget / curl / lynx
112+
[/(wget|curl|lynx)\/([\w\.]+)/i], [NAME, VERSION, [TYPE, 'tool']]
25113
]
26114
});
27115

28116
module.exports = {
29117
Bots,
118+
ExtraDevices,
30119
Emails,
31120
Tools
32121
}

src/ua-parser.js

Lines changed: 1 addition & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -71,10 +71,8 @@
7171
SAMSUNG = 'Samsung',
7272
SHARP = 'Sharp',
7373
SONY = 'Sony',
74-
SWISS = 'Swiss',
7574
XIAOMI = 'Xiaomi',
7675
ZEBRA = 'Zebra',
77-
ZTE = 'ZTE',
7876
PREFIX_MOBILE = 'Mobile ',
7977
SUFFIX_BROWSER = ' Browser',
8078
CHROME = 'Chrome',
@@ -266,10 +264,6 @@
266264
'8.1' : 'NT 6.3',
267265
'10' : ['NT 6.4', 'NT 10.0'],
268266
'RT' : 'ARM'
269-
},
270-
archEquivalenceMap = {
271-
'amd64' : ['x86-64', 'x64'],
272-
'ia32' : ['x86']
273267
};
274268

275269
//////////////
@@ -609,62 +603,13 @@
609603
/(kobo)\s(ereader|touch)/i, // Kobo
610604
/(archos) (gamepad2?)/i, // Archos
611605
/(hp).+(touchpad(?!.+tablet)|tablet)/i, // HP TouchPad
612-
/(kindle)\/([\w\.]+)/i, // Kindle
613-
/(nook)[\w ]+build\/(\w+)/i, // Nook
614-
/(dell) (strea[kpr\d ]*[\dko])/i, // Dell Streak
615-
/(le[- ]+pan)[- ]+(\w{1,9}) bui/i, // Le Pan Tablets
616-
/(trinity)[- ]*(t\d{3}) bui/i, // Trinity Tablets
617-
/(gigaset)[- ]+(q\w{1,9}) bui/i, // Gigaset Tablets
618-
/(vodafone) ([\w ]+)(?:\)| bui)/i // Vodafone
606+
/(kindle)\/([\w\.]+)/i // Kindle
619607
], [VENDOR, MODEL, [TYPE, TABLET]], [
620608

621609
/(surface duo)/i // Surface Duo
622610
], [MODEL, [VENDOR, MICROSOFT], [TYPE, TABLET]], [
623611
/droid [\d\.]+; (fp\du?)(?: b|\))/i // Fairphone
624612
], [MODEL, [VENDOR, 'Fairphone'], [TYPE, MOBILE]], [
625-
/(u304aa)/i // AT&T
626-
], [MODEL, [VENDOR, 'AT&T'], [TYPE, MOBILE]], [
627-
/\bsie-(\w*)/i // Siemens
628-
], [MODEL, [VENDOR, 'Siemens'], [TYPE, MOBILE]], [
629-
/\b(rct\w+) b/i // RCA Tablets
630-
], [MODEL, [VENDOR, 'RCA'], [TYPE, TABLET]], [
631-
/\b(venue[\d ]{2,7}) b/i // Dell Venue Tablets
632-
], [MODEL, [VENDOR, 'Dell'], [TYPE, TABLET]], [
633-
/\b(q(?:mv|ta)\w+) b/i // Verizon Tablet
634-
], [MODEL, [VENDOR, 'Verizon'], [TYPE, TABLET]], [
635-
/\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i // Barnes & Noble Tablet
636-
], [MODEL, [VENDOR, 'Barnes & Noble'], [TYPE, TABLET]], [
637-
/\b(tm\d{3}\w+) b/i
638-
], [MODEL, [VENDOR, 'NuVision'], [TYPE, TABLET]], [
639-
/\b(k88) b/i // ZTE K Series Tablet
640-
], [MODEL, [VENDOR, ZTE], [TYPE, TABLET]], [
641-
/\b(nx\d{3}j) b/i // ZTE Nubia
642-
], [MODEL, [VENDOR, ZTE], [TYPE, MOBILE]], [
643-
/\b(gen\d{3}) b.+49h/i // Swiss GEN Mobile
644-
], [MODEL, [VENDOR, SWISS], [TYPE, MOBILE]], [
645-
/\b(zur\d{3}) b/i // Swiss ZUR Tablet
646-
], [MODEL, [VENDOR, SWISS], [TYPE, TABLET]], [
647-
/\b((zeki)?tb.*\b) b/i // Zeki Tablets
648-
], [MODEL, [VENDOR, 'Zeki'], [TYPE, TABLET]], [
649-
/\b([yr]\d{2}) b/i,
650-
/\b(dragon[- ]+touch |dt)(\w{5}) b/i // Dragon Touch Tablet
651-
], [[VENDOR, 'Dragon Touch'], MODEL, [TYPE, TABLET]], [
652-
/\b(ns-?\w{0,9}) b/i // Insignia Tablets
653-
], [MODEL, [VENDOR, 'Insignia'], [TYPE, TABLET]], [
654-
/\b((nxa|next)-?\w{0,9}) b/i // NextBook Tablets
655-
], [MODEL, [VENDOR, 'NextBook'], [TYPE, TABLET]], [
656-
/\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i // Voice Xtreme Phones
657-
], [[VENDOR, 'Voice'], MODEL, [TYPE, MOBILE]], [
658-
/\b(lvtel\-)?(v1[12]) b/i // LvTel Phones
659-
], [[VENDOR, 'LvTel'], MODEL, [TYPE, MOBILE]], [
660-
/\b(ph-1) /i // Essential PH-1
661-
], [MODEL, [VENDOR, 'Essential'], [TYPE, MOBILE]], [
662-
/\b(v(100md|700na|7011|917g).*\b) b/i // Envizen Tablets
663-
], [MODEL, [VENDOR, 'Envizen'], [TYPE, TABLET]], [
664-
/\b(trio[-\w\. ]+) b/i // MachSpeed Tablets
665-
], [MODEL, [VENDOR, 'MachSpeed'], [TYPE, TABLET]], [
666-
/\btu_(1491) b/i // Rotor Tablets
667-
], [MODEL, [VENDOR, 'Rotor'], [TYPE, TABLET]], [
668613
/(shield[\w ]+) b/i // Nvidia Shield Tablets
669614
], [MODEL, [VENDOR, 'Nvidia'], [TYPE, TABLET]], [
670615
/(sprint) (\w+)/i // Sprint Phones

0 commit comments

Comments
 (0)