device_detector 1.0.6 → 1.0.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (103) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +7 -0
  3. data/README.md +5 -5
  4. data/lib/device_detector/device.rb +82 -3
  5. data/lib/device_detector/os.rb +4 -2
  6. data/lib/device_detector/parser.rb +1 -1
  7. data/lib/device_detector/version.rb +1 -1
  8. data/lib/device_detector/version_extractor.rb +20 -1
  9. data/regexes/bots.yml +49 -6
  10. data/regexes/client/browsers.yml +170 -16
  11. data/regexes/client/libraries.yml +20 -1
  12. data/regexes/client/mediaplayers.yml +2 -2
  13. data/regexes/client/mobile_apps.yml +447 -13
  14. data/regexes/client/pim.yml +16 -1
  15. data/regexes/device/consoles.yml +7 -1
  16. data/regexes/device/mobiles.yml +3169 -912
  17. data/regexes/device/portable_media_player.yml +16 -6
  18. data/regexes/oss.yml +380 -467
  19. metadata +3 -164
  20. data/.gitignore +0 -14
  21. data/.rubocop.yml +0 -49
  22. data/.ruby-version +0 -1
  23. data/.travis.yml +0 -14
  24. data/Gemfile +0 -8
  25. data/Rakefile +0 -86
  26. data/device_detector.gemspec +0 -27
  27. data/spec/device_detector/bot_fixtures_spec.rb +0 -30
  28. data/spec/device_detector/client_fixtures_spec.rb +0 -31
  29. data/spec/device_detector/concrete_user_agent_spec.rb +0 -123
  30. data/spec/device_detector/detector_fixtures_spec.rb +0 -99
  31. data/spec/device_detector/device_fixtures_spec.rb +0 -36
  32. data/spec/device_detector/device_spec.rb +0 -147
  33. data/spec/device_detector/memory_cache_spec.rb +0 -148
  34. data/spec/device_detector/model_extractor_spec.rb +0 -63
  35. data/spec/device_detector/os_fixtures_spec.rb +0 -26
  36. data/spec/device_detector/version_extractor_spec.rb +0 -79
  37. data/spec/device_detector_spec.rb +0 -189
  38. data/spec/fixtures/client/browser.yml +0 -3935
  39. data/spec/fixtures/client/feed_reader.yml +0 -187
  40. data/spec/fixtures/client/library.yml +0 -253
  41. data/spec/fixtures/client/mediaplayer.yml +0 -193
  42. data/spec/fixtures/client/mobile_app.yml +0 -703
  43. data/spec/fixtures/client/pim.yml +0 -175
  44. data/spec/fixtures/detector/bots.yml +0 -4434
  45. data/spec/fixtures/detector/camera.yml +0 -127
  46. data/spec/fixtures/detector/car_browser.yml +0 -217
  47. data/spec/fixtures/detector/console.yml +0 -343
  48. data/spec/fixtures/detector/desktop.yml +0 -7580
  49. data/spec/fixtures/detector/feature_phone.yml +0 -1597
  50. data/spec/fixtures/detector/feed_reader.yml +0 -524
  51. data/spec/fixtures/detector/mediaplayer.yml +0 -306
  52. data/spec/fixtures/detector/mobile_apps.yml +0 -1233
  53. data/spec/fixtures/detector/peripheral.yml +0 -271
  54. data/spec/fixtures/detector/phablet.yml +0 -7366
  55. data/spec/fixtures/detector/portable_media_player.yml +0 -527
  56. data/spec/fixtures/detector/smart_display.yml +0 -235
  57. data/spec/fixtures/detector/smart_speaker.yml +0 -60
  58. data/spec/fixtures/detector/smartphone-1.yml +0 -9622
  59. data/spec/fixtures/detector/smartphone-10.yml +0 -8981
  60. data/spec/fixtures/detector/smartphone-11.yml +0 -8938
  61. data/spec/fixtures/detector/smartphone-12.yml +0 -8989
  62. data/spec/fixtures/detector/smartphone-13.yml +0 -9412
  63. data/spec/fixtures/detector/smartphone-14.yml +0 -9477
  64. data/spec/fixtures/detector/smartphone-15.yml +0 -9281
  65. data/spec/fixtures/detector/smartphone-16.yml +0 -9678
  66. data/spec/fixtures/detector/smartphone-17.yml +0 -9965
  67. data/spec/fixtures/detector/smartphone-18.yml +0 -9806
  68. data/spec/fixtures/detector/smartphone-19.yml +0 -9965
  69. data/spec/fixtures/detector/smartphone-2.yml +0 -12242
  70. data/spec/fixtures/detector/smartphone-20.yml +0 -9710
  71. data/spec/fixtures/detector/smartphone-21.yml +0 -8693
  72. data/spec/fixtures/detector/smartphone-22.yml +0 -10178
  73. data/spec/fixtures/detector/smartphone-23.yml +0 -9453
  74. data/spec/fixtures/detector/smartphone-24.yml +0 -9843
  75. data/spec/fixtures/detector/smartphone-25.yml +0 -9703
  76. data/spec/fixtures/detector/smartphone-26.yml +0 -10007
  77. data/spec/fixtures/detector/smartphone-27.yml +0 -4927
  78. data/spec/fixtures/detector/smartphone-3.yml +0 -9909
  79. data/spec/fixtures/detector/smartphone-4.yml +0 -8954
  80. data/spec/fixtures/detector/smartphone-5.yml +0 -8981
  81. data/spec/fixtures/detector/smartphone-6.yml +0 -8948
  82. data/spec/fixtures/detector/smartphone-7.yml +0 -8975
  83. data/spec/fixtures/detector/smartphone-8.yml +0 -9810
  84. data/spec/fixtures/detector/smartphone-9.yml +0 -8925
  85. data/spec/fixtures/detector/smartphone.yml +0 -9001
  86. data/spec/fixtures/detector/tablet-1.yml +0 -10155
  87. data/spec/fixtures/detector/tablet-2.yml +0 -9064
  88. data/spec/fixtures/detector/tablet-3.yml +0 -9035
  89. data/spec/fixtures/detector/tablet-4.yml +0 -9062
  90. data/spec/fixtures/detector/tablet-5.yml +0 -9273
  91. data/spec/fixtures/detector/tablet-6.yml +0 -4588
  92. data/spec/fixtures/detector/tablet.yml +0 -8979
  93. data/spec/fixtures/detector/tv-1.yml +0 -2501
  94. data/spec/fixtures/detector/tv.yml +0 -10045
  95. data/spec/fixtures/detector/unknown.yml +0 -3071
  96. data/spec/fixtures/detector/wearable.yml +0 -915
  97. data/spec/fixtures/device/camera.yml +0 -19
  98. data/spec/fixtures/device/car_browser.yml +0 -13
  99. data/spec/fixtures/device/console.yml +0 -79
  100. data/spec/fixtures/device/notebook.yml +0 -7
  101. data/spec/fixtures/parser/oss.yml +0 -2418
  102. data/spec/fixtures/parser/vendorfragments.yml +0 -168
  103. data/spec/spec_helper.rb +0 -9
data/regexes/bots.yml CHANGED
@@ -482,7 +482,7 @@
482
482
  name: 'SEOmoz, Inc.'
483
483
  url: 'http://moz.com/'
484
484
 
485
- - regex: 'facebookexternalhit|facebookplatform|facebookexternalua'
485
+ - regex: 'facebookexternalhit|facebookplatform|facebookexternalua|facebookcatalog'
486
486
  name: 'Facebook External Hit'
487
487
  category: 'Social Media Agent'
488
488
  url: 'https://www.facebook.com/externalhit_uatext.php'
@@ -688,7 +688,7 @@
688
688
  name: 'Visual Meta'
689
689
  url: 'https://www.shopalike.cz/'
690
690
 
691
- - regex: 'AdsBot-Google|Adwords-(DisplayAds|Express|Instant)|Google Web Preview|Google[ -]Publisher[ -]Plugin|Google-(Ads-Qualify|Adwords|AMPHTML|Assess|HotelAdsVerifier|Read-Aloud|Shopping-Quality|Site-Verification|speakr|Test|Youtube-Links)|(APIs|DuplexWeb|Feedfetcher|Mediapartners)-Google|Googlebot|GoogleProducer|Google.*/\+/web/snippet'
691
+ - regex: 'AdsBot-Google|Adwords-(DisplayAds|Express|Instant)|Google Web Preview|Google[ -]Publisher[ -]Plugin|Google-(Ads-Qualify|Adwords|AMPHTML|Assess|HotelAdsVerifier|Read-Aloud|Shopping-Quality|Site-Verification|speakr|Stale-Content-Probe|Test|Youtube-Links)|(APIs|DuplexWeb|Feedfetcher|Mediapartners)-Google|Googlebot|GoogleProducer|Google.*/\+/web/snippet'
692
692
  name: 'Googlebot'
693
693
  category: 'Search bot'
694
694
  url: 'http://www.google.com/bot.html'
@@ -1722,7 +1722,7 @@
1722
1722
  name: 'Yandex LLC'
1723
1723
  url: 'http://company.yandex.com'
1724
1724
 
1725
- - regex: 'Yeti|NaverJapan'
1725
+ - regex: 'Yeti|NaverJapan|AdsBot-Naver'
1726
1726
  name: 'Yeti/Naverbot'
1727
1727
  category: 'Search bot'
1728
1728
  url: 'http://help.naver.com/robots/'
@@ -1926,7 +1926,7 @@
1926
1926
  - regex: 'RSSRadio \(Push Notification Scanner;support@dorada\.co\.uk\)'
1927
1927
  name: 'RSSRadio Bot'
1928
1928
 
1929
- - regex: '(A6-Indexer|nuhk|TsolCrawler|Yammybot|Openbot|Gulper Web Bot|grub-client|Download Demon|SearchExpress|Microsoft URL Control|borg|altavista|dataminr.com|tweetedtimes.com|TrendsmapResolver|teoma|blitzbot|oegp|furlbot|http%20client|polybot|htdig|mogimogi|larbin|scrubby|searchsight|seekbot|semanticdiscovery|snappy|vortex(?! Build)|zeal|fast-webcrawler|converacrawler|dataparksearch|findlinks|BrowserMob|HttpMonitor|ThumbShotsBot|URL2PNG|ZooShot|GomezA|Google SketchUp|Read%20Later|RackspaceBot|robots|SeopultContentAnalyzer|7Siters|centuryb.o.t9|InterNaetBoten|EasyBib AutoCite|Bidtellect|tomnomnom/meg|My User Agent)'
1929
+ - regex: '(A6-Indexer|nuhk|TsolCrawler|Yammybot|Openbot|Gulper Web Bot|grub-client|Download Demon|SearchExpress|Microsoft URL Control|borg|altavista|dataminr.com|tweetedtimes.com|TrendsmapResolver|teoma|blitzbot|oegp|furlbot|http%20client|polybot|htdig|mogimogi|larbin|scrubby|searchsight|seekbot|semanticdiscovery|snappy|vortex(?! Build)|zeal|fast-webcrawler|converacrawler|dataparksearch|findlinks|BrowserMob|HttpMonitor|ThumbShotsBot|URL2PNG|ZooShot|GomezA|Google SketchUp|Read%20Later|RackspaceBot|robots|SeopultContentAnalyzer|7Siters|centuryb.o.t9|InterNaetBoten|EasyBib AutoCite|Bidtellect|tomnomnom/meg|My User Agent|cortex)'
1930
1930
  name: 'Generic Bot'
1931
1931
 
1932
1932
  - regex: '^sentry'
@@ -2576,7 +2576,6 @@
2576
2576
  category: 'Crawler'
2577
2577
  url: 'https://github.com/VIPnytt/SitemapParser/'
2578
2578
 
2579
-
2580
2579
  - regex: '^Turnitin'
2581
2580
  name: 'Turnitin'
2582
2581
  category: 'Crawler'
@@ -2596,6 +2595,50 @@
2596
2595
  category: 'Crawler'
2597
2596
  url: 'https://dataforseo.com/dataforseo-bot'
2598
2597
 
2598
+ - regex: 'Discordbot/([\d+.]+)'
2599
+ name: 'Discord Bot'
2600
+ category: 'Service Agent'
2601
+ url: 'https://discordapp.com'
2602
+
2603
+ - regex: 'Linespider/([\d+.]+)'
2604
+ name: 'Linespider'
2605
+ category: 'Crawler'
2606
+ url: 'https://lin.ee/4dwXkTH'
2607
+
2608
+ - regex: 'Cincraw/([\d+.]+)'
2609
+ name: 'Cincraw'
2610
+ category: 'Crawler'
2611
+ url: 'http://cincrawdata.net/bot/'
2612
+
2613
+ - regex: 'CISPA Web Analyzer'
2614
+ name: 'CISPA Web Analyzer'
2615
+ category: 'Crawler'
2616
+ url: 'https://notify.cispa.de/'
2617
+ producer:
2618
+ name: 'CISPA - Helmholtz-Zentrum für Informationssicherheit gGmbH'
2619
+ url: 'https://cispa.de/en'
2620
+
2621
+ - regex: 'IonCrawl'
2622
+ name: 'IONOS Crawler'
2623
+ category: 'Crawler'
2624
+ url: 'https://www.ionos.de/terms-gtc/faq-crawler-en/'
2625
+ producer:
2626
+ name: 'IONOS SE'
2627
+ url: 'https://www.ionos.de/'
2628
+
2629
+ - regex: 'Crawldad'
2630
+ name: 'Crawldad'
2631
+ category: 'Crawler'
2632
+ url: 'https://gist.github.com/jayhardee9/2f2a2c4dba26564ee040ae32e0dd0972'
2633
+
2634
+ - regex: 'https://securitytxt-scan.cs.hm.edu/'
2635
+ name: 'security.txt scanserver'
2636
+ category: 'Security Checker'
2637
+ url: 'https://securitytxt-scan.cs.hm.edu/'
2638
+ producer:
2639
+ name: 'Hochschule für angewandte Wissenschaften München'
2640
+ url: 'https://www.hm.edu/'
2641
+
2599
2642
  # Generic detections
2600
- - regex: '[a-z0-9\-_]*((?<!cu|power[ _]|m[ _])bot(?![ _]TAB|[ _]?5[0-9])|crawler|crawl|checker|archiver|transcoder|spider)([^a-z]|$)'
2643
+ - regex: '[a-z0-9\-_]*((?<!cu|power[ _]|m[ _])bot(?![ _]TAB|[ _]?5[0-9]|[ _]Senior|[ _]Junior)|crawler|crawl|checker|archiver|transcoder|spider)([^a-z]|$)'
2601
2644
  name: 'Generic Bot'
@@ -5,6 +5,83 @@
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
+
8
85
  # Secure Browser (https://safertechnologies.io/)
9
86
  - regex: 'Secure/(?:(\d+[\.\d]+))?'
10
87
  name: 'Secure Browser'
@@ -449,10 +526,22 @@
449
526
  version: '$1'
450
527
 
451
528
  # Lunascape Lite (https://www.lunascape.tv/)
452
- - regex: 'iLunascapeLite/(?:(\d+[\.\d]+))?'
529
+ - regex: 'iLunascapeLite/(?:(\d+\.[.\d]+))?'
453
530
  name: 'Lunascape Lite'
454
531
  version: '$1'
455
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
+
456
545
  # Polypane (https://polypane.app/)
457
546
  - regex: 'Polypane/(?:(\d+[\.\d]+))?'
458
547
  name: 'Polypane'
@@ -604,6 +693,10 @@
604
693
  - regex: 'Beamrise(?:/(\d+[\.\d]+))?'
605
694
  name: 'Beamrise'
606
695
  version: '$1'
696
+ engine:
697
+ default: 'WebKit'
698
+ versions:
699
+ 28: 'Blink'
607
700
 
608
701
  # Faux Browser (https://apps.apple.com/us/app/faux-browser/id472250940)
609
702
  - regex: 'Faux(?:/(\d+[\.\d]+))?'
@@ -637,6 +730,13 @@
637
730
  engine:
638
731
  default: 'Blink'
639
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
+
640
740
  # FreeU (https://freeu.online/)
641
741
  - regex: 'FreeU(?:/(\d+[\.\d]+))?'
642
742
  name: 'FreeU'
@@ -719,10 +819,19 @@
719
819
  engine:
720
820
  default: 'Blink'
721
821
 
722
- # Huawei Browser
822
+ # Huawei Browser Mobile
723
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]+)'
724
831
  name: 'Huawei Browser'
725
832
  version: '$1'
833
+ engine:
834
+ default: 'Blink'
726
835
 
727
836
  # vivo Browser
728
837
  - regex: 'VivoBrowser(?:/(\d+[\.\d]+))?'
@@ -858,7 +967,7 @@
858
967
  version: '$1'
859
968
 
860
969
  # Avast Secure Browser | Avast SafeZone Browser (https://www.avast.com/)
861
- - regex: '(?:Avast|ASW|Safer)(?:/(\d+[\.\d]+))?'
970
+ - regex: '(?:Avast(?:SecureBrowser)?|ASW|Safer)(?:/(\d+[\.\d]+))?'
862
971
  name: 'Avast Secure Browser'
863
972
  version: '$1'
864
973
 
@@ -1055,7 +1164,7 @@
1055
1164
  default: 'Goanna'
1056
1165
 
1057
1166
  #Firefox Focus / Firefox Klar
1058
- - regex: '(?:Focus|Klar)(?:/(\d+[\.\d]+))?'
1167
+ - regex: '(?:Focus|Klar)(?:/(\d+[\.\d]+))'
1059
1168
  name: 'Firefox Focus'
1060
1169
  version: '$1'
1061
1170
 
@@ -1198,12 +1307,18 @@
1198
1307
  version: ''
1199
1308
 
1200
1309
  # Opera GX (https://www.opera.com/gx#start | http://ftp.opera.com/pub/opera_gx/)
1201
- - regex: 'OPRGX(?:/(\d+[\.\d]+))?'
1310
+ - regex: 'Chrome/.+ OP(?:RG)?X(?:/(\d+[\.\d]+))?'
1202
1311
  name: 'Opera GX'
1203
1312
  version: '$1'
1204
1313
  engine:
1205
1314
  default: 'Blink'
1206
1315
 
1316
+ - regex: 'OP(?:RG)?X(?:/(\d+[\.\d]+))?'
1317
+ name: 'Opera GX'
1318
+ version: '$1'
1319
+ engine:
1320
+ default: 'WebKit'
1321
+
1207
1322
  #Opera
1208
1323
  - regex: '(?:Opera Tablet.*Version|Opera/.+Opera Mobi.+Version|Mobile.+OPR)/(\d+[\.\d]+)'
1209
1324
  name: 'Opera Mobile'
@@ -1227,6 +1342,11 @@
1227
1342
  version: '$1'
1228
1343
  engine:
1229
1344
  default: 'WebKit'
1345
+ - regex: 'Opera%20Touch/.+CFNetwork/.+Darwin/.+(?!.*x86_64)'
1346
+ name: 'Opera Touch'
1347
+ version: ''
1348
+ engine:
1349
+ default: 'WebKit'
1230
1350
  - regex: 'OPT/(\d+[\.\d]+)'
1231
1351
  name: 'Opera Touch'
1232
1352
  version: '$1'
@@ -1398,7 +1518,7 @@
1398
1518
  default: 'WebKit'
1399
1519
  versions:
1400
1520
  '5.2': 'Blink'
1401
- - regex: '(?:Maxthon(?:%20Browser)?|MxBrowser(?:-inhouse|-iPhone)?)[ /](\d+[\.\d]+)'
1521
+ - regex: '(?:Maxthon(?:%20Browser)?|MxBrowser(?:-inhouse|-iPhone)?|MXiOS)[ /](\d+[\.\d]+)'
1402
1522
  name: 'Maxthon'
1403
1523
  version: '$1'
1404
1524
  engine:
@@ -1430,6 +1550,8 @@
1430
1550
  version: '$1'
1431
1551
  engine:
1432
1552
  default: 'WebKit'
1553
+ versions:
1554
+ 28: 'Blink'
1433
1555
 
1434
1556
  - regex: 'Iron(?:/(\d+[\.\d]+))?'
1435
1557
  name: 'Iron'
@@ -1531,6 +1653,8 @@
1531
1653
  - regex: 'UBrowser(?:/(\d+[\.\d]+))?'
1532
1654
  name: 'UBrowser'
1533
1655
  version: '$1'
1656
+ engine:
1657
+ default: 'Blink'
1534
1658
 
1535
1659
  #Streamy (Chromium based)
1536
1660
  - regex: 'Streamy(?:/(\d+[\.\d]+))?'
@@ -1556,6 +1680,11 @@
1556
1680
  - regex: 'UC AppleWebKit'
1557
1681
  name: 'UC Browser'
1558
1682
  version: ''
1683
+ - regex: 'UC%20Browser/(\d+[\.\d]+)? CFNetwork/.+Darwin/.+(?!.*x86_64)'
1684
+ name: 'UC Browser'
1685
+ version: '$1'
1686
+ engine:
1687
+ default: 'WebKit'
1559
1688
 
1560
1689
  #It should be checked before Chrome since the UA contains the Chrome
1561
1690
 
@@ -1584,6 +1713,11 @@
1584
1713
  version: '$1'
1585
1714
  engine:
1586
1715
  default: 'WebKit'
1716
+ - regex: 'webexplorer/(\d+)'
1717
+ name: 'Web Explorer'
1718
+ version: '$1'
1719
+ engine:
1720
+ default: 'WebKit'
1587
1721
 
1588
1722
  # Seznam Browser
1589
1723
  - regex: 'SznProhlizec/(\d+[\.\d]+)'
@@ -1653,6 +1787,16 @@
1653
1787
  engine:
1654
1788
  default: 'WebKit'
1655
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
+
1656
1800
  #IBrowse
1657
1801
  - regex: 'IBrowse(?:[ /](\d+[\.\d]+))?'
1658
1802
  name: 'IBrowse'
@@ -1976,8 +2120,20 @@
1976
2120
  engine:
1977
2121
  default: 'Gecko'
1978
2122
 
1979
- #Google Earth
1980
- - 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]+))?'
1981
2137
  name: 'Google Earth'
1982
2138
  version: '$1'
1983
2139
  engine:
@@ -2004,13 +2160,6 @@
2004
2160
  versions:
2005
2161
  4: 'WebKit'
2006
2162
 
2007
- #Lunascape
2008
- - regex: 'i?Lunascape(?:[/ ](\d+[\.\d]+))?'
2009
- name: 'Lunascape'
2010
- version: '$1'
2011
- engine:
2012
- default: '' # multi engine
2013
-
2014
2163
  # Crazy Browser
2015
2164
  - regex: 'Crazy Browser (\d+[\.\d]+)'
2016
2165
  name: 'Crazy Browser'
@@ -2201,6 +2350,11 @@
2201
2350
  - regex: 'Coast(?:/(\d+[\.\d]+))?'
2202
2351
  name: 'Coast'
2203
2352
  version: '$1'
2353
+ - regex: 'Opera%20Coast/(\d+[\.\d]+)? CFNetwork/.+Darwin/.+(?!.*x86_64)'
2354
+ name: 'Coast'
2355
+ version: '$1'
2356
+ engine:
2357
+ default: 'WebKit'
2204
2358
 
2205
2359
  # surf (https://surf.suckless.org/)
2206
2360
  - regex: 'Surf(?:/(\d+[\.\d]+))?'
@@ -2266,7 +2420,7 @@
2266
2420
  version: '$1'
2267
2421
 
2268
2422
  # MAUI Wap Browser
2269
- - regex: 'WAP Browser/MAUI|(?:\w+)?Maui Wap Browser|MAUI[- ]Browser'
2423
+ - regex: 'WAP Browser/MAUI|(?:\w*)Maui Wap Browser|MAUI[- ]Browser'
2270
2424
  name: 'MAUI WAP Browser'
2271
2425
  version: ''
2272
2426
 
@@ -55,7 +55,7 @@
55
55
  name: 'aiohttp'
56
56
  version: '$1'
57
57
 
58
- - regex: 'Google-HTTP-Java-Client(?:/(\d+[\.\d\w-]+))?'
58
+ - regex: 'Google-HTTP-Java-Client(?:/(\d+[\.\w-]+))?'
59
59
  name: 'Google HTTP Java Client'
60
60
  version: '$1'
61
61
 
@@ -156,3 +156,22 @@
156
156
  - regex: 'gvfs/(?:(\d+[\.\d]+))?'
157
157
  name: 'gvfs'
158
158
  version: '$1'
159
+
160
+ # https://openwrt.org/packages/pkgdata/uclient-fetch
161
+ - regex: 'uclient-fetch'
162
+ name: 'uclient-fetch'
163
+ version: ''
164
+
165
+ # https://github.com/microsoft/cpprestsdk
166
+ - regex: 'cpprestsdk/([\.\d]+)'
167
+ name: 'C++ REST SDK'
168
+ version: '$1'
169
+
170
+ - regex: 'lua-resty-http/([\.\d]+).+ngx_'
171
+ name: 'LUA OpenResty NGINX'
172
+ version: '$1'
173
+
174
+ # https://github.com/Kong/unirest-java
175
+ - regex: 'unirest-java/([\.\d]+)'
176
+ name: 'Unirest for Java'
177
+ version: '$1'
@@ -105,7 +105,7 @@
105
105
  name: 'mpv'
106
106
  version: '$1'
107
107
 
108
- - regex: 'foobar2000(?:/([\d\w_\.]+))?'
108
+ - regex: 'foobar2000(?:/([\w\.]+))?'
109
109
  name: 'foobar2000'
110
110
  version: '$1'
111
111
 
@@ -113,7 +113,7 @@
113
113
  name: 'HTC Streaming Player'
114
114
  version: ''
115
115
 
116
- - regex: 'MediaGo(?:/([\d\w_\.]+))?'
116
+ - regex: 'MediaGo(?:/([\w\.]+))?'
117
117
  name: 'Sony Media Go'
118
118
  version: '$1'
119
119