device_detector 1.0.4 → 1.0.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (95) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +10 -0
  3. data/README.md +8 -7
  4. data/lib/device_detector/browser.rb +364 -0
  5. data/lib/device_detector/client.rb +8 -0
  6. data/lib/device_detector/device.rb +1204 -2
  7. data/lib/device_detector/os.rb +39 -12
  8. data/lib/device_detector/parser.rb +1 -1
  9. data/lib/device_detector/version.rb +1 -1
  10. data/lib/device_detector/version_extractor.rb +28 -0
  11. data/lib/device_detector.rb +57 -13
  12. data/regexes/bots.yml +651 -61
  13. data/regexes/client/browser_engine.yml +7 -1
  14. data/regexes/client/browsers.yml +774 -78
  15. data/regexes/client/feed_readers.yml +4 -10
  16. data/regexes/client/libraries.yml +71 -2
  17. data/regexes/client/mediaplayers.yml +25 -1
  18. data/regexes/client/mobile_apps.yml +923 -73
  19. data/regexes/client/pim.yml +65 -2
  20. data/regexes/device/cameras.yml +5 -5
  21. data/regexes/device/car_browsers.yml +16 -0
  22. data/regexes/device/consoles.yml +13 -1
  23. data/regexes/device/mobiles.yml +17029 -3889
  24. data/regexes/device/notebooks.yml +114 -0
  25. data/regexes/device/portable_media_player.yml +36 -9
  26. data/regexes/device/shell_tv.yml +117 -0
  27. data/regexes/device/televisions.yml +439 -34
  28. data/regexes/oss.yml +620 -284
  29. metadata +9 -131
  30. data/.gitignore +0 -14
  31. data/.rubocop.yml +0 -49
  32. data/.ruby-version +0 -1
  33. data/.travis.yml +0 -14
  34. data/Gemfile +0 -8
  35. data/Rakefile +0 -85
  36. data/device_detector.gemspec +0 -27
  37. data/spec/device_detector/bot_fixtures_spec.rb +0 -30
  38. data/spec/device_detector/client_fixtures_spec.rb +0 -31
  39. data/spec/device_detector/concrete_user_agent_spec.rb +0 -135
  40. data/spec/device_detector/detector_fixtures_spec.rb +0 -100
  41. data/spec/device_detector/device_fixtures_spec.rb +0 -36
  42. data/spec/device_detector/device_spec.rb +0 -131
  43. data/spec/device_detector/memory_cache_spec.rb +0 -148
  44. data/spec/device_detector/model_extractor_spec.rb +0 -63
  45. data/spec/device_detector/os_fixtures_spec.rb +0 -26
  46. data/spec/device_detector/version_extractor_spec.rb +0 -79
  47. data/spec/device_detector_spec.rb +0 -189
  48. data/spec/fixtures/client/browser.yml +0 -2836
  49. data/spec/fixtures/client/feed_reader.yml +0 -199
  50. data/spec/fixtures/client/library.yml +0 -193
  51. data/spec/fixtures/client/mediaplayer.yml +0 -163
  52. data/spec/fixtures/client/mobile_app.yml +0 -217
  53. data/spec/fixtures/client/pim.yml +0 -115
  54. data/spec/fixtures/detector/bots.yml +0 -3726
  55. data/spec/fixtures/detector/camera.yml +0 -141
  56. data/spec/fixtures/detector/car_browser.yml +0 -81
  57. data/spec/fixtures/detector/console.yml +0 -321
  58. data/spec/fixtures/detector/desktop.yml +0 -5461
  59. data/spec/fixtures/detector/feature_phone.yml +0 -891
  60. data/spec/fixtures/detector/feed_reader.yml +0 -551
  61. data/spec/fixtures/detector/mediaplayer.yml +0 -253
  62. data/spec/fixtures/detector/mobile_apps.yml +0 -494
  63. data/spec/fixtures/detector/phablet.yml +0 -4167
  64. data/spec/fixtures/detector/portable_media_player.yml +0 -178
  65. data/spec/fixtures/detector/smart_display.yml +0 -61
  66. data/spec/fixtures/detector/smart_speaker.yml +0 -55
  67. data/spec/fixtures/detector/smartphone-1.yml +0 -9927
  68. data/spec/fixtures/detector/smartphone-10.yml +0 -9977
  69. data/spec/fixtures/detector/smartphone-11.yml +0 -9891
  70. data/spec/fixtures/detector/smartphone-12.yml +0 -9906
  71. data/spec/fixtures/detector/smartphone-13.yml +0 -9920
  72. data/spec/fixtures/detector/smartphone-14.yml +0 -2662
  73. data/spec/fixtures/detector/smartphone-2.yml +0 -9992
  74. data/spec/fixtures/detector/smartphone-3.yml +0 -9945
  75. data/spec/fixtures/detector/smartphone-4.yml +0 -9923
  76. data/spec/fixtures/detector/smartphone-5.yml +0 -9914
  77. data/spec/fixtures/detector/smartphone-6.yml +0 -9962
  78. data/spec/fixtures/detector/smartphone-7.yml +0 -9899
  79. data/spec/fixtures/detector/smartphone-8.yml +0 -9931
  80. data/spec/fixtures/detector/smartphone-9.yml +0 -9899
  81. data/spec/fixtures/detector/smartphone.yml +0 -9984
  82. data/spec/fixtures/detector/tablet-1.yml +0 -9995
  83. data/spec/fixtures/detector/tablet-2.yml +0 -9977
  84. data/spec/fixtures/detector/tablet-3.yml +0 -9959
  85. data/spec/fixtures/detector/tablet-4.yml +0 -4528
  86. data/spec/fixtures/detector/tablet.yml +0 -9971
  87. data/spec/fixtures/detector/tv.yml +0 -4933
  88. data/spec/fixtures/detector/unknown.yml +0 -3236
  89. data/spec/fixtures/detector/wearable.yml +0 -61
  90. data/spec/fixtures/device/camera.yml +0 -19
  91. data/spec/fixtures/device/car_browser.yml +0 -13
  92. data/spec/fixtures/device/console.yml +0 -79
  93. data/spec/fixtures/parser/oss.yml +0 -1082
  94. data/spec/fixtures/parser/vendorfragments.yml +0 -168
  95. data/spec/spec_helper.rb +0 -9
@@ -5,6 +5,496 @@
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
+
8
498
  # Safe Exam Browser (https://safeexambrowser.org/)
9
499
  - regex: 'SEB/(?:(\d+[\.\d]+))?'
10
500
  name: 'Safe Exam Browser'
@@ -36,10 +526,22 @@
36
526
  version: '$1'
37
527
 
38
528
  # Lunascape Lite (https://www.lunascape.tv/)
39
- - regex: 'iLunascapeLite/(?:(\d+[\.\d]+))?'
529
+ - regex: 'iLunascapeLite/(?:(\d+\.[.\d]+))?'
40
530
  name: 'Lunascape Lite'
41
531
  version: '$1'
42
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
+
43
545
  # Polypane (https://polypane.app/)
44
546
  - regex: 'Polypane/(?:(\d+[\.\d]+))?'
45
547
  name: 'Polypane'
@@ -139,6 +641,8 @@
139
641
  - regex: 'AlohaLite(?:/(\d+[\.\d]+))?'
140
642
  name: 'Aloha Browser Lite'
141
643
  version: '$1'
644
+ engine:
645
+ default: 'Blink'
142
646
 
143
647
  # Tao Browser (https://browser.taobao.com/)
144
648
  - regex: 'TaoBrowser(?:/(\d+[\.\d]+))?'
@@ -189,6 +693,10 @@
189
693
  - regex: 'Beamrise(?:/(\d+[\.\d]+))?'
190
694
  name: 'Beamrise'
191
695
  version: '$1'
696
+ engine:
697
+ default: 'WebKit'
698
+ versions:
699
+ 28: 'Blink'
192
700
 
193
701
  # Faux Browser (https://apps.apple.com/us/app/faux-browser/id472250940)
194
702
  - regex: 'Faux(?:/(\d+[\.\d]+))?'
@@ -222,6 +730,13 @@
222
730
  engine:
223
731
  default: 'Blink'
224
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
+
225
740
  # FreeU (https://freeu.online/)
226
741
  - regex: 'FreeU(?:/(\d+[\.\d]+))?'
227
742
  name: 'FreeU'
@@ -263,23 +778,60 @@
263
778
  version: '$1'
264
779
 
265
780
  # Jio Browser (https://play.google.com/store/apps/details?id=com.jio.web)
266
- - regex: 'JioBrowser(?:/(\d+[\.\d]+))?'
781
+ - regex: 'Jio(?:Browser|Pages)(?:/(\d+[\.\d]+))?'
267
782
  name: 'Jio Browser'
268
783
  version: '$1'
269
784
  engine:
270
785
  default: 'Blink'
271
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
+
272
794
  # hola! Browser (https://hola.org/browser)
273
- - regex: 'Hola(?:/(\d+[\.\d]+))?'
795
+ - regex: 'Chrome/.+ Hola(?:/(\d+[\.\d]+))?'
274
796
  name: 'hola! Browser'
275
797
  version: '$1'
276
798
  engine:
277
799
  default: 'Blink'
278
800
 
279
- # Huawei Browser
801
+ # Slimjet (https://slimjet.com)
802
+ - regex: 'Slimjet/(?:(\d+[\.\d]+))'
803
+ name: 'Slimjet'
804
+ version: '$1'
805
+ engine:
806
+ default: 'Blink'
807
+
808
+ # 7Star
809
+ - regex: '7Star/(?:(\d+[\.\d]+))'
810
+ name: '7Star'
811
+ version: '$1'
812
+ engine:
813
+ default: 'Blink'
814
+
815
+ # MxNitro
816
+ - regex: 'MxNitro/(?:(\d+[\.\d]+))'
817
+ name: 'MxNitro'
818
+ version: '$1'
819
+ engine:
820
+ default: 'Blink'
821
+
822
+ # Huawei Browser Mobile
280
823
  - regex: 'HuaweiBrowser(?:/(\d+[\.\d]+))?'
824
+ name: 'Huawei Browser Mobile'
825
+ version: '$1'
826
+ engine:
827
+ default: 'Blink'
828
+
829
+ # Huawei Browser
830
+ - regex: 'HBPC/(\d+[\.\d]+)'
281
831
  name: 'Huawei Browser'
282
832
  version: '$1'
833
+ engine:
834
+ default: 'Blink'
283
835
 
284
836
  # vivo Browser
285
837
  - regex: 'VivoBrowser(?:/(\d+[\.\d]+))?'
@@ -299,6 +851,11 @@
299
851
  default: 'Blink'
300
852
 
301
853
  # Qwant Mobile
854
+ - regex: 'QwantiOS/(\d+[\.\d]+)'
855
+ name: 'Qwant Mobile'
856
+ version: '$1'
857
+ engine:
858
+ default: 'WebKit'
302
859
  - regex: 'QwantMobile(?:/(\d+[\.\d]+))?'
303
860
  name: 'Qwant Mobile'
304
861
  version: '$1'
@@ -325,7 +882,7 @@
325
882
  default: 'Gecko'
326
883
 
327
884
  # Microsoft Edge (Spartan Edge)
328
- - regex: 'Edge[ /](\d+[\.\d]+)'
885
+ - regex: '(?<!motorola )Edge[ /](\d+[\.\d]+)'
329
886
  name: 'Microsoft Edge'
330
887
  version: '$1'
331
888
  engine:
@@ -400,12 +957,17 @@
400
957
  default: 'Gecko'
401
958
 
402
959
  #AlohaBrowser
960
+ - regex: 'Chrome/.+ AlohaBrowser(?:/(\d+[\.\d]+))?'
961
+ name: 'Aloha Browser'
962
+ version: '$1'
963
+ engine:
964
+ default: 'Blink'
403
965
  - regex: 'AlohaBrowser(?:/(\d+[\.\d]+))?'
404
966
  name: 'Aloha Browser'
405
967
  version: '$1'
406
968
 
407
969
  # Avast Secure Browser | Avast SafeZone Browser (https://www.avast.com/)
408
- - regex: '(?:Avast|ASW|Safer)(?:/(\d+[\.\d]+))?'
970
+ - regex: '(?:Avast(?:SecureBrowser)?|ASW|Safer)(?:/(\d+[\.\d]+))?'
409
971
  name: 'Avast Secure Browser'
410
972
  version: '$1'
411
973
 
@@ -442,7 +1004,7 @@
442
1004
 
443
1005
 
444
1006
  #Avant Browser
445
- - regex: 'Avant Browser'
1007
+ - regex: 'Avant ?Browser'
446
1008
  name: 'Avant Browser'
447
1009
  version: ''
448
1010
  engine:
@@ -460,7 +1022,7 @@
460
1022
  engine:
461
1023
  default: 'WebKit'
462
1024
  versions:
463
- 28: 'Blink'
1025
+ '28': 'Blink'
464
1026
 
465
1027
  #Atomic Web Browser
466
1028
  - regex: 'AtomicBrowser(?:/(\d+[\.\d]+))?'
@@ -532,7 +1094,7 @@
532
1094
  engine:
533
1095
  default: 'Gecko'
534
1096
  versions:
535
- 3: 'WebKit'
1097
+ '3': 'WebKit'
536
1098
 
537
1099
  # Jig Browser Plus (https://jig.jp/)
538
1100
  - regex: 'JigBrowserPlus/(?:(\d+[\.\d]+))?'
@@ -569,7 +1131,7 @@
569
1131
  version: '$1'
570
1132
 
571
1133
  # t-online.de Browser (https://www.t-online.de/computer/browser/)
572
- - regex: 'TO-Browser(?:/TOB(\d+[\.\d]+))?'
1134
+ - regex: '(?:TO-Browser/TOB|DT-Browser/DTB)(\d+[\.\d]+)'
573
1135
  name: 't-online.de Browser'
574
1136
  version: '$1'
575
1137
 
@@ -602,7 +1164,7 @@
602
1164
  default: 'Goanna'
603
1165
 
604
1166
  #Firefox Focus / Firefox Klar
605
- - regex: '(?:Focus|Klar)(?:/(\d+[\.\d]+))?'
1167
+ - regex: '(?:Focus|Klar)(?:/(\d+[\.\d]+))'
606
1168
  name: 'Firefox Focus'
607
1169
  version: '$1'
608
1170
 
@@ -643,7 +1205,7 @@
643
1205
  version: '$1'
644
1206
  engine:
645
1207
  default: 'Servo'
646
- - regex: 'Firefox(?:/(\d+[\.\d]+))?'
1208
+ - regex: '(?!.*Opera[ /])Firefox(?:/(\d+[\.\d]+))?'
647
1209
  name: 'Firefox'
648
1210
  version: '$1'
649
1211
  engine:
@@ -723,6 +1285,11 @@
723
1285
  name: 'Obigo'
724
1286
  version: ''
725
1287
 
1288
+ # UC Browser HD
1289
+ - regex: 'UCBrowserHD/(\d[\d\.]+)'
1290
+ name: 'UC Browser HD'
1291
+ version: '$1'
1292
+
726
1293
  #UC Browser Mini
727
1294
  - regex: 'UCMini(?:[ /]?(\d+[\.\d]+))?'
728
1295
  name: 'UC Browser Mini'
@@ -740,12 +1307,18 @@
740
1307
  version: ''
741
1308
 
742
1309
  # Opera GX (https://www.opera.com/gx#start | http://ftp.opera.com/pub/opera_gx/)
743
- - regex: 'OPRGX(?:/(\d+[\.\d]+))?'
1310
+ - regex: 'Chrome/.+ OP(?:RG)?X(?:/(\d+[\.\d]+))?'
744
1311
  name: 'Opera GX'
745
1312
  version: '$1'
746
1313
  engine:
747
1314
  default: 'Blink'
748
1315
 
1316
+ - regex: 'OP(?:RG)?X(?:/(\d+[\.\d]+))?'
1317
+ name: 'Opera GX'
1318
+ version: '$1'
1319
+ engine:
1320
+ default: 'WebKit'
1321
+
749
1322
  #Opera
750
1323
  - regex: '(?:Opera Tablet.*Version|Opera/.+Opera Mobi.+Version|Mobile.+OPR)/(\d+[\.\d]+)'
751
1324
  name: 'Opera Mobile'
@@ -764,6 +1337,16 @@
764
1337
  version: '$1'
765
1338
  engine:
766
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'
767
1350
  - regex: 'OPT/(\d+[\.\d]+)'
768
1351
  name: 'Opera Touch'
769
1352
  version: '$1'
@@ -791,6 +1374,12 @@
791
1374
  version: '$1'
792
1375
  engine:
793
1376
  default: 'WebKit'
1377
+ - regex: 'Opera%20Mini/(\d+[\.\d]+) CFNetwork'
1378
+ name: 'Opera Mini iOS'
1379
+ version: '$1'
1380
+ engine:
1381
+ default: 'WebKit'
1382
+
794
1383
  - regex: 'Opera.+Edition Next.+Version/(\d+[\.\d]+)'
795
1384
  name: 'Opera Next'
796
1385
  version: '$1'
@@ -812,8 +1401,8 @@
812
1401
  default: ''
813
1402
  versions:
814
1403
  '3.5': 'Elektra'
815
- 7: 'Presto'
816
- 15: 'Blink'
1404
+ '7': 'Presto'
1405
+ '15': 'Blink'
817
1406
 
818
1407
  #Rekonq
819
1408
  - regex: 'rekonq(?:/(\d+[\.\d]+))?'
@@ -836,7 +1425,7 @@
836
1425
  engine:
837
1426
  default: 'WebKit'
838
1427
  versions:
839
- 28: 'Blink'
1428
+ '28': 'Blink'
840
1429
 
841
1430
  #ChromePlus
842
1431
  - regex: 'ChromePlus(?:/(\d+[\.\d]+))?'
@@ -862,15 +1451,12 @@
862
1451
  4: '' # multiple (KHTML or WebKit)
863
1452
 
864
1453
  #Baidu Browser
865
- - regex: '(?:baidubrowser|bdbrowser_i18n|bdbrowser)(?:[/ ](\d+[\.\d]*))?'
866
- name: 'Baidu Browser'
867
- version: '$1'
868
- - regex: 'FlyFlow(?:[/ ](\d+[\.\d]*))?'
1454
+ - regex: '(?:baidubrowser|bdbrowser(?:(?:hd)?_i18n)?|FlyFlow|BaiduHD)(?:[/ ](\d+[\.\d]*))?'
869
1455
  name: 'Baidu Browser'
870
1456
  version: '$1'
871
1457
 
872
1458
  #Baidu Spark
873
- - regex: '(?:(?:BD)?Spark|BIDUBrowser)[/ ](\d+[\.\d]*)'
1459
+ - regex: '(?:(?:BD)?Spark(?:Safe)?|BIDUBrowser)[/ ](\d+[\.\d]*)'
874
1460
  name: 'Baidu Spark'
875
1461
  version: '$1'
876
1462
 
@@ -880,13 +1466,18 @@
880
1466
  version: '$1'
881
1467
  engine:
882
1468
  default: 'Blink'
883
-
884
1469
  #Yandex Browser
885
1470
  - regex: 'YaBrowser(?:/(\d+[\.\d]*))(?: \((alpha|beta)\))?'
886
1471
  name: 'Yandex Browser'
887
1472
  version: '$1 $2'
888
1473
  engine:
889
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'
890
1481
 
891
1482
  #Vivaldi
892
1483
  - regex: 'Vivaldi(?:/(\d+[\.\d]+))?'
@@ -903,6 +1494,11 @@
903
1494
  default: 'Blink'
904
1495
 
905
1496
  #Midori
1497
+ - regex: 'Chrome.+Midori Browser/(\d+[\.\d]+)'
1498
+ name: 'Midori'
1499
+ version: '$1'
1500
+ engine:
1501
+ default: 'Blink'
906
1502
  - regex: 'Midori(?:/(\d+[\.\d]+))?'
907
1503
  name: 'Midori'
908
1504
  version: '$1'
@@ -910,12 +1506,19 @@
910
1506
  default: 'WebKit'
911
1507
 
912
1508
  #Mercury
913
- - regex: 'Mercury(?:/(\d+[\.\d]+))?'
1509
+ - regex: 'Mercury/(?:(\d+[\.\d]+))?'
914
1510
  name: 'Mercury'
915
1511
  version: '$1'
916
1512
 
917
1513
  #Maxthon
918
- - 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]+)'
919
1522
  name: 'Maxthon'
920
1523
  version: '$1'
921
1524
  engine:
@@ -947,6 +1550,8 @@
947
1550
  version: '$1'
948
1551
  engine:
949
1552
  default: 'WebKit'
1553
+ versions:
1554
+ 28: 'Blink'
950
1555
 
951
1556
  - regex: 'Iron(?:/(\d+[\.\d]+))?'
952
1557
  name: 'Iron'
@@ -981,6 +1586,11 @@
981
1586
  name: 'Sogou Explorer'
982
1587
  version: '$1'
983
1588
 
1589
+ # QQ Browser Lite
1590
+ - regex: 'QQBrowserLite/([\d\.]+)'
1591
+ name: 'QQ Browser Lite'
1592
+ version: '$1'
1593
+
984
1594
  # QQ Browser Mini
985
1595
  - regex: 'M?QQBrowser/Mini([\.\d]+)?'
986
1596
  name: 'QQ Browser Mini'
@@ -1006,8 +1616,8 @@
1006
1616
  # This browser (http://coccoc.vn/) is built on top of Chromium with
1007
1617
  # additional features for Vietnamese users. Its regex has to be placed
1008
1618
  # before generic Chrome regex, or Chrome regex will match first and
1009
- # the browser is mistaken as "Chrome".
1010
- - regex: 'coc_coc_browser(?:/(\d+[\.\d]+))?'
1619
+ # the browser is mistaken as 'Chrome".
1620
+ - regex: '(?:coc_coc_browser|coccocbrowser|CocCoc)(?:/(\d+[\.\d]+))?'
1011
1621
  name: 'Coc Coc'
1012
1622
  version: '$1'
1013
1623
  engine:
@@ -1027,7 +1637,10 @@
1027
1637
  version: '$1'
1028
1638
 
1029
1639
  # Super Fast Browser (https://play.google.com/store/apps/details?id=com.browser.tssomas)
1030
- - regex: '(?:SFBrowser|com.browser.tssomas)(?:/(\d+[\.\d]+))?'
1640
+ - regex: '(?:SFB(?:rowser)?)/(\d+[\.\d]+)'
1641
+ name: 'Super Fast Browser'
1642
+ version: '$1'
1643
+ - regex: 'com.browser.tssomas(?:/(\d+[\.\d]+))?'
1031
1644
  name: 'Super Fast Browser'
1032
1645
  version: '$1'
1033
1646
 
@@ -1040,6 +1653,8 @@
1040
1653
  - regex: 'UBrowser(?:/(\d+[\.\d]+))?'
1041
1654
  name: 'UBrowser'
1042
1655
  version: '$1'
1656
+ engine:
1657
+ default: 'Blink'
1043
1658
 
1044
1659
  #Streamy (Chromium based)
1045
1660
  - regex: 'Streamy(?:/(\d+[\.\d]+))?'
@@ -1065,28 +1680,44 @@
1065
1680
  - regex: 'UC AppleWebKit'
1066
1681
  name: 'UC Browser'
1067
1682
  version: ''
1683
+ - regex: 'UC%20Browser/(\d+[\.\d]+)? CFNetwork/.+Darwin/.+(?!.*x86_64)'
1684
+ name: 'UC Browser'
1685
+ version: '$1'
1686
+ engine:
1687
+ default: 'WebKit'
1068
1688
 
1069
- #Tenta Browser
1070
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'
1071
1697
  - regex: 'Tenta/(\d+[\.\d]+)'
1072
1698
  name: 'Tenta Browser'
1073
1699
  version: '$1'
1074
1700
  engine:
1075
- default: 'Webkit'
1701
+ default: 'WebKit'
1076
1702
 
1077
1703
  # Firefox Rocket
1078
1704
  - regex: 'Rocket/(\d+[\.\d]+)'
1079
1705
  name: 'Firefox Rocket'
1080
1706
  version: '$1'
1081
1707
  engine:
1082
- default: 'Webkit'
1708
+ default: 'WebKit'
1083
1709
 
1084
1710
  # Web Explorer
1085
1711
  - regex: 'Web Explorer/(\d+[\.\d]+).*Chrome'
1086
1712
  name: 'Web Explorer'
1087
1713
  version: '$1'
1088
1714
  engine:
1089
- default: 'Webkit'
1715
+ default: 'WebKit'
1716
+ - regex: 'webexplorer/(\d+)'
1717
+ name: 'Web Explorer'
1718
+ version: '$1'
1719
+ engine:
1720
+ default: 'WebKit'
1090
1721
 
1091
1722
  # Seznam Browser
1092
1723
  - regex: 'SznProhlizec/(\d+[\.\d]+)'
@@ -1156,6 +1787,16 @@
1156
1787
  engine:
1157
1788
  default: 'WebKit'
1158
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
+
1159
1800
  #IBrowse
1160
1801
  - regex: 'IBrowse(?:[ /](\d+[\.\d]+))?'
1161
1802
  name: 'IBrowse'
@@ -1176,6 +1817,11 @@
1176
1817
  engine:
1177
1818
  default: 'WebKit'
1178
1819
 
1820
+ # GoBrowser
1821
+ - regex: 'GoBrowser(?:/(\d+[\.\d]+))?'
1822
+ name: 'GoBrowser'
1823
+ version: '$1'
1824
+
1179
1825
  #Nokia Browser
1180
1826
  - regex: '(?:NokiaBrowser|BrowserNG)(?:/(\d+[\.\d]+))?'
1181
1827
  name: 'Nokia Browser'
@@ -1194,7 +1840,7 @@
1194
1840
  version: ''
1195
1841
 
1196
1842
  #Sleipnir
1197
- - regex: 'Sleipnir(?:[ /](\d+[\.\d]+))?'
1843
+ - regex: 'Sleipnir(?:(?:%20Browser)?[ /](\d+[\.\d]+))?'
1198
1844
  name: 'Sleipnir'
1199
1845
  version: '$1'
1200
1846
  engine:
@@ -1217,6 +1863,42 @@
1217
1863
  engine:
1218
1864
  default: 'WebKit'
1219
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
+
1220
1902
  # Chrome Webview
1221
1903
  - regex: 'Version/.* Chrome(?:/(\d+[\.\d]+))?'
1222
1904
  name: 'Chrome Webview'
@@ -1275,6 +1957,13 @@
1275
1957
  - regex: '(?:Tizen|SLP) Browser(?:/(\d+[\.\d]+))?'
1276
1958
  name: 'Tizen Browser'
1277
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'
1278
1967
 
1279
1968
  #Palm Blazer
1280
1969
  - regex: 'Blazer(?:/(\d+[\.\d]+))?'
@@ -1431,8 +2120,20 @@
1431
2120
  engine:
1432
2121
  default: 'Gecko'
1433
2122
 
1434
- #Google Earth
1435
- - 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]+))?'
1436
2137
  name: 'Google Earth'
1437
2138
  version: '$1'
1438
2139
  engine:
@@ -1448,7 +2149,7 @@
1448
2149
  name: 'iCab Mobile'
1449
2150
  version: '$1'
1450
2151
  engine:
1451
- default: 'WebKit'
2152
+ default: 'WebKit'
1452
2153
 
1453
2154
  #iCab
1454
2155
  - regex: 'iCab(?:[ /](\d+[\.\d]+))?'
@@ -1459,12 +2160,12 @@
1459
2160
  versions:
1460
2161
  4: 'WebKit'
1461
2162
 
1462
- #Lunascape
1463
- - regex: 'i?Lunascape(?:[/ ](\d+[\.\d]+))?'
1464
- name: 'Lunascape'
2163
+ # Crazy Browser
2164
+ - regex: 'Crazy Browser (\d+[\.\d]+)'
2165
+ name: 'Crazy Browser'
1465
2166
  version: '$1'
1466
2167
  engine:
1467
- default: '' # multi engine
2168
+ default: 'Trident'
1468
2169
 
1469
2170
  #Internet Explorer
1470
2171
  - regex: 'IEMobile[ /](\d+[\.\d]+)'
@@ -1479,22 +2180,22 @@
1479
2180
  default: 'Trident'
1480
2181
  - regex: 'MSIE.*Trident/4.0'
1481
2182
  name: 'Internet Explorer'
1482
- version: 8.0
2183
+ version: '8.0'
1483
2184
  engine:
1484
2185
  default: 'Trident'
1485
2186
  - regex: 'MSIE.*Trident/5.0'
1486
2187
  name: 'Internet Explorer'
1487
- version: 9.0
2188
+ version: '9.0'
1488
2189
  engine:
1489
2190
  default: 'Trident'
1490
2191
  - regex: 'MSIE.*Trident/6.0'
1491
2192
  name: 'Internet Explorer'
1492
- version: 10.0
2193
+ version: '10.0'
1493
2194
  engine:
1494
2195
  default: 'Trident'
1495
2196
  - regex: 'Trident/[78].0'
1496
2197
  name: 'Internet Explorer'
1497
- version: 11.0
2198
+ version: '11.0'
1498
2199
  engine:
1499
2200
  default: 'Trident'
1500
2201
  - regex: 'MSIE (\d+[\.\d]+)'
@@ -1579,16 +2280,11 @@
1579
2280
  name: 'Off By One'
1580
2281
  version: ''
1581
2282
 
1582
- #Oregano
1583
- - regex: 'Oregano(?:[ /](\d+[\.\d]+))?'
2283
+ #Oregano (https://oregan.net/)
2284
+ - regex: '(?:Oregano|OreganMediaBrowser)(?:[ /](\d+[\.\d]+))?'
1584
2285
  name: 'Oregano'
1585
2286
  version: '$1'
1586
2287
 
1587
- #Otter Browser
1588
- - regex: 'Otter(?:[ /](\d+[\.\d]+))?'
1589
- name: 'Otter Browser'
1590
- version: '$1'
1591
-
1592
2288
  #Polaris
1593
2289
  - regex: '(?:Polaris|Embider)(?:[/ ](\d+[\.\d]+))?'
1594
2290
  name: 'Polaris'
@@ -1599,13 +2295,6 @@
1599
2295
  name: 'SEMC-Browser'
1600
2296
  version: '$1'
1601
2297
 
1602
- #Seraphic Sraf
1603
- - regex: 'Sraf(?:[/ ](\d+[\.\d]+))?'
1604
- name: 'Seraphic Sraf'
1605
- version: '$1'
1606
- engine:
1607
- default: 'Blink'
1608
-
1609
2298
  #Shiira
1610
2299
  - regex: 'Shiira(?:[/ ](\d+[\.\d]+))?'
1611
2300
  name: 'Shiira'
@@ -1630,11 +2319,6 @@
1630
2319
  name: 'Sunrise'
1631
2320
  version: '$1'
1632
2321
 
1633
- #SuperBird
1634
- - regex: 'SuperBird(?:/(\d+[\.\d]+))?'
1635
- name: 'SuperBird'
1636
- version: '$1'
1637
-
1638
2322
  #Vision Mobile Browser
1639
2323
  - regex: 'Vision-Browser(?:/(\d+[\.\d]+))'
1640
2324
  name: 'Vision Mobile Browser'
@@ -1655,11 +2339,6 @@
1655
2339
  name: 'BlackBerry Browser'
1656
2340
  version: ''
1657
2341
 
1658
- #BriskBard
1659
- - regex: 'BriskBard(?:/(\d+[\.\d]+))?'
1660
- name: 'BriskBard'
1661
- version: '$1'
1662
-
1663
2342
  #Android Browser
1664
2343
  - regex: 'Android'
1665
2344
  name: 'Android Browser'
@@ -1671,11 +2350,11 @@
1671
2350
  - regex: 'Coast(?:/(\d+[\.\d]+))?'
1672
2351
  name: 'Coast'
1673
2352
  version: '$1'
1674
-
1675
- #Qutebrowser
1676
- - regex: 'qutebrowser(?:/(\d+[\.\d]+))?'
1677
- name: 'Qutebrowser'
2353
+ - regex: 'Opera%20Coast/(\d+[\.\d]+)? CFNetwork/.+Darwin/.+(?!.*x86_64)'
2354
+ name: 'Coast'
1678
2355
  version: '$1'
2356
+ engine:
2357
+ default: 'WebKit'
1679
2358
 
1680
2359
  # surf (https://surf.suckless.org/)
1681
2360
  - regex: 'Surf(?:/(\d+[\.\d]+))?'
@@ -1695,23 +2374,23 @@
1695
2374
  version: '$1'
1696
2375
  engine:
1697
2376
  default: 'WebKit'
1698
- - regex: '(?:iPod|iPhone|iPad)'
2377
+ - regex: '(?:iPod|(?<!Apple TV; U; CPU )iPhone|iPad)'
1699
2378
  name: 'Mobile Safari'
1700
2379
  version: ''
1701
2380
  engine:
1702
2381
  default: 'WebKit'
1703
- - regex: 'Version/(\d+[\.\d]+).*Safari/|Safari/\d+'
2382
+ - regex: 'Version/(\d+[\.\d]+).*Safari/|Safari/?\d+'
1704
2383
  name: 'Safari'
1705
2384
  version: '$1'
1706
2385
  engine:
1707
2386
  default: 'WebKit'
1708
-
1709
- #Dorado
1710
- - regex: 'Dorado WAP-Browser[/ ](\d+[\.\d]+)'
2387
+
2388
+ # Dorado
2389
+ - regex: 'Dorado WAP-Browser(?:[/ ](\d+[\.\d]+))?'
1711
2390
  name: 'Dorado'
1712
2391
  version: '$1'
1713
2392
 
1714
- #NetSurf
2393
+ # NetSurf
1715
2394
  - regex: 'NetSurf(?:/(\d+[\.\d]+))?'
1716
2395
  name: 'NetSurf'
1717
2396
  version: '$1'
@@ -1733,4 +2412,21 @@
1733
2412
  name: 'Zvu'
1734
2413
  version: '$1'
1735
2414
  engine:
1736
- default: 'Gecko'
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'