device_detector 1.0.3 → 1.0.7

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.
Files changed (94) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +15 -0
  3. data/README.md +8 -7
  4. data/lib/device_detector/bot.rb +2 -2
  5. data/lib/device_detector/browser.rb +364 -0
  6. data/lib/device_detector/client.rb +11 -2
  7. data/lib/device_detector/device.rb +1247 -22
  8. data/lib/device_detector/memory_cache.rb +5 -5
  9. data/lib/device_detector/metadata_extractor.rb +7 -8
  10. data/lib/device_detector/model_extractor.rb +3 -3
  11. data/lib/device_detector/name_extractor.rb +2 -2
  12. data/lib/device_detector/os.rb +150 -116
  13. data/lib/device_detector/parser.rb +23 -10
  14. data/lib/device_detector/version.rb +1 -1
  15. data/lib/device_detector/version_extractor.rb +29 -2
  16. data/lib/device_detector.rb +73 -40
  17. data/regexes/bots.yml +868 -62
  18. data/regexes/client/browser_engine.yml +11 -2
  19. data/regexes/client/browsers.yml +1132 -112
  20. data/regexes/client/feed_readers.yml +5 -11
  21. data/regexes/client/libraries.yml +86 -2
  22. data/regexes/client/mediaplayers.yml +39 -3
  23. data/regexes/client/mobile_apps.yml +940 -66
  24. data/regexes/client/pim.yml +66 -3
  25. data/regexes/device/cameras.yml +6 -6
  26. data/regexes/device/car_browsers.yml +23 -3
  27. data/regexes/device/consoles.yml +15 -3
  28. data/regexes/device/mobiles.yml +18351 -3566
  29. data/regexes/device/notebooks.yml +114 -0
  30. data/regexes/device/portable_media_player.yml +36 -9
  31. data/regexes/device/shell_tv.yml +117 -0
  32. data/regexes/device/televisions.yml +440 -35
  33. data/regexes/oss.yml +635 -284
  34. data/regexes/vendorfragments.yml +5 -1
  35. metadata +21 -118
  36. data/.gitignore +0 -14
  37. data/.travis.yml +0 -14
  38. data/Gemfile +0 -8
  39. data/Rakefile +0 -96
  40. data/device_detector.gemspec +0 -26
  41. data/spec/device_detector/bot_fixtures_spec.rb +0 -30
  42. data/spec/device_detector/client_fixtures_spec.rb +0 -31
  43. data/spec/device_detector/concrete_user_agent_spec.rb +0 -135
  44. data/spec/device_detector/detector_fixtures_spec.rb +0 -100
  45. data/spec/device_detector/device_fixtures_spec.rb +0 -36
  46. data/spec/device_detector/device_spec.rb +0 -151
  47. data/spec/device_detector/memory_cache_spec.rb +0 -148
  48. data/spec/device_detector/model_extractor_spec.rb +0 -63
  49. data/spec/device_detector/os_fixtures_spec.rb +0 -26
  50. data/spec/device_detector/version_extractor_spec.rb +0 -79
  51. data/spec/device_detector_spec.rb +0 -189
  52. data/spec/fixtures/client/browser.yml +0 -2206
  53. data/spec/fixtures/client/feed_reader.yml +0 -199
  54. data/spec/fixtures/client/library.yml +0 -175
  55. data/spec/fixtures/client/mediaplayer.yml +0 -163
  56. data/spec/fixtures/client/mobile_app.yml +0 -193
  57. data/spec/fixtures/client/pim.yml +0 -115
  58. data/spec/fixtures/detector/bots.yml +0 -3260
  59. data/spec/fixtures/detector/camera.yml +0 -121
  60. data/spec/fixtures/detector/car_browser.yml +0 -21
  61. data/spec/fixtures/detector/console.yml +0 -281
  62. data/spec/fixtures/detector/desktop.yml +0 -5361
  63. data/spec/fixtures/detector/feature_phone.yml +0 -891
  64. data/spec/fixtures/detector/feed_reader.yml +0 -551
  65. data/spec/fixtures/detector/mediaplayer.yml +0 -210
  66. data/spec/fixtures/detector/mobile_apps.yml +0 -456
  67. data/spec/fixtures/detector/phablet.yml +0 -3785
  68. data/spec/fixtures/detector/portable_media_player.yml +0 -178
  69. data/spec/fixtures/detector/smart_display.yml +0 -61
  70. data/spec/fixtures/detector/smartphone-1.yml +0 -9953
  71. data/spec/fixtures/detector/smartphone-10.yml +0 -9924
  72. data/spec/fixtures/detector/smartphone-11.yml +0 -9889
  73. data/spec/fixtures/detector/smartphone-12.yml +0 -8655
  74. data/spec/fixtures/detector/smartphone-2.yml +0 -9967
  75. data/spec/fixtures/detector/smartphone-3.yml +0 -9887
  76. data/spec/fixtures/detector/smartphone-4.yml +0 -9911
  77. data/spec/fixtures/detector/smartphone-5.yml +0 -9933
  78. data/spec/fixtures/detector/smartphone-6.yml +0 -9923
  79. data/spec/fixtures/detector/smartphone-7.yml +0 -9892
  80. data/spec/fixtures/detector/smartphone-8.yml +0 -9896
  81. data/spec/fixtures/detector/smartphone-9.yml +0 -9928
  82. data/spec/fixtures/detector/smartphone.yml +0 -9984
  83. data/spec/fixtures/detector/tablet-1.yml +0 -10023
  84. data/spec/fixtures/detector/tablet-2.yml +0 -9968
  85. data/spec/fixtures/detector/tablet-3.yml +0 -7787
  86. data/spec/fixtures/detector/tablet.yml +0 -9951
  87. data/spec/fixtures/detector/tv.yml +0 -3333
  88. data/spec/fixtures/detector/unknown.yml +0 -3283
  89. data/spec/fixtures/device/camera.yml +0 -19
  90. data/spec/fixtures/device/car_browser.yml +0 -7
  91. data/spec/fixtures/device/console.yml +0 -79
  92. data/spec/fixtures/parser/oss.yml +0 -1047
  93. data/spec/fixtures/parser/vendorfragments.yml +0 -162
  94. data/spec/spec_helper.rb +0 -9
@@ -1,10 +1,728 @@
1
1
  ###############
2
2
  # Device Detector - The Universal Device Detection library for parsing User Agents
3
3
  #
4
- # @link http://piwik.org
4
+ # @link https://matomo.org
5
5
  # @license http://www.gnu.org/licenses/lgpl.html LGPL v3 or later
6
6
  ###############
7
7
 
8
+ # T+Browser (https://t.chanjet.com/tplus/view/login/downloadBrowser.html | https://dad.chanapp.chanjet.com/tplusapp/TPlusBrowser.exe)
9
+ - regex: 'T\+Browser/(\d+[\.\d]+)'
10
+ name: 'T+Browser'
11
+ version: '$1'
12
+ engine:
13
+ default: 'Blink'
14
+
15
+ # ChanjetCloud (https://dad.chanapp.chanjet.com/tplusapp/HsySetup.exe)
16
+ - regex: 'ChanjetCloud/(\d+[\.\d]+)'
17
+ name: 'ChanjetCloud'
18
+ version: '$1'
19
+ engine:
20
+ default: 'Blink'
21
+
22
+ # Sushi Browser (https://sushi-browser.com/)
23
+ - regex: 'SushiBrowser/(\d+[\.\d]+)'
24
+ name: 'Sushi Browser'
25
+ version: '$1'
26
+ engine:
27
+ default: 'Blink'
28
+
29
+ # Peeps dBrowser (https://peepsx.com/dbrowser.html)
30
+ - regex: 'dBrowser/(\d+[\.\d]+)'
31
+ name: 'Peeps dBrowser'
32
+ version: '$1'
33
+ engine:
34
+ default: 'Blink'
35
+
36
+ # LT Browser (https://www.lambdatest.com/lt-browser)
37
+ - regex: 'LTBrowser/(\d+[\.\d]+)'
38
+ name: 'LT Browser'
39
+ version: '$1'
40
+ engine:
41
+ default: 'Blink'
42
+
43
+ # Lagatos Browser (https://lagatos.com/)
44
+ - regex: 'lagatos-browser/(\d+[\.\d]+)'
45
+ name: 'Lagatos Browser'
46
+ version: '$1'
47
+ engine:
48
+ default: 'Blink'
49
+
50
+ # PSI Secure Browser (https://tca.psiexams.com/portal/testdelivery/sb_rpnow_download.jsp?)
51
+ - regex: 'psi-secure-browser/(\d+[\.\d]+)'
52
+ name: 'PSI Secure Browser'
53
+ version: '$1'
54
+ engine:
55
+ default: 'Blink'
56
+
57
+ # Harman Browser (https://www.harman.com/)
58
+ - regex: 'Harman_Browser/(\d+[\.\d]+)'
59
+ name: 'Harman Browser'
60
+ version: '$1'
61
+ engine:
62
+ default: 'Blink'
63
+
64
+ # Bonsai (https://bonsaibrowser.com/)
65
+ - regex: 'bonsai-browser/(\d+[\.\d]+)'
66
+ name: 'Bonsai'
67
+ version: '$1'
68
+ engine:
69
+ default: 'Blink'
70
+
71
+ # Spectre Browser (https://spectrebots.com/products/spectre-desktop-browser)
72
+ - regex: 'spectre-browser/(\d+[\.\d]+)'
73
+ name: 'Spectre Browser'
74
+ version: '$1'
75
+ engine:
76
+ default: 'Blink'
77
+
78
+ # Flash Browser (https://github.com/asteroid-dev/FlashBrowser or https://github.com/radubirsan/FlashBrowser)
79
+ - regex: 'FlashBrowser/(\d+[\.\d]+)'
80
+ name: 'Flash Browser'
81
+ version: '$1'
82
+ engine:
83
+ default: 'Blink'
84
+
85
+ # Secure Browser (https://safertechnologies.io/)
86
+ - regex: 'Secure/(?:(\d+[\.\d]+))?'
87
+ name: 'Secure Browser'
88
+ version: '$1'
89
+ engine:
90
+ default: 'Blink'
91
+
92
+ # Arvin (https://play.google.com/store/apps/details?id=com.browser.arvin.anti.blokir&hl=sv&gl=US)
93
+ - regex: 'Arvin/(\d+[\.\d]+)'
94
+ name: 'Arvin'
95
+ version: '$1'
96
+ engine:
97
+ default: 'Blink'
98
+
99
+ # Edge Webview (https://docs.microsoft.com/en-us/microsoft-edge/webview2/)
100
+ - regex: 'Version/.+Chrome/.+EdgW/(\d+[\.\d]+)'
101
+ name: 'Edge WebView'
102
+ version: '$1'
103
+ engine:
104
+ default: 'WebKit'
105
+
106
+ # Mandarin (https://mandarin-browser.com/)
107
+ - regex: 'Mandarin Browser/(\d+[\.\d]+)'
108
+ name: 'Mandarin'
109
+ version: '$1'
110
+ engine:
111
+ default: 'Blink'
112
+
113
+ # Maelstrom (https://www.bittorrent.com/)
114
+ - regex: 'Torrent/(\d+[\.\d]+)'
115
+ name: 'Maelstrom'
116
+ version: '$1'
117
+ engine:
118
+ default: 'Blink'
119
+
120
+ # Helio (https://developer.magicleap.com/en-us/learn/guides/lumin-os-release-notes-summary)
121
+ - regex: 'Helio/(\d+[\.\d]+)'
122
+ name: 'Helio'
123
+ version: '$1'
124
+ engine:
125
+ default: 'Blink'
126
+
127
+ # 7654 Browser (http://7654browser.shzhanmeng.com/)
128
+ - regex: '7654Browser/(\d+[\.\d]+)'
129
+ name: '7654 Browser'
130
+ version: '$1'
131
+ engine:
132
+ default: 'Blink'
133
+
134
+ # Qazweb (http://www.qazweb.com/)
135
+ - regex: 'Qazweb/(\d+[\.\d]+)'
136
+ name: 'Qazweb'
137
+ version: '$1'
138
+ engine:
139
+ default: 'Gecko'
140
+
141
+ # deg-degan (https://degdegan.com/)
142
+ - regex: 'Degdegan/(\d+[\.\d]+)'
143
+ name: 'deg-degan'
144
+ version: '$1'
145
+ engine:
146
+ default: 'Blink'
147
+
148
+ # JavaFX (https://docs.oracle.com/javase/8/javafx/embedded-browser-tutorial/overview.htm)
149
+ - regex: 'JavaFX/(\d+[\.\d]+)'
150
+ name: 'JavaFX'
151
+ version: '$1'
152
+ engine:
153
+ default: 'WebKit'
154
+
155
+ # Chedot (https://landing.chedot.com/)
156
+ - regex: 'Chedot/(\d+[\.\d]+)'
157
+ name: 'Chedot'
158
+ version: '$1'
159
+ engine:
160
+ default: 'Blink'
161
+
162
+ # Chromium GOST (https://github.com/deemru/chromium-gost)
163
+ - regex: 'Chrome/(\d+[\.\d]+) \(Chromium GOST\)'
164
+ name: 'Chromium GOST'
165
+ version: '$1'
166
+ engine:
167
+ default: 'Blink'
168
+
169
+ # Deledao (https://www.deledao.com/)
170
+ - regex: '(?:DeledaoPersonal|DeledaoFamily)/(\d+[\.\d]+)'
171
+ name: 'Deledao'
172
+ version: '$1'
173
+ engine:
174
+ default: 'Blink'
175
+
176
+ # HasBrowser (https://browser.hascoding.com)
177
+ - regex: 'HasBrowser/(\d+[\.\d]+)'
178
+ name: 'HasBrowser'
179
+ version: '$1'
180
+ engine:
181
+ default: 'Blink'
182
+
183
+ # Byffox (https://byffox.sourceforge.io/index.php)
184
+ - regex: 'Byffox/(\d+[\.\d]+)'
185
+ name: 'Byffox'
186
+ version: '$1'
187
+ engine:
188
+ default: 'Gecko'
189
+
190
+ # CoolBrowser (https://play.google.com/store/apps/details?id=com.easybrowser.browser.coolbrowser)
191
+ - regex: 'Chrome/(\d+[\.\d]+).+AgentWeb.+UCBrowser'
192
+ name: 'CoolBrowser'
193
+ version: '$1'
194
+ engine:
195
+ default: 'Blink'
196
+
197
+ # Dot Browser (https://dothq.co/)
198
+ - regex: 'DotBrowser/(\d+[\.\d]+)'
199
+ name: 'Dot Browser'
200
+ version: '$1'
201
+ engine:
202
+ default: 'Blink'
203
+
204
+ # Craving Explorer (https://www.crav-ing.com/)
205
+ - regex: 'CravingExplorer/(\d+[\.\d]+)'
206
+ name: 'Craving Explorer'
207
+ version: '$1'
208
+ engine:
209
+ default: 'Blink'
210
+
211
+ # DeskBrowse (https://web.archive.org/web/20170614060014/http://deskbrowse.org/)
212
+ - regex: 'DeskBrowse/(\d+[\.\d]+)'
213
+ name: 'DeskBrowse'
214
+ version: '$1'
215
+
216
+ # Lolifox
217
+ - regex: 'Lolifox/(\d+[\.\d]+)'
218
+ name: 'Lolifox'
219
+ version: '$1'
220
+
221
+ # Qutebrowser (https://qutebrowser.org/)
222
+ - regex: 'qutebrowser/(\d+[\.\d]+).+Chrome'
223
+ name: 'Qutebrowser'
224
+ version: '$1'
225
+ engine:
226
+ default: 'Blink'
227
+ - regex: 'qutebrowser(?:/(\d+[\.\d]+))?'
228
+ name: 'Qutebrowser'
229
+ version: '$1'
230
+
231
+ # Flast (https://github.com/FascodeNet/Flast)
232
+ - regex: 'flast/(\d+[\.\d]+)'
233
+ name: 'Flast'
234
+ version: '$1'
235
+ engine:
236
+ default: 'Blink'
237
+
238
+ # PolyBrowser (https://github.com/PolySuite/PolyBrowser)
239
+ - regex: 'PolyBrowser/(\d+[\.\d]+)'
240
+ name: 'PolyBrowser'
241
+ version: '$1'
242
+ engine:
243
+ default: 'Gecko'
244
+
245
+ # BriskBard (https://www.briskbard.com/)
246
+ - regex: 'Chrome.+BriskBard/(\d+[\.\d]+)'
247
+ name: 'BriskBard'
248
+ version: '$1'
249
+ engine:
250
+ default: 'Blink'
251
+ - regex: 'BriskBard(?:/(\d+[\.\d]+))?'
252
+ name: 'BriskBard'
253
+ version: '$1'
254
+
255
+ # GinxDroid Browser (https://play.google.com/store/apps/details?id=ginxdroid.gdm)
256
+ - regex: 'GinxDroidBrowser/(\d+[\.\d]+)'
257
+ name: 'GinxDroid Browser'
258
+ version: '$1'
259
+ engine:
260
+ default: 'Blink'
261
+
262
+ # Avira Scout (http://www.avira.com/en/avira-scout)
263
+ - regex: 'AviraScout/(\d+[\.\d]+)'
264
+ name: 'Avira Scout'
265
+ version: '$1'
266
+ engine:
267
+ default: 'Blink'
268
+
269
+ # Venus Browser (https://play.google.com/store/apps/details?id=com.venus.browser)
270
+ - regex: 'VenusBrowser/(\d+[\.\d]+)'
271
+ name: 'Venus Browser'
272
+ version: '$1'
273
+ engine:
274
+ default: 'Blink'
275
+
276
+ # Otter Browser (https://github.com/OtterBrowser/otter-browser)
277
+ - regex: 'Chrome.+Otter(?:[ /](\d+[\.\d]+))?'
278
+ name: 'Otter Browser'
279
+ version: '$1'
280
+ engine:
281
+ default: 'Blink'
282
+ - regex: 'Otter(?:[ /](\d+[\.\d]+))?'
283
+ name: 'Otter Browser'
284
+ version: '$1'
285
+
286
+ # Smooz (https://smoozapp.com/)
287
+ - regex: 'Chrome.+Smooz/(\d+[\.\d]+)'
288
+ name: 'Smooz'
289
+ version: '$1'
290
+ engine:
291
+ default: 'Blink'
292
+ - regex: 'Smooz/(\d+[\.\d]+)'
293
+ name: 'Smooz'
294
+ version: '$1'
295
+
296
+ # Cornowser (https://github.com/xdevs23/Cornowser)
297
+ - regex: 'Cornowser/(\d+[\.\d]+)'
298
+ name: 'Cornowser'
299
+ version: '$1'
300
+ engine:
301
+ default: 'Blink'
302
+
303
+ # Orca (http://www.orcabrowser.com)
304
+ - regex: 'Orca/(\d+[\.\d]+)'
305
+ name: 'Orca'
306
+ version: '$1'
307
+
308
+ # Flow (https://www.ekioh.com/)
309
+ - regex: 'Flow/(?:(\d+[\.\d]+))'
310
+ name: 'Flow'
311
+ version: '$1'
312
+ engine:
313
+ default: 'EkiohFlow'
314
+ - regex: 'Ekioh/(?:(\d+[\.\d]+))'
315
+ name: 'Flow'
316
+ version: '$1'
317
+ engine:
318
+ default: 'EkiohFlow'
319
+
320
+ # xStand (https://www.adnx.com/)
321
+ - regex: 'xStand/(\d+[\.\d]+)'
322
+ name: 'xStand'
323
+ version: '$1'
324
+ engine:
325
+ default: 'WebKit'
326
+
327
+ # Biyubi (http://www.biyubi.com/)
328
+ - regex: 'Biyubi/(\d+[\.\d]+)'
329
+ name: 'Biyubi'
330
+ version: '$1'
331
+
332
+ # Perfect Browser (http://www.perfectbrowser.com/)
333
+ - regex: '(?:Perfect%20Browser(?:-iPad)?|Perfect(?:BrowserPro)?)/(\d+[\.\d]+)'
334
+ name: 'Perfect Browser'
335
+ version: '$1'
336
+ engine:
337
+ default: 'WebKit'
338
+
339
+ # Phantom Browser (https://www.lg.com/)
340
+ - regex: 'Browser/Phantom/V(\d+[\.\d]+)'
341
+ name: 'Phantom Browser'
342
+ version: '$1'
343
+
344
+ # AwoX (https://www.awox.com.tr/)
345
+ - regex: 'AwoX(?:/(\d+[\.\d]+))? Browser'
346
+ name: 'AwoX'
347
+ version: '$1'
348
+
349
+ # Zetakey (https://www.zetakey.com/)
350
+ - regex: 'Zetakey/(\d+[\.\d]+)'
351
+ name: 'Zetakey'
352
+ version: '$1'
353
+ engine:
354
+ default: 'WebKit'
355
+
356
+ # PlayFree Browser
357
+ - regex: 'PlayFreeBrowser/(?:(\d+[\.\d]+))?'
358
+ name: 'PlayFree Browser'
359
+ version: '$1'
360
+
361
+ # Chim Lac (https://chimlac.com.vn/)
362
+ - regex: '(?:chimlac_browser|chimlac)/(?:(\d+[\.\d]+))'
363
+ name: 'Chim Lac'
364
+ version: '$1'
365
+ engine:
366
+ default: 'Blink'
367
+
368
+ # Odin (https://www.hisense.com/)
369
+ - regex: 'Odin/(?:(\d+[\.\d]+))'
370
+ name: 'Odin'
371
+ version: '$1'
372
+ engine:
373
+ default: 'Blink'
374
+
375
+ # T-Browser (https://play.google.com/store/apps/details?id=com.tcl.browser)
376
+ - regex: 'Tbrowser/(\d+[\.\d]+)'
377
+ name: 'T-Browser'
378
+ version: '$1'
379
+ engine:
380
+ default: 'Blink'
381
+
382
+ # SFive (https://sfive.vn/)
383
+ - regex: 'SFive(?:_Android)?/.+ Chrome/(\d+[\.\d]+)'
384
+ name: 'SFive'
385
+ version: '$1'
386
+ engine:
387
+ default: 'Blink'
388
+ - regex: 'SFive_IOS/(\d+[\.\d]+)'
389
+ name: 'SFive'
390
+ version: '$1'
391
+
392
+ # Navigateur Web
393
+ - regex: 'Navigateur web/(?:(\d+[\.\d]+))?'
394
+ name: 'Navigateur Web'
395
+ version: '$1'
396
+
397
+ #Seraphic Sraf (https://www.seraphic-corp.com/)
398
+ - regex: 'Sraf(?:[/ ](\d+[\.\d]+))?'
399
+ name: 'Seraphic Sraf'
400
+ version: '$1'
401
+ engine:
402
+ default: 'Blink'
403
+
404
+ # Seewo Browser (http://e.seewo.com/)
405
+ - regex: 'SeewoBrowser/(?:(\d+[\.\d]+))?'
406
+ name: 'Seewo Browser'
407
+ version: '$1'
408
+ engine:
409
+ default: 'Blink'
410
+
411
+ # Kode Browser (https://www.kodebrowser.com/ | https://play.google.com/store/apps/details?id=com.app.downloadmanager | https://apps.apple.com/us/app/kode-browser-fast-private/id625458492)
412
+ - regex: '(?:Kode(?:iOS)?/(?:(\d+[\.\d]+))?|TansoDL)'
413
+ name: 'Kode Browser'
414
+ version: '$1'
415
+
416
+ # UR Browser (https://www.ur-browser.com/)
417
+ - regex: 'UR/(?:(\d+[\.\d]+))'
418
+ name: 'UR Browser'
419
+ version: '$1'
420
+ engine:
421
+ default: 'Blink'
422
+
423
+ # OceanHero (https://oceanhero.today)
424
+ - regex: 'OceanHero/([\.\d]+)'
425
+ name: 'OceanHero'
426
+ version: '$1'
427
+ engine:
428
+ default: 'Blink'
429
+
430
+ # Smart Lenovo Browser (https://www.lenovo.com.cn/)
431
+ - regex: 'Chrome/.+ SLBrowser/(?:(\d+[\.\d]+))?'
432
+ name: 'Smart Lenovo Browser'
433
+ version: '$1'
434
+ engine:
435
+ default: 'Blink'
436
+ - regex: 'SLBrowser/(?:(\d+[\.\d]+))?'
437
+ name: 'Smart Lenovo Browser'
438
+ version: '$1'
439
+
440
+ # Browzar (https://www.browzar.com/)
441
+ - regex: 'Browzar'
442
+ name: 'Browzar'
443
+ version: ''
444
+
445
+ # Stargon (http://www.stargon.org/ | https://play.google.com/store/apps/details?id=net.onecook.browser)
446
+ - regex: 'Stargon/(?:(\d+[\.\d]+))?'
447
+ name: 'Stargon'
448
+ version: '$1'
449
+ engine:
450
+ default: 'Blink'
451
+
452
+ # NFS Browser (https://github.com/nfschina/nfs-browser)
453
+ - regex: 'NFSBrowser/(?:(\d+[\.\d]+))?'
454
+ name: 'NFS Browser'
455
+ version: '$1'
456
+ engine:
457
+ default: 'Blink'
458
+
459
+ # Borealis Navigator (https://binaryoutcast.com/projects/borealis/)
460
+ - regex: 'Borealis/(\d+[\.\d]+)'
461
+ name: 'Borealis Navigator'
462
+ version: '$1'
463
+
464
+ # Yolo Browser
465
+ - regex: 'YoloBrowser/(?:(\d+[\.\d]+))?'
466
+ name: 'Yolo Browser'
467
+ version: '$1'
468
+ engine:
469
+ default: 'Blink'
470
+
471
+ # Phoenix Browser (http://phoenix-browser.com/ | https://play.google.com/store/apps/details?id=com.transsion.phoenix)
472
+ - regex: 'PHX/(?:(\d+[\.\d]+))?'
473
+ name: 'Phoenix Browser'
474
+ version: '$1'
475
+
476
+ # PrivacyWall (https://play.google.com/store/apps/details?id=org.privacywall.browser)
477
+ - regex: 'PrivacyWall/(?:(\d+[\.\d]+))?'
478
+ name: 'PrivacyWall'
479
+ version: '$1'
480
+
481
+ # Ghostery Privacy Browser (https://play.google.com/store/apps/details?id=com.ghostery.android.ghostery | https://apps.apple.com/us/app/ghostery-privacy-browser/id472789016)
482
+ - regex: 'Ghostery:?(\d+[\.\d]+)?'
483
+ name: 'Ghostery Privacy Browser'
484
+ version: '$1'
485
+
486
+ # Yaani Browser
487
+ - regex: 'Firefox/.*(?:Turkcell-)?YaaniBrowser(?:/(\d+[\.\d]+))?'
488
+ name: 'Yaani Browser'
489
+ version: '$1'
490
+ engine:
491
+ default: 'Gecko'
492
+ - regex: '(?:Turkcell-)?YaaniBrowser(?:/(\d+[\.\d]+))?'
493
+ name: 'Yaani Browser'
494
+ version: '$1'
495
+ engine:
496
+ default: 'Blink'
497
+
498
+ # Safe Exam Browser (https://safeexambrowser.org/)
499
+ - regex: 'SEB/(?:(\d+[\.\d]+))?'
500
+ name: 'Safe Exam Browser'
501
+ version: '$1'
502
+
503
+ # Colibri (https://colibri.opqr.co/)
504
+ - regex: 'Colibri/(?:(\d+[\.\d]+))?'
505
+ name: 'Colibri'
506
+ version: '$1'
507
+
508
+ # Xvast (https://www.xvast.com/)
509
+ - regex: 'Xvast/(?:(\d+[\.\d]+))?'
510
+ name: 'Xvast'
511
+ version: '$1'
512
+
513
+ # Tungsten (https://en.tungsten-start.net/)
514
+ - regex: 'TungstenBrowser/(?:(\d+[\.\d]+))?'
515
+ name: 'Tungsten'
516
+ version: '$1'
517
+
518
+ # Lulumi (https://github.com/LulumiProject/lulumi-browser)
519
+ - regex: 'Lulumi-browser/(?:(\d+[\.\d]+))?'
520
+ name: 'Lulumi'
521
+ version: '$1'
522
+
523
+ # Yahoo! Japan Browser (https://promo-ybrowser.yahoo.co.jp/)
524
+ - regex: 'ybrowser/(?:(\d+[\.\d]+))?'
525
+ name: 'Yahoo! Japan Browser'
526
+ version: '$1'
527
+
528
+ # Lunascape Lite (https://www.lunascape.tv/)
529
+ - regex: 'iLunascapeLite/(?:(\d+\.[.\d]+))?'
530
+ name: 'Lunascape Lite'
531
+ version: '$1'
532
+
533
+ # Lunascape
534
+ - regex: 'Chrome/.+ i?Lunascape(?:[/ ](\d+\.[.\d]+))?'
535
+ name: 'Lunascape'
536
+ version: '$1'
537
+ engine:
538
+ default: 'Blink'
539
+ - regex: 'i?Lunascape(?:[/ ](\d+\.[.\d]+))?'
540
+ name: 'Lunascape'
541
+ version: '$1'
542
+ engine:
543
+ default: '' # multi engine
544
+
545
+ # Polypane (https://polypane.app/)
546
+ - regex: 'Polypane/(?:(\d+[\.\d]+))?'
547
+ name: 'Polypane'
548
+ version: '$1'
549
+
550
+ # OhHai Browser (https://ohhaibrowser.com/)
551
+ - regex: 'OhHaiBrowser/(?:(\d+[\.\d]+))?'
552
+ name: 'OhHai Browser'
553
+ version: '$1'
554
+
555
+ # Sizzy (https://sizzy.co/)
556
+ - regex: 'Sizzy/(?:(\d+[\.\d]+))?'
557
+ name: 'Sizzy'
558
+ version: '$1'
559
+
560
+ # Glass Browser (https://github.com/mitchas/glass-browser)
561
+ - regex: 'GlassBrowser/(?:(\d+[\.\d]+))?'
562
+ name: 'Glass Browser'
563
+ version: '$1'
564
+
565
+ # ToGate (https://tmaxanc.com/#!/product-introduce/ToGate)
566
+ - regex: 'ToGate/(?:(\d+[\.\d]+))?'
567
+ name: 'ToGate'
568
+ version: '$1'
569
+
570
+ # VMware AirWatch (https://www.air-watch.com/)
571
+ - regex: 'AirWatch Browser v(?:(\d+[\.\d]+))?'
572
+ name: 'VMware AirWatch'
573
+ version: '$1'
574
+
575
+ # AOL Desktop (https://beta.aol.com/projects/desktop/windows)
576
+ - regex: 'ADG/(?:(\d+[\.\d]+))?'
577
+ name: 'AOL Desktop'
578
+ version: '$1'
579
+
580
+ # Elements Browser (https://elementsbrowser.com/)
581
+ - regex: 'Elements Browser/(?:(\d+[\.\d]+))?'
582
+ name: 'Elements Browser'
583
+ version: '$1'
584
+
585
+ # Light (https://sourceforge.net/projects/lightfirefox/)
586
+ - regex: 'Light/(\d+[\.\d]+)'
587
+ name: 'Light'
588
+ version: '$1'
589
+
590
+ # Steam (https://www.valvesoftware.com/)
591
+ - regex: 'Valve Steam GameOverlay/(?:(\d+[\.\d]+))?'
592
+ name: 'Steam In-Game Overlay'
593
+ version: '$1'
594
+
595
+ # 115 Browser (https://pc.115.com/)
596
+ - regex: '115Browser/(?:(\d+[\.\d]+))?'
597
+ name: '115 Browser'
598
+ version: '$1'
599
+
600
+ # Atom (https://browser.ru/)
601
+ - regex: 'Atom/(?:(\d+[\.\d]+))?'
602
+ name: 'Atom'
603
+ version: '$1'
604
+
605
+ # Firefox Reality (https://mixedreality.mozilla.org/firefox-reality/)
606
+ - regex: 'Mobile VR.+Firefox'
607
+ name: 'Firefox Reality'
608
+ version: ''
609
+
610
+ # AVG Secure Browser (https://www.avg.com/en-us/secure-browser)
611
+ - regex: 'AVG(?:/(\d+[\.\d]+))?'
612
+ name: 'AVG Secure Browser'
613
+ version: '$1'
614
+
615
+ # START Internet Browser (https://play.google.com/store/apps/details?id=fyi.start.web.browser)
616
+ - regex: 'Start/(?:(\d+[\.\d]+))?'
617
+ name: 'START Internet Browser'
618
+ version: '$1'
619
+
620
+ # Lovense Browser (https://www.lovense.com/cam-model/download)
621
+ - regex: 'Lovense(?:/(\d+[\.\d]+))?'
622
+ name: 'Lovense Browser'
623
+ version: '$1'
624
+
625
+ # Delta Browser (https://play.google.com/store/apps/details?id=com.airfind.deltabrowser)
626
+ - regex: 'com.airfind.deltabrowser(?:/(\d+[\.\d]+))?'
627
+ name: 'Delta Browser'
628
+ version: '$1'
629
+
630
+ # Ordissimo (https://www.ordissimo.fr/)
631
+ - regex: '(?:Ordissimo|webissimo3)(?:/(\d+[\.\d]+))?'
632
+ name: 'Ordissimo'
633
+ version: '$1'
634
+
635
+ # CCleaner (https://www.ccleaner.com/ccleaner/browser)
636
+ - regex: 'CCleaner(?:/(\d+[\.\d]+))?'
637
+ name: 'CCleaner'
638
+ version: '$1'
639
+
640
+ # Aloha Browser Lite (https://play.google.com/store/apps/details?id=com.alohamobile.browser.lite)
641
+ - regex: 'AlohaLite(?:/(\d+[\.\d]+))?'
642
+ name: 'Aloha Browser Lite'
643
+ version: '$1'
644
+ engine:
645
+ default: 'Blink'
646
+
647
+ # Tao Browser (https://browser.taobao.com/)
648
+ - regex: 'TaoBrowser(?:/(\d+[\.\d]+))?'
649
+ name: 'Tao Browser'
650
+ version: '$1'
651
+
652
+ # Falkon (https://www.falkon.org/)
653
+ - regex: 'Falkon(?:/(\d+[\.\d]+))?'
654
+ name: 'Falkon'
655
+ version: '$1'
656
+
657
+ # mCent (http://mcentbrowser.com/)
658
+ - regex: 'mCent(?:/(\d+[\.\d]+))?'
659
+ name: 'mCent'
660
+ version: '$1'
661
+
662
+ # SalamWeb (https://salamweb.com/)
663
+ - regex: 'SalamWeb(?:/(\d+[\.\d]+))?'
664
+ name: 'SalamWeb'
665
+ version: '$1'
666
+
667
+ # BlackHawk (http://www.netgate.sk/blackhawk/)
668
+ - regex: 'BlackHawk(?:/(\d+[\.\d]+))?'
669
+ name: 'BlackHawk'
670
+ version: '$1'
671
+
672
+ # Minimo (https://www-archive.mozilla.org/projects/minimo/)
673
+ - regex: 'Minimo(?:/(\d+[\.\d]+))?'
674
+ name: 'Minimo'
675
+ version: '$1'
676
+
677
+ # Wear Internet Browser (https://play.google.com/store/apps/details?id=com.appfour.wearbrowser)
678
+ - regex: 'WIB(?:/(\d+[\.\d]+))?'
679
+ name: 'Wear Internet Browser'
680
+ version: '$1'
681
+
682
+ # Origyn Web Browser (https://en.wikipedia.org/wiki/Origyn_Web_Browser)
683
+ - regex: 'Origyn Web Browser'
684
+ name: 'Origyn Web Browser'
685
+ version: ''
686
+
687
+ # Kinza (https://www.kinza.jp/en/)
688
+ - regex: 'Kinza(?:/(\d+[\.\d]+))?'
689
+ name: 'Kinza'
690
+ version: '$1'
691
+
692
+ # Beamrise (https://web.archive.org/web/20170520043839/http://beamrise.com/)
693
+ - regex: 'Beamrise(?:/(\d+[\.\d]+))?'
694
+ name: 'Beamrise'
695
+ version: '$1'
696
+ engine:
697
+ default: 'WebKit'
698
+ versions:
699
+ 28: 'Blink'
700
+
701
+ # Faux Browser (https://apps.apple.com/us/app/faux-browser/id472250940)
702
+ - regex: 'Faux(?:/(\d+[\.\d]+))?'
703
+ name: 'Faux Browser'
704
+ version: '$1'
705
+
706
+ # Splash (https://scrapinghub.com/splash)
707
+ - regex: 'splash Version(?:/(\d+[\.\d]+))?'
708
+ name: 'Splash'
709
+ version: '$1'
710
+
711
+ # Meizu Browser (https://www.meizu.com/)
712
+ - regex: 'MZBrowser(?:/(\d+[\.\d]+))?'
713
+ name: 'Meizu Browser'
714
+ version: '$1'
715
+
716
+ # COS Browser (https://sj.qq.com/myapp/detail.htm?apkName=com.qcloud.cos.client)
717
+ - regex: 'COSBrowser(?:/(\d+[\.\d]+))?'
718
+ name: 'COS Browser'
719
+ version: '$1'
720
+
721
+ # Crusta (https://github.com/Crusta/CrustaBrowser)
722
+ - regex: 'Crusta(?:/(\d+[\.\d]+))?'
723
+ name: 'Crusta'
724
+ version: '$1'
725
+
8
726
  # Hawk Turbo Browser
9
727
  - regex: 'Hawk/TurboBrowser(?:/v?(\d+[\.\d]+))?'
10
728
  name: 'Hawk Turbo Browser'
@@ -12,6 +730,13 @@
12
730
  engine:
13
731
  default: 'Blink'
14
732
 
733
+ # Hawk Quick Browser
734
+ - regex: 'Hawk/QuickBrowser(?:/v?(\d+[\.\d]+))?'
735
+ name: 'Hawk Quick Browser'
736
+ version: '$1'
737
+ engine:
738
+ default: 'Blink'
739
+
15
740
  # FreeU (https://freeu.online/)
16
741
  - regex: 'FreeU(?:/(\d+[\.\d]+))?'
17
742
  name: 'FreeU'
@@ -31,7 +756,7 @@
31
756
  name: 'Basilisk'
32
757
  version: '$1'
33
758
  engine:
34
- default: 'Gecko'
759
+ default: 'Goanna'
35
760
 
36
761
  # Sputnik Browser (https://play.google.com/store/apps/details?id=ru.sputnik.browser)
37
762
  - regex: 'SputnikBrowser(?:/(\d+[\.\d]+))?'
@@ -40,36 +765,73 @@
40
765
  engine:
41
766
  default: 'Blink'
42
767
 
43
- # K.Browser (https://play.google.com/store/apps/details?id=com.tnsua.browser)
44
- - regex: 'TNSBrowser(?:/(\d+[\.\d]+))?'
45
- name: 'K.Browser'
768
+ # K.Browser (https://play.google.com/store/apps/details?id=com.tnsua.browser)
769
+ - regex: 'TNSBrowser(?:/(\d+[\.\d]+))?'
770
+ name: 'K.Browser'
771
+ version: '$1'
772
+ engine:
773
+ default: 'Blink'
774
+
775
+ # Oculus Browser (https://developer.oculus.com/documentation/oculus-browser/latest/concepts/)
776
+ - regex: 'OculusBrowser(?:/(\d+[\.\d]+))?'
777
+ name: 'Oculus Browser'
778
+ version: '$1'
779
+
780
+ # Jio Browser (https://play.google.com/store/apps/details?id=com.jio.web)
781
+ - regex: 'Jio(?:Browser|Pages)(?:/(\d+[\.\d]+))?'
782
+ name: 'Jio Browser'
783
+ version: '$1'
784
+ engine:
785
+ default: 'Blink'
786
+
787
+ # https://play.google.com/store/apps/details?id=app.stampy.browser
788
+ - regex: 'SY/(\d+[\.\d]+) Chrome/'
789
+ name: 'Stampy Browser'
790
+ version: '$1'
791
+ engine:
792
+ default: 'Blink'
793
+
794
+ # hola! Browser (https://hola.org/browser)
795
+ - regex: 'Chrome/.+ Hola(?:/(\d+[\.\d]+))?'
796
+ name: 'hola! Browser'
797
+ version: '$1'
798
+ engine:
799
+ default: 'Blink'
800
+
801
+ # Slimjet (https://slimjet.com)
802
+ - regex: 'Slimjet/(?:(\d+[\.\d]+))'
803
+ name: 'Slimjet'
46
804
  version: '$1'
47
805
  engine:
48
806
  default: 'Blink'
49
807
 
50
- # Oculus Browser (https://developer.oculus.com/documentation/oculus-browser/latest/concepts/)
51
- - regex: 'OculusBrowser(?:/(\d+[\.\d]+))?'
52
- name: 'Oculus Browser'
808
+ # 7Star
809
+ - regex: '7Star/(?:(\d+[\.\d]+))'
810
+ name: '7Star'
53
811
  version: '$1'
812
+ engine:
813
+ default: 'Blink'
54
814
 
55
- # Jio Browser (https://play.google.com/store/apps/details?id=com.jio.web)
56
- - regex: 'JioBrowser(?:/(\d+[\.\d]+))?'
57
- name: 'Jio Browser'
815
+ # MxNitro
816
+ - regex: 'MxNitro/(?:(\d+[\.\d]+))'
817
+ name: 'MxNitro'
58
818
  version: '$1'
59
819
  engine:
60
820
  default: 'Blink'
61
821
 
62
- # hola! Browser (https://hola.org/browser)
63
- - regex: 'Hola(?:/(\d+[\.\d]+))?'
64
- name: 'hola! Browser'
822
+ # Huawei Browser Mobile
823
+ - regex: 'HuaweiBrowser(?:/(\d+[\.\d]+))?'
824
+ name: 'Huawei Browser Mobile'
65
825
  version: '$1'
66
826
  engine:
67
827
  default: 'Blink'
68
828
 
69
829
  # Huawei Browser
70
- - regex: 'HuaweiBrowser(?:/(\d+[\.\d]+))?'
830
+ - regex: 'HBPC/(\d+[\.\d]+)'
71
831
  name: 'Huawei Browser'
72
832
  version: '$1'
833
+ engine:
834
+ default: 'Blink'
73
835
 
74
836
  # vivo Browser
75
837
  - regex: 'VivoBrowser(?:/(\d+[\.\d]+))?'
@@ -89,6 +851,11 @@
89
851
  default: 'Blink'
90
852
 
91
853
  # Qwant Mobile
854
+ - regex: 'QwantiOS/(\d+[\.\d]+)'
855
+ name: 'Qwant Mobile'
856
+ version: '$1'
857
+ engine:
858
+ default: 'WebKit'
92
859
  - regex: 'QwantMobile(?:/(\d+[\.\d]+))?'
93
860
  name: 'Qwant Mobile'
94
861
  version: '$1'
@@ -115,7 +882,7 @@
115
882
  default: 'Gecko'
116
883
 
117
884
  # Microsoft Edge (Spartan Edge)
118
- - regex: 'Edge[ /](\d+[\.\d]+)'
885
+ - regex: '(?<!motorola )Edge[ /](\d+[\.\d]+)'
119
886
  name: 'Microsoft Edge'
120
887
  version: '$1'
121
888
  engine:
@@ -190,12 +957,17 @@
190
957
  default: 'Gecko'
191
958
 
192
959
  #AlohaBrowser
960
+ - regex: 'Chrome/.+ AlohaBrowser(?:/(\d+[\.\d]+))?'
961
+ name: 'Aloha Browser'
962
+ version: '$1'
963
+ engine:
964
+ default: 'Blink'
193
965
  - regex: 'AlohaBrowser(?:/(\d+[\.\d]+))?'
194
966
  name: 'Aloha Browser'
195
967
  version: '$1'
196
968
 
197
- #Avast Secure Browser
198
- - regex: 'Avast(?:/(\d+[\.\d]+))?'
969
+ # Avast Secure Browser | Avast SafeZone Browser (https://www.avast.com/)
970
+ - regex: '(?:Avast(?:SecureBrowser)?|ASW|Safer)(?:/(\d+[\.\d]+))?'
199
971
  name: 'Avast Secure Browser'
200
972
  version: '$1'
201
973
 
@@ -232,7 +1004,7 @@
232
1004
 
233
1005
 
234
1006
  #Avant Browser
235
- - regex: 'Avant Browser'
1007
+ - regex: 'Avant ?Browser'
236
1008
  name: 'Avant Browser'
237
1009
  version: ''
238
1010
  engine:
@@ -250,7 +1022,7 @@
250
1022
  engine:
251
1023
  default: 'WebKit'
252
1024
  versions:
253
- 28: 'Blink'
1025
+ '28': 'Blink'
254
1026
 
255
1027
  #Atomic Web Browser
256
1028
  - regex: 'AtomicBrowser(?:/(\d+[\.\d]+))?'
@@ -290,6 +1062,11 @@
290
1062
 
291
1063
 
292
1064
  #Pale Moon
1065
+ - regex: '.*Goanna.*PaleMoon(?:/(\d+[\.\d]+))?'
1066
+ name: 'Pale Moon'
1067
+ version: '$1'
1068
+ engine:
1069
+ default: 'Goanna'
293
1070
  - regex: 'PaleMoon(?:/(\d+[\.\d]+))?'
294
1071
  name: 'Pale Moon'
295
1072
  version: '$1'
@@ -317,7 +1094,12 @@
317
1094
  engine:
318
1095
  default: 'Gecko'
319
1096
  versions:
320
- 3: 'WebKit'
1097
+ '3': 'WebKit'
1098
+
1099
+ # Jig Browser Plus (https://jig.jp/)
1100
+ - regex: 'JigBrowserPlus/(?:(\d+[\.\d]+))?'
1101
+ name: 'Jig Browser Plus'
1102
+ version: '$1'
321
1103
 
322
1104
  #Jig Browser
323
1105
  - regex: 'jig browser(?: web;|9i?)?(?:[/ ](\d+[\.\d]+))?'
@@ -338,13 +1120,51 @@
338
1120
  engine:
339
1121
  default: 'Gecko'
340
1122
 
1123
+ # Origin (https://www.origin.com/)
1124
+ - regex: 'Origin/(?:(\d+[\.\d]+))?'
1125
+ name: 'Origin In-Game Overlay'
1126
+ version: '$1'
1127
+
341
1128
  #Cunaguaro
342
1129
  - regex: 'Cunaguaro(?:/(\d+[\.\d]+))?'
343
1130
  name: 'Cunaguaro'
344
1131
  version: '$1'
345
1132
 
1133
+ # t-online.de Browser (https://www.t-online.de/computer/browser/)
1134
+ - regex: '(?:TO-Browser/TOB|DT-Browser/DTB)(\d+[\.\d]+)'
1135
+ name: 't-online.de Browser'
1136
+ version: '$1'
1137
+
1138
+ #Kazehakase
1139
+ - regex: 'Kazehakase(?:/(\d+[\.\d]+))?'
1140
+ name: 'Kazehakase'
1141
+ version: '$1'
1142
+ engine:
1143
+ default: '' # multi engine
1144
+
1145
+ # ArcticFox (https://github.com/wicknix/Arctic-Fox)
1146
+ - regex: 'ArcticFox(?:/(\d+[\.\d]+))?'
1147
+ name: 'Arctic Fox'
1148
+ version: '$1'
1149
+ engine:
1150
+ default: 'Goanna'
1151
+
1152
+ # Mypal (https://github.com/Feodor2/Mypal)
1153
+ - regex: 'Mypal(?:/(\d+[\.\d]+))?'
1154
+ name: 'Mypal'
1155
+ version: '$1'
1156
+ engine:
1157
+ default: 'Goanna'
1158
+
1159
+ # Centaury (https://github.com/Feodor2/Centaury)
1160
+ - regex: 'Centaury(?:/(\d+[\.\d]+))?'
1161
+ name: 'Centaury'
1162
+ version: '$1'
1163
+ engine:
1164
+ default: 'Goanna'
1165
+
346
1166
  #Firefox Focus / Firefox Klar
347
- - regex: '(?:Focus|Klar)(?:/(\d+[\.\d]+))?'
1167
+ - regex: '(?:Focus|Klar)(?:/(\d+[\.\d]+))'
348
1168
  name: 'Firefox Focus'
349
1169
  version: '$1'
350
1170
 
@@ -385,7 +1205,7 @@
385
1205
  version: '$1'
386
1206
  engine:
387
1207
  default: 'Servo'
388
- - regex: 'Firefox(?:/(\d+[\.\d]+))?'
1208
+ - regex: '(?!.*Opera[ /])Firefox(?:/(\d+[\.\d]+))?'
389
1209
  name: 'Firefox'
390
1210
  version: '$1'
391
1211
  engine:
@@ -465,6 +1285,11 @@
465
1285
  name: 'Obigo'
466
1286
  version: ''
467
1287
 
1288
+ # UC Browser HD
1289
+ - regex: 'UCBrowserHD/(\d[\d\.]+)'
1290
+ name: 'UC Browser HD'
1291
+ version: '$1'
1292
+
468
1293
  #UC Browser Mini
469
1294
  - regex: 'UCMini(?:[ /]?(\d+[\.\d]+))?'
470
1295
  name: 'UC Browser Mini'
@@ -473,6 +1298,27 @@
473
1298
  name: 'UC Browser Mini'
474
1299
  version: ''
475
1300
 
1301
+ # UC Browser Turbo
1302
+ - regex: 'UCTurbo(?:[ /]?(\d+[\.\d]+))?'
1303
+ name: 'UC Browser Turbo'
1304
+ version: '$1'
1305
+ - regex: 'UC[ ]?Browser.* \(UCTurbo\)'
1306
+ name: 'UC Browser Turbo'
1307
+ version: ''
1308
+
1309
+ # Opera GX (https://www.opera.com/gx#start | http://ftp.opera.com/pub/opera_gx/)
1310
+ - regex: 'Chrome/.+ OP(?:RG)?X(?:/(\d+[\.\d]+))?'
1311
+ name: 'Opera GX'
1312
+ version: '$1'
1313
+ engine:
1314
+ default: 'Blink'
1315
+
1316
+ - regex: 'OP(?:RG)?X(?:/(\d+[\.\d]+))?'
1317
+ name: 'Opera GX'
1318
+ version: '$1'
1319
+ engine:
1320
+ default: 'WebKit'
1321
+
476
1322
  #Opera
477
1323
  - regex: '(?:Opera Tablet.*Version|Opera/.+Opera Mobi.+Version|Mobile.+OPR)/(\d+[\.\d]+)'
478
1324
  name: 'Opera Mobile'
@@ -491,6 +1337,16 @@
491
1337
  version: '$1'
492
1338
  engine:
493
1339
  default: 'Blink'
1340
+ - regex: 'Opera%20Touch/(\d+[\.\d]+)? CFNetwork/.+Darwin/.+(?!.*x86_64)'
1341
+ name: 'Opera Touch'
1342
+ version: '$1'
1343
+ engine:
1344
+ default: 'WebKit'
1345
+ - regex: 'Opera%20Touch/.+CFNetwork/.+Darwin/.+(?!.*x86_64)'
1346
+ name: 'Opera Touch'
1347
+ version: ''
1348
+ engine:
1349
+ default: 'WebKit'
494
1350
  - regex: 'OPT/(\d+[\.\d]+)'
495
1351
  name: 'Opera Touch'
496
1352
  version: '$1'
@@ -518,6 +1374,12 @@
518
1374
  version: '$1'
519
1375
  engine:
520
1376
  default: 'WebKit'
1377
+ - regex: 'Opera%20Mini/(\d+[\.\d]+) CFNetwork'
1378
+ name: 'Opera Mini iOS'
1379
+ version: '$1'
1380
+ engine:
1381
+ default: 'WebKit'
1382
+
521
1383
  - regex: 'Opera.+Edition Next.+Version/(\d+[\.\d]+)'
522
1384
  name: 'Opera Next'
523
1385
  version: '$1'
@@ -539,8 +1401,8 @@
539
1401
  default: ''
540
1402
  versions:
541
1403
  '3.5': 'Elektra'
542
- 7: 'Presto'
543
- 15: 'Blink'
1404
+ '7': 'Presto'
1405
+ '15': 'Blink'
544
1406
 
545
1407
  #Rekonq
546
1408
  - regex: 'rekonq(?:/(\d+[\.\d]+))?'
@@ -563,7 +1425,7 @@
563
1425
  engine:
564
1426
  default: 'WebKit'
565
1427
  versions:
566
- 28: 'Blink'
1428
+ '28': 'Blink'
567
1429
 
568
1430
  #ChromePlus
569
1431
  - regex: 'ChromePlus(?:/(\d+[\.\d]+))?'
@@ -589,15 +1451,12 @@
589
1451
  4: '' # multiple (KHTML or WebKit)
590
1452
 
591
1453
  #Baidu Browser
592
- - regex: 'baidubrowser(?:[/ ](\d+[\.\d]*))?'
593
- name: 'Baidu Browser'
594
- version: '$1'
595
- - regex: 'FlyFlow(?:[/ ](\d+[\.\d]*))?'
1454
+ - regex: '(?:baidubrowser|bdbrowser(?:(?:hd)?_i18n)?|FlyFlow|BaiduHD)(?:[/ ](\d+[\.\d]*))?'
596
1455
  name: 'Baidu Browser'
597
1456
  version: '$1'
598
1457
 
599
1458
  #Baidu Spark
600
- - regex: '(?:(?:BD)?Spark|BIDUBrowser)[/ ](\d+[\.\d]*)'
1459
+ - regex: '(?:(?:BD)?Spark(?:Safe)?|BIDUBrowser)[/ ](\d+[\.\d]*)'
601
1460
  name: 'Baidu Spark'
602
1461
  version: '$1'
603
1462
 
@@ -607,13 +1466,18 @@
607
1466
  version: '$1'
608
1467
  engine:
609
1468
  default: 'Blink'
610
-
611
1469
  #Yandex Browser
612
1470
  - regex: 'YaBrowser(?:/(\d+[\.\d]*))(?: \((alpha|beta)\))?'
613
1471
  name: 'Yandex Browser'
614
1472
  version: '$1 $2'
615
1473
  engine:
616
1474
  default: 'Blink'
1475
+ # Yandex Browser + voice assistant alisa
1476
+ - regex: 'Ya(?:ndex)?SearchBrowser(?:/(\d+[\.\d]*))'
1477
+ name: 'Yandex Browser'
1478
+ version: '$1'
1479
+ engine:
1480
+ default: 'Blink'
617
1481
 
618
1482
  #Vivaldi
619
1483
  - regex: 'Vivaldi(?:/(\d+[\.\d]+))?'
@@ -630,6 +1494,11 @@
630
1494
  default: 'Blink'
631
1495
 
632
1496
  #Midori
1497
+ - regex: 'Chrome.+Midori Browser/(\d+[\.\d]+)'
1498
+ name: 'Midori'
1499
+ version: '$1'
1500
+ engine:
1501
+ default: 'Blink'
633
1502
  - regex: 'Midori(?:/(\d+[\.\d]+))?'
634
1503
  name: 'Midori'
635
1504
  version: '$1'
@@ -637,12 +1506,19 @@
637
1506
  default: 'WebKit'
638
1507
 
639
1508
  #Mercury
640
- - regex: 'Mercury(?:/(\d+[\.\d]+))?'
1509
+ - regex: 'Mercury/(?:(\d+[\.\d]+))?'
641
1510
  name: 'Mercury'
642
1511
  version: '$1'
643
1512
 
644
1513
  #Maxthon
645
- - regex: '(?:Maxthon|MxBrowser)[ /](\d+[\.\d]+)'
1514
+ - regex: 'Chrome.+Maxthon(?:.+\(portable\))?/(\d+[\.\d]+)'
1515
+ name: 'Maxthon'
1516
+ version: '$1'
1517
+ engine:
1518
+ default: 'WebKit'
1519
+ versions:
1520
+ '5.2': 'Blink'
1521
+ - regex: '(?:Maxthon(?:%20Browser)?|MxBrowser(?:-inhouse|-iPhone)?|MXiOS)[ /](\d+[\.\d]+)'
646
1522
  name: 'Maxthon'
647
1523
  version: '$1'
648
1524
  engine:
@@ -650,7 +1526,7 @@
650
1526
  versions:
651
1527
  3: 'WebKit'
652
1528
 
653
- - regex: '(?:Maxthon|MyIE2|Uzbl)'
1529
+ - regex: '(?:Maxthon|MyIE2)'
654
1530
  name: 'Maxthon'
655
1531
  version: ''
656
1532
  engine:
@@ -668,7 +1544,15 @@
668
1544
  engine:
669
1545
  default: 'Blink'
670
1546
 
671
- #Iron
1547
+ # Iron
1548
+ - regex: 'Chrome(?:/(\d+[\.\d]+))?.*Iron'
1549
+ name: 'Iron'
1550
+ version: '$1'
1551
+ engine:
1552
+ default: 'WebKit'
1553
+ versions:
1554
+ 28: 'Blink'
1555
+
672
1556
  - regex: 'Iron(?:/(\d+[\.\d]+))?'
673
1557
  name: 'Iron'
674
1558
  version: '$1'
@@ -702,6 +1586,11 @@
702
1586
  name: 'Sogou Explorer'
703
1587
  version: '$1'
704
1588
 
1589
+ # QQ Browser Lite
1590
+ - regex: 'QQBrowserLite/([\d\.]+)'
1591
+ name: 'QQ Browser Lite'
1592
+ version: '$1'
1593
+
705
1594
  # QQ Browser Mini
706
1595
  - regex: 'M?QQBrowser/Mini([\.\d]+)?'
707
1596
  name: 'QQ Browser Mini'
@@ -727,8 +1616,8 @@
727
1616
  # This browser (http://coccoc.vn/) is built on top of Chromium with
728
1617
  # additional features for Vietnamese users. Its regex has to be placed
729
1618
  # before generic Chrome regex, or Chrome regex will match first and
730
- # the browser is mistaken as "Chrome".
731
- - regex: 'coc_coc_browser(?:/(\d+[\.\d]+))?'
1619
+ # the browser is mistaken as 'Chrome".
1620
+ - regex: '(?:coc_coc_browser|coccocbrowser|CocCoc)(?:/(\d+[\.\d]+))?'
732
1621
  name: 'Coc Coc'
733
1622
  version: '$1'
734
1623
  engine:
@@ -747,18 +1636,34 @@
747
1636
  name: 'Samsung Browser'
748
1637
  version: '$1'
749
1638
 
750
- #Streamy
751
- #This browser is built on top of Chromium.
752
- #It should be checked first.
1639
+ # Super Fast Browser (https://play.google.com/store/apps/details?id=com.browser.tssomas)
1640
+ - regex: '(?:SFB(?:rowser)?)/(\d+[\.\d]+)'
1641
+ name: 'Super Fast Browser'
1642
+ version: '$1'
1643
+ - regex: 'com.browser.tssomas(?:/(\d+[\.\d]+))?'
1644
+ name: 'Super Fast Browser'
1645
+ version: '$1'
1646
+
1647
+ # EUI Browser
1648
+ - regex: 'EUI Browser(?:/(\d+[\.\d]+))?'
1649
+ name: 'EUI Browser'
1650
+ version: '$1'
1651
+
1652
+ # UBrowser (https://callumprentice.github.io/)
1653
+ - regex: 'UBrowser(?:/(\d+[\.\d]+))?'
1654
+ name: 'UBrowser'
1655
+ version: '$1'
1656
+ engine:
1657
+ default: 'Blink'
1658
+
1659
+ #Streamy (Chromium based)
753
1660
  - regex: 'Streamy(?:/(\d+[\.\d]+))?'
754
1661
  name: 'Streamy'
755
1662
  version: '$1'
756
1663
  engine:
757
1664
  default: 'WebKit'
758
1665
 
759
- #Isivioo
760
- #Andorid version of the browser is built on top of Chrome Mobile.
761
- #It should be checked first.
1666
+ #Isivioo (Android version is Chrome based)
762
1667
  - regex: 'isivioo'
763
1668
  name: 'Isivioo'
764
1669
  version: ''
@@ -775,28 +1680,44 @@
775
1680
  - regex: 'UC AppleWebKit'
776
1681
  name: 'UC Browser'
777
1682
  version: ''
1683
+ - regex: 'UC%20Browser/(\d+[\.\d]+)? CFNetwork/.+Darwin/.+(?!.*x86_64)'
1684
+ name: 'UC Browser'
1685
+ version: '$1'
1686
+ engine:
1687
+ default: 'WebKit'
778
1688
 
779
- #Tenta Browser
780
1689
  #It should be checked before Chrome since the UA contains the Chrome
1690
+
1691
+ #Tenta Browser (https://play.google.com/store/apps/details?id=com.tenta.android)
1692
+ - regex: 'Chrome/.+Tenta/(\d+[\.\d]+)'
1693
+ name: 'Tenta Browser'
1694
+ version: '$1'
1695
+ engine:
1696
+ default: 'Blink'
781
1697
  - regex: 'Tenta/(\d+[\.\d]+)'
782
1698
  name: 'Tenta Browser'
783
1699
  version: '$1'
784
1700
  engine:
785
- default: 'Webkit'
1701
+ default: 'WebKit'
786
1702
 
787
1703
  # Firefox Rocket
788
1704
  - regex: 'Rocket/(\d+[\.\d]+)'
789
1705
  name: 'Firefox Rocket'
790
1706
  version: '$1'
791
1707
  engine:
792
- default: 'Webkit'
1708
+ default: 'WebKit'
793
1709
 
794
1710
  # Web Explorer
795
1711
  - regex: 'Web Explorer/(\d+[\.\d]+).*Chrome'
796
1712
  name: 'Web Explorer'
797
1713
  version: '$1'
798
1714
  engine:
799
- default: 'Webkit'
1715
+ default: 'WebKit'
1716
+ - regex: 'webexplorer/(\d+)'
1717
+ name: 'Web Explorer'
1718
+ version: '$1'
1719
+ engine:
1720
+ default: 'WebKit'
800
1721
 
801
1722
  # Seznam Browser
802
1723
  - regex: 'SznProhlizec/(\d+[\.\d]+)'
@@ -866,6 +1787,16 @@
866
1787
  engine:
867
1788
  default: 'WebKit'
868
1789
 
1790
+ # iBrowser Mini
1791
+ - regex: 'iBrowser/Mini(\d+\.\d+)'
1792
+ name: 'iBrowser Mini'
1793
+ version: '$1'
1794
+
1795
+ # iBrowser
1796
+ - regex: 'iBrowser/(\d+\.[.\d]+)?'
1797
+ name: 'iBrowser'
1798
+ version: '$1'
1799
+
869
1800
  #IBrowse
870
1801
  - regex: 'IBrowse(?:[ /](\d+[\.\d]+))?'
871
1802
  name: 'IBrowse'
@@ -886,6 +1817,11 @@
886
1817
  engine:
887
1818
  default: 'WebKit'
888
1819
 
1820
+ # GoBrowser
1821
+ - regex: 'GoBrowser(?:/(\d+[\.\d]+))?'
1822
+ name: 'GoBrowser'
1823
+ version: '$1'
1824
+
889
1825
  #Nokia Browser
890
1826
  - regex: '(?:NokiaBrowser|BrowserNG)(?:/(\d+[\.\d]+))?'
891
1827
  name: 'Nokia Browser'
@@ -903,6 +1839,66 @@
903
1839
  name: 'Nokia Browser'
904
1840
  version: ''
905
1841
 
1842
+ #Sleipnir
1843
+ - regex: 'Sleipnir(?:(?:%20Browser)?[ /](\d+[\.\d]+))?'
1844
+ name: 'Sleipnir'
1845
+ version: '$1'
1846
+ engine:
1847
+ default: '' # multi engine
1848
+
1849
+ # NTENT Browser
1850
+ - regex: 'NTENTBrowser(?:/(\d+[\.\d]+))?'
1851
+ name: 'NTENT Browser'
1852
+ version: '$1'
1853
+
1854
+ # TV Bro
1855
+ - regex: 'TV Bro/(\d+[\.\d]+)'
1856
+ name: 'TV Bro'
1857
+ version: '$1'
1858
+
1859
+ # Quark
1860
+ - regex: 'Chrome/.+ Quark(?:/(\d+[\.\d]+))?'
1861
+ name: 'Quark'
1862
+ version: '$1'
1863
+ engine:
1864
+ default: 'WebKit'
1865
+
1866
+ # Monument Browser
1867
+ - regex: 'MonumentBrowser(?:/(\d+[\.\d]+))?'
1868
+ name: 'Monument Browser'
1869
+ version: '$1'
1870
+ engine:
1871
+ default: 'WebKit'
1872
+
1873
+ # Blue Browser
1874
+ - regex: 'BlueBrowser(?:/(\d+[\.\d]+))?'
1875
+ name: 'Blue Browser'
1876
+ version: '$1'
1877
+ engine:
1878
+ default: 'WebKit'
1879
+
1880
+ # Japan Browser (https://play.google.com/store/apps/details?id=com.japan.browser.anti.blokir)
1881
+ - regex: 'JAPAN Browser(?:/(\d+[\.\d]+))?'
1882
+ name: 'Japan Browser'
1883
+ version: '$1'
1884
+ engine:
1885
+ default: 'WebKit'
1886
+
1887
+ - regex: 'OpenFin/(?:(\d+[\.\d]+))'
1888
+ name: 'OpenFin'
1889
+ version: '$1'
1890
+ engine:
1891
+ default: 'Blink'
1892
+
1893
+ # SuperBird
1894
+ - regex: 'SuperBird(?:/(\d+[\.\d]+))?'
1895
+ name: 'SuperBird'
1896
+ version: '$1'
1897
+ engine:
1898
+ default: 'WebKit'
1899
+ versions:
1900
+ 28: 'Blink'
1901
+
906
1902
  # Chrome Webview
907
1903
  - regex: 'Version/.* Chrome(?:/(\d+[\.\d]+))?'
908
1904
  name: 'Chrome Webview'
@@ -961,6 +1957,13 @@
961
1957
  - regex: '(?:Tizen|SLP) Browser(?:/(\d+[\.\d]+))?'
962
1958
  name: 'Tizen Browser'
963
1959
  version: '$1'
1960
+ - regex: 'Tizen (?:\d+[\.\d]+).+ Version/(\d+[\.\d]+) (?:TV|Mobile)'
1961
+ name: 'Tizen Browser'
1962
+ version: '$1'
1963
+ engine:
1964
+ default: 'WebKit'
1965
+ versions:
1966
+ '4': 'Blink'
964
1967
 
965
1968
  #Palm Blazer
966
1969
  - regex: 'Blazer(?:/(\d+[\.\d]+))?'
@@ -1091,6 +2094,11 @@
1091
2094
  name: 'Element Browser'
1092
2095
  version: '$1'
1093
2096
 
2097
+ # eZ Browser (https://play.google.com/store/apps/details?id=com.asc.csbrowser)
2098
+ - regex: 'eZBrowser(?:/(\d+[\.\d]+))?'
2099
+ name: 'eZ Browser'
2100
+ version: '$1'
2101
+
1094
2102
  #Firebird
1095
2103
  - regex: 'Firebird(?! Build)(?:/(\d+[\.\d]+))?'
1096
2104
  name: 'Firebird'
@@ -1112,8 +2120,20 @@
1112
2120
  engine:
1113
2121
  default: 'Gecko'
1114
2122
 
1115
- #Google Earth
1116
- - regex: 'Google Earth(?:/(\d+[\.\d]+))?'
2123
+ # Google Earth Pro (https://www.google.se/intl/en/earth/versions/)
2124
+ - regex: 'Google Earth Pro(?:/(\d+[\.\d]+))?'
2125
+ name: 'Google Earth Pro'
2126
+ version: '$1'
2127
+ engine:
2128
+ default: 'WebKit'
2129
+ - regex: 'GoogleEarth/(\d+[\.\d]+).+client:(?:Plus|Pro)'
2130
+ name: 'Google Earth Pro'
2131
+ version: '$1'
2132
+ engine:
2133
+ default: 'WebKit'
2134
+
2135
+ # Google Earth (https://www.google.se/intl/en/earth/versions/)
2136
+ - regex: 'Google ?Earth(?:/v?(\d+[\.\d]+))?'
1117
2137
  name: 'Google Earth'
1118
2138
  version: '$1'
1119
2139
  engine:
@@ -1129,7 +2149,7 @@
1129
2149
  name: 'iCab Mobile'
1130
2150
  version: '$1'
1131
2151
  engine:
1132
- default: 'WebKit'
2152
+ default: 'WebKit'
1133
2153
 
1134
2154
  #iCab
1135
2155
  - regex: 'iCab(?:[ /](\d+[\.\d]+))?'
@@ -1140,19 +2160,12 @@
1140
2160
  versions:
1141
2161
  4: 'WebKit'
1142
2162
 
1143
- #Sleipnir
1144
- - regex: 'Sleipnir(?:[ /](\d+[\.\d]+))?'
1145
- name: 'Sleipnir'
1146
- version: '$1'
1147
- engine:
1148
- default: '' # multi engine
1149
-
1150
- #Lunascape
1151
- - regex: 'Lunascape(?:[/ ](\d+[\.\d]+))?'
1152
- name: 'Lunascape'
2163
+ # Crazy Browser
2164
+ - regex: 'Crazy Browser (\d+[\.\d]+)'
2165
+ name: 'Crazy Browser'
1153
2166
  version: '$1'
1154
2167
  engine:
1155
- default: '' # multi engine
2168
+ default: 'Trident'
1156
2169
 
1157
2170
  #Internet Explorer
1158
2171
  - regex: 'IEMobile[ /](\d+[\.\d]+)'
@@ -1167,22 +2180,22 @@
1167
2180
  default: 'Trident'
1168
2181
  - regex: 'MSIE.*Trident/4.0'
1169
2182
  name: 'Internet Explorer'
1170
- version: 8.0
2183
+ version: '8.0'
1171
2184
  engine:
1172
2185
  default: 'Trident'
1173
2186
  - regex: 'MSIE.*Trident/5.0'
1174
2187
  name: 'Internet Explorer'
1175
- version: 9.0
2188
+ version: '9.0'
1176
2189
  engine:
1177
2190
  default: 'Trident'
1178
2191
  - regex: 'MSIE.*Trident/6.0'
1179
2192
  name: 'Internet Explorer'
1180
- version: 10.0
2193
+ version: '10.0'
1181
2194
  engine:
1182
2195
  default: 'Trident'
1183
2196
  - regex: 'Trident/[78].0'
1184
2197
  name: 'Internet Explorer'
1185
- version: 11.0
2198
+ version: '11.0'
1186
2199
  engine:
1187
2200
  default: 'Trident'
1188
2201
  - regex: 'MSIE (\d+[\.\d]+)'
@@ -1196,13 +2209,6 @@
1196
2209
  engine:
1197
2210
  default: 'Trident'
1198
2211
 
1199
- #Kazehakase
1200
- - regex: 'Kazehakase(?:/(\d+[\.\d]+))?'
1201
- name: 'Kazehakase'
1202
- version: '$1'
1203
- engine:
1204
- default: '' # multi engine
1205
-
1206
2212
  #Kindle Browser
1207
2213
  - regex: 'Kindle/(\d+[\.\d]+)'
1208
2214
  name: 'Kindle Browser'
@@ -1255,7 +2261,7 @@
1255
2261
  version: '$1'
1256
2262
  engine:
1257
2263
  default: 'NetFront'
1258
- - regex: 'PLAYSTATION|NINTENDO 3|AppleWebKit.+ NX/\d+\.\d+\.\d+'
2264
+ - regex: 'PLAYSTATION|NINTENDO 3|AppleWebKit.+ N[XF]/\d+\.\d+\.\d+'
1259
2265
  name: 'NetFront'
1260
2266
  version: ''
1261
2267
 
@@ -1264,11 +2270,6 @@
1264
2270
  name: 'NetPositive'
1265
2271
  version: '$1'
1266
2272
 
1267
- # NTENT Browser
1268
- - regex: 'NTENTBrowser(?:/(\d+[\.\d]+))?'
1269
- name: 'NTENT Browser'
1270
- version: '$1'
1271
-
1272
2273
  #Odyssey Web Browser
1273
2274
  - regex: 'Odyssey Web Browser(?:.*OWB/(\d+[\.\d]+))?'
1274
2275
  name: 'Odyssey Web Browser'
@@ -1279,16 +2280,11 @@
1279
2280
  name: 'Off By One'
1280
2281
  version: ''
1281
2282
 
1282
- #Oregano
1283
- - regex: 'Oregano(?:[ /](\d+[\.\d]+))?'
2283
+ #Oregano (https://oregan.net/)
2284
+ - regex: '(?:Oregano|OreganMediaBrowser)(?:[ /](\d+[\.\d]+))?'
1284
2285
  name: 'Oregano'
1285
2286
  version: '$1'
1286
2287
 
1287
- #Otter Browser
1288
- - regex: 'Otter(?:[ /](\d+[\.\d]+))?'
1289
- name: 'Otter Browser'
1290
- version: '$1'
1291
-
1292
2288
  #Polaris
1293
2289
  - regex: '(?:Polaris|Embider)(?:[/ ](\d+[\.\d]+))?'
1294
2290
  name: 'Polaris'
@@ -1299,13 +2295,6 @@
1299
2295
  name: 'SEMC-Browser'
1300
2296
  version: '$1'
1301
2297
 
1302
- #Seraphic Sraf
1303
- - regex: 'Sraf(?:[/ ](\d+[\.\d]+))?'
1304
- name: 'Seraphic Sraf'
1305
- version: '$1'
1306
- engine:
1307
- default: 'Blink'
1308
-
1309
2298
  #Shiira
1310
2299
  - regex: 'Shiira(?:[/ ](\d+[\.\d]+))?'
1311
2300
  name: 'Shiira'
@@ -1330,11 +2319,6 @@
1330
2319
  name: 'Sunrise'
1331
2320
  version: '$1'
1332
2321
 
1333
- #SuperBird
1334
- - regex: 'SuperBird(?:/(\d+[\.\d]+))?'
1335
- name: 'SuperBird'
1336
- version: '$1'
1337
-
1338
2322
  #Vision Mobile Browser
1339
2323
  - regex: 'Vision-Browser(?:/(\d+[\.\d]+))'
1340
2324
  name: 'Vision Mobile Browser'
@@ -1355,11 +2339,6 @@
1355
2339
  name: 'BlackBerry Browser'
1356
2340
  version: ''
1357
2341
 
1358
- #BriskBard
1359
- - regex: 'BriskBard(?:/(\d+[\.\d]+))?'
1360
- name: 'BriskBard'
1361
- version: '$1'
1362
-
1363
2342
  #Android Browser
1364
2343
  - regex: 'Android'
1365
2344
  name: 'Android Browser'
@@ -1371,11 +2350,18 @@
1371
2350
  - regex: 'Coast(?:/(\d+[\.\d]+))?'
1372
2351
  name: 'Coast'
1373
2352
  version: '$1'
2353
+ - regex: 'Opera%20Coast/(\d+[\.\d]+)? CFNetwork/.+Darwin/.+(?!.*x86_64)'
2354
+ name: 'Coast'
2355
+ version: '$1'
2356
+ engine:
2357
+ default: 'WebKit'
1374
2358
 
1375
- #Qutebrowser
1376
- - regex: 'qutebrowser(?:/(\d+[\.\d]+))?'
1377
- name: 'Qutebrowser'
2359
+ # surf (https://surf.suckless.org/)
2360
+ - regex: 'Surf(?:/(\d+[\.\d]+))?'
2361
+ name: 'surf'
1378
2362
  version: '$1'
2363
+ engine:
2364
+ default: 'WebKit'
1379
2365
 
1380
2366
  #Safari
1381
2367
  - regex: '(?:(?:iPod|iPad|iPhone).+Version|MobileSafari)/(\d+[\.\d]+)'
@@ -1388,25 +2374,59 @@
1388
2374
  version: '$1'
1389
2375
  engine:
1390
2376
  default: 'WebKit'
1391
- - regex: '(?:iPod|iPhone|iPad)'
2377
+ - regex: '(?:iPod|(?<!Apple TV; U; CPU )iPhone|iPad)'
1392
2378
  name: 'Mobile Safari'
1393
2379
  version: ''
1394
2380
  engine:
1395
2381
  default: 'WebKit'
1396
- - regex: 'Version/(\d+[\.\d]+).*Safari/|Safari/\d+'
2382
+ - regex: 'Version/(\d+[\.\d]+).*Safari/|Safari/?\d+'
1397
2383
  name: 'Safari'
1398
2384
  version: '$1'
1399
2385
  engine:
1400
2386
  default: 'WebKit'
1401
-
1402
- #Dorado
1403
- - regex: 'Dorado WAP-Browser[/ ](\d+[\.\d]+)'
2387
+
2388
+ # Dorado
2389
+ - regex: 'Dorado WAP-Browser(?:[/ ](\d+[\.\d]+))?'
1404
2390
  name: 'Dorado'
1405
2391
  version: '$1'
1406
2392
 
1407
- #NetSurf
2393
+ # NetSurf
1408
2394
  - regex: 'NetSurf(?:/(\d+[\.\d]+))?'
1409
2395
  name: 'NetSurf'
1410
2396
  version: '$1'
1411
2397
  engine:
1412
2398
  default: 'NetSurf'
2399
+
2400
+ # Uzbl (https://www.uzbl.org/)
2401
+ - regex: 'Uzbl'
2402
+ name: 'Uzbl'
2403
+ version: ''
2404
+
2405
+ # SimpleBrowser (https://github.com/SimpleBrowserDotNet/SimpleBrowser)
2406
+ - regex: 'SimpleBrowser'
2407
+ name: 'SimpleBrowser'
2408
+ version: ''
2409
+
2410
+ # Zvu
2411
+ - regex: 'Zvu(?:/(\d+[\.\d]+))?'
2412
+ name: 'Zvu'
2413
+ version: '$1'
2414
+ engine:
2415
+ default: 'Gecko'
2416
+
2417
+ # GOG Galaxy
2418
+ - regex: 'GOGGalaxyClient/(\d+[\.\d]+)?'
2419
+ name: 'GOG Galaxy'
2420
+ version: '$1'
2421
+
2422
+ # MAUI Wap Browser
2423
+ - regex: 'WAP Browser/MAUI|(?:\w*)Maui Wap Browser|MAUI[- ]Browser'
2424
+ name: 'MAUI WAP Browser'
2425
+ version: ''
2426
+
2427
+ # SP Browser
2428
+ - regex: 'SP%20Browser/(\d+[\.\d]+)'
2429
+ name: 'SP Browser'
2430
+ version: '$1'
2431
+ engine:
2432
+ default: 'WebKit'