device_detector 1.0.5 → 1.0.6
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/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: ''
|