device_detector 1.0.4 → 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 (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'