device_detector 1.0.5 → 1.0.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +7 -6
- data/lib/device_detector/browser.rb +364 -0
- data/lib/device_detector/client.rb +8 -0
- data/lib/device_detector/device.rb +1124 -4
- data/lib/device_detector/os.rb +36 -11
- data/lib/device_detector/version.rb +1 -1
- data/lib/device_detector/version_extractor.rb +9 -0
- data/lib/device_detector.rb +57 -13
- data/regexes/bots.yml +551 -58
- data/regexes/client/browser_engine.yml +7 -1
- data/regexes/client/browsers.yml +594 -71
- data/regexes/client/feed_readers.yml +4 -10
- data/regexes/client/libraries.yml +47 -2
- data/regexes/client/mediaplayers.yml +25 -1
- data/regexes/client/mobile_apps.yml +447 -77
- data/regexes/client/pim.yml +49 -1
- data/regexes/device/cameras.yml +5 -5
- data/regexes/device/car_browsers.yml +16 -0
- data/regexes/device/consoles.yml +6 -0
- data/regexes/device/mobiles.yml +12905 -4561
- data/regexes/device/portable_media_player.yml +20 -3
- data/regexes/device/shell_tv.yml +117 -0
- data/regexes/device/televisions.yml +426 -35
- data/regexes/oss.yml +567 -139
- data/spec/device_detector/concrete_user_agent_spec.rb +30 -42
- data/spec/device_detector/detector_fixtures_spec.rb +9 -5
- data/spec/device_detector/device_spec.rb +26 -10
- data/spec/fixtures/client/browser.yml +1463 -391
- data/spec/fixtures/client/feed_reader.yml +0 -12
- data/spec/fixtures/client/library.yml +91 -37
- data/spec/fixtures/client/mediaplayer.yml +30 -0
- data/spec/fixtures/client/mobile_app.yml +498 -45
- data/spec/fixtures/client/pim.yml +60 -0
- data/spec/fixtures/detector/bots.yml +1189 -568
- data/spec/fixtures/detector/camera.yml +12 -26
- data/spec/fixtures/detector/car_browser.yml +151 -15
- data/spec/fixtures/detector/console.yml +70 -48
- data/spec/fixtures/detector/desktop.yml +2041 -916
- data/spec/fixtures/detector/feature_phone.yml +895 -189
- data/spec/fixtures/detector/feed_reader.yml +50 -77
- data/spec/fixtures/detector/mediaplayer.yml +79 -26
- data/spec/fixtures/detector/mobile_apps.yml +726 -72
- data/spec/fixtures/detector/peripheral.yml +271 -0
- data/spec/fixtures/detector/phablet.yml +3635 -1596
- data/spec/fixtures/detector/portable_media_player.yml +355 -46
- data/spec/fixtures/detector/smart_display.yml +183 -9
- data/spec/fixtures/detector/smart_speaker.yml +13 -8
- data/spec/fixtures/detector/smartphone-1.yml +4002 -4286
- data/spec/fixtures/detector/smartphone-10.yml +3771 -4763
- data/spec/fixtures/detector/smartphone-11.yml +3615 -4692
- data/spec/fixtures/detector/smartphone-12.yml +3856 -4764
- data/spec/fixtures/detector/smartphone-13.yml +4213 -4713
- data/spec/fixtures/detector/smartphone-14.yml +4039 -4497
- data/spec/fixtures/detector/smartphone-15.yml +5642 -2956
- data/spec/fixtures/detector/smartphone-16.yml +4739 -5082
- data/spec/fixtures/detector/smartphone-17.yml +4832 -4275
- data/spec/fixtures/detector/smartphone-18.yml +9806 -0
- data/spec/fixtures/detector/smartphone-19.yml +9965 -0
- data/spec/fixtures/detector/smartphone-2.yml +4842 -2589
- data/spec/fixtures/detector/smartphone-20.yml +9710 -0
- data/spec/fixtures/detector/smartphone-21.yml +8693 -0
- data/spec/fixtures/detector/smartphone-22.yml +10178 -0
- data/spec/fixtures/detector/smartphone-23.yml +9453 -0
- data/spec/fixtures/detector/smartphone-24.yml +9843 -0
- data/spec/fixtures/detector/smartphone-25.yml +9703 -0
- data/spec/fixtures/detector/smartphone-26.yml +10007 -0
- data/spec/fixtures/detector/smartphone-27.yml +4927 -0
- data/spec/fixtures/detector/smartphone-3.yml +4387 -4427
- data/spec/fixtures/detector/smartphone-4.yml +3597 -4582
- data/spec/fixtures/detector/smartphone-5.yml +4066 -5022
- data/spec/fixtures/detector/smartphone-6.yml +3455 -4621
- data/spec/fixtures/detector/smartphone-7.yml +3574 -4574
- data/spec/fixtures/detector/smartphone-8.yml +4617 -4704
- data/spec/fixtures/detector/smartphone-9.yml +4080 -5035
- data/spec/fixtures/detector/smartphone.yml +3244 -4234
- data/spec/fixtures/detector/tablet-1.yml +4652 -4492
- data/spec/fixtures/detector/tablet-2.yml +3515 -4434
- data/spec/fixtures/detector/tablet-3.yml +3418 -4351
- data/spec/fixtures/detector/tablet-4.yml +5149 -3200
- data/spec/fixtures/detector/tablet-5.yml +9273 -0
- data/spec/fixtures/detector/tablet-6.yml +4588 -0
- data/spec/fixtures/detector/tablet.yml +1621 -2613
- data/spec/fixtures/detector/tv-1.yml +2501 -0
- data/spec/fixtures/detector/tv.yml +7826 -3114
- data/spec/fixtures/detector/unknown.yml +370 -531
- data/spec/fixtures/detector/wearable.yml +863 -9
- data/spec/fixtures/parser/oss.yml +1350 -21
- data/spec/fixtures/parser/vendorfragments.yml +53 -53
- metadata +35 -5
data/regexes/oss.yml
CHANGED
@@ -6,21 +6,41 @@
|
|
6
6
|
###############
|
7
7
|
|
8
8
|
##########
|
9
|
-
#
|
9
|
+
# GridOS (https://web.archive.org/web/20111123141630/http://fusiongarage.com/grid-os/about)
|
10
10
|
##########
|
11
|
-
- regex: '
|
12
|
-
name: '
|
11
|
+
- regex: 'Grid OS (\d+[\.\d]+)'
|
12
|
+
name: 'GridOS'
|
13
13
|
version: '$1'
|
14
14
|
|
15
|
-
|
15
|
+
##########
|
16
|
+
# Caixa Mágica (https://caixamagica.pt/)
|
17
|
+
##########
|
18
|
+
- regex: 'CaixaMagica'
|
19
|
+
name: 'Caixa Mágica'
|
20
|
+
version: ''
|
16
21
|
|
17
22
|
##########
|
18
|
-
|
19
|
-
|
20
|
-
- regex: '
|
21
|
-
name: '
|
23
|
+
# Mageia (https://www.mageia.org/en/)
|
24
|
+
##########
|
25
|
+
- regex: 'Mageia; Linux'
|
26
|
+
name: 'Mageia'
|
22
27
|
version: ''
|
23
28
|
|
29
|
+
##########
|
30
|
+
# Whale OS (https://www.zeasn.com/)
|
31
|
+
##########
|
32
|
+
- regex: '(?:WH|WhaleTV/)(\d+[\.\d]+)'
|
33
|
+
name: 'Whale OS'
|
34
|
+
version: '$1'
|
35
|
+
|
36
|
+
##########
|
37
|
+
# Tizen
|
38
|
+
##########
|
39
|
+
- regex: 'Tizen[ /]?(\d+[\.\d]+)?'
|
40
|
+
name: 'Tizen'
|
41
|
+
version: '$1'
|
42
|
+
|
43
|
+
|
24
44
|
##########
|
25
45
|
# YunOS (Android based)
|
26
46
|
##########
|
@@ -31,11 +51,14 @@
|
|
31
51
|
##########
|
32
52
|
# Windows Mobile
|
33
53
|
##########
|
34
|
-
- regex: '
|
54
|
+
- regex: 'Windows Phone;FBSV/(\d+[\.\d]+)'
|
55
|
+
name: 'Windows Phone'
|
56
|
+
version: '$1'
|
57
|
+
|
58
|
+
- regex: '(?:Windows Phone (?:OS)?|wds)[ /]?(\d+[\.\d]+)'
|
35
59
|
name: 'Windows Phone'
|
36
60
|
version: '$1'
|
37
|
-
|
38
|
-
|
61
|
+
|
39
62
|
- regex: 'XBLWP7|Windows Phone'
|
40
63
|
name: 'Windows Phone'
|
41
64
|
version: ''
|
@@ -43,17 +66,15 @@
|
|
43
66
|
- regex: 'Windows CE(?: (\d+[\.\d]+))?'
|
44
67
|
name: 'Windows CE'
|
45
68
|
version: '$1'
|
46
|
-
|
47
|
-
|
69
|
+
|
48
70
|
- regex: '(?:IEMobile|Windows ?Mobile)(?: (\d+[\.\d]+))?'
|
49
71
|
name: 'Windows Mobile'
|
50
72
|
version: '$1'
|
51
|
-
|
52
|
-
|
73
|
+
|
53
74
|
- regex: 'Windows NT 6.2; ARM;'
|
54
75
|
name: 'Windows RT'
|
55
76
|
version: ''
|
56
|
-
|
77
|
+
|
57
78
|
- regex: 'Windows NT 6.3; ARM;'
|
58
79
|
name: 'Windows RT'
|
59
80
|
version: '8.1'
|
@@ -75,6 +96,10 @@
|
|
75
96
|
##########
|
76
97
|
# Custom Android Roms
|
77
98
|
##########
|
99
|
+
- regex: 'HarmonyOS(?:[/ ](\d+[\.\d]+))?'
|
100
|
+
name: 'HarmonyOS'
|
101
|
+
version: '$1'
|
102
|
+
|
78
103
|
- regex: 'RazoDroiD(?: v(\d+[\.\d]*))?'
|
79
104
|
name: 'RazoDroiD'
|
80
105
|
version: '$1'
|
@@ -95,18 +120,50 @@
|
|
95
120
|
name: 'Fire OS'
|
96
121
|
version: '$1'
|
97
122
|
|
123
|
+
- regex: 'AFTSO001'
|
124
|
+
name: 'Fire OS'
|
125
|
+
version: '7'
|
126
|
+
|
127
|
+
- regex: 'FydeOS'
|
128
|
+
name: 'FydeOS'
|
129
|
+
version: ''
|
130
|
+
|
98
131
|
##########
|
99
132
|
# Android
|
100
133
|
##########
|
134
|
+
- regex: '(?:Podbean|Podimo)(?:.+)?/Android'
|
135
|
+
name: 'Android'
|
136
|
+
version: ''
|
137
|
+
|
138
|
+
- regex: 'Pinterest for Android/.+; (\d(?:[\d\.]+)?)\)$'
|
139
|
+
name: 'Android'
|
140
|
+
version: '$1'
|
141
|
+
|
142
|
+
- regex: 'Android; (\d+[\.\d]*); Mobile;'
|
143
|
+
name: 'Android'
|
144
|
+
version: '$1'
|
145
|
+
|
101
146
|
- regex: '[ ]([\d\.]+)\) AppleWebKit.*ROBLOX Android App'
|
102
147
|
name: 'Android'
|
103
148
|
version: '$1'
|
104
149
|
|
105
|
-
- regex: '(?:(?:Orca-)?Android|Adr)[ /](?:[a-z]+ )?(\d+[\.\d]*)'
|
150
|
+
- regex: '(?:(?:Orca-)?Android|Adr)[ /]?(?:[a-z]+ )?(\d+[\.\d]*)'
|
151
|
+
name: 'Android'
|
152
|
+
version: '$1'
|
153
|
+
|
154
|
+
- regex: '(?:Allview_TX1_Quasar|Cosmote_My_mini_Tab) (\d+[\.\d]*)'
|
155
|
+
name: 'Android'
|
156
|
+
version: '$1'
|
157
|
+
|
158
|
+
- regex: 'Android ?(?:jelly bean|Kit Kat|S.O. Ginger Bread|The FireCyano|:) (\d+[\.\d]*)'
|
159
|
+
name: 'Android'
|
160
|
+
version: '$1'
|
161
|
+
|
162
|
+
- regex: '(?:Orca-Android|FB4A).*FBSV/(\d+[\.\d]*);'
|
106
163
|
name: 'Android'
|
107
164
|
version: '$1'
|
108
|
-
|
109
|
-
- regex: 'Android|Silk-Accelerated=[a-z]{4,5}'
|
165
|
+
|
166
|
+
- regex: ' Adr |Android|Silk-Accelerated=[a-z]{4,5}'
|
110
167
|
name: 'Android'
|
111
168
|
version: ''
|
112
169
|
|
@@ -114,15 +171,26 @@
|
|
114
171
|
name: 'Android'
|
115
172
|
version: '$1'
|
116
173
|
|
117
|
-
- regex: '
|
174
|
+
- regex: 'BeyondPod|AntennaPod|Podkicker|DoggCatcher|Player FM|okhttp|Podcatcher Deluxe|.+K_?Android_?TV_|Sonos/.+\(ACR_'
|
175
|
+
name: 'Android'
|
176
|
+
version: ''
|
177
|
+
|
178
|
+
- regex: 'Linux; Andr0id[; ](\d+[\.\d]*)'
|
118
179
|
name: 'Android'
|
119
180
|
version: '$1'
|
120
181
|
|
121
|
-
|
182
|
+
# Inverted Android
|
183
|
+
- regex: 'Linux; diordnA[; ](\d+[\.\d]*)'
|
122
184
|
name: 'Android'
|
185
|
+
version: '$1'
|
186
|
+
|
187
|
+
##########
|
188
|
+
## Sailfish OS
|
189
|
+
###########
|
190
|
+
- regex: 'Sailfish|Jolla'
|
191
|
+
name: 'Sailfish OS'
|
123
192
|
version: ''
|
124
|
-
|
125
|
-
|
193
|
+
|
126
194
|
##########
|
127
195
|
# AmigaOS
|
128
196
|
##########
|
@@ -151,13 +219,45 @@
|
|
151
219
|
name: 'MTK / Nucleus'
|
152
220
|
version: '$1'
|
153
221
|
|
222
|
+
##########
|
223
|
+
# MRE / MAUI Runtime Environment
|
224
|
+
##########
|
225
|
+
- regex: 'MRE/(\d+)\.(\d+).*;MAUI'
|
226
|
+
name: 'MRE'
|
227
|
+
version: '$1.$2'
|
228
|
+
|
154
229
|
##########
|
155
230
|
# Linux
|
156
231
|
##########
|
232
|
+
# DVKBuntu (https://www.dvkbuntu.org/)
|
233
|
+
- regex: 'dvkbuntu'
|
234
|
+
name: 'DVKBuntu'
|
235
|
+
version: ''
|
236
|
+
|
237
|
+
# Lumin OS (https://developer.magicleap.com/en-us/learn/guides/lumin-os-release-notes-summary)
|
238
|
+
- regex: 'Helio/(\d+[\.\d]+)'
|
239
|
+
name: 'Lumin OS'
|
240
|
+
version: '$1'
|
241
|
+
|
242
|
+
# HasCodingOS (https://forum.hascoding.com/HasCodingOS)
|
243
|
+
- regex: 'HasCodingOs (\d+[\.\d]+)'
|
244
|
+
name: 'HasCodingOS'
|
245
|
+
version: '$1'
|
246
|
+
|
247
|
+
# PCLinuxOS (https://www.pclinuxos.com/)
|
248
|
+
- regex: 'PCLinuxOS/(\d+[\.\d]+)'
|
249
|
+
name: 'PCLinuxOS'
|
250
|
+
version: '$1'
|
251
|
+
|
157
252
|
- regex: '(Ordissimo|webissimo3)'
|
158
253
|
name: 'Ordissimo'
|
159
254
|
version: ''
|
160
255
|
|
256
|
+
# Fenix (https://fenixlinux.com/)
|
257
|
+
- regex: '(?:Win|Sistema )Fenix'
|
258
|
+
name: 'Fenix'
|
259
|
+
version: ''
|
260
|
+
|
161
261
|
- regex: 'TOS; Linux'
|
162
262
|
name: 'TmaxOS'
|
163
263
|
version: ''
|
@@ -178,16 +278,44 @@
|
|
178
278
|
name: '$1'
|
179
279
|
version: '$2'
|
180
280
|
|
181
|
-
- regex: '
|
281
|
+
- regex: 'Deepin[ /](\d+[\.\d]+)'
|
282
|
+
name: 'Deepin'
|
283
|
+
version: '$1'
|
284
|
+
|
285
|
+
- regex: '(Debian|Knoppix|Mint(?! Browser)|Ubuntu|Kubuntu|Xubuntu|Lubuntu|Fedora|Red Hat|Mandriva|Gentoo|Sabayon|Slackware|SUSE|CentOS|BackTrack|Freebox)(?:(?: Enterprise)? Linux)?(?:[ /\-](\d+[\.\d]+))?'
|
182
286
|
name: '$1'
|
183
287
|
version: '$2'
|
184
288
|
|
289
|
+
- regex: 'OS ROSA; Linux'
|
290
|
+
name: 'Rosa'
|
291
|
+
version: ''
|
292
|
+
|
185
293
|
# generic linux match -> end of file
|
186
294
|
|
187
295
|
##########
|
188
296
|
# webOS
|
189
297
|
##########
|
190
|
-
- regex: '(
|
298
|
+
- regex: 'WEBOS(\d+[\.\d]+)'
|
299
|
+
name: 'webOS'
|
300
|
+
version: '$1'
|
301
|
+
|
302
|
+
- regex: 'Web0S; Linux/SmartTV.+Chrome/68'
|
303
|
+
name: 'webOS'
|
304
|
+
version: '5'
|
305
|
+
- regex: 'Web0S; Linux/SmartTV.+Chrome/53'
|
306
|
+
name: 'webOS'
|
307
|
+
version: '4'
|
308
|
+
- regex: 'Web0S; Linux/SmartTV.+Chrome/38'
|
309
|
+
name: 'webOS'
|
310
|
+
version: '3'
|
311
|
+
- regex: 'Web0S; Linux/SmartTV.+Safari/538'
|
312
|
+
name: 'webOS'
|
313
|
+
version: '2'
|
314
|
+
- regex: 'Web0S; Linux/SmartTV.+Safari/537'
|
315
|
+
name: 'webOS'
|
316
|
+
version: '1'
|
317
|
+
|
318
|
+
- regex: '(?:Web0S; .*WEBOS|webOS|web0S|Palm webOS|hpwOS)(?:[/]?(\d+[\.\d]+))?'
|
191
319
|
name: 'webOS'
|
192
320
|
version: '$1'
|
193
321
|
|
@@ -199,15 +327,26 @@
|
|
199
327
|
name: 'palmOS'
|
200
328
|
version: '$1'
|
201
329
|
|
202
|
-
|
203
330
|
- regex: 'MorphOS(?:[ /](\d+[\.\d]+))?'
|
204
331
|
name: 'MorphOS'
|
205
332
|
version: '$1'
|
206
333
|
|
207
|
-
|
334
|
+
|
208
335
|
##########
|
209
336
|
# Windows
|
210
337
|
##########
|
338
|
+
- regex: 'FBW.+FBSV/(\d+[\.\d]*);'
|
339
|
+
name: 'Windows'
|
340
|
+
version: '$1'
|
341
|
+
|
342
|
+
- regex: 'mingw32'
|
343
|
+
name: 'Windows'
|
344
|
+
version: ''
|
345
|
+
|
346
|
+
- regex: 'Windows/(\d+\.\d+)'
|
347
|
+
name: 'Windows'
|
348
|
+
version: '$1'
|
349
|
+
|
211
350
|
- regex: 'CYGWIN_NT-10.0|Windows NT 10.0|Windows 10'
|
212
351
|
name: 'Windows'
|
213
352
|
version: '10'
|
@@ -264,15 +403,10 @@
|
|
264
403
|
name: 'Windows'
|
265
404
|
version: '3.1'
|
266
405
|
|
267
|
-
- regex: 'FBW.*FBSV/(\d+[\.\d]*);'
|
268
|
-
name: 'Windows'
|
269
|
-
version: '$1'
|
270
|
-
|
271
406
|
- regex: 'Windows'
|
272
407
|
name: 'Windows'
|
273
408
|
version: ''
|
274
409
|
|
275
|
-
|
276
410
|
##########
|
277
411
|
# Haiku OS
|
278
412
|
##########
|
@@ -280,27 +414,147 @@
|
|
280
414
|
name: 'Haiku OS'
|
281
415
|
version: ''
|
282
416
|
|
283
|
-
|
417
|
+
##########
|
418
|
+
# tvOS (https://developer.apple.com/tvos/)
|
419
|
+
##########
|
420
|
+
- regex: 'Apple TV.*CPU (?:iPhone )?OS ((?:9|1[0-5])_\d+(?:[_\.]\d+)*)'
|
421
|
+
name: 'tvOS'
|
422
|
+
version: '$1'
|
423
|
+
|
424
|
+
- regex: 'iOS(?:; |/)((?:9|1[0-5]).\d+(?:[_\.]\d+)*) (?:model/)?AppleTV'
|
425
|
+
name: 'tvOS'
|
426
|
+
version: '$1'
|
427
|
+
|
428
|
+
##########
|
429
|
+
# watchOS (https://developer.apple.com/watchos/)
|
430
|
+
##########
|
431
|
+
- regex: '(?:Watch1,[12]/|Watch OS,|watchOS[ /])(\d+[\.\d]*)'
|
432
|
+
name: 'watchOS'
|
433
|
+
version: '$1'
|
434
|
+
|
435
|
+
##########
|
436
|
+
# iPadOS (https://www.apple.com/ipados/)
|
437
|
+
##########
|
438
|
+
- regex: 'FBMD/iPad;.*FBSV/ ?(1[345]).(\d+[\.\d]*);'
|
439
|
+
name: 'iPadOS'
|
440
|
+
version: '$1.$2'
|
441
|
+
|
442
|
+
- regex: 'iPad/(1[345]).(\d+[\.\d]*)'
|
443
|
+
name: 'iPadOS'
|
444
|
+
version: '$1.$2'
|
445
|
+
|
446
|
+
- regex: 'iPad.+CPU OS ((1[345])+(?:[_\.]\d+)*)'
|
447
|
+
name: 'iPadOS'
|
448
|
+
version: '$1'
|
449
|
+
|
450
|
+
- regex: 'iOS/(1[345]).(\d+[\.\d]*).+Apple/iPad'
|
451
|
+
name: 'iPadOS'
|
452
|
+
version: '$1.$2'
|
453
|
+
|
284
454
|
##########
|
285
455
|
# iOS
|
286
456
|
##########
|
287
|
-
- regex: '
|
457
|
+
- regex: 'iPad/([89]|1[012]).(\d+[\.\d]*)'
|
288
458
|
name: 'iOS'
|
289
|
-
version: '
|
459
|
+
version: '$1.$2'
|
290
460
|
|
291
|
-
- regex: '
|
292
|
-
name: '
|
293
|
-
version: '
|
461
|
+
- regex: 'Pinterest for iOS/.+; (\d(?:[\d\.]+)?)\)$'
|
462
|
+
name: 'iOS'
|
463
|
+
version: '$1'
|
294
464
|
|
295
|
-
- regex: 'CFNetwork/
|
465
|
+
- regex: 'CFNetwork/.+ Darwin/21.0.0(?!.*x86_64)'
|
296
466
|
name: 'iOS'
|
297
|
-
version: '
|
467
|
+
version: '15.0'
|
298
468
|
|
299
|
-
- regex: 'CFNetwork/
|
300
|
-
name: '
|
301
|
-
version: '
|
469
|
+
- regex: 'CFNetwork/.+ Darwin/20.6.0(?!.*x86_64)'
|
470
|
+
name: 'iOS'
|
471
|
+
version: '14.7'
|
472
|
+
|
473
|
+
- regex: 'CFNetwork/.+ Darwin/20.5.0(?!.*x86_64)'
|
474
|
+
name: 'iOS'
|
475
|
+
version: '14.6'
|
476
|
+
|
477
|
+
- regex: 'CFNetwork/.+ Darwin/20.4.0(?!.*x86_64)'
|
478
|
+
name: 'iOS'
|
479
|
+
version: '14.5'
|
480
|
+
|
481
|
+
- regex: 'CFNetwork/.+ Darwin/20.3.0(?!.*x86_64)'
|
482
|
+
name: 'iOS'
|
483
|
+
version: '14.4'
|
484
|
+
|
485
|
+
- regex: 'CFNetwork/.+ Darwin/20.2.0(?!.*x86_64)'
|
486
|
+
name: 'iOS'
|
487
|
+
version: '14.3'
|
488
|
+
|
489
|
+
- regex: 'CFNetwork/.+ Darwin/20.1.0(?!.*x86_64)'
|
490
|
+
name: 'iOS'
|
491
|
+
version: '14.2'
|
492
|
+
|
493
|
+
- regex: 'CFNetwork/.+ Darwin/20.0.0(?!.*x86_64)'
|
494
|
+
name: 'iOS'
|
495
|
+
version: '14.0'
|
496
|
+
|
497
|
+
- regex: 'CFNetwork/.+ Darwin/19.6.0(?!.*x86_64)'
|
498
|
+
name: 'iOS'
|
499
|
+
version: '13.6'
|
500
|
+
|
501
|
+
- regex: 'CFNetwork/.+ Darwin/19.5.0(?!.*x86_64)'
|
502
|
+
name: 'iOS'
|
503
|
+
version: '13.5'
|
504
|
+
|
505
|
+
- regex: 'CFNetwork/.+ Darwin/19.4.0(?!.*x86_64)'
|
506
|
+
name: 'iOS'
|
507
|
+
version: '13.4'
|
508
|
+
|
509
|
+
- regex: 'CFNetwork/.+ Darwin/19.3.0(?!.*x86_64)'
|
510
|
+
name: 'iOS'
|
511
|
+
version: '13.3.1'
|
512
|
+
|
513
|
+
- regex: 'CFNetwork/.+ Darwin/19.2.0(?!.*x86_64)'
|
514
|
+
name: 'iOS'
|
515
|
+
version: '13.3'
|
516
|
+
|
517
|
+
- regex: 'CFNetwork/.+ Darwin/19.0.0(?!.*x86_64)'
|
518
|
+
name: 'iOS'
|
519
|
+
version: '13.0'
|
520
|
+
|
521
|
+
- regex: 'CFNetwork/.+ Darwin/18.7.0(?!.*x86_64)'
|
522
|
+
name: 'iOS'
|
523
|
+
version: '12.4'
|
524
|
+
|
525
|
+
- regex: 'CFNetwork/.+ Darwin/18.6.0(?!.*x86_64)'
|
526
|
+
name: 'iOS'
|
527
|
+
version: '12.3'
|
528
|
+
|
529
|
+
- regex: 'CFNetwork/.+ Darwin/18.5.0(?!.*x86_64)'
|
530
|
+
name: 'iOS'
|
531
|
+
version: '12.2'
|
532
|
+
|
533
|
+
- regex: 'CFNetwork/.+ Darwin/18.2.0(?!.*x86_64)'
|
534
|
+
name: 'iOS'
|
535
|
+
version: '12.1'
|
536
|
+
|
537
|
+
- regex: 'CFNetwork/.+ Darwin/18.0.0(?!.*x86_64)'
|
538
|
+
name: 'iOS'
|
539
|
+
version: '12.0'
|
540
|
+
|
541
|
+
- regex: 'CFNetwork/.+ Darwin/17.7.0(?!.*x86_64)'
|
542
|
+
name: 'iOS'
|
543
|
+
version: '11.4.1'
|
544
|
+
|
545
|
+
- regex: 'CFNetwork/.+ Darwin/17.6.0(?!.*x86_64)'
|
546
|
+
name: 'iOS'
|
547
|
+
version: '11.4'
|
548
|
+
|
549
|
+
- regex: 'CFNetwork/889(?!.*x86_64)'
|
550
|
+
name: 'iOS'
|
551
|
+
version: '11.1'
|
302
552
|
|
303
|
-
- regex: 'CFNetwork/
|
553
|
+
- regex: 'CFNetwork/887(?!.*x86_64)'
|
554
|
+
name: 'iOS'
|
555
|
+
version: '11.0'
|
556
|
+
|
557
|
+
- regex: 'CFNetwork/811(?!.*x86_64)'
|
304
558
|
name: 'iOS'
|
305
559
|
version: '10.3'
|
306
560
|
|
@@ -416,11 +670,27 @@
|
|
416
670
|
name: 'iOS'
|
417
671
|
version: '3.1'
|
418
672
|
|
673
|
+
- regex: 'iPhone/(\d+[\.\d]*) hw/'
|
674
|
+
name: 'iOS'
|
675
|
+
version: '$1'
|
676
|
+
|
677
|
+
- regex: 'iOS(\d+\.\d+\.\d+)'
|
678
|
+
name: 'iOS'
|
679
|
+
version: '$1'
|
680
|
+
|
681
|
+
- regex: 'iOS(\d+)\.(\d+)0'
|
682
|
+
name: 'iOS'
|
683
|
+
version: '$1.$2'
|
684
|
+
|
685
|
+
- regex: 'iPhone OS ([0-9]{1})([0-9]{1})([0-9]{1})'
|
686
|
+
name: 'iOS'
|
687
|
+
version: '$1.$2.$3'
|
688
|
+
|
419
689
|
- regex: '(?:CPU OS|iPh(?:one)?[ _]OS|iOS)[ _/](\d+(?:[_\.]\d+)*)'
|
420
690
|
name: 'iOS'
|
421
691
|
version: '$1'
|
422
692
|
|
423
|
-
- regex: 'FBIOS.*FBSV/(\d+[\.\d]*);'
|
693
|
+
- regex: '(?:FBIOS|Messenger(?:Lite)?ForiOS).*FBSV/ ?(\d+[\.\d]*);'
|
424
694
|
name: 'iOS'
|
425
695
|
version: '$1'
|
426
696
|
|
@@ -428,39 +698,233 @@
|
|
428
698
|
name: 'iOS'
|
429
699
|
version: '$1'
|
430
700
|
|
431
|
-
- regex: 'Podcasts/(?:[\d\.]+)|Instacast(?:HD)?/(?:\d\.[\d\.abc]+)|Pocket Casts, iOS|Overcast|Castro|Podcat|
|
701
|
+
- regex: '(?:Podcasts/(?:[\d\.]+)|Instacast(?:HD)?/(?:\d\.[\d\.abc]+)|Pocket Casts, iOS|\(iOS\)|iOS; Opera|Overcast|Castro|Podcat|iCatcher|RSSRadio/|MobileSafari/)(?!.*x86_64)'
|
432
702
|
name: 'iOS'
|
433
703
|
version: ''
|
434
704
|
|
435
|
-
- regex: 'iTunes-(iPod|iPad|iPhone)/(?:[\d\.]+)'
|
705
|
+
- regex: 'iTunes-(AppleTV|iPod|iPad|iPhone)/(?:[\d\.]+)'
|
436
706
|
name: 'iOS'
|
437
707
|
version: ''
|
438
708
|
|
709
|
+
- regex: 'iOS/Version ([\d\.]+)'
|
710
|
+
name: 'iOS'
|
711
|
+
version: '$1'
|
712
|
+
|
713
|
+
- regex: 'Sonos/.+\(ICRU_'
|
714
|
+
name: 'iOS'
|
715
|
+
version: ''
|
439
716
|
|
440
717
|
##########
|
441
718
|
# Mac
|
442
719
|
##########
|
720
|
+
- regex: 'CFNetwork/.+ Darwin/20.2.0.*(x86_64)|(x86_64-apple-)?darwin20.2.0'
|
721
|
+
name: 'Mac'
|
722
|
+
version: '11.1'
|
723
|
+
|
724
|
+
- regex: 'CFNetwork/.+ Darwin/20.[01].0.*(x86_64)|(x86_64-apple-)?darwin20.[01].0'
|
725
|
+
name: 'Mac'
|
726
|
+
version: '11.0'
|
727
|
+
|
728
|
+
- regex: 'CFNetwork/.+ Darwin/19.6.0.*(x86_64)|(x86_64-apple-)?darwin19.6.0'
|
729
|
+
name: 'Mac'
|
730
|
+
version: '10.15.6'
|
731
|
+
|
732
|
+
- regex: 'CFNetwork/.+ Darwin/19.5.0.*(x86_64)|(x86_64-apple-)?darwin19.5.0'
|
733
|
+
name: 'Mac'
|
734
|
+
version: '10.15.5'
|
735
|
+
|
736
|
+
- regex: 'CFNetwork/.+ Darwin/19.4.0.*(x86_64)|(x86_64-apple-)?darwin19.4.0'
|
737
|
+
name: 'Mac'
|
738
|
+
version: '10.15.4'
|
739
|
+
|
740
|
+
- regex: 'CFNetwork/.+ Darwin/19.3.0.*(x86_64)|(x86_64-apple-)?darwin19.3.0'
|
741
|
+
name: 'Mac'
|
742
|
+
version: '10.15.3'
|
743
|
+
|
744
|
+
- regex: 'CFNetwork/.+ Darwin/19.2.0.*(x86_64)|(x86_64-apple-)?darwin19.2.0'
|
745
|
+
name: 'Mac'
|
746
|
+
version: '10.15.2'
|
747
|
+
|
748
|
+
- regex: 'CFNetwork/(?:108[258]|109[18]|1103).*(x86_64)'
|
749
|
+
name: 'Mac'
|
750
|
+
version: '10.15'
|
751
|
+
|
752
|
+
- regex: 'CFNetwork/.+ Darwin/18.2.0.*(x86_64)|(x86_64-apple-)?darwin18.2.0'
|
753
|
+
name: 'Mac'
|
754
|
+
version: '10.14.1'
|
755
|
+
|
756
|
+
- regex: 'CFNetwork/(?:96[29]|97[14568]).*(x86_64)'
|
757
|
+
name: 'Mac'
|
758
|
+
version: '10.14'
|
759
|
+
|
760
|
+
- regex: 'CFNetwork/.+ Darwin/17.7.0.*(x86_64)|(x86_64-apple-)?darwin17.7.0'
|
761
|
+
name: 'Mac'
|
762
|
+
version: '10.13.6'
|
763
|
+
|
764
|
+
- regex: 'CFNetwork/.+ Darwin/17.6.0.*(x86_64)|(x86_64-apple-)?darwin17.6.0'
|
765
|
+
name: 'Mac'
|
766
|
+
version: '10.13.5'
|
767
|
+
|
768
|
+
- regex: 'CFNetwork/.+ Darwin/17.5.0.*(x86_64)|(x86_64-apple-)?darwin17.5.0'
|
769
|
+
name: 'Mac'
|
770
|
+
version: '10.13.4'
|
771
|
+
|
772
|
+
- regex: 'CFNetwork/.+ Darwin/17.4.0.*(x86_64)|(x86_64-apple-)?darwin17.4.0'
|
773
|
+
name: 'Mac'
|
774
|
+
version: '10.13.3'
|
775
|
+
|
776
|
+
- regex: 'CFNetwork/.+ Darwin/17.3.0.*(x86_64)|(x86_64-apple-)?darwin17.3.0'
|
777
|
+
name: 'Mac'
|
778
|
+
version: '10.13.2'
|
779
|
+
|
780
|
+
- regex: 'CFNetwork/.+ Darwin/17.2.0.*(x86_64)|(x86_64-apple-)?darwin17.2.0'
|
781
|
+
name: 'Mac'
|
782
|
+
version: '10.13.1'
|
783
|
+
|
784
|
+
- regex: 'CFNetwork/(?:887|889|893|897|901|902).*(x86_64)'
|
785
|
+
name: 'Mac'
|
786
|
+
version: '10.13'
|
787
|
+
|
788
|
+
- regex: 'CFNetwork/.+ Darwin/16.7.0.*(x86_64)|(x86_64-apple-)?darwin16.7.0'
|
789
|
+
name: 'Mac'
|
790
|
+
version: '10.12.6'
|
791
|
+
|
792
|
+
- regex: 'CFNetwork/.+ Darwin/16.6.0.*(x86_64)|(x86_64-apple-)?darwin16.6.0'
|
793
|
+
name: 'Mac'
|
794
|
+
version: '10.12.5'
|
795
|
+
|
796
|
+
- regex: 'CFNetwork/.+ Darwin/16.5.0.*(x86_64)|(x86_64-apple-)?darwin16.5.0'
|
797
|
+
name: 'Mac'
|
798
|
+
version: '10.12.4'
|
799
|
+
|
800
|
+
- regex: 'CFNetwork/.+ Darwin/16.3.0.*(x86_64)|(x86_64-apple-)?darwin16.3.0'
|
801
|
+
name: 'Mac'
|
802
|
+
version: '10.12.3'
|
803
|
+
|
804
|
+
- regex: 'CFNetwork/.+ Darwin/16.2.0.*(x86_64)|(x86_64-apple-)?darwin16.2.0'
|
805
|
+
name: 'Mac'
|
806
|
+
version: '10.12.2'
|
807
|
+
|
808
|
+
- regex: 'CFNetwork/.+ Darwin/16.1.0.*(x86_64)|(x86_64-apple-)?darwin16.1.0'
|
809
|
+
name: 'Mac'
|
810
|
+
version: '10.12.1'
|
811
|
+
|
812
|
+
- regex: 'CFNetwork/811.*(x86_64)'
|
813
|
+
name: 'Mac'
|
814
|
+
version: '10.12'
|
443
815
|
|
444
816
|
- regex: 'CFNetwork/807'
|
445
817
|
name: 'Mac'
|
446
818
|
version: '10.12'
|
447
819
|
|
820
|
+
- regex: 'CFNetwork/.+ Darwin/15.6.0.*(x86_64)|(x86_64-apple-)?darwin15.6.0'
|
821
|
+
name: 'Mac'
|
822
|
+
version: '10.11.6'
|
823
|
+
|
824
|
+
- regex: 'CFNetwork/.+ Darwin/15.5.0.*(x86_64)|(x86_64-apple-)?darwin15.5.0'
|
825
|
+
name: 'Mac'
|
826
|
+
version: '10.11.5'
|
827
|
+
|
828
|
+
- regex: 'CFNetwork/.+ Darwin/15.4.0.*(x86_64)|(x86_64-apple-)?darwin15.4.0'
|
829
|
+
name: 'Mac'
|
830
|
+
version: '10.11.4'
|
831
|
+
|
832
|
+
- regex: 'CFNetwork/.+ Darwin/15.3.0.*(x86_64)|(x86_64-apple-)?darwin15.3.0'
|
833
|
+
name: 'Mac'
|
834
|
+
version: '10.11.3'
|
835
|
+
|
836
|
+
- regex: 'CFNetwork/.+ Darwin/15.2.0.*(x86_64)|(x86_64-apple-)?darwin15.2.0'
|
837
|
+
name: 'Mac'
|
838
|
+
version: '10.11.2'
|
839
|
+
|
448
840
|
- regex: 'CFNetwork/760'
|
449
841
|
name: 'Mac'
|
450
842
|
version: '10.11'
|
451
843
|
|
844
|
+
- regex: 'CFNetwork/.+ Darwin/14.5.0.*(x86_64)|(x86_64-apple-)?darwin14.5.0'
|
845
|
+
name: 'Mac'
|
846
|
+
version: '10.10.5'
|
847
|
+
|
848
|
+
- regex: 'CFNetwork/.+ Darwin/14.4.0.*(x86_64)|(x86_64-apple-)?darwin14.4.0'
|
849
|
+
name: 'Mac'
|
850
|
+
version: '10.10.4'
|
851
|
+
|
852
|
+
- regex: 'CFNetwork/.+ Darwin/14.3.0.*(x86_64)|(x86_64-apple-)?darwin14.3.0'
|
853
|
+
name: 'Mac'
|
854
|
+
version: '10.10.3'
|
855
|
+
|
856
|
+
- regex: 'CFNetwork/.+ Darwin/14.1.0.*(x86_64)|(x86_64-apple-)?darwin14.1.0'
|
857
|
+
name: 'Mac'
|
858
|
+
version: '10.10.2'
|
859
|
+
|
452
860
|
- regex: 'CFNetwork/720'
|
453
861
|
name: 'Mac'
|
454
862
|
version: '10.10'
|
455
863
|
|
864
|
+
- regex: 'CFNetwork/.+ Darwin/13.4.0.*(x86_64)|(x86_64-apple-)?darwin13.4.0'
|
865
|
+
name: 'Mac'
|
866
|
+
version: '10.9.5'
|
867
|
+
|
868
|
+
- regex: 'CFNetwork/.+ Darwin/13.3.0.*(x86_64)|(x86_64-apple-)?darwin13.3.0'
|
869
|
+
name: 'Mac'
|
870
|
+
version: '10.9.4'
|
871
|
+
|
872
|
+
- regex: 'CFNetwork/.+ Darwin/13.2.0.*(x86_64)|(x86_64-apple-)?darwin13.2.0'
|
873
|
+
name: 'Mac'
|
874
|
+
version: '10.9.3'
|
875
|
+
|
876
|
+
- regex: 'CFNetwork/.+ Darwin/13.1.0.*(x86_64)|(x86_64-apple-)?darwin13.1.0'
|
877
|
+
name: 'Mac'
|
878
|
+
version: '10.9.2'
|
879
|
+
|
456
880
|
- regex: 'CFNetwork/673'
|
457
881
|
name: 'Mac'
|
458
882
|
version: '10.9'
|
459
883
|
|
884
|
+
- regex: 'CFNetwork/.+ Darwin/12.5.0.*(x86_64)|(x86_64-apple-)?darwin12.5.0'
|
885
|
+
name: 'Mac'
|
886
|
+
version: '10.8.5'
|
887
|
+
|
888
|
+
- regex: 'CFNetwork/.+ Darwin/12.4.0.*(x86_64)|(x86_64-apple-)?darwin12.4.0'
|
889
|
+
name: 'Mac'
|
890
|
+
version: '10.8.4'
|
891
|
+
|
892
|
+
- regex: 'CFNetwork/.+ Darwin/12.3.0.*(x86_64)|(x86_64-apple-)?darwin12.3.0'
|
893
|
+
name: 'Mac'
|
894
|
+
version: '10.8.3'
|
895
|
+
|
896
|
+
- regex: 'CFNetwork/.+ Darwin/12.2.0.*(x86_64)|(x86_64-apple-)?darwin12.2.0'
|
897
|
+
name: 'Mac'
|
898
|
+
version: '10.8.2'
|
899
|
+
|
900
|
+
- regex: 'CFNetwork/.+ Darwin/12.1.0.*(x86_64)|(x86_64-apple-)?darwin12.1.0'
|
901
|
+
name: 'Mac'
|
902
|
+
version: '10.8.1'
|
903
|
+
|
460
904
|
- regex: 'CFNetwork/596'
|
461
905
|
name: 'Mac'
|
462
906
|
version: '10.8'
|
463
907
|
|
908
|
+
- regex: 'CFNetwork/.+ Darwin/11.5.0.*(x86_64)|(x86_64-apple-)?darwin11.5.0'
|
909
|
+
name: 'Mac'
|
910
|
+
version: '10.7.5'
|
911
|
+
|
912
|
+
- regex: 'CFNetwork/.+ Darwin/11.4.0.*(x86_64)|(x86_64-apple-)?darwin11.4.0'
|
913
|
+
name: 'Mac'
|
914
|
+
version: '10.7.4'
|
915
|
+
|
916
|
+
- regex: 'CFNetwork/.+ Darwin/11.3.0.*(x86_64)|(x86_64-apple-)?darwin11.3.0'
|
917
|
+
name: 'Mac'
|
918
|
+
version: '10.7.3'
|
919
|
+
|
920
|
+
- regex: 'CFNetwork/.+ Darwin/11.2.0.*(x86_64)|(x86_64-apple-)?darwin11.2.0'
|
921
|
+
name: 'Mac'
|
922
|
+
version: '10.7.2'
|
923
|
+
|
924
|
+
- regex: 'CFNetwork/.+ Darwin/11.1.0.*(x86_64)|(x86_64-apple-)?darwin11.1.0'
|
925
|
+
name: 'Mac'
|
926
|
+
version: '10.7.1'
|
927
|
+
|
464
928
|
- regex: 'CFNetwork/520'
|
465
929
|
name: 'Mac'
|
466
930
|
version: '10.7'
|
@@ -485,56 +949,59 @@
|
|
485
949
|
name: 'Mac'
|
486
950
|
version: '10.2'
|
487
951
|
|
488
|
-
- regex: 'Mac[ +]OS[ +]X(?:[ /](?:Version )?(\d+(?:[_\.]\d+)+))?'
|
952
|
+
- regex: 'Mac[ +]OS[ +]?X(?:[ /](?:Version )?(\d+(?:[_\.]\d+)+))?'
|
489
953
|
name: 'Mac'
|
490
954
|
version: '$1'
|
491
|
-
|
492
|
-
- regex: 'Mac (\d+(?:[_\.]\d+)+)'
|
955
|
+
|
956
|
+
- regex: 'Mac (?:OS/)?(\d+(?:[_\.]\d+)+)'
|
493
957
|
name: 'Mac'
|
494
958
|
version: '$1'
|
495
959
|
|
496
|
-
- regex: '
|
960
|
+
- regex: 'macOS/(\d+[\.\d]+)'
|
961
|
+
name: 'Mac'
|
962
|
+
version: '$1'
|
963
|
+
|
964
|
+
- regex: 'Darwin|Macintosh|Mac_PowerPC|PPC|Mac PowerPC|iMac|MacBook|macOS|Sonos/.+\(MDCR_'
|
497
965
|
name: 'Mac'
|
498
966
|
version: ''
|
499
|
-
|
500
|
-
|
501
|
-
|
967
|
+
|
968
|
+
##########
|
969
|
+
# SeewoOS
|
970
|
+
##########
|
971
|
+
- regex: 'SeewoOS x86_64 (\d+[\.\d]+)'
|
972
|
+
name: 'SeewoOS'
|
973
|
+
version: '$1'
|
974
|
+
|
502
975
|
##########
|
503
976
|
# ChromeOS
|
504
977
|
##########
|
505
978
|
- regex: 'CrOS [a-z0-9_]+ .* Chrome/(\d+[\.\d]+)'
|
506
979
|
name: 'Chrome OS'
|
507
980
|
version: '$1'
|
508
|
-
|
509
|
-
|
510
|
-
|
981
|
+
|
511
982
|
##########
|
512
983
|
# BlackBerry
|
513
984
|
##########
|
514
985
|
- regex: '(?:BB10;.+Version|Black[Bb]erry[0-9a-z]+|Black[Bb]erry.+Version)/(\d+[\.\d]+)'
|
515
986
|
name: 'BlackBerry OS'
|
516
987
|
version: '$1'
|
517
|
-
|
518
|
-
|
988
|
+
|
519
989
|
- regex: 'RIM Tablet OS (\d+[\.\d]+)'
|
520
990
|
name: 'BlackBerry Tablet OS'
|
521
991
|
version: '$1'
|
522
|
-
|
523
|
-
|
992
|
+
|
524
993
|
- regex: 'RIM Tablet OS|QNX|Play[Bb]ook'
|
525
994
|
name: 'BlackBerry Tablet OS'
|
526
995
|
version: ''
|
527
|
-
|
528
|
-
|
996
|
+
|
529
997
|
- regex: 'BlackBerry'
|
530
998
|
name: 'BlackBerry OS'
|
531
999
|
version: ''
|
532
|
-
|
1000
|
+
|
533
1001
|
- regex: 'bPod'
|
534
1002
|
name: 'BlackBerry OS'
|
535
1003
|
version: ''
|
536
1004
|
|
537
|
-
|
538
1005
|
##########
|
539
1006
|
# BeOS
|
540
1007
|
##########
|
@@ -542,9 +1009,6 @@
|
|
542
1009
|
name: 'BeOS'
|
543
1010
|
version: ''
|
544
1011
|
|
545
|
-
|
546
|
-
|
547
|
-
|
548
1012
|
##########
|
549
1013
|
# Symbian
|
550
1014
|
##########
|
@@ -552,48 +1016,38 @@
|
|
552
1016
|
name: 'Symbian^3'
|
553
1017
|
version: 'Anna'
|
554
1018
|
|
555
|
-
|
556
1019
|
- regex: 'Symbian/3.+NokiaBrowser/7\.4'
|
557
1020
|
name: 'Symbian^3'
|
558
1021
|
version: 'Belle'
|
559
1022
|
|
560
|
-
|
561
1023
|
- regex: 'Symbian/3'
|
562
1024
|
name: 'Symbian^3'
|
563
1025
|
version: ''
|
564
1026
|
|
565
|
-
|
566
1027
|
- regex: '(?:Series ?60|SymbOS|S60)(?:[ /]?(\d+[\.\d]+|V\d+))?'
|
567
1028
|
name: 'Symbian OS Series 60'
|
568
1029
|
version: '$1'
|
569
1030
|
|
570
|
-
|
571
1031
|
- regex: 'Series40'
|
572
1032
|
name: 'Symbian OS Series 40'
|
573
1033
|
version: ''
|
574
1034
|
|
575
|
-
|
576
1035
|
- regex: 'SymbianOS/(\d+[\.\d]+)'
|
577
1036
|
name: 'Symbian OS'
|
578
1037
|
version: '$1'
|
579
|
-
|
580
|
-
|
1038
|
+
|
581
1039
|
- regex: 'MeeGo|WeTab'
|
582
1040
|
name: 'MeeGo'
|
583
1041
|
version: ''
|
584
|
-
|
585
|
-
|
1042
|
+
|
586
1043
|
- regex: 'Symbian(?: OS)?|SymbOS'
|
587
1044
|
name: 'Symbian OS'
|
588
1045
|
version: ''
|
589
|
-
|
590
|
-
|
1046
|
+
|
591
1047
|
- regex: 'Nokia'
|
592
1048
|
name: 'Symbian'
|
593
1049
|
version: ''
|
594
1050
|
|
595
|
-
|
596
|
-
|
597
1051
|
##########
|
598
1052
|
# Firefox OS
|
599
1053
|
##########
|
@@ -601,7 +1055,6 @@
|
|
601
1055
|
name: 'Firefox OS'
|
602
1056
|
version: ''
|
603
1057
|
|
604
|
-
|
605
1058
|
##########
|
606
1059
|
# RISC OS
|
607
1060
|
##########
|
@@ -609,7 +1062,6 @@
|
|
609
1062
|
name: 'RISC OS'
|
610
1063
|
version: '$1'
|
611
1064
|
|
612
|
-
|
613
1065
|
##########
|
614
1066
|
# Inferno
|
615
1067
|
##########
|
@@ -617,50 +1069,41 @@
|
|
617
1069
|
name: 'Inferno'
|
618
1070
|
version: '$1'
|
619
1071
|
|
620
|
-
|
621
1072
|
##########
|
622
1073
|
# Bada
|
623
1074
|
##########
|
624
|
-
- regex: 'bada(?:[ /](\d+[\.\d]+))'
|
1075
|
+
- regex: 'bada(?:[ /](\d+[\.\d]+))?'
|
625
1076
|
name: 'Bada'
|
626
1077
|
version: '$1'
|
627
|
-
|
628
|
-
|
629
|
-
- regex: 'bada'
|
630
|
-
name: 'Bada'
|
631
|
-
version: ''
|
632
1078
|
|
1079
|
+
##########
|
1080
|
+
# REX
|
1081
|
+
##########
|
1082
|
+
- regex: 'REX; U;'
|
1083
|
+
name: 'REX'
|
1084
|
+
version: ''
|
633
1085
|
|
634
1086
|
##########
|
635
1087
|
# Brew
|
636
1088
|
##########
|
637
|
-
- regex: '(?:Brew MP
|
1089
|
+
- regex: '(?:Brew(?!-Applet)(?: MP)?|BMP)(?:[ /](\d+[\.\d]+))?'
|
638
1090
|
name: 'Brew'
|
639
1091
|
version: '$1'
|
640
1092
|
|
641
|
-
|
642
|
-
- regex: 'Brew MP|BREW|BMP'
|
643
|
-
name: 'Brew'
|
644
|
-
version: ''
|
645
|
-
|
646
|
-
|
647
1093
|
##########
|
648
1094
|
# Web TV
|
649
1095
|
##########
|
650
1096
|
- regex: 'GoogleTV(?:[ /](\d+[\.\d]+))?'
|
651
1097
|
name: 'Google TV'
|
652
1098
|
version: '$1'
|
653
|
-
|
654
|
-
|
1099
|
+
|
655
1100
|
- regex: 'AppleTV(?:/?(\d+[\.\d]+))?'
|
656
1101
|
name: 'Apple TV'
|
657
1102
|
version: '$1'
|
658
|
-
|
659
|
-
|
1103
|
+
|
660
1104
|
- regex: 'WebTV/(\d+[\.\d]+)'
|
661
1105
|
name: 'WebTV'
|
662
1106
|
version: '$1'
|
663
|
-
|
664
1107
|
|
665
1108
|
##########
|
666
1109
|
# Remix OS
|
@@ -677,61 +1120,49 @@
|
|
677
1120
|
name: 'Remix OS'
|
678
1121
|
version: ''
|
679
1122
|
|
680
|
-
|
681
1123
|
##########
|
682
1124
|
# Unix
|
683
1125
|
##########
|
684
1126
|
- regex: '(?:SunOS|Solaris)(?:[/ ](\d+[\.\d]+))?'
|
685
1127
|
name: 'Solaris'
|
686
1128
|
version: '$1'
|
687
|
-
|
688
|
-
|
1129
|
+
|
689
1130
|
- regex: 'AIX(?:[/ ]?(\d+[\.\d]+))?'
|
690
1131
|
name: 'AIX'
|
691
1132
|
version: '$1'
|
692
|
-
|
693
|
-
|
1133
|
+
|
694
1134
|
- regex: 'HP-UX(?:[/ ]?(\d+[\.\d]+))?'
|
695
1135
|
name: 'HP-UX'
|
696
1136
|
version: '$1'
|
697
|
-
|
698
|
-
|
1137
|
+
|
699
1138
|
- regex: 'FreeBSD(?:[/ ]?(\d+[\.\d]+))?'
|
700
1139
|
name: 'FreeBSD'
|
701
1140
|
version: '$1'
|
702
|
-
|
703
|
-
|
1141
|
+
|
704
1142
|
- regex: 'NetBSD(?:[/ ]?(\d+[\.\d]+))?'
|
705
1143
|
name: 'NetBSD'
|
706
1144
|
version: '$1'
|
707
|
-
|
708
|
-
|
1145
|
+
|
709
1146
|
- regex: 'OpenBSD(?:[/ ]?(\d+[\.\d]+))?'
|
710
1147
|
name: 'OpenBSD'
|
711
1148
|
version: '$1'
|
712
|
-
|
713
|
-
|
1149
|
+
|
714
1150
|
- regex: 'DragonFly(?:[/ ]?(\d+[\.\d]+))?'
|
715
1151
|
name: 'DragonFly'
|
716
1152
|
version: '$1'
|
717
|
-
|
718
|
-
|
1153
|
+
|
719
1154
|
- regex: 'Syllable(?:[/ ]?(\d+[\.\d]+))?'
|
720
1155
|
name: 'Syllable'
|
721
1156
|
version: '$1'
|
722
|
-
|
723
|
-
|
1157
|
+
|
724
1158
|
- regex: 'IRIX(?:;64)?(?:[/ ]?(\d+[\.\d]+))'
|
725
1159
|
name: 'IRIX'
|
726
1160
|
version: '$1'
|
727
|
-
|
728
|
-
|
1161
|
+
|
729
1162
|
- regex: 'OSF1(?:[/ ]?v?(\d+[\.\d]+))?'
|
730
1163
|
name: 'OSF1'
|
731
1164
|
version: '$1'
|
732
|
-
|
733
|
-
|
734
|
-
|
1165
|
+
|
735
1166
|
##########
|
736
1167
|
# Gaming Console
|
737
1168
|
##########
|
@@ -739,45 +1170,42 @@
|
|
739
1170
|
name: 'Nintendo'
|
740
1171
|
version: '$1'
|
741
1172
|
|
742
|
-
- regex: 'PlayStation ?([
|
1173
|
+
- regex: 'PlayStation ?([34])'
|
743
1174
|
name: 'PlayStation'
|
744
1175
|
version: '$1'
|
745
|
-
|
746
|
-
|
1176
|
+
|
747
1177
|
- regex: 'Xbox|KIN\.(?:One|Two)'
|
748
1178
|
name: 'Xbox'
|
749
1179
|
version: '360'
|
750
|
-
|
751
|
-
|
752
|
-
|
1180
|
+
|
753
1181
|
##########
|
754
1182
|
# Mobile Gaming Console
|
755
1183
|
##########
|
756
1184
|
- regex: 'Nitro|Nintendo ([3]?DS[i]?)'
|
757
1185
|
name: 'Nintendo Mobile'
|
758
1186
|
version: '$1'
|
759
|
-
|
760
|
-
|
1187
|
+
|
761
1188
|
- regex: 'PlayStation ((?:Portable|Vita))'
|
762
1189
|
name: 'PlayStation Portable'
|
763
1190
|
version: '$1'
|
764
|
-
|
765
|
-
|
766
|
-
|
1191
|
+
|
767
1192
|
##########
|
768
1193
|
# IBM
|
769
1194
|
##########
|
770
1195
|
- regex: 'OS/2'
|
771
1196
|
name: 'OS/2'
|
772
1197
|
version: ''
|
773
|
-
|
774
|
-
|
775
1198
|
|
776
1199
|
###########
|
777
1200
|
# Linux (Generic)
|
778
1201
|
###########
|
779
|
-
- regex: 'Linux(?:OS)?[^a-z]'
|
1202
|
+
- regex: 'Linux(?:OS)?[^a-z]|Cinnamon/(?:\d+[\.\d]+)'
|
780
1203
|
name: 'GNU/Linux'
|
781
1204
|
version: ''
|
782
1205
|
|
783
|
-
|
1206
|
+
##########
|
1207
|
+
# Java ME (Java Platform, Micro Edition)
|
1208
|
+
##########
|
1209
|
+
- regex: 'Java ME|(J2ME|Profile)/MIDP|MIDP-(?:\d+[\.\d]+)/CLDC|Configuration/CLDC|Java; U; MIDP|MMP/\d.\d'
|
1210
|
+
name: 'Java ME'
|
1211
|
+
version: ''
|