device_detector 0.4.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.travis.yml +11 -0
- data/README.md +39 -20
- data/Rakefile +30 -0
- data/device_detector.gemspec +2 -2
- data/lib/device_detector/device.rb +27 -13
- data/lib/device_detector/parser.rb +26 -15
- data/lib/device_detector/version.rb +1 -1
- data/regexes/bots.yml +4 -7
- data/regexes/browsers.yml +32 -0
- data/regexes/devices/cameras.yml +26 -0
- data/regexes/devices/car_browsers.yml +13 -0
- data/regexes/devices/consoles.yml +41 -0
- data/regexes/devices/mobiles.yml +479 -139
- data/regexes/devices/portable_media_players.yml +62 -0
- data/regexes/devices/televisions.yml +243 -0
- data/regexes/libraries.yml +4 -0
- data/regexes/mediaplayers.yml +13 -1
- data/regexes/mobile_apps.yml +21 -0
- data/regexes/oss.yml +89 -46
- data/regexes/pim.yml +1 -1
- data/spec/device_detector/device_spec.rb +79 -0
- metadata +11 -5
@@ -0,0 +1,62 @@
|
|
1
|
+
###############
|
2
|
+
# Device Detector - The Universal Device Detection library for parsing User Agents
|
3
|
+
#
|
4
|
+
# @link http://piwik.org
|
5
|
+
# @license http://www.gnu.org/licenses/lgpl.html LGPL v3 or later
|
6
|
+
###############
|
7
|
+
|
8
|
+
Apple:
|
9
|
+
regex: '(?:Apple-)?iPod'
|
10
|
+
device: 'portable media player'
|
11
|
+
models:
|
12
|
+
- regex: '(?:Apple-)?iPod1[C,]1'
|
13
|
+
model: 'iPod Touch 1G'
|
14
|
+
- regex: '(?:Apple-)?iPod2[C,]1'
|
15
|
+
model: 'iPod Touch 2G'
|
16
|
+
- regex: '(?:Apple-)?iPod3[C,]1'
|
17
|
+
model: 'iPod Touch 3'
|
18
|
+
- regex: '(?:Apple-)?iPod4[C,]1'
|
19
|
+
model: 'iPod Touch 4'
|
20
|
+
- regex: '(?:Apple-)?iPod5[C,]1'
|
21
|
+
model: 'iPod Touch 5'
|
22
|
+
- regex: '(?:Apple-)?iPod1[C,]1'
|
23
|
+
model: 'iPod Touch'
|
24
|
+
- regex: '(?:Apple-)?iPod1[C,]1'
|
25
|
+
model: 'iPod Touch'
|
26
|
+
- regex: '(?:Apple-)?iPod'
|
27
|
+
model: 'iPod Touch'
|
28
|
+
|
29
|
+
Cowon:
|
30
|
+
regex: 'COWON ([^;/]+) Build'
|
31
|
+
device: 'portable media player'
|
32
|
+
model: '$1'
|
33
|
+
|
34
|
+
Microsoft:
|
35
|
+
regex: 'Microsoft ZuneHD'
|
36
|
+
device: 'portable media player'
|
37
|
+
model: 'Zune HD'
|
38
|
+
|
39
|
+
Panasonic:
|
40
|
+
device: 'portable media player'
|
41
|
+
regex: '(SV-MV100)'
|
42
|
+
model: '$1'
|
43
|
+
|
44
|
+
Samsung:
|
45
|
+
regex: 'YP-(G[SIPB]?1|G[57]0|GB70D)'
|
46
|
+
device: 'portable media player'
|
47
|
+
models:
|
48
|
+
- regex: 'YP-G[B]?1'
|
49
|
+
model: 'Galaxy Player 4.0'
|
50
|
+
- regex: 'YP-G70'
|
51
|
+
model: 'Galaxy Player 5.0'
|
52
|
+
- regex: 'YP-GS1'
|
53
|
+
model: 'Galaxy Player 3.6'
|
54
|
+
- regex: 'YP-GI1'
|
55
|
+
model: 'Galaxy Player 4.2'
|
56
|
+
- regex: 'YP-GP1'
|
57
|
+
model: 'Galaxy Player 5.8 '
|
58
|
+
- regex: 'YP-G50'
|
59
|
+
model: 'Galaxy Player 50'
|
60
|
+
- regex: 'YP-GB70D'
|
61
|
+
model: 'Galaxy Player 70 Plus'
|
62
|
+
|
@@ -0,0 +1,243 @@
|
|
1
|
+
###############
|
2
|
+
# Device Detector - The Universal Device Detection library for parsing User Agents
|
3
|
+
#
|
4
|
+
# @link http://piwik.org
|
5
|
+
# @license http://www.gnu.org/licenses/lgpl.html LGPL v3 or later
|
6
|
+
#
|
7
|
+
# ATTENTION: This file may only include tv user agents that contain 'HbbTV/([1-9]{1}(\.[0-9]{1}){1,2})'
|
8
|
+
#
|
9
|
+
###############
|
10
|
+
|
11
|
+
# BangOlufsen
|
12
|
+
BangOlufsen:
|
13
|
+
regex: 'Bangolufsen'
|
14
|
+
device: 'tv'
|
15
|
+
model: 'BeoVision'
|
16
|
+
|
17
|
+
# CreNova
|
18
|
+
CreNova:
|
19
|
+
regex: 'CreNova'
|
20
|
+
device: 'tv'
|
21
|
+
model: 'CNV001'
|
22
|
+
|
23
|
+
# DMM
|
24
|
+
DMM:
|
25
|
+
regex: 'DMM'
|
26
|
+
device: 'tv'
|
27
|
+
model: 'Dreambox'
|
28
|
+
|
29
|
+
# Grundig
|
30
|
+
Grundig:
|
31
|
+
regex: '(OWB|Grundig|Arcelik)'
|
32
|
+
device: 'tv'
|
33
|
+
model: ''
|
34
|
+
|
35
|
+
# Humax
|
36
|
+
Humax:
|
37
|
+
regex: 'Humax'
|
38
|
+
device: 'tv'
|
39
|
+
models:
|
40
|
+
- regex: '(HD-FOX C|HD (FOX\+|NANO)|iCord (HD\+|MINI|Cable)|(CX|IR)HD-5100(C|S)|HM9503HD)'
|
41
|
+
model: '$1'
|
42
|
+
- regex: 'HMS1000S'
|
43
|
+
model: 'HMS-1000S'
|
44
|
+
|
45
|
+
# IKEA
|
46
|
+
Ikea:
|
47
|
+
regex: 'Ikea'
|
48
|
+
device: 'tv'
|
49
|
+
models:
|
50
|
+
- regex: '(LF1V[0-9]{3})'
|
51
|
+
model: '$1'
|
52
|
+
|
53
|
+
# Intek
|
54
|
+
Intek:
|
55
|
+
regex: 'Intek'
|
56
|
+
device: 'tv'
|
57
|
+
models:
|
58
|
+
- regex: '(Vantage|VT-100|VT-1)'
|
59
|
+
model: '$1'
|
60
|
+
|
61
|
+
# Inverto
|
62
|
+
Inverto:
|
63
|
+
regex: 'Inverto'
|
64
|
+
device: 'tv'
|
65
|
+
models:
|
66
|
+
- regex: '(Volksbox Web Edition|Volksbox Essential|Volksbox II|Volksbox)'
|
67
|
+
model: '$1'
|
68
|
+
|
69
|
+
# LG
|
70
|
+
LG:
|
71
|
+
regex: 'LGE'
|
72
|
+
device: 'tv'
|
73
|
+
models:
|
74
|
+
- regex: '(NetCast [0-9]{1}.[0-9]{1}|GLOBAL_PLAT3)'
|
75
|
+
model: '$1'
|
76
|
+
- regex: 'LGE_DLNA_SDK|NetCast'
|
77
|
+
model: 'NetCast'
|
78
|
+
|
79
|
+
# Loewe
|
80
|
+
Loewe:
|
81
|
+
regex: 'Loewe'
|
82
|
+
device: 'tv'
|
83
|
+
models:
|
84
|
+
- regex: '([A-Z]{2}[0-9]{3})'
|
85
|
+
model: '$1'
|
86
|
+
|
87
|
+
# MediaTek
|
88
|
+
MediaTek:
|
89
|
+
regex: 'MTK'
|
90
|
+
device: 'tv'
|
91
|
+
models:
|
92
|
+
- regex: '(MT[0-9]{4})'
|
93
|
+
model: '$1'
|
94
|
+
|
95
|
+
# Medion
|
96
|
+
Medion:
|
97
|
+
regex: 'Medion'
|
98
|
+
device: 'tv'
|
99
|
+
models:
|
100
|
+
- regex: '(MB[0-9]{2})'
|
101
|
+
model: '$1'
|
102
|
+
|
103
|
+
# Metz
|
104
|
+
Metz:
|
105
|
+
regex: 'Metz'
|
106
|
+
device: 'tv'
|
107
|
+
model: ''
|
108
|
+
|
109
|
+
# Panasonic
|
110
|
+
Panasonic:
|
111
|
+
regex: 'Panasonic'
|
112
|
+
device: 'tv'
|
113
|
+
models:
|
114
|
+
- regex: '(VIERA [0-9]{1,4})|(DIGA [A-Z]{1}[0-9]{4})'
|
115
|
+
model: '$1'
|
116
|
+
- regex: 'DIGA Webkit ([A-Z]{1}[0-9]{4})'
|
117
|
+
model: 'DIGA $1'
|
118
|
+
|
119
|
+
# PEAQ
|
120
|
+
PEAQ:
|
121
|
+
regex: 'PEAQ'
|
122
|
+
device: 'tv'
|
123
|
+
models:
|
124
|
+
- regex: '(LF1V[0-9]{3})'
|
125
|
+
model: '$1'
|
126
|
+
|
127
|
+
# Philips
|
128
|
+
Philips:
|
129
|
+
regex: 'Philips'
|
130
|
+
device: 'tv'
|
131
|
+
models:
|
132
|
+
- regex: '(NETTV/[0-9\.]{5})'
|
133
|
+
model: '$1'
|
134
|
+
|
135
|
+
# Samsung
|
136
|
+
Samsung:
|
137
|
+
regex: 'Samsung|Maple_2011'
|
138
|
+
device: 'tv'
|
139
|
+
models:
|
140
|
+
- regex: '(SmartTV2013|SmartTV2012)'
|
141
|
+
model: '$1'
|
142
|
+
- regex: 'Maple_2011'
|
143
|
+
model: 'SmartTV2011'
|
144
|
+
|
145
|
+
# Selevision
|
146
|
+
Selevision:
|
147
|
+
regex: 'Selevision'
|
148
|
+
device: 'tv'
|
149
|
+
models:
|
150
|
+
- regex: '(EMC1000i)'
|
151
|
+
model: '$1'
|
152
|
+
|
153
|
+
# Sharp
|
154
|
+
Sharp:
|
155
|
+
regex: 'Sharp'
|
156
|
+
device: 'tv'
|
157
|
+
models:
|
158
|
+
- regex: '(LE[0-9]{3}[A-Z]{0,3})'
|
159
|
+
model: '$1'
|
160
|
+
|
161
|
+
# Smart
|
162
|
+
Smart:
|
163
|
+
regex: 'Smart'
|
164
|
+
device: 'tv'
|
165
|
+
models:
|
166
|
+
- regex: '([A-Z]{2}[0-9]{2}|ZAPPIX)'
|
167
|
+
model: '$1'
|
168
|
+
|
169
|
+
# Sony
|
170
|
+
Sony:
|
171
|
+
regex: 'Sony'
|
172
|
+
device: 'tv'
|
173
|
+
models:
|
174
|
+
- regex: '(KDL[0-9]{2}[A-Z]{1,2}[0-9]{3})'
|
175
|
+
model: '$1'
|
176
|
+
|
177
|
+
# TechniSat
|
178
|
+
TechniSat:
|
179
|
+
regex: 'TechniSat'
|
180
|
+
device: 'tv'
|
181
|
+
models:
|
182
|
+
- regex: '((DigiCorder|MultyVision|Digit) (ISIO S|ISIO C|ISIO))'
|
183
|
+
model: '$1'
|
184
|
+
|
185
|
+
# TechnoTrend
|
186
|
+
TechnoTrend:
|
187
|
+
regex: 'TechnoTrend'
|
188
|
+
device: 'tv'
|
189
|
+
models:
|
190
|
+
- regex: '([A-Z]{1}-[0-9]{3})'
|
191
|
+
model: '$1'
|
192
|
+
|
193
|
+
# Telefunken
|
194
|
+
Telefunken:
|
195
|
+
regex: 'Telefunken'
|
196
|
+
device: 'tv'
|
197
|
+
models:
|
198
|
+
- regex: '(MB[0-9]{2})'
|
199
|
+
model: '$1'
|
200
|
+
# TCL
|
201
|
+
TCL:
|
202
|
+
regex: 'TCL'
|
203
|
+
device: 'tv'
|
204
|
+
models:
|
205
|
+
- regex: '(LF1V[0-9]{3})'
|
206
|
+
model: '$1'
|
207
|
+
|
208
|
+
# Thomson
|
209
|
+
Thomson:
|
210
|
+
regex: 'THOMSON|THOM'
|
211
|
+
device: 'tv'
|
212
|
+
models:
|
213
|
+
- regex: '(LF1V[0-9]{3})'
|
214
|
+
model: '$1'
|
215
|
+
|
216
|
+
# Toshiba
|
217
|
+
Toshiba:
|
218
|
+
regex: 'Toshiba'
|
219
|
+
device: 'tv'
|
220
|
+
models:
|
221
|
+
- regex: '(([0-9]{2}|DTV_)[A-Z]{2}[0-9]{1,3})'
|
222
|
+
model: '$1'
|
223
|
+
|
224
|
+
# Vestel
|
225
|
+
Vestel:
|
226
|
+
regex: 'Vestel'
|
227
|
+
device: 'tv'
|
228
|
+
models:
|
229
|
+
- regex: '(MB[0-9]{2})'
|
230
|
+
model: '$1'
|
231
|
+
|
232
|
+
# Videoweb
|
233
|
+
Videoweb:
|
234
|
+
regex: 'videoweb|compatible;'
|
235
|
+
device: 'tv'
|
236
|
+
models:
|
237
|
+
- regex: '(videowebtv)'
|
238
|
+
model: 'VideoWeb TV'
|
239
|
+
- regex: '(tv2n)'
|
240
|
+
model: '$1'
|
241
|
+
- regex: 'ANTGalio/3.0'
|
242
|
+
model: '600S'
|
243
|
+
|
data/regexes/libraries.yml
CHANGED
data/regexes/mediaplayers.yml
CHANGED
@@ -25,6 +25,10 @@
|
|
25
25
|
name: 'MediaMonkey'
|
26
26
|
version: '$1'
|
27
27
|
|
28
|
+
- regex: 'Miro(?:/(\d+[\.\d]+))?'
|
29
|
+
name: 'Miro'
|
30
|
+
version: '$1'
|
31
|
+
|
28
32
|
- regex: 'NexPlayer(?:/(\d+[\.\d]+))?'
|
29
33
|
name: 'NexPlayer'
|
30
34
|
version: '$1'
|
@@ -49,10 +53,18 @@
|
|
49
53
|
name: 'VLC'
|
50
54
|
version: '$1'
|
51
55
|
|
56
|
+
- regex: 'Winamp(?:MPEG)?(?:/(\d+[\.\d]+))?'
|
57
|
+
name: 'Winamp'
|
58
|
+
version: '$1'
|
59
|
+
|
52
60
|
- regex: 'Windows-Media-Player(?:/(\d+[\.\d]+))?'
|
53
61
|
name: 'Windows Media Player'
|
54
62
|
version: '$1'
|
55
63
|
|
56
64
|
- regex: 'XBMC(?:/([\d\.]+))?'
|
57
65
|
name: 'XBMC'
|
58
|
-
version: '$1'
|
66
|
+
version: '$1'
|
67
|
+
|
68
|
+
- regex: 'stagefright(?:/([\d\.]+))?'
|
69
|
+
name: 'Stagefright'
|
70
|
+
version: '$1'
|
data/regexes/mobile_apps.yml
CHANGED
@@ -5,7 +5,28 @@
|
|
5
5
|
# @license http://www.gnu.org/licenses/lgpl.html LGPL v3 or later
|
6
6
|
###############
|
7
7
|
|
8
|
+
# AndroidDownloadManager
|
9
|
+
- regex: 'AndroidDownloadManager(?:[ /]([\d\.]+))?'
|
10
|
+
name: 'AndroidDownloadManager'
|
11
|
+
version: '$1'
|
12
|
+
|
8
13
|
# AFNetworking generic
|
9
14
|
- regex: '([^/]+)/(\d+(?:\.\d+)+) \((?:iPhone|iPad); iOS [0-9\.]+; Scale/[0-9\.]+\)'
|
10
15
|
name: '$1'
|
11
16
|
version: '$2'
|
17
|
+
|
18
|
+
# FeedR
|
19
|
+
- regex: 'FeedR(?:/([\d\.]+))?'
|
20
|
+
name: 'FeedR'
|
21
|
+
version: '$1'
|
22
|
+
|
23
|
+
# WeChat
|
24
|
+
- regex: 'MicroMessenger/([^ ]+)'
|
25
|
+
name: 'WeChat'
|
26
|
+
version: '$1'
|
27
|
+
|
28
|
+
# Sina Weibo
|
29
|
+
- regex: '.*__weibo__([0-9\.]+)__'
|
30
|
+
name: 'Sina Weibo'
|
31
|
+
version: '$1'
|
32
|
+
|
data/regexes/oss.yml
CHANGED
@@ -12,6 +12,8 @@
|
|
12
12
|
name: 'Tizen'
|
13
13
|
version: ''
|
14
14
|
|
15
|
+
|
16
|
+
|
15
17
|
##########
|
16
18
|
## Sailfish OS
|
17
19
|
###########
|
@@ -26,6 +28,56 @@
|
|
26
28
|
name: 'YunOS'
|
27
29
|
version: '$1'
|
28
30
|
|
31
|
+
##########
|
32
|
+
# Windows Mobile
|
33
|
+
##########
|
34
|
+
- regex: 'Windows Phone (?:OS)?[ ]?(\d+[\.\d]+)'
|
35
|
+
name: 'Windows Phone'
|
36
|
+
version: '$1'
|
37
|
+
|
38
|
+
|
39
|
+
- regex: 'XBLWP7|Windows Phone'
|
40
|
+
name: 'Windows Phone'
|
41
|
+
version: ''
|
42
|
+
|
43
|
+
- regex: 'Windows CE'
|
44
|
+
name: 'Windows CE'
|
45
|
+
version: ''
|
46
|
+
|
47
|
+
|
48
|
+
- regex: '(?:IEMobile|Windows Mobile)(?: (\d+[\.\d]+))?'
|
49
|
+
name: 'Windows Mobile'
|
50
|
+
version: '$1'
|
51
|
+
|
52
|
+
|
53
|
+
- regex: 'Windows NT 6.2; ARM;'
|
54
|
+
name: 'Windows RT'
|
55
|
+
version: ''
|
56
|
+
|
57
|
+
- regex: 'Windows NT 6.3; ARM;'
|
58
|
+
name: 'Windows RT'
|
59
|
+
version: '8.1'
|
60
|
+
|
61
|
+
|
62
|
+
##########
|
63
|
+
# Custom Android Roms
|
64
|
+
##########
|
65
|
+
- regex: 'RazoDroiD(?: v(\d+[\.\d]*))?'
|
66
|
+
name: 'RazoDroiD'
|
67
|
+
version: '$1'
|
68
|
+
|
69
|
+
- regex: 'MildWild(?: CM-(\d+[\.\d]*))?'
|
70
|
+
name: 'MildWild'
|
71
|
+
version: '$1'
|
72
|
+
|
73
|
+
- regex: 'CyanogenMod(?:[\-/](?:CM)?(\d+[\.\d]*))?'
|
74
|
+
name: 'CyanogenMod'
|
75
|
+
version: '$1'
|
76
|
+
|
77
|
+
- regex: '(?:.*_)?MocorDroid(?:(\d+[\.\d]*))?'
|
78
|
+
name: 'MocorDroid'
|
79
|
+
version: '$1'
|
80
|
+
|
29
81
|
##########
|
30
82
|
# Android
|
31
83
|
##########
|
@@ -72,37 +124,6 @@
|
|
72
124
|
|
73
125
|
# generic linux match -> end of file
|
74
126
|
|
75
|
-
##########
|
76
|
-
# Windows Mobile
|
77
|
-
##########
|
78
|
-
- regex: 'Windows Phone (?:OS)?[ ]?(\d+[\.\d]+)'
|
79
|
-
name: 'Windows Phone'
|
80
|
-
version: '$1'
|
81
|
-
|
82
|
-
|
83
|
-
- regex: 'XBLWP7|Windows Phone'
|
84
|
-
name: 'Windows Phone'
|
85
|
-
version: ''
|
86
|
-
|
87
|
-
- regex: 'Windows CE'
|
88
|
-
name: 'Windows CE'
|
89
|
-
version: ''
|
90
|
-
|
91
|
-
|
92
|
-
- regex: '(?:IEMobile|Windows Mobile)(?: (\d+[\.\d]+))?'
|
93
|
-
name: 'Windows Mobile'
|
94
|
-
version: '$1'
|
95
|
-
|
96
|
-
|
97
|
-
- regex: 'Windows NT 6.2; ARM;'
|
98
|
-
name: 'Windows RT'
|
99
|
-
version: ''
|
100
|
-
|
101
|
-
- regex: 'Windows NT 6.3; ARM;'
|
102
|
-
name: 'Windows RT 8.1'
|
103
|
-
version: ''
|
104
|
-
|
105
|
-
|
106
127
|
##########
|
107
128
|
# webOS
|
108
129
|
##########
|
@@ -124,70 +145,70 @@
|
|
124
145
|
# Windows
|
125
146
|
##########
|
126
147
|
- regex: 'CYGWIN_NT-10.0|Windows NT 10.0|Windows 10'
|
127
|
-
name: 'Windows
|
148
|
+
name: 'Windows'
|
128
149
|
version: '10'
|
129
150
|
|
130
151
|
- regex: 'CYGWIN_NT-6.4|Windows NT 6.4|Windows 10'
|
131
|
-
name: 'Windows
|
152
|
+
name: 'Windows'
|
132
153
|
version: '10'
|
133
154
|
|
134
155
|
- regex: 'CYGWIN_NT-6.3|Windows NT 6.3|Windows 8.1'
|
135
|
-
name: 'Windows
|
156
|
+
name: 'Windows'
|
136
157
|
version: '8.1'
|
137
158
|
|
138
159
|
|
139
160
|
- regex: 'CYGWIN_NT-6.2|Windows NT 6.2|Windows 8'
|
140
|
-
name: 'Windows
|
161
|
+
name: 'Windows'
|
141
162
|
version: '8'
|
142
163
|
|
143
164
|
|
144
165
|
- regex: 'CYGWIN_NT-6.1|Windows NT 6.1|Windows 7'
|
145
|
-
name: 'Windows
|
166
|
+
name: 'Windows'
|
146
167
|
version: '7'
|
147
168
|
|
148
169
|
|
149
170
|
- regex: 'CYGWIN_NT-6.0|Windows NT 6.0|Windows Vista'
|
150
|
-
name: 'Windows
|
171
|
+
name: 'Windows'
|
151
172
|
version: 'Vista'
|
152
173
|
|
153
174
|
|
154
175
|
- regex: 'CYGWIN_NT-5.2|Windows NT 5.2|Windows Server 2003 / XP x64'
|
155
|
-
name: 'Windows
|
176
|
+
name: 'Windows'
|
156
177
|
version: 'Server 2003'
|
157
178
|
|
158
179
|
|
159
180
|
- regex: 'CYGWIN_NT-5.1|Windows NT 5.1|Windows XP'
|
160
|
-
name: 'Windows
|
181
|
+
name: 'Windows'
|
161
182
|
version: 'XP'
|
162
183
|
|
163
184
|
|
164
185
|
- regex: 'CYGWIN_NT-5.0|Windows NT 5.0|Windows 2000'
|
165
|
-
name: 'Windows
|
186
|
+
name: 'Windows'
|
166
187
|
version: '2000'
|
167
188
|
|
168
189
|
|
169
190
|
- regex: 'CYGWIN_NT-4.0|Windows NT 4.0|WinNT|Windows NT'
|
170
|
-
name: 'Windows
|
191
|
+
name: 'Windows'
|
171
192
|
version: 'NT'
|
172
193
|
|
173
194
|
|
174
195
|
- regex: 'CYGWIN_ME-4.90|Win 9x 4.90|Windows ME'
|
175
|
-
name: 'Windows
|
196
|
+
name: 'Windows'
|
176
197
|
version: 'ME'
|
177
198
|
|
178
199
|
|
179
200
|
- regex: 'CYGWIN_98-4.10|Win98|Windows 98'
|
180
|
-
name: 'Windows
|
201
|
+
name: 'Windows'
|
181
202
|
version: '98'
|
182
203
|
|
183
204
|
|
184
205
|
- regex: 'CYGWIN_95-4.0|Win32|Win95|Windows 95|Windows_95'
|
185
|
-
name: 'Windows
|
206
|
+
name: 'Windows'
|
186
207
|
version: '95'
|
187
208
|
|
188
209
|
|
189
210
|
- regex: 'Windows 3.1'
|
190
|
-
name: 'Windows
|
211
|
+
name: 'Windows'
|
191
212
|
version: '3.1'
|
192
213
|
|
193
214
|
|
@@ -204,7 +225,7 @@
|
|
204
225
|
name: 'iOS'
|
205
226
|
version: '$1'
|
206
227
|
|
207
|
-
- regex: '(?:iPhone|iPad|iPod)(?:.*Mac OS X.*Version/(\d+\.\d+)|; Opera)?'
|
228
|
+
- regex: '(?:Apple-)?(?:iPhone|iPad|iPod)(?:.*Mac OS X.*Version/(\d+\.\d+)|; Opera)?'
|
208
229
|
name: 'iOS'
|
209
230
|
version: '$1'
|
210
231
|
|
@@ -402,42 +423,53 @@
|
|
402
423
|
name: 'Solaris'
|
403
424
|
version: '$1'
|
404
425
|
|
426
|
+
|
405
427
|
- regex: 'AIX(?:[/ ]?(\d+[\.\d]+))?'
|
406
428
|
name: 'AIX'
|
407
429
|
version: '$1'
|
408
430
|
|
431
|
+
|
409
432
|
- regex: 'HP-UX(?:[/ ]?(\d+[\.\d]+))?'
|
410
433
|
name: 'HP-UX'
|
411
434
|
version: '$1'
|
412
435
|
|
436
|
+
|
413
437
|
- regex: 'FreeBSD(?:[/ ]?(\d+[\.\d]+))?'
|
414
438
|
name: 'FreeBSD'
|
415
439
|
version: '$1'
|
416
440
|
|
441
|
+
|
417
442
|
- regex: 'NetBSD(?:[/ ]?(\d+[\.\d]+))?'
|
418
443
|
name: 'NetBSD'
|
419
444
|
version: '$1'
|
420
445
|
|
446
|
+
|
421
447
|
- regex: 'OpenBSD(?:[/ ]?(\d+[\.\d]+))?'
|
422
448
|
name: 'OpenBSD'
|
423
449
|
version: '$1'
|
424
450
|
|
451
|
+
|
425
452
|
- regex: 'DragonFly(?:[/ ]?(\d+[\.\d]+))?'
|
426
453
|
name: 'DragonFly'
|
427
454
|
version: '$1'
|
428
455
|
|
456
|
+
|
429
457
|
- regex: 'Syllable(?:[/ ]?(\d+[\.\d]+))?'
|
430
458
|
name: 'Syllable'
|
431
459
|
version: '$1'
|
432
460
|
|
461
|
+
|
433
462
|
- regex: 'IRIX(?:[/ ]?(\d+[\.\d]+))'
|
434
463
|
name: 'IRIX'
|
435
464
|
version: '$1'
|
436
465
|
|
466
|
+
|
437
467
|
- regex: 'OSF1(?:[/ ]?v?(\d+[\.\d]+))?'
|
438
468
|
name: 'OSF1'
|
439
469
|
version: '$1'
|
440
470
|
|
471
|
+
|
472
|
+
|
441
473
|
##########
|
442
474
|
# Gaming Console
|
443
475
|
##########
|
@@ -445,14 +477,18 @@
|
|
445
477
|
name: 'Nintendo'
|
446
478
|
version: 'Wii'
|
447
479
|
|
480
|
+
|
448
481
|
- regex: 'PlayStation ?([3|4])'
|
449
482
|
name: 'PlayStation'
|
450
483
|
version: '$1'
|
451
484
|
|
485
|
+
|
452
486
|
- regex: 'Xbox|KIN\.(?:One|Two)'
|
453
487
|
name: 'Xbox'
|
454
488
|
version: '360'
|
455
489
|
|
490
|
+
|
491
|
+
|
456
492
|
##########
|
457
493
|
# Mobile Gaming Console
|
458
494
|
##########
|
@@ -460,10 +496,13 @@
|
|
460
496
|
name: 'Nintendo Mobile'
|
461
497
|
version: '$1'
|
462
498
|
|
499
|
+
|
463
500
|
- regex: 'PlayStation ((?:Portable|Vita))'
|
464
501
|
name: 'PlayStation Portable'
|
465
502
|
version: '$1'
|
466
503
|
|
504
|
+
|
505
|
+
|
467
506
|
##########
|
468
507
|
# IBM
|
469
508
|
##########
|
@@ -471,6 +510,8 @@
|
|
471
510
|
name: 'OS/2'
|
472
511
|
version: ''
|
473
512
|
|
513
|
+
|
514
|
+
|
474
515
|
###########
|
475
516
|
# Linux (Generic)
|
476
517
|
###########
|
@@ -478,3 +519,5 @@
|
|
478
519
|
name: 'GNU/Linux'
|
479
520
|
version: ''
|
480
521
|
|
522
|
+
|
523
|
+
|