device_detector 1.0.1 → 1.0.5
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 +5 -5
- data/.rubocop.yml +49 -0
- data/.ruby-version +1 -0
- data/.travis.yml +5 -10
- data/CHANGELOG.md +14 -1
- data/README.md +6 -6
- data/Rakefile +20 -13
- data/device_detector.gemspec +1 -0
- data/lib/device_detector.rb +30 -26
- data/lib/device_detector/bot.rb +2 -2
- data/lib/device_detector/client.rb +3 -2
- data/lib/device_detector/device.rb +46 -20
- data/lib/device_detector/memory_cache.rb +26 -19
- data/lib/device_detector/metadata_extractor.rb +7 -8
- data/lib/device_detector/model_extractor.rb +3 -3
- data/lib/device_detector/name_extractor.rb +2 -2
- data/lib/device_detector/os.rb +121 -111
- data/lib/device_detector/parser.rb +22 -9
- data/lib/device_detector/version.rb +3 -1
- data/lib/device_detector/version_extractor.rb +2 -3
- data/regexes/bots.yml +442 -19
- data/regexes/client/browser_engine.yml +7 -1
- data/regexes/client/browsers.yml +773 -103
- data/regexes/client/feed_readers.yml +14 -8
- data/regexes/client/libraries.yml +43 -2
- data/regexes/client/mediaplayers.yml +21 -5
- data/regexes/client/mobile_apps.yml +131 -1
- data/regexes/client/pim.yml +6 -1
- data/regexes/device/cameras.yml +1 -1
- data/regexes/device/car_browsers.yml +7 -3
- data/regexes/device/consoles.yml +3 -3
- data/regexes/device/mobiles.yml +11365 -791
- data/regexes/device/notebooks.yml +114 -0
- data/regexes/device/portable_media_player.yml +2 -2
- data/regexes/device/televisions.yml +17 -3
- data/regexes/oss.yml +115 -47
- data/regexes/vendorfragments.yml +6 -2
- data/spec/device_detector/concrete_user_agent_spec.rb +16 -17
- data/spec/device_detector/detector_fixtures_spec.rb +30 -35
- data/spec/device_detector/device_spec.rb +28 -48
- data/spec/device_detector/memory_cache_spec.rb +60 -28
- data/spec/device_detector/model_extractor_spec.rb +3 -3
- data/spec/device_detector/version_extractor_spec.rb +5 -6
- data/spec/device_detector_spec.rb +49 -78
- data/spec/fixtures/client/browser.yml +1521 -406
- data/spec/fixtures/client/feed_reader.yml +39 -51
- data/spec/fixtures/client/library.yml +72 -11
- data/spec/fixtures/client/mediaplayer.yml +29 -40
- data/spec/fixtures/client/mobile_app.yml +172 -32
- data/spec/fixtures/client/pim.yml +32 -19
- data/spec/fixtures/detector/bots.yml +854 -19
- data/spec/fixtures/detector/camera.yml +22 -2
- data/spec/fixtures/detector/car_browser.yml +60 -0
- data/spec/fixtures/detector/console.yml +43 -3
- data/spec/fixtures/detector/desktop.yml +2860 -1527
- data/spec/fixtures/detector/feature_phone.yml +69 -1
- data/spec/fixtures/detector/feed_reader.yml +158 -130
- data/spec/fixtures/detector/mediaplayer.yml +113 -39
- data/spec/fixtures/detector/mobile_apps.yml +262 -89
- data/spec/fixtures/detector/phablet.yml +3444 -663
- data/spec/fixtures/detector/portable_media_player.yml +57 -0
- data/spec/fixtures/detector/smart_speaker.yml +55 -0
- data/spec/fixtures/detector/smartphone-1.yml +4739 -4765
- data/spec/fixtures/detector/smartphone-10.yml +9973 -0
- data/spec/fixtures/detector/smartphone-11.yml +10015 -0
- data/spec/fixtures/detector/smartphone-12.yml +9897 -0
- data/spec/fixtures/detector/smartphone-13.yml +9912 -0
- data/spec/fixtures/detector/smartphone-14.yml +9935 -0
- data/spec/fixtures/detector/smartphone-15.yml +6595 -0
- data/spec/fixtures/detector/smartphone-16.yml +10021 -0
- data/spec/fixtures/detector/smartphone-17.yml +9408 -0
- data/spec/fixtures/detector/smartphone-2.yml +4265 -4238
- data/spec/fixtures/detector/smartphone-3.yml +4487 -4391
- data/spec/fixtures/detector/smartphone-4.yml +4210 -4179
- data/spec/fixtures/detector/smartphone-5.yml +5794 -2901
- data/spec/fixtures/detector/smartphone-6.yml +10114 -0
- data/spec/fixtures/detector/smartphone-7.yml +9975 -0
- data/spec/fixtures/detector/smartphone-8.yml +9897 -0
- data/spec/fixtures/detector/smartphone-9.yml +9880 -0
- data/spec/fixtures/detector/smartphone.yml +4152 -4048
- data/spec/fixtures/detector/tablet-1.yml +3997 -3991
- data/spec/fixtures/detector/tablet-2.yml +6820 -1935
- data/spec/fixtures/detector/tablet-3.yml +9968 -0
- data/spec/fixtures/detector/tablet-4.yml +7113 -0
- data/spec/fixtures/detector/tablet.yml +3789 -3804
- data/spec/fixtures/detector/tv.yml +3889 -1495
- data/spec/fixtures/detector/unknown.yml +45 -179
- data/spec/fixtures/detector/wearable.yml +61 -0
- data/spec/fixtures/device/camera.yml +4 -3
- data/spec/fixtures/device/car_browser.yml +9 -2
- data/spec/fixtures/device/console.yml +15 -14
- data/spec/fixtures/device/notebook.yml +7 -0
- data/spec/fixtures/parser/oss.yml +177 -0
- data/spec/fixtures/parser/vendorfragments.yml +6 -0
- metadata +57 -7
@@ -0,0 +1,114 @@
|
|
1
|
+
###############
|
2
|
+
# Device Detector - The Universal Device Detection library for parsing User Agents
|
3
|
+
#
|
4
|
+
# @link https://matomo.org
|
5
|
+
# @license http://www.gnu.org/licenses/lgpl.html LGPL v3 or later
|
6
|
+
###############
|
7
|
+
|
8
|
+
Acer:
|
9
|
+
regex: 'FBMD/(?:Aspire E5-421G|Z5WAL|One S1003);'
|
10
|
+
device: 'desktop'
|
11
|
+
models:
|
12
|
+
- regex: 'FBMD/Aspire E5-421G;'
|
13
|
+
model: 'Aspire E5-421G'
|
14
|
+
- regex: 'FBMD/Z5WAL;'
|
15
|
+
model: 'Aspire E5-511'
|
16
|
+
- regex: 'FBMD/One S1003;'
|
17
|
+
model: 'One 10'
|
18
|
+
|
19
|
+
Asus:
|
20
|
+
regex: 'FBMD/(?:K50IN|K54L|T100HAN|T103HAF|UX360CAK|X550LB|X553MA|X555LN|X556UQK);'
|
21
|
+
device: 'desktop'
|
22
|
+
models:
|
23
|
+
- regex: 'FBMD/K50IN;'
|
24
|
+
model: 'K50IN'
|
25
|
+
- regex: 'FBMD/K54L;'
|
26
|
+
model: 'K54L'
|
27
|
+
- regex: 'FBMD/T100HAN;'
|
28
|
+
model: 'Transformer Book'
|
29
|
+
- regex: 'FBMD/T103HAF;'
|
30
|
+
model: 'Transformer Mini'
|
31
|
+
- regex: 'FBMD/UX360CAK;'
|
32
|
+
model: 'ZenBook Flip'
|
33
|
+
- regex: 'FBMD/X550LB;'
|
34
|
+
model: 'X550LB'
|
35
|
+
- regex: 'FBMD/X553MA;'
|
36
|
+
model: 'X553MA'
|
37
|
+
- regex: 'FBMD/X555LN;'
|
38
|
+
model: 'X555LN'
|
39
|
+
- regex: 'FBMD/X556UQK;'
|
40
|
+
model: 'X556UQK'
|
41
|
+
|
42
|
+
Dell:
|
43
|
+
regex: 'FBMD/(?:Latitude E4300|Inspiron 3541|XPS 15 95[35]0);'
|
44
|
+
device: 'desktop'
|
45
|
+
models:
|
46
|
+
- regex: 'Latitude E4300'
|
47
|
+
model: 'Latitude E4300'
|
48
|
+
- regex: 'Inspiron 3541'
|
49
|
+
model: 'Inspiron 3541'
|
50
|
+
- regex: 'XPS 15 9530'
|
51
|
+
model: 'XPS 15 9530'
|
52
|
+
- regex: 'XPS 15 9550'
|
53
|
+
model: 'XPS 15 9550'
|
54
|
+
|
55
|
+
HP:
|
56
|
+
regex: 'FBMD/((?:Compaq|HP) |23-f364)'
|
57
|
+
device: 'desktop'
|
58
|
+
models:
|
59
|
+
- regex: 'Compaq Presario CQ61 Notebook PC'
|
60
|
+
model: 'Compaq Presario CQ61'
|
61
|
+
- regex: 'HP Pavilion x2 Detachable'
|
62
|
+
model: 'Pavilion x2'
|
63
|
+
- regex: 'HP Laptop 15-bs0xx'
|
64
|
+
model: '15 Laptop PC'
|
65
|
+
- regex: 'HP ENVY x360 Convertible 15-bp0xx'
|
66
|
+
model: 'ENVY x360 Convertible PC'
|
67
|
+
- regex: 'HP EliteBook (25[67]0p)'
|
68
|
+
model: 'EliteBook $1'
|
69
|
+
- regex: 'HP ProBook (440 G5|6[35]60b)'
|
70
|
+
model: 'ProBook $1'
|
71
|
+
- regex: 'HP Pavilion dv6 Notebook PC'
|
72
|
+
model: 'Pavilion dv6'
|
73
|
+
- regex: 'HP Pavilion Notebook'
|
74
|
+
model: 'Pavilion'
|
75
|
+
- regex: 'HP Spectre x360 Convertible'
|
76
|
+
model: 'Spectre x360'
|
77
|
+
- regex: 'HP Pavilion All-in-One 24-r0xx'
|
78
|
+
model: 'Pavilion 24-r0xx All-in-One Desktop PC'
|
79
|
+
device: 'desktop'
|
80
|
+
- regex: '23-f364'
|
81
|
+
model: 'Pavilion TouchSmart 23-f364 All-in-One Desktop PC'
|
82
|
+
device: 'desktop'
|
83
|
+
|
84
|
+
Lenovo:
|
85
|
+
regex: 'FBMD/(?:37021C5|80E5|80SM|80VR);'
|
86
|
+
device: 'desktop'
|
87
|
+
models:
|
88
|
+
- regex: 'FBMD/37021C5;'
|
89
|
+
model: 'ThinkPad Helix 3702'
|
90
|
+
- regex: 'FBMD/80E5;'
|
91
|
+
model: 'G50-80'
|
92
|
+
- regex: 'FBMD/80SM;'
|
93
|
+
model: 'Ideapad 310-15ISK'
|
94
|
+
- regex: 'FBMD/80VR;'
|
95
|
+
model: 'Legion Y720'
|
96
|
+
|
97
|
+
Schneider:
|
98
|
+
regex: 'FBMD/SCL141CTP;'
|
99
|
+
device: 'desktop'
|
100
|
+
model: 'Notebook 14" Cherry Trail'
|
101
|
+
|
102
|
+
Thomson:
|
103
|
+
regex: 'FBMD/TH360R12.32CTW;'
|
104
|
+
device: 'desktop'
|
105
|
+
model: 'Prestige TH-360R12.32CTW'
|
106
|
+
|
107
|
+
Toshiba:
|
108
|
+
regex: 'FBMD/Satellite '
|
109
|
+
device: 'desktop'
|
110
|
+
models:
|
111
|
+
- regex: 'Satellite (A[25]00|C650|C855|L650|S855)'
|
112
|
+
model: 'Satellite $1'
|
113
|
+
- regex: 'Satellite ([^;\)]+);'
|
114
|
+
model: 'Satellite $1'
|
@@ -1,7 +1,7 @@
|
|
1
1
|
###############
|
2
2
|
# Device Detector - The Universal Device Detection library for parsing User Agents
|
3
3
|
#
|
4
|
-
# @link
|
4
|
+
# @link https://matomo.org
|
5
5
|
# @license http://www.gnu.org/licenses/lgpl.html LGPL v3 or later
|
6
6
|
###############
|
7
7
|
|
@@ -56,4 +56,4 @@ Samsung:
|
|
56
56
|
- regex: 'YP-G50'
|
57
57
|
model: 'Galaxy Player 50'
|
58
58
|
- regex: 'YP-GB70D'
|
59
|
-
model: 'Galaxy Player 70 Plus'
|
59
|
+
model: 'Galaxy Player 70 Plus'
|
@@ -1,7 +1,7 @@
|
|
1
1
|
###############
|
2
2
|
# Device Detector - The Universal Device Detection library for parsing User Agents
|
3
3
|
#
|
4
|
-
# @link
|
4
|
+
# @link https://matomo.org
|
5
5
|
# @license http://www.gnu.org/licenses/lgpl.html LGPL v3 or later
|
6
6
|
#
|
7
7
|
# ATTENTION: This file may only include tv user agents that contain 'HbbTV/([1-9]{1}(\.[0-9]{1}){1,2})'
|
@@ -258,14 +258,28 @@ TCL:
|
|
258
258
|
regex: 'TCL'
|
259
259
|
device: 'tv'
|
260
260
|
models:
|
261
|
+
- regex: '(32D1820)'
|
262
|
+
model: '$1'
|
261
263
|
- regex: '(LF1V[0-9]{3})'
|
262
264
|
model: '$1'
|
263
265
|
|
264
266
|
# Thomson
|
265
267
|
Thomson:
|
266
|
-
regex: 'THOMSON
|
268
|
+
regex: 'THOMSON[,]?|THOM'
|
267
269
|
device: 'tv'
|
268
270
|
models:
|
271
|
+
- regex: '(TB28D19DHS-01|T28D18SFS-01B)'
|
272
|
+
model: '$1 28.0"'
|
273
|
+
- regex: '(T32RTM5040|T32D18SFS-01B)'
|
274
|
+
model: '$1 32.0"'
|
275
|
+
- regex: '(T43FSL5031|T43D18SFS-01B)'
|
276
|
+
model: '$1 43.0"'
|
277
|
+
- regex: '(T40D18SFS-01B)'
|
278
|
+
model: '$1 40.0"'
|
279
|
+
- regex: '(T49D18SFS-01B)'
|
280
|
+
model: '$1 49.0"'
|
281
|
+
- regex: '(T55D18[SD]FS-01B)'
|
282
|
+
model: '$1 55.0"'
|
269
283
|
- regex: '(LF1V[0-9]{3})'
|
270
284
|
model: '$1'
|
271
285
|
|
@@ -293,4 +307,4 @@ Videoweb:
|
|
293
307
|
- regex: '(tv2n)'
|
294
308
|
model: '$1'
|
295
309
|
- regex: '(videowebtv)'
|
296
|
-
model: 'VideoWeb TV'
|
310
|
+
model: 'VideoWeb TV'
|
data/regexes/oss.yml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
###############
|
2
2
|
# Device Detector - The Universal Device Detection library for parsing User Agents
|
3
3
|
#
|
4
|
-
# @link
|
4
|
+
# @link https://matomo.org
|
5
5
|
# @license http://www.gnu.org/licenses/lgpl.html LGPL v3 or later
|
6
6
|
###############
|
7
7
|
|
@@ -31,7 +31,7 @@
|
|
31
31
|
##########
|
32
32
|
# Windows Mobile
|
33
33
|
##########
|
34
|
-
- regex: 'Windows Phone (?:OS)
|
34
|
+
- regex: '(?:Windows Phone (?:OS)?|wds)[ ]?(\d+[\.\d]+)'
|
35
35
|
name: 'Windows Phone'
|
36
36
|
version: '$1'
|
37
37
|
|
@@ -65,6 +65,13 @@
|
|
65
65
|
name: 'Windows IoT'
|
66
66
|
version: '10'
|
67
67
|
|
68
|
+
##########
|
69
|
+
# KaiOS
|
70
|
+
##########
|
71
|
+
- regex: 'KAIOS(?:/(\d+[\.\d]+))?'
|
72
|
+
name: 'KaiOS'
|
73
|
+
version: '$1'
|
74
|
+
|
68
75
|
##########
|
69
76
|
# Custom Android Roms
|
70
77
|
##########
|
@@ -84,18 +91,33 @@
|
|
84
91
|
name: 'MocorDroid'
|
85
92
|
version: '$1'
|
86
93
|
|
94
|
+
- regex: 'Fire OS(?:/(\d+[\.\d]*))?'
|
95
|
+
name: 'Fire OS'
|
96
|
+
version: '$1'
|
97
|
+
|
87
98
|
##########
|
88
99
|
# Android
|
89
100
|
##########
|
90
|
-
- regex: '
|
101
|
+
- regex: '[ ]([\d\.]+)\) AppleWebKit.*ROBLOX Android App'
|
102
|
+
name: 'Android'
|
103
|
+
version: '$1'
|
104
|
+
|
105
|
+
- regex: '(?:(?:Orca-)?Android|Adr)[ /](?:[a-z]+ )?(\d+[\.\d]*)'
|
91
106
|
name: 'Android'
|
92
107
|
version: '$1'
|
93
|
-
|
94
108
|
|
95
109
|
- regex: 'Android|Silk-Accelerated=[a-z]{4,5}'
|
96
110
|
name: 'Android'
|
97
111
|
version: ''
|
98
112
|
|
113
|
+
- regex: '(?:TwitterAndroid).*[ /](?:[a-z]+ )?(\d+[\.\d]*)'
|
114
|
+
name: 'Android'
|
115
|
+
version: '$1'
|
116
|
+
|
117
|
+
- regex: 'FB4A.*FBSV/(\d+[\.\d]*);'
|
118
|
+
name: 'Android'
|
119
|
+
version: '$1'
|
120
|
+
|
99
121
|
- regex: 'BeyondPod|AntennaPod|Podkicker|DoggCatcher|Player FM|okhttp|Podcatcher Deluxe'
|
100
122
|
name: 'Android'
|
101
123
|
version: ''
|
@@ -132,6 +154,14 @@
|
|
132
154
|
##########
|
133
155
|
# Linux
|
134
156
|
##########
|
157
|
+
- regex: '(Ordissimo|webissimo3)'
|
158
|
+
name: 'Ordissimo'
|
159
|
+
version: ''
|
160
|
+
|
161
|
+
- regex: 'TOS; Linux'
|
162
|
+
name: 'TmaxOS'
|
163
|
+
version: ''
|
164
|
+
|
135
165
|
- regex: 'Maemo'
|
136
166
|
name: 'Maemo'
|
137
167
|
version: ''
|
@@ -157,7 +187,7 @@
|
|
157
187
|
##########
|
158
188
|
# webOS
|
159
189
|
##########
|
160
|
-
- regex: '(?:webOS|Palm webOS)(?:/(\d+[\.\d]+))?'
|
190
|
+
- regex: '(?:webOS|web0S|Palm webOS)(?:/(\d+[\.\d]+))?'
|
161
191
|
name: 'webOS'
|
162
192
|
version: '$1'
|
163
193
|
|
@@ -182,79 +212,118 @@
|
|
182
212
|
name: 'Windows'
|
183
213
|
version: '10'
|
184
214
|
|
185
|
-
- regex: 'CYGWIN_NT-6.4|Windows NT 6.4|Windows 10'
|
215
|
+
- regex: 'CYGWIN_NT-6.4|Windows NT 6.4|Windows 10|win10'
|
186
216
|
name: 'Windows'
|
187
217
|
version: '10'
|
188
|
-
|
218
|
+
|
189
219
|
- regex: 'CYGWIN_NT-6.3|Windows NT 6.3|Windows 8.1'
|
190
220
|
name: 'Windows'
|
191
221
|
version: '8.1'
|
192
222
|
|
193
|
-
|
194
223
|
- regex: 'CYGWIN_NT-6.2|Windows NT 6.2|Windows 8'
|
195
224
|
name: 'Windows'
|
196
225
|
version: '8'
|
197
|
-
|
198
|
-
|
199
|
-
- regex: 'CYGWIN_NT-6.1|Windows NT 6.1|Windows 7'
|
226
|
+
|
227
|
+
- regex: 'CYGWIN_NT-6.1|Windows NT 6.1|Windows 7|win7'
|
200
228
|
name: 'Windows'
|
201
229
|
version: '7'
|
202
|
-
|
203
|
-
|
230
|
+
|
204
231
|
- regex: 'CYGWIN_NT-6.0|Windows NT 6.0|Windows Vista'
|
205
232
|
name: 'Windows'
|
206
233
|
version: 'Vista'
|
207
|
-
|
208
|
-
|
234
|
+
|
209
235
|
- regex: 'CYGWIN_NT-5.2|Windows NT 5.2|Windows Server 2003 / XP x64'
|
210
236
|
name: 'Windows'
|
211
237
|
version: 'Server 2003'
|
212
|
-
|
213
|
-
|
238
|
+
|
214
239
|
- regex: 'CYGWIN_NT-5.1|Windows NT 5.1|Windows XP'
|
215
240
|
name: 'Windows'
|
216
241
|
version: 'XP'
|
217
|
-
|
218
|
-
|
242
|
+
|
219
243
|
- regex: 'CYGWIN_NT-5.0|Windows NT 5.0|Windows 2000'
|
220
244
|
name: 'Windows'
|
221
245
|
version: '2000'
|
222
|
-
|
223
|
-
|
246
|
+
|
224
247
|
- regex: 'CYGWIN_NT-4.0|Windows NT 4.0|WinNT|Windows NT'
|
225
248
|
name: 'Windows'
|
226
249
|
version: 'NT'
|
227
|
-
|
228
|
-
|
250
|
+
|
229
251
|
- regex: 'CYGWIN_ME-4.90|Win 9x 4.90|Windows ME'
|
230
252
|
name: 'Windows'
|
231
253
|
version: 'ME'
|
232
|
-
|
233
|
-
|
254
|
+
|
234
255
|
- regex: 'CYGWIN_98-4.10|Win98|Windows 98'
|
235
256
|
name: 'Windows'
|
236
257
|
version: '98'
|
237
|
-
|
238
|
-
|
258
|
+
|
239
259
|
- regex: 'CYGWIN_95-4.0|Win32|Win95|Windows 95|Windows_95'
|
240
260
|
name: 'Windows'
|
241
261
|
version: '95'
|
242
|
-
|
243
|
-
|
262
|
+
|
244
263
|
- regex: 'Windows 3.1'
|
245
264
|
name: 'Windows'
|
246
265
|
version: '3.1'
|
247
|
-
|
248
|
-
|
266
|
+
|
267
|
+
- regex: 'FBW.*FBSV/(\d+[\.\d]*);'
|
268
|
+
name: 'Windows'
|
269
|
+
version: '$1'
|
270
|
+
|
249
271
|
- regex: 'Windows'
|
250
272
|
name: 'Windows'
|
251
273
|
version: ''
|
252
|
-
|
253
|
-
|
274
|
+
|
275
|
+
|
276
|
+
##########
|
277
|
+
# Haiku OS
|
278
|
+
##########
|
279
|
+
- regex: 'Haiku'
|
280
|
+
name: 'Haiku OS'
|
281
|
+
version: ''
|
282
|
+
|
254
283
|
|
255
284
|
##########
|
256
285
|
# iOS
|
257
286
|
##########
|
287
|
+
- regex: 'CFNetwork/889'
|
288
|
+
name: 'iOS'
|
289
|
+
version: '11.1'
|
290
|
+
|
291
|
+
- regex: 'CFNetwork/887.*(x86_64)'
|
292
|
+
name: 'Mac'
|
293
|
+
version: '10.13'
|
294
|
+
|
295
|
+
- regex: 'CFNetwork/887'
|
296
|
+
name: 'iOS'
|
297
|
+
version: '11.0'
|
298
|
+
|
299
|
+
- regex: 'CFNetwork/811.*(x86_64)'
|
300
|
+
name: 'Mac'
|
301
|
+
version: '10.12'
|
302
|
+
|
303
|
+
- regex: 'CFNetwork/811'
|
304
|
+
name: 'iOS'
|
305
|
+
version: '10.3'
|
306
|
+
|
307
|
+
- regex: 'CFNetwork/808\.3'
|
308
|
+
name: 'iOS'
|
309
|
+
version: '10.3'
|
310
|
+
|
311
|
+
- regex: 'CFNetwork/808\.2'
|
312
|
+
name: 'iOS'
|
313
|
+
version: '10.2'
|
314
|
+
|
315
|
+
- regex: 'CFNetwork/808\.1'
|
316
|
+
name: 'iOS'
|
317
|
+
version: '10.1'
|
318
|
+
|
319
|
+
- regex: 'CFNetwork/808\.0'
|
320
|
+
name: 'iOS'
|
321
|
+
version: '10.0'
|
322
|
+
|
323
|
+
- regex: 'CFNetwork/808'
|
324
|
+
name: 'iOS'
|
325
|
+
version: '10'
|
326
|
+
|
258
327
|
- regex: 'CFNetwork/758\.4\.3'
|
259
328
|
name: 'iOS'
|
260
329
|
version: '9.3.2'
|
@@ -351,11 +420,15 @@
|
|
351
420
|
name: 'iOS'
|
352
421
|
version: '$1'
|
353
422
|
|
423
|
+
- regex: 'FBIOS.*FBSV/(\d+[\.\d]*);'
|
424
|
+
name: 'iOS'
|
425
|
+
version: '$1'
|
426
|
+
|
354
427
|
- regex: '(?:Apple-)?(?:iPhone|iPad|iPod)(?:.*Mac OS X.*Version/(\d+\.\d+)|; Opera)?'
|
355
428
|
name: 'iOS'
|
356
429
|
version: '$1'
|
357
430
|
|
358
|
-
- regex: 'Podcasts/(?:[\d\.]+)|Instacast(?:HD)?/(?:\d\.[\d\.abc]+)|Pocket Casts, iOS|Overcast|Castro|Podcat|i[cC]atcher'
|
431
|
+
- regex: 'Podcasts/(?:[\d\.]+)|Instacast(?:HD)?/(?:\d\.[\d\.abc]+)|Pocket Casts, iOS|Overcast|Castro|Podcat|i[cC]atcher|RSSRadio/'
|
359
432
|
name: 'iOS'
|
360
433
|
version: ''
|
361
434
|
|
@@ -368,6 +441,10 @@
|
|
368
441
|
# Mac
|
369
442
|
##########
|
370
443
|
|
444
|
+
- regex: 'CFNetwork/807'
|
445
|
+
name: 'Mac'
|
446
|
+
version: '10.12'
|
447
|
+
|
371
448
|
- regex: 'CFNetwork/760'
|
372
449
|
name: 'Mac'
|
373
450
|
version: '10.11'
|
@@ -408,7 +485,7 @@
|
|
408
485
|
name: 'Mac'
|
409
486
|
version: '10.2'
|
410
487
|
|
411
|
-
- regex: 'Mac OS X(?: (?:Version )?(\d+(?:[_\.]\d+)+))?'
|
488
|
+
- regex: 'Mac[ +]OS[ +]X(?:[ /](?:Version )?(\d+(?:[_\.]\d+)+))?'
|
412
489
|
name: 'Mac'
|
413
490
|
version: '$1'
|
414
491
|
|
@@ -458,14 +535,6 @@
|
|
458
535
|
version: ''
|
459
536
|
|
460
537
|
|
461
|
-
##########
|
462
|
-
# Haiku OS
|
463
|
-
##########
|
464
|
-
- regex: 'Haiku'
|
465
|
-
name: 'Haiku OS'
|
466
|
-
version: ''
|
467
|
-
|
468
|
-
|
469
538
|
##########
|
470
539
|
# BeOS
|
471
540
|
##########
|
@@ -666,11 +735,10 @@
|
|
666
735
|
##########
|
667
736
|
# Gaming Console
|
668
737
|
##########
|
669
|
-
- regex: 'Nintendo Wii'
|
738
|
+
- regex: 'Nintendo (Wii|Switch)'
|
670
739
|
name: 'Nintendo'
|
671
|
-
version: '
|
672
|
-
|
673
|
-
|
740
|
+
version: '$1'
|
741
|
+
|
674
742
|
- regex: 'PlayStation ?([3|4])'
|
675
743
|
name: 'PlayStation'
|
676
744
|
version: '$1'
|