device_detector 1.0.5 → 1.0.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (90) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +7 -6
  3. data/lib/device_detector/browser.rb +364 -0
  4. data/lib/device_detector/client.rb +8 -0
  5. data/lib/device_detector/device.rb +1124 -4
  6. data/lib/device_detector/os.rb +36 -11
  7. data/lib/device_detector/version.rb +1 -1
  8. data/lib/device_detector/version_extractor.rb +9 -0
  9. data/lib/device_detector.rb +57 -13
  10. data/regexes/bots.yml +551 -58
  11. data/regexes/client/browser_engine.yml +7 -1
  12. data/regexes/client/browsers.yml +594 -71
  13. data/regexes/client/feed_readers.yml +4 -10
  14. data/regexes/client/libraries.yml +47 -2
  15. data/regexes/client/mediaplayers.yml +25 -1
  16. data/regexes/client/mobile_apps.yml +447 -77
  17. data/regexes/client/pim.yml +49 -1
  18. data/regexes/device/cameras.yml +5 -5
  19. data/regexes/device/car_browsers.yml +16 -0
  20. data/regexes/device/consoles.yml +6 -0
  21. data/regexes/device/mobiles.yml +12905 -4561
  22. data/regexes/device/portable_media_player.yml +20 -3
  23. data/regexes/device/shell_tv.yml +117 -0
  24. data/regexes/device/televisions.yml +426 -35
  25. data/regexes/oss.yml +567 -139
  26. data/spec/device_detector/concrete_user_agent_spec.rb +30 -42
  27. data/spec/device_detector/detector_fixtures_spec.rb +9 -5
  28. data/spec/device_detector/device_spec.rb +26 -10
  29. data/spec/fixtures/client/browser.yml +1463 -391
  30. data/spec/fixtures/client/feed_reader.yml +0 -12
  31. data/spec/fixtures/client/library.yml +91 -37
  32. data/spec/fixtures/client/mediaplayer.yml +30 -0
  33. data/spec/fixtures/client/mobile_app.yml +498 -45
  34. data/spec/fixtures/client/pim.yml +60 -0
  35. data/spec/fixtures/detector/bots.yml +1189 -568
  36. data/spec/fixtures/detector/camera.yml +12 -26
  37. data/spec/fixtures/detector/car_browser.yml +151 -15
  38. data/spec/fixtures/detector/console.yml +70 -48
  39. data/spec/fixtures/detector/desktop.yml +2041 -916
  40. data/spec/fixtures/detector/feature_phone.yml +895 -189
  41. data/spec/fixtures/detector/feed_reader.yml +50 -77
  42. data/spec/fixtures/detector/mediaplayer.yml +79 -26
  43. data/spec/fixtures/detector/mobile_apps.yml +726 -72
  44. data/spec/fixtures/detector/peripheral.yml +271 -0
  45. data/spec/fixtures/detector/phablet.yml +3635 -1596
  46. data/spec/fixtures/detector/portable_media_player.yml +355 -46
  47. data/spec/fixtures/detector/smart_display.yml +183 -9
  48. data/spec/fixtures/detector/smart_speaker.yml +13 -8
  49. data/spec/fixtures/detector/smartphone-1.yml +4002 -4286
  50. data/spec/fixtures/detector/smartphone-10.yml +3771 -4763
  51. data/spec/fixtures/detector/smartphone-11.yml +3615 -4692
  52. data/spec/fixtures/detector/smartphone-12.yml +3856 -4764
  53. data/spec/fixtures/detector/smartphone-13.yml +4213 -4713
  54. data/spec/fixtures/detector/smartphone-14.yml +4039 -4497
  55. data/spec/fixtures/detector/smartphone-15.yml +5642 -2956
  56. data/spec/fixtures/detector/smartphone-16.yml +4739 -5082
  57. data/spec/fixtures/detector/smartphone-17.yml +4832 -4275
  58. data/spec/fixtures/detector/smartphone-18.yml +9806 -0
  59. data/spec/fixtures/detector/smartphone-19.yml +9965 -0
  60. data/spec/fixtures/detector/smartphone-2.yml +4842 -2589
  61. data/spec/fixtures/detector/smartphone-20.yml +9710 -0
  62. data/spec/fixtures/detector/smartphone-21.yml +8693 -0
  63. data/spec/fixtures/detector/smartphone-22.yml +10178 -0
  64. data/spec/fixtures/detector/smartphone-23.yml +9453 -0
  65. data/spec/fixtures/detector/smartphone-24.yml +9843 -0
  66. data/spec/fixtures/detector/smartphone-25.yml +9703 -0
  67. data/spec/fixtures/detector/smartphone-26.yml +10007 -0
  68. data/spec/fixtures/detector/smartphone-27.yml +4927 -0
  69. data/spec/fixtures/detector/smartphone-3.yml +4387 -4427
  70. data/spec/fixtures/detector/smartphone-4.yml +3597 -4582
  71. data/spec/fixtures/detector/smartphone-5.yml +4066 -5022
  72. data/spec/fixtures/detector/smartphone-6.yml +3455 -4621
  73. data/spec/fixtures/detector/smartphone-7.yml +3574 -4574
  74. data/spec/fixtures/detector/smartphone-8.yml +4617 -4704
  75. data/spec/fixtures/detector/smartphone-9.yml +4080 -5035
  76. data/spec/fixtures/detector/smartphone.yml +3244 -4234
  77. data/spec/fixtures/detector/tablet-1.yml +4652 -4492
  78. data/spec/fixtures/detector/tablet-2.yml +3515 -4434
  79. data/spec/fixtures/detector/tablet-3.yml +3418 -4351
  80. data/spec/fixtures/detector/tablet-4.yml +5149 -3200
  81. data/spec/fixtures/detector/tablet-5.yml +9273 -0
  82. data/spec/fixtures/detector/tablet-6.yml +4588 -0
  83. data/spec/fixtures/detector/tablet.yml +1621 -2613
  84. data/spec/fixtures/detector/tv-1.yml +2501 -0
  85. data/spec/fixtures/detector/tv.yml +7826 -3114
  86. data/spec/fixtures/detector/unknown.yml +370 -531
  87. data/spec/fixtures/detector/wearable.yml +863 -9
  88. data/spec/fixtures/parser/oss.yml +1350 -21
  89. data/spec/fixtures/parser/vendorfragments.yml +53 -53
  90. metadata +35 -5
@@ -5,6 +5,419 @@
5
5
  # @license http://www.gnu.org/licenses/lgpl.html LGPL v3 or later
6
6
  ###############
7
7
 
8
+ # Secure Browser (https://safertechnologies.io/)
9
+ - regex: 'Secure/(?:(\d+[\.\d]+))?'
10
+ name: 'Secure Browser'
11
+ version: '$1'
12
+ engine:
13
+ default: 'Blink'
14
+
15
+ # Arvin (https://play.google.com/store/apps/details?id=com.browser.arvin.anti.blokir&hl=sv&gl=US)
16
+ - regex: 'Arvin/(\d+[\.\d]+)'
17
+ name: 'Arvin'
18
+ version: '$1'
19
+ engine:
20
+ default: 'Blink'
21
+
22
+ # Edge Webview (https://docs.microsoft.com/en-us/microsoft-edge/webview2/)
23
+ - regex: 'Version/.+Chrome/.+EdgW/(\d+[\.\d]+)'
24
+ name: 'Edge WebView'
25
+ version: '$1'
26
+ engine:
27
+ default: 'WebKit'
28
+
29
+ # Mandarin (https://mandarin-browser.com/)
30
+ - regex: 'Mandarin Browser/(\d+[\.\d]+)'
31
+ name: 'Mandarin'
32
+ version: '$1'
33
+ engine:
34
+ default: 'Blink'
35
+
36
+ # Maelstrom (https://www.bittorrent.com/)
37
+ - regex: 'Torrent/(\d+[\.\d]+)'
38
+ name: 'Maelstrom'
39
+ version: '$1'
40
+ engine:
41
+ default: 'Blink'
42
+
43
+ # Helio (https://developer.magicleap.com/en-us/learn/guides/lumin-os-release-notes-summary)
44
+ - regex: 'Helio/(\d+[\.\d]+)'
45
+ name: 'Helio'
46
+ version: '$1'
47
+ engine:
48
+ default: 'Blink'
49
+
50
+ # 7654 Browser (http://7654browser.shzhanmeng.com/)
51
+ - regex: '7654Browser/(\d+[\.\d]+)'
52
+ name: '7654 Browser'
53
+ version: '$1'
54
+ engine:
55
+ default: 'Blink'
56
+
57
+ # Qazweb (http://www.qazweb.com/)
58
+ - regex: 'Qazweb/(\d+[\.\d]+)'
59
+ name: 'Qazweb'
60
+ version: '$1'
61
+ engine:
62
+ default: 'Gecko'
63
+
64
+ # deg-degan (https://degdegan.com/)
65
+ - regex: 'Degdegan/(\d+[\.\d]+)'
66
+ name: 'deg-degan'
67
+ version: '$1'
68
+ engine:
69
+ default: 'Blink'
70
+
71
+ # JavaFX (https://docs.oracle.com/javase/8/javafx/embedded-browser-tutorial/overview.htm)
72
+ - regex: 'JavaFX/(\d+[\.\d]+)'
73
+ name: 'JavaFX'
74
+ version: '$1'
75
+ engine:
76
+ default: 'WebKit'
77
+
78
+ # Chedot (https://landing.chedot.com/)
79
+ - regex: 'Chedot/(\d+[\.\d]+)'
80
+ name: 'Chedot'
81
+ version: '$1'
82
+ engine:
83
+ default: 'Blink'
84
+
85
+ # Chromium GOST (https://github.com/deemru/chromium-gost)
86
+ - regex: 'Chrome/(\d+[\.\d]+) \(Chromium GOST\)'
87
+ name: 'Chromium GOST'
88
+ version: '$1'
89
+ engine:
90
+ default: 'Blink'
91
+
92
+ # Deledao (https://www.deledao.com/)
93
+ - regex: '(?:DeledaoPersonal|DeledaoFamily)/(\d+[\.\d]+)'
94
+ name: 'Deledao'
95
+ version: '$1'
96
+ engine:
97
+ default: 'Blink'
98
+
99
+ # HasBrowser (https://browser.hascoding.com)
100
+ - regex: 'HasBrowser/(\d+[\.\d]+)'
101
+ name: 'HasBrowser'
102
+ version: '$1'
103
+ engine:
104
+ default: 'Blink'
105
+
106
+ # Byffox (https://byffox.sourceforge.io/index.php)
107
+ - regex: 'Byffox/(\d+[\.\d]+)'
108
+ name: 'Byffox'
109
+ version: '$1'
110
+ engine:
111
+ default: 'Gecko'
112
+
113
+ # CoolBrowser (https://play.google.com/store/apps/details?id=com.easybrowser.browser.coolbrowser)
114
+ - regex: 'Chrome/(\d+[\.\d]+).+AgentWeb.+UCBrowser'
115
+ name: 'CoolBrowser'
116
+ version: '$1'
117
+ engine:
118
+ default: 'Blink'
119
+
120
+ # Dot Browser (https://dothq.co/)
121
+ - regex: 'DotBrowser/(\d+[\.\d]+)'
122
+ name: 'Dot Browser'
123
+ version: '$1'
124
+ engine:
125
+ default: 'Blink'
126
+
127
+ # Craving Explorer (https://www.crav-ing.com/)
128
+ - regex: 'CravingExplorer/(\d+[\.\d]+)'
129
+ name: 'Craving Explorer'
130
+ version: '$1'
131
+ engine:
132
+ default: 'Blink'
133
+
134
+ # DeskBrowse (https://web.archive.org/web/20170614060014/http://deskbrowse.org/)
135
+ - regex: 'DeskBrowse/(\d+[\.\d]+)'
136
+ name: 'DeskBrowse'
137
+ version: '$1'
138
+
139
+ # Lolifox
140
+ - regex: 'Lolifox/(\d+[\.\d]+)'
141
+ name: 'Lolifox'
142
+ version: '$1'
143
+
144
+ # Qutebrowser (https://qutebrowser.org/)
145
+ - regex: 'qutebrowser/(\d+[\.\d]+).+Chrome'
146
+ name: 'Qutebrowser'
147
+ version: '$1'
148
+ engine:
149
+ default: 'Blink'
150
+ - regex: 'qutebrowser(?:/(\d+[\.\d]+))?'
151
+ name: 'Qutebrowser'
152
+ version: '$1'
153
+
154
+ # Flast (https://github.com/FascodeNet/Flast)
155
+ - regex: 'flast/(\d+[\.\d]+)'
156
+ name: 'Flast'
157
+ version: '$1'
158
+ engine:
159
+ default: 'Blink'
160
+
161
+ # PolyBrowser (https://github.com/PolySuite/PolyBrowser)
162
+ - regex: 'PolyBrowser/(\d+[\.\d]+)'
163
+ name: 'PolyBrowser'
164
+ version: '$1'
165
+ engine:
166
+ default: 'Gecko'
167
+
168
+ # BriskBard (https://www.briskbard.com/)
169
+ - regex: 'Chrome.+BriskBard/(\d+[\.\d]+)'
170
+ name: 'BriskBard'
171
+ version: '$1'
172
+ engine:
173
+ default: 'Blink'
174
+ - regex: 'BriskBard(?:/(\d+[\.\d]+))?'
175
+ name: 'BriskBard'
176
+ version: '$1'
177
+
178
+ # GinxDroid Browser (https://play.google.com/store/apps/details?id=ginxdroid.gdm)
179
+ - regex: 'GinxDroidBrowser/(\d+[\.\d]+)'
180
+ name: 'GinxDroid Browser'
181
+ version: '$1'
182
+ engine:
183
+ default: 'Blink'
184
+
185
+ # Avira Scout (http://www.avira.com/en/avira-scout)
186
+ - regex: 'AviraScout/(\d+[\.\d]+)'
187
+ name: 'Avira Scout'
188
+ version: '$1'
189
+ engine:
190
+ default: 'Blink'
191
+
192
+ # Venus Browser (https://play.google.com/store/apps/details?id=com.venus.browser)
193
+ - regex: 'VenusBrowser/(\d+[\.\d]+)'
194
+ name: 'Venus Browser'
195
+ version: '$1'
196
+ engine:
197
+ default: 'Blink'
198
+
199
+ # Otter Browser (https://github.com/OtterBrowser/otter-browser)
200
+ - regex: 'Chrome.+Otter(?:[ /](\d+[\.\d]+))?'
201
+ name: 'Otter Browser'
202
+ version: '$1'
203
+ engine:
204
+ default: 'Blink'
205
+ - regex: 'Otter(?:[ /](\d+[\.\d]+))?'
206
+ name: 'Otter Browser'
207
+ version: '$1'
208
+
209
+ # Smooz (https://smoozapp.com/)
210
+ - regex: 'Chrome.+Smooz/(\d+[\.\d]+)'
211
+ name: 'Smooz'
212
+ version: '$1'
213
+ engine:
214
+ default: 'Blink'
215
+ - regex: 'Smooz/(\d+[\.\d]+)'
216
+ name: 'Smooz'
217
+ version: '$1'
218
+
219
+ # Cornowser (https://github.com/xdevs23/Cornowser)
220
+ - regex: 'Cornowser/(\d+[\.\d]+)'
221
+ name: 'Cornowser'
222
+ version: '$1'
223
+ engine:
224
+ default: 'Blink'
225
+
226
+ # Orca (http://www.orcabrowser.com)
227
+ - regex: 'Orca/(\d+[\.\d]+)'
228
+ name: 'Orca'
229
+ version: '$1'
230
+
231
+ # Flow (https://www.ekioh.com/)
232
+ - regex: 'Flow/(?:(\d+[\.\d]+))'
233
+ name: 'Flow'
234
+ version: '$1'
235
+ engine:
236
+ default: 'EkiohFlow'
237
+ - regex: 'Ekioh/(?:(\d+[\.\d]+))'
238
+ name: 'Flow'
239
+ version: '$1'
240
+ engine:
241
+ default: 'EkiohFlow'
242
+
243
+ # xStand (https://www.adnx.com/)
244
+ - regex: 'xStand/(\d+[\.\d]+)'
245
+ name: 'xStand'
246
+ version: '$1'
247
+ engine:
248
+ default: 'WebKit'
249
+
250
+ # Biyubi (http://www.biyubi.com/)
251
+ - regex: 'Biyubi/(\d+[\.\d]+)'
252
+ name: 'Biyubi'
253
+ version: '$1'
254
+
255
+ # Perfect Browser (http://www.perfectbrowser.com/)
256
+ - regex: '(?:Perfect%20Browser(?:-iPad)?|Perfect(?:BrowserPro)?)/(\d+[\.\d]+)'
257
+ name: 'Perfect Browser'
258
+ version: '$1'
259
+ engine:
260
+ default: 'WebKit'
261
+
262
+ # Phantom Browser (https://www.lg.com/)
263
+ - regex: 'Browser/Phantom/V(\d+[\.\d]+)'
264
+ name: 'Phantom Browser'
265
+ version: '$1'
266
+
267
+ # AwoX (https://www.awox.com.tr/)
268
+ - regex: 'AwoX(?:/(\d+[\.\d]+))? Browser'
269
+ name: 'AwoX'
270
+ version: '$1'
271
+
272
+ # Zetakey (https://www.zetakey.com/)
273
+ - regex: 'Zetakey/(\d+[\.\d]+)'
274
+ name: 'Zetakey'
275
+ version: '$1'
276
+ engine:
277
+ default: 'WebKit'
278
+
279
+ # PlayFree Browser
280
+ - regex: 'PlayFreeBrowser/(?:(\d+[\.\d]+))?'
281
+ name: 'PlayFree Browser'
282
+ version: '$1'
283
+
284
+ # Chim Lac (https://chimlac.com.vn/)
285
+ - regex: '(?:chimlac_browser|chimlac)/(?:(\d+[\.\d]+))'
286
+ name: 'Chim Lac'
287
+ version: '$1'
288
+ engine:
289
+ default: 'Blink'
290
+
291
+ # Odin (https://www.hisense.com/)
292
+ - regex: 'Odin/(?:(\d+[\.\d]+))'
293
+ name: 'Odin'
294
+ version: '$1'
295
+ engine:
296
+ default: 'Blink'
297
+
298
+ # T-Browser (https://play.google.com/store/apps/details?id=com.tcl.browser)
299
+ - regex: 'Tbrowser/(\d+[\.\d]+)'
300
+ name: 'T-Browser'
301
+ version: '$1'
302
+ engine:
303
+ default: 'Blink'
304
+
305
+ # SFive (https://sfive.vn/)
306
+ - regex: 'SFive(?:_Android)?/.+ Chrome/(\d+[\.\d]+)'
307
+ name: 'SFive'
308
+ version: '$1'
309
+ engine:
310
+ default: 'Blink'
311
+ - regex: 'SFive_IOS/(\d+[\.\d]+)'
312
+ name: 'SFive'
313
+ version: '$1'
314
+
315
+ # Navigateur Web
316
+ - regex: 'Navigateur web/(?:(\d+[\.\d]+))?'
317
+ name: 'Navigateur Web'
318
+ version: '$1'
319
+
320
+ #Seraphic Sraf (https://www.seraphic-corp.com/)
321
+ - regex: 'Sraf(?:[/ ](\d+[\.\d]+))?'
322
+ name: 'Seraphic Sraf'
323
+ version: '$1'
324
+ engine:
325
+ default: 'Blink'
326
+
327
+ # Seewo Browser (http://e.seewo.com/)
328
+ - regex: 'SeewoBrowser/(?:(\d+[\.\d]+))?'
329
+ name: 'Seewo Browser'
330
+ version: '$1'
331
+ engine:
332
+ default: 'Blink'
333
+
334
+ # 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)
335
+ - regex: '(?:Kode(?:iOS)?/(?:(\d+[\.\d]+))?|TansoDL)'
336
+ name: 'Kode Browser'
337
+ version: '$1'
338
+
339
+ # UR Browser (https://www.ur-browser.com/)
340
+ - regex: 'UR/(?:(\d+[\.\d]+))'
341
+ name: 'UR Browser'
342
+ version: '$1'
343
+ engine:
344
+ default: 'Blink'
345
+
346
+ # OceanHero (https://oceanhero.today)
347
+ - regex: 'OceanHero/([\.\d]+)'
348
+ name: 'OceanHero'
349
+ version: '$1'
350
+ engine:
351
+ default: 'Blink'
352
+
353
+ # Smart Lenovo Browser (https://www.lenovo.com.cn/)
354
+ - regex: 'Chrome/.+ SLBrowser/(?:(\d+[\.\d]+))?'
355
+ name: 'Smart Lenovo Browser'
356
+ version: '$1'
357
+ engine:
358
+ default: 'Blink'
359
+ - regex: 'SLBrowser/(?:(\d+[\.\d]+))?'
360
+ name: 'Smart Lenovo Browser'
361
+ version: '$1'
362
+
363
+ # Browzar (https://www.browzar.com/)
364
+ - regex: 'Browzar'
365
+ name: 'Browzar'
366
+ version: ''
367
+
368
+ # Stargon (http://www.stargon.org/ | https://play.google.com/store/apps/details?id=net.onecook.browser)
369
+ - regex: 'Stargon/(?:(\d+[\.\d]+))?'
370
+ name: 'Stargon'
371
+ version: '$1'
372
+ engine:
373
+ default: 'Blink'
374
+
375
+ # NFS Browser (https://github.com/nfschina/nfs-browser)
376
+ - regex: 'NFSBrowser/(?:(\d+[\.\d]+))?'
377
+ name: 'NFS Browser'
378
+ version: '$1'
379
+ engine:
380
+ default: 'Blink'
381
+
382
+ # Borealis Navigator (https://binaryoutcast.com/projects/borealis/)
383
+ - regex: 'Borealis/(\d+[\.\d]+)'
384
+ name: 'Borealis Navigator'
385
+ version: '$1'
386
+
387
+ # Yolo Browser
388
+ - regex: 'YoloBrowser/(?:(\d+[\.\d]+))?'
389
+ name: 'Yolo Browser'
390
+ version: '$1'
391
+ engine:
392
+ default: 'Blink'
393
+
394
+ # Phoenix Browser (http://phoenix-browser.com/ | https://play.google.com/store/apps/details?id=com.transsion.phoenix)
395
+ - regex: 'PHX/(?:(\d+[\.\d]+))?'
396
+ name: 'Phoenix Browser'
397
+ version: '$1'
398
+
399
+ # PrivacyWall (https://play.google.com/store/apps/details?id=org.privacywall.browser)
400
+ - regex: 'PrivacyWall/(?:(\d+[\.\d]+))?'
401
+ name: 'PrivacyWall'
402
+ version: '$1'
403
+
404
+ # 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)
405
+ - regex: 'Ghostery:?(\d+[\.\d]+)?'
406
+ name: 'Ghostery Privacy Browser'
407
+ version: '$1'
408
+
409
+ # Yaani Browser
410
+ - regex: 'Firefox/.*(?:Turkcell-)?YaaniBrowser(?:/(\d+[\.\d]+))?'
411
+ name: 'Yaani Browser'
412
+ version: '$1'
413
+ engine:
414
+ default: 'Gecko'
415
+ - regex: '(?:Turkcell-)?YaaniBrowser(?:/(\d+[\.\d]+))?'
416
+ name: 'Yaani Browser'
417
+ version: '$1'
418
+ engine:
419
+ default: 'Blink'
420
+
8
421
  # Safe Exam Browser (https://safeexambrowser.org/)
9
422
  - regex: 'SEB/(?:(\d+[\.\d]+))?'
10
423
  name: 'Safe Exam Browser'
@@ -139,6 +552,8 @@
139
552
  - regex: 'AlohaLite(?:/(\d+[\.\d]+))?'
140
553
  name: 'Aloha Browser Lite'
141
554
  version: '$1'
555
+ engine:
556
+ default: 'Blink'
142
557
 
143
558
  # Tao Browser (https://browser.taobao.com/)
144
559
  - regex: 'TaoBrowser(?:/(\d+[\.\d]+))?'
@@ -263,12 +678,19 @@
263
678
  version: '$1'
264
679
 
265
680
  # Jio Browser (https://play.google.com/store/apps/details?id=com.jio.web)
266
- - regex: 'JioBrowser(?:/(\d+[\.\d]+))?'
681
+ - regex: 'Jio(?:Browser|Pages)(?:/(\d+[\.\d]+))?'
267
682
  name: 'Jio Browser'
268
683
  version: '$1'
269
684
  engine:
270
685
  default: 'Blink'
271
686
 
687
+ # https://play.google.com/store/apps/details?id=app.stampy.browser
688
+ - regex: 'SY/(\d+[\.\d]+) Chrome/'
689
+ name: 'Stampy Browser'
690
+ version: '$1'
691
+ engine:
692
+ default: 'Blink'
693
+
272
694
  # hola! Browser (https://hola.org/browser)
273
695
  - regex: 'Chrome/.+ Hola(?:/(\d+[\.\d]+))?'
274
696
  name: 'hola! Browser'
@@ -276,6 +698,27 @@
276
698
  engine:
277
699
  default: 'Blink'
278
700
 
701
+ # Slimjet (https://slimjet.com)
702
+ - regex: 'Slimjet/(?:(\d+[\.\d]+))'
703
+ name: 'Slimjet'
704
+ version: '$1'
705
+ engine:
706
+ default: 'Blink'
707
+
708
+ # 7Star
709
+ - regex: '7Star/(?:(\d+[\.\d]+))'
710
+ name: '7Star'
711
+ version: '$1'
712
+ engine:
713
+ default: 'Blink'
714
+
715
+ # MxNitro
716
+ - regex: 'MxNitro/(?:(\d+[\.\d]+))'
717
+ name: 'MxNitro'
718
+ version: '$1'
719
+ engine:
720
+ default: 'Blink'
721
+
279
722
  # Huawei Browser
280
723
  - regex: 'HuaweiBrowser(?:/(\d+[\.\d]+))?'
281
724
  name: 'Huawei Browser'
@@ -299,6 +742,11 @@
299
742
  default: 'Blink'
300
743
 
301
744
  # Qwant Mobile
745
+ - regex: 'QwantiOS/(\d+[\.\d]+)'
746
+ name: 'Qwant Mobile'
747
+ version: '$1'
748
+ engine:
749
+ default: 'WebKit'
302
750
  - regex: 'QwantMobile(?:/(\d+[\.\d]+))?'
303
751
  name: 'Qwant Mobile'
304
752
  version: '$1'
@@ -325,7 +773,7 @@
325
773
  default: 'Gecko'
326
774
 
327
775
  # Microsoft Edge (Spartan Edge)
328
- - regex: 'Edge[ /](\d+[\.\d]+)'
776
+ - regex: '(?<!motorola )Edge[ /](\d+[\.\d]+)'
329
777
  name: 'Microsoft Edge'
330
778
  version: '$1'
331
779
  engine:
@@ -400,6 +848,11 @@
400
848
  default: 'Gecko'
401
849
 
402
850
  #AlohaBrowser
851
+ - regex: 'Chrome/.+ AlohaBrowser(?:/(\d+[\.\d]+))?'
852
+ name: 'Aloha Browser'
853
+ version: '$1'
854
+ engine:
855
+ default: 'Blink'
403
856
  - regex: 'AlohaBrowser(?:/(\d+[\.\d]+))?'
404
857
  name: 'Aloha Browser'
405
858
  version: '$1'
@@ -442,7 +895,7 @@
442
895
 
443
896
 
444
897
  #Avant Browser
445
- - regex: 'Avant Browser'
898
+ - regex: 'Avant ?Browser'
446
899
  name: 'Avant Browser'
447
900
  version: ''
448
901
  engine:
@@ -460,7 +913,7 @@
460
913
  engine:
461
914
  default: 'WebKit'
462
915
  versions:
463
- 28: 'Blink'
916
+ '28': 'Blink'
464
917
 
465
918
  #Atomic Web Browser
466
919
  - regex: 'AtomicBrowser(?:/(\d+[\.\d]+))?'
@@ -532,7 +985,7 @@
532
985
  engine:
533
986
  default: 'Gecko'
534
987
  versions:
535
- 3: 'WebKit'
988
+ '3': 'WebKit'
536
989
 
537
990
  # Jig Browser Plus (https://jig.jp/)
538
991
  - regex: 'JigBrowserPlus/(?:(\d+[\.\d]+))?'
@@ -569,7 +1022,7 @@
569
1022
  version: '$1'
570
1023
 
571
1024
  # t-online.de Browser (https://www.t-online.de/computer/browser/)
572
- - regex: 'TO-Browser(?:/TOB(\d+[\.\d]+))?'
1025
+ - regex: '(?:TO-Browser/TOB|DT-Browser/DTB)(\d+[\.\d]+)'
573
1026
  name: 't-online.de Browser'
574
1027
  version: '$1'
575
1028
 
@@ -723,6 +1176,11 @@
723
1176
  name: 'Obigo'
724
1177
  version: ''
725
1178
 
1179
+ # UC Browser HD
1180
+ - regex: 'UCBrowserHD/(\d[\d\.]+)'
1181
+ name: 'UC Browser HD'
1182
+ version: '$1'
1183
+
726
1184
  #UC Browser Mini
727
1185
  - regex: 'UCMini(?:[ /]?(\d+[\.\d]+))?'
728
1186
  name: 'UC Browser Mini'
@@ -764,6 +1222,11 @@
764
1222
  version: '$1'
765
1223
  engine:
766
1224
  default: 'Blink'
1225
+ - regex: 'Opera%20Touch/(\d+[\.\d]+)? CFNetwork/.+Darwin/.+(?!.*x86_64)'
1226
+ name: 'Opera Touch'
1227
+ version: '$1'
1228
+ engine:
1229
+ default: 'WebKit'
767
1230
  - regex: 'OPT/(\d+[\.\d]+)'
768
1231
  name: 'Opera Touch'
769
1232
  version: '$1'
@@ -791,6 +1254,12 @@
791
1254
  version: '$1'
792
1255
  engine:
793
1256
  default: 'WebKit'
1257
+ - regex: 'Opera%20Mini/(\d+[\.\d]+) CFNetwork'
1258
+ name: 'Opera Mini iOS'
1259
+ version: '$1'
1260
+ engine:
1261
+ default: 'WebKit'
1262
+
794
1263
  - regex: 'Opera.+Edition Next.+Version/(\d+[\.\d]+)'
795
1264
  name: 'Opera Next'
796
1265
  version: '$1'
@@ -812,8 +1281,8 @@
812
1281
  default: ''
813
1282
  versions:
814
1283
  '3.5': 'Elektra'
815
- 7: 'Presto'
816
- 15: 'Blink'
1284
+ '7': 'Presto'
1285
+ '15': 'Blink'
817
1286
 
818
1287
  #Rekonq
819
1288
  - regex: 'rekonq(?:/(\d+[\.\d]+))?'
@@ -836,7 +1305,7 @@
836
1305
  engine:
837
1306
  default: 'WebKit'
838
1307
  versions:
839
- 28: 'Blink'
1308
+ '28': 'Blink'
840
1309
 
841
1310
  #ChromePlus
842
1311
  - regex: 'ChromePlus(?:/(\d+[\.\d]+))?'
@@ -862,15 +1331,12 @@
862
1331
  4: '' # multiple (KHTML or WebKit)
863
1332
 
864
1333
  #Baidu Browser
865
- - regex: '(?:baidubrowser|bdbrowser_i18n|bdbrowser)(?:[/ ](\d+[\.\d]*))?'
866
- name: 'Baidu Browser'
867
- version: '$1'
868
- - regex: 'FlyFlow(?:[/ ](\d+[\.\d]*))?'
1334
+ - regex: '(?:baidubrowser|bdbrowser(?:(?:hd)?_i18n)?|FlyFlow|BaiduHD)(?:[/ ](\d+[\.\d]*))?'
869
1335
  name: 'Baidu Browser'
870
1336
  version: '$1'
871
1337
 
872
1338
  #Baidu Spark
873
- - regex: '(?:(?:BD)?Spark|BIDUBrowser)[/ ](\d+[\.\d]*)'
1339
+ - regex: '(?:(?:BD)?Spark(?:Safe)?|BIDUBrowser)[/ ](\d+[\.\d]*)'
874
1340
  name: 'Baidu Spark'
875
1341
  version: '$1'
876
1342
 
@@ -880,17 +1346,15 @@
880
1346
  version: '$1'
881
1347
  engine:
882
1348
  default: 'Blink'
883
-
884
1349
  #Yandex Browser
885
1350
  - regex: 'YaBrowser(?:/(\d+[\.\d]*))(?: \((alpha|beta)\))?'
886
1351
  name: 'Yandex Browser'
887
1352
  version: '$1 $2'
888
1353
  engine:
889
1354
  default: 'Blink'
890
-
891
- # Yaani Browser
892
- - regex: 'YaaniBrowser(?:/(\d+[\.\d]+))?'
893
- name: 'Yaani Browser'
1355
+ # Yandex Browser + voice assistant alisa
1356
+ - regex: 'Ya(?:ndex)?SearchBrowser(?:/(\d+[\.\d]*))'
1357
+ name: 'Yandex Browser'
894
1358
  version: '$1'
895
1359
  engine:
896
1360
  default: 'Blink'
@@ -910,6 +1374,11 @@
910
1374
  default: 'Blink'
911
1375
 
912
1376
  #Midori
1377
+ - regex: 'Chrome.+Midori Browser/(\d+[\.\d]+)'
1378
+ name: 'Midori'
1379
+ version: '$1'
1380
+ engine:
1381
+ default: 'Blink'
913
1382
  - regex: 'Midori(?:/(\d+[\.\d]+))?'
914
1383
  name: 'Midori'
915
1384
  version: '$1'
@@ -917,12 +1386,19 @@
917
1386
  default: 'WebKit'
918
1387
 
919
1388
  #Mercury
920
- - regex: 'Mercury(?:/(\d+[\.\d]+))?'
1389
+ - regex: 'Mercury/(?:(\d+[\.\d]+))?'
921
1390
  name: 'Mercury'
922
1391
  version: '$1'
923
1392
 
924
1393
  #Maxthon
925
- - regex: '(?:Maxthon|MxBrowser)[ /](\d+[\.\d]+)'
1394
+ - regex: 'Chrome.+Maxthon(?:.+\(portable\))?/(\d+[\.\d]+)'
1395
+ name: 'Maxthon'
1396
+ version: '$1'
1397
+ engine:
1398
+ default: 'WebKit'
1399
+ versions:
1400
+ '5.2': 'Blink'
1401
+ - regex: '(?:Maxthon(?:%20Browser)?|MxBrowser(?:-inhouse|-iPhone)?)[ /](\d+[\.\d]+)'
926
1402
  name: 'Maxthon'
927
1403
  version: '$1'
928
1404
  engine:
@@ -988,6 +1464,11 @@
988
1464
  name: 'Sogou Explorer'
989
1465
  version: '$1'
990
1466
 
1467
+ # QQ Browser Lite
1468
+ - regex: 'QQBrowserLite/([\d\.]+)'
1469
+ name: 'QQ Browser Lite'
1470
+ version: '$1'
1471
+
991
1472
  # QQ Browser Mini
992
1473
  - regex: 'M?QQBrowser/Mini([\.\d]+)?'
993
1474
  name: 'QQ Browser Mini'
@@ -1013,8 +1494,8 @@
1013
1494
  # This browser (http://coccoc.vn/) is built on top of Chromium with
1014
1495
  # additional features for Vietnamese users. Its regex has to be placed
1015
1496
  # before generic Chrome regex, or Chrome regex will match first and
1016
- # the browser is mistaken as "Chrome".
1017
- - regex: 'coc_coc_browser(?:/(\d+[\.\d]+))?'
1497
+ # the browser is mistaken as 'Chrome".
1498
+ - regex: '(?:coc_coc_browser|coccocbrowser|CocCoc)(?:/(\d+[\.\d]+))?'
1018
1499
  name: 'Coc Coc'
1019
1500
  version: '$1'
1020
1501
  engine:
@@ -1034,7 +1515,10 @@
1034
1515
  version: '$1'
1035
1516
 
1036
1517
  # Super Fast Browser (https://play.google.com/store/apps/details?id=com.browser.tssomas)
1037
- - regex: '(?:SFBrowser|com.browser.tssomas)(?:/(\d+[\.\d]+))?'
1518
+ - regex: '(?:SFB(?:rowser)?)/(\d+[\.\d]+)'
1519
+ name: 'Super Fast Browser'
1520
+ version: '$1'
1521
+ - regex: 'com.browser.tssomas(?:/(\d+[\.\d]+))?'
1038
1522
  name: 'Super Fast Browser'
1039
1523
  version: '$1'
1040
1524
 
@@ -1073,27 +1557,33 @@
1073
1557
  name: 'UC Browser'
1074
1558
  version: ''
1075
1559
 
1076
- #Tenta Browser
1077
1560
  #It should be checked before Chrome since the UA contains the Chrome
1561
+
1562
+ #Tenta Browser (https://play.google.com/store/apps/details?id=com.tenta.android)
1563
+ - regex: 'Chrome/.+Tenta/(\d+[\.\d]+)'
1564
+ name: 'Tenta Browser'
1565
+ version: '$1'
1566
+ engine:
1567
+ default: 'Blink'
1078
1568
  - regex: 'Tenta/(\d+[\.\d]+)'
1079
1569
  name: 'Tenta Browser'
1080
1570
  version: '$1'
1081
1571
  engine:
1082
- default: 'Webkit'
1572
+ default: 'WebKit'
1083
1573
 
1084
1574
  # Firefox Rocket
1085
1575
  - regex: 'Rocket/(\d+[\.\d]+)'
1086
1576
  name: 'Firefox Rocket'
1087
1577
  version: '$1'
1088
1578
  engine:
1089
- default: 'Webkit'
1579
+ default: 'WebKit'
1090
1580
 
1091
1581
  # Web Explorer
1092
1582
  - regex: 'Web Explorer/(\d+[\.\d]+).*Chrome'
1093
1583
  name: 'Web Explorer'
1094
1584
  version: '$1'
1095
1585
  engine:
1096
- default: 'Webkit'
1586
+ default: 'WebKit'
1097
1587
 
1098
1588
  # Seznam Browser
1099
1589
  - regex: 'SznProhlizec/(\d+[\.\d]+)'
@@ -1183,6 +1673,11 @@
1183
1673
  engine:
1184
1674
  default: 'WebKit'
1185
1675
 
1676
+ # GoBrowser
1677
+ - regex: 'GoBrowser(?:/(\d+[\.\d]+))?'
1678
+ name: 'GoBrowser'
1679
+ version: '$1'
1680
+
1186
1681
  #Nokia Browser
1187
1682
  - regex: '(?:NokiaBrowser|BrowserNG)(?:/(\d+[\.\d]+))?'
1188
1683
  name: 'Nokia Browser'
@@ -1201,7 +1696,7 @@
1201
1696
  version: ''
1202
1697
 
1203
1698
  #Sleipnir
1204
- - regex: 'Sleipnir(?:[ /](\d+[\.\d]+))?'
1699
+ - regex: 'Sleipnir(?:(?:%20Browser)?[ /](\d+[\.\d]+))?'
1205
1700
  name: 'Sleipnir'
1206
1701
  version: '$1'
1207
1702
  engine:
@@ -1224,12 +1719,42 @@
1224
1719
  engine:
1225
1720
  default: 'WebKit'
1226
1721
 
1722
+ # Monument Browser
1723
+ - regex: 'MonumentBrowser(?:/(\d+[\.\d]+))?'
1724
+ name: 'Monument Browser'
1725
+ version: '$1'
1726
+ engine:
1727
+ default: 'WebKit'
1728
+
1729
+ # Blue Browser
1227
1730
  - regex: 'BlueBrowser(?:/(\d+[\.\d]+))?'
1228
1731
  name: 'Blue Browser'
1229
1732
  version: '$1'
1230
1733
  engine:
1231
1734
  default: 'WebKit'
1232
1735
 
1736
+ # Japan Browser (https://play.google.com/store/apps/details?id=com.japan.browser.anti.blokir)
1737
+ - regex: 'JAPAN Browser(?:/(\d+[\.\d]+))?'
1738
+ name: 'Japan Browser'
1739
+ version: '$1'
1740
+ engine:
1741
+ default: 'WebKit'
1742
+
1743
+ - regex: 'OpenFin/(?:(\d+[\.\d]+))'
1744
+ name: 'OpenFin'
1745
+ version: '$1'
1746
+ engine:
1747
+ default: 'Blink'
1748
+
1749
+ # SuperBird
1750
+ - regex: 'SuperBird(?:/(\d+[\.\d]+))?'
1751
+ name: 'SuperBird'
1752
+ version: '$1'
1753
+ engine:
1754
+ default: 'WebKit'
1755
+ versions:
1756
+ 28: 'Blink'
1757
+
1233
1758
  # Chrome Webview
1234
1759
  - regex: 'Version/.* Chrome(?:/(\d+[\.\d]+))?'
1235
1760
  name: 'Chrome Webview'
@@ -1288,6 +1813,13 @@
1288
1813
  - regex: '(?:Tizen|SLP) Browser(?:/(\d+[\.\d]+))?'
1289
1814
  name: 'Tizen Browser'
1290
1815
  version: '$1'
1816
+ - regex: 'Tizen (?:\d+[\.\d]+).+ Version/(\d+[\.\d]+) (?:TV|Mobile)'
1817
+ name: 'Tizen Browser'
1818
+ version: '$1'
1819
+ engine:
1820
+ default: 'WebKit'
1821
+ versions:
1822
+ '4': 'Blink'
1291
1823
 
1292
1824
  #Palm Blazer
1293
1825
  - regex: 'Blazer(?:/(\d+[\.\d]+))?'
@@ -1461,7 +1993,7 @@
1461
1993
  name: 'iCab Mobile'
1462
1994
  version: '$1'
1463
1995
  engine:
1464
- default: 'WebKit'
1996
+ default: 'WebKit'
1465
1997
 
1466
1998
  #iCab
1467
1999
  - regex: 'iCab(?:[ /](\d+[\.\d]+))?'
@@ -1479,6 +2011,13 @@
1479
2011
  engine:
1480
2012
  default: '' # multi engine
1481
2013
 
2014
+ # Crazy Browser
2015
+ - regex: 'Crazy Browser (\d+[\.\d]+)'
2016
+ name: 'Crazy Browser'
2017
+ version: '$1'
2018
+ engine:
2019
+ default: 'Trident'
2020
+
1482
2021
  #Internet Explorer
1483
2022
  - regex: 'IEMobile[ /](\d+[\.\d]+)'
1484
2023
  name: 'IE Mobile'
@@ -1492,22 +2031,22 @@
1492
2031
  default: 'Trident'
1493
2032
  - regex: 'MSIE.*Trident/4.0'
1494
2033
  name: 'Internet Explorer'
1495
- version: 8.0
2034
+ version: '8.0'
1496
2035
  engine:
1497
2036
  default: 'Trident'
1498
2037
  - regex: 'MSIE.*Trident/5.0'
1499
2038
  name: 'Internet Explorer'
1500
- version: 9.0
2039
+ version: '9.0'
1501
2040
  engine:
1502
2041
  default: 'Trident'
1503
2042
  - regex: 'MSIE.*Trident/6.0'
1504
2043
  name: 'Internet Explorer'
1505
- version: 10.0
2044
+ version: '10.0'
1506
2045
  engine:
1507
2046
  default: 'Trident'
1508
2047
  - regex: 'Trident/[78].0'
1509
2048
  name: 'Internet Explorer'
1510
- version: 11.0
2049
+ version: '11.0'
1511
2050
  engine:
1512
2051
  default: 'Trident'
1513
2052
  - regex: 'MSIE (\d+[\.\d]+)'
@@ -1592,16 +2131,11 @@
1592
2131
  name: 'Off By One'
1593
2132
  version: ''
1594
2133
 
1595
- #Oregano
1596
- - regex: 'Oregano(?:[ /](\d+[\.\d]+))?'
2134
+ #Oregano (https://oregan.net/)
2135
+ - regex: '(?:Oregano|OreganMediaBrowser)(?:[ /](\d+[\.\d]+))?'
1597
2136
  name: 'Oregano'
1598
2137
  version: '$1'
1599
2138
 
1600
- #Otter Browser
1601
- - regex: 'Otter(?:[ /](\d+[\.\d]+))?'
1602
- name: 'Otter Browser'
1603
- version: '$1'
1604
-
1605
2139
  #Polaris
1606
2140
  - regex: '(?:Polaris|Embider)(?:[/ ](\d+[\.\d]+))?'
1607
2141
  name: 'Polaris'
@@ -1612,13 +2146,6 @@
1612
2146
  name: 'SEMC-Browser'
1613
2147
  version: '$1'
1614
2148
 
1615
- #Seraphic Sraf
1616
- - regex: 'Sraf(?:[/ ](\d+[\.\d]+))?'
1617
- name: 'Seraphic Sraf'
1618
- version: '$1'
1619
- engine:
1620
- default: 'Blink'
1621
-
1622
2149
  #Shiira
1623
2150
  - regex: 'Shiira(?:[/ ](\d+[\.\d]+))?'
1624
2151
  name: 'Shiira'
@@ -1643,11 +2170,6 @@
1643
2170
  name: 'Sunrise'
1644
2171
  version: '$1'
1645
2172
 
1646
- #SuperBird
1647
- - regex: 'SuperBird(?:/(\d+[\.\d]+))?'
1648
- name: 'SuperBird'
1649
- version: '$1'
1650
-
1651
2173
  #Vision Mobile Browser
1652
2174
  - regex: 'Vision-Browser(?:/(\d+[\.\d]+))'
1653
2175
  name: 'Vision Mobile Browser'
@@ -1668,11 +2190,6 @@
1668
2190
  name: 'BlackBerry Browser'
1669
2191
  version: ''
1670
2192
 
1671
- #BriskBard
1672
- - regex: 'BriskBard(?:/(\d+[\.\d]+))?'
1673
- name: 'BriskBard'
1674
- version: '$1'
1675
-
1676
2193
  #Android Browser
1677
2194
  - regex: 'Android'
1678
2195
  name: 'Android Browser'
@@ -1685,11 +2202,6 @@
1685
2202
  name: 'Coast'
1686
2203
  version: '$1'
1687
2204
 
1688
- #Qutebrowser
1689
- - regex: 'qutebrowser(?:/(\d+[\.\d]+))?'
1690
- name: 'Qutebrowser'
1691
- version: '$1'
1692
-
1693
2205
  # surf (https://surf.suckless.org/)
1694
2206
  - regex: 'Surf(?:/(\d+[\.\d]+))?'
1695
2207
  name: 'surf'
@@ -1708,23 +2220,23 @@
1708
2220
  version: '$1'
1709
2221
  engine:
1710
2222
  default: 'WebKit'
1711
- - regex: '(?:iPod|iPhone|iPad)'
2223
+ - regex: '(?:iPod|(?<!Apple TV; U; CPU )iPhone|iPad)'
1712
2224
  name: 'Mobile Safari'
1713
2225
  version: ''
1714
2226
  engine:
1715
2227
  default: 'WebKit'
1716
- - regex: 'Version/(\d+[\.\d]+).*Safari/|Safari/\d+'
2228
+ - regex: 'Version/(\d+[\.\d]+).*Safari/|Safari/?\d+'
1717
2229
  name: 'Safari'
1718
2230
  version: '$1'
1719
2231
  engine:
1720
2232
  default: 'WebKit'
1721
-
1722
- #Dorado
1723
- - regex: 'Dorado WAP-Browser[/ ](\d+[\.\d]+)'
2233
+
2234
+ # Dorado
2235
+ - regex: 'Dorado WAP-Browser(?:[/ ](\d+[\.\d]+))?'
1724
2236
  name: 'Dorado'
1725
2237
  version: '$1'
1726
2238
 
1727
- #NetSurf
2239
+ # NetSurf
1728
2240
  - regex: 'NetSurf(?:/(\d+[\.\d]+))?'
1729
2241
  name: 'NetSurf'
1730
2242
  version: '$1'
@@ -1749,7 +2261,18 @@
1749
2261
  default: 'Gecko'
1750
2262
 
1751
2263
  # GOG Galaxy
1752
- - regex: 'GOGGalaxyClient/(?:(\d+[\.\d]+))?'
2264
+ - regex: 'GOGGalaxyClient/(\d+[\.\d]+)?'
1753
2265
  name: 'GOG Galaxy'
1754
2266
  version: '$1'
1755
-
2267
+
2268
+ # MAUI Wap Browser
2269
+ - regex: 'WAP Browser/MAUI|(?:\w+)?Maui Wap Browser|MAUI[- ]Browser'
2270
+ name: 'MAUI WAP Browser'
2271
+ version: ''
2272
+
2273
+ # SP Browser
2274
+ - regex: 'SP%20Browser/(\d+[\.\d]+)'
2275
+ name: 'SP Browser'
2276
+ version: '$1'
2277
+ engine:
2278
+ default: 'WebKit'