device_detector 1.0.5 → 1.0.6

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 (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
@@ -22,19 +22,13 @@
22
22
  version: ''
23
23
  url: 'http://lincgeek.org/bashpodder/'
24
24
  type: 'Feed Reader'
25
-
25
+
26
26
  - regex: 'Breaker/v([\d\.]+)'
27
27
  name: 'Breaker'
28
28
  version: '$1'
29
29
  url: 'https://www.breaker.audio/'
30
30
  type: 'Feed Reader App'
31
31
 
32
- - regex: 'Downcast/([\d\.]+)'
33
- name: 'Downcast'
34
- version: '$1'
35
- url: 'http://downcastapp.com/'
36
- type: 'Feed Reader App'
37
-
38
32
  - regex: 'FeedDemon(?:/(\d+[\.\d]+))?'
39
33
  name: 'FeedDemon'
40
34
  version: '$1'
@@ -50,7 +44,7 @@
50
44
  - regex: 'QuiteRSS(?:[/ ](\d+[\.\d]+))?'
51
45
  name: 'QuiteRSS'
52
46
  version: '$1'
53
- url: https://quiterss.org
47
+ url: 'https://quiterss.org'
54
48
  type: 'Feed Reader App'
55
49
 
56
50
  - regex: 'gPodder/([\d\.]+)'
@@ -71,7 +65,7 @@
71
65
  url: 'http://liferea.sf.net/'
72
66
  type: 'Feed Reader'
73
67
 
74
- - regex: 'NetNewsWire(?:[/ ](\d+[\.\d]+))?'
68
+ - regex: '(?:NetNewsWire|Evergreen.+MacOS)(?:[/ ](\d+[\.\d]+))?'
75
69
  name: 'NetNewsWire'
76
70
  version: '$1'
77
71
  url: 'http://netnewswireapp.com/'
@@ -113,7 +107,7 @@
113
107
  url: 'http://readkitapp.com/'
114
108
  type: 'Feed Reader App'
115
109
 
116
- - regex: 'Reeder(?:[/ ](\d+[\.\d]+))?'
110
+ - regex: 'Reeder[/ ](\d+[\.\d]+)'
117
111
  name: 'Reeder'
118
112
  version: '$1'
119
113
  url: 'http://reederapp.com/'
@@ -104,10 +104,55 @@
104
104
 
105
105
  - regex: 'node-fetch/(\d+[\.\d]+)'
106
106
  name: 'Node Fetch'
107
- version: $1
107
+ version: '$1'
108
108
  url: 'https://github.com/node-fetch/node-fetch'
109
109
 
110
110
  - regex: 'ReactorNetty/(\d+[\.\d]+)'
111
111
  name: 'ReactorNetty'
112
- version: $1
112
+ version: '$1'
113
113
  url: 'https://github.com/reactor/reactor-netty'
114
+
115
+ - regex: 'PostmanRuntime(?:/(\d+[\.\d]+))?'
116
+ name: 'Postman Desktop'
117
+ version: '$1'
118
+ url: 'https://github.com/postmanlabs/postman-runtime'
119
+
120
+ - regex: 'Jakarta Commons-HttpClient/([\.\d]+)'
121
+ name: 'Jakarta Commons HttpClient'
122
+ version: '$1'
123
+ url: 'https://hc.apache.org/httpclient-3.x'
124
+
125
+ - regex: 'WinHttp.WinHttpRequest.+([\.\d]+)'
126
+ name: 'WinHttp WinHttpRequest'
127
+ version: '$1'
128
+
129
+ # THTTPClient in delphi 10+ default useragent
130
+ - regex: 'Embarcadero URI Client/([\.\d]+)'
131
+ name: 'Embarcadero URI Client'
132
+ version: '$1'
133
+
134
+ - regex: 'Mikrotik/([\.\d]+)'
135
+ name: 'Mikrotik Fetch'
136
+ version: '$1'
137
+
138
+ - regex: 'GRequests(?:/(\d+[\.\d]+))?'
139
+ name: 'GRequests'
140
+ version: '$1'
141
+
142
+ # https://doc.akka.io/
143
+ - regex: 'akka-http/([\.\d]+)'
144
+ name: 'Akka HTTP'
145
+ version: '$1'
146
+
147
+ # this added need added tests
148
+ - regex: 'aria2(?:/(\d+[\.\d]+))?'
149
+ name: 'Aria2'
150
+ version: '$1'
151
+
152
+ - regex: 'BTWebClient/'
153
+ name: 'uTorrent'
154
+ version: ''
155
+
156
+ - regex: 'gvfs/(?:(\d+[\.\d]+))?'
157
+ name: 'gvfs'
158
+ version: '$1'
@@ -32,7 +32,7 @@
32
32
  - regex: 'FlyCast(?:/([\d\.]+))?'
33
33
  name: 'FlyCast'
34
34
  version: '$1'
35
-
35
+
36
36
  - regex: 'foobar2000(?:/([\d\.]+))?'
37
37
  name: 'Foobar2000'
38
38
  version: '$1'
@@ -65,6 +65,10 @@
65
65
  name: 'SubStream'
66
66
  version: '$1'
67
67
 
68
+ - regex: 'Sonos/([\d\.]+)?'
69
+ name: 'SONOS'
70
+ version: '$1'
71
+
68
72
  - regex: '(?:Lib)?VLC(?:/([\d\.]+))?'
69
73
  name: 'VLC'
70
74
  version: '$1'
@@ -100,3 +104,23 @@
100
104
  - regex: 'mpv (?:(\d+[\.\d]+))?'
101
105
  name: 'mpv'
102
106
  version: '$1'
107
+
108
+ - regex: 'foobar2000(?:/([\d\w_\.]+))?'
109
+ name: 'foobar2000'
110
+ version: '$1'
111
+
112
+ - regex: 'HTC Streaming Player'
113
+ name: 'HTC Streaming Player'
114
+ version: ''
115
+
116
+ - regex: 'MediaGo(?:/([\d\w_\.]+))?'
117
+ name: 'Sony Media Go'
118
+ version: '$1'
119
+
120
+ - regex: 'MPlayer[ /](\d+\.[\d\.])'
121
+ name: 'MPlayer'
122
+ version: '$1'
123
+
124
+ - regex: 'Downcast/(\d+\.[\d\.]+)?'
125
+ name: 'Downcast'
126
+ version: '$1'