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
@@ -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/'
@@ -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
 
@@ -104,5 +104,74 @@
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
+
110
+ - regex: 'ReactorNetty/(\d+[\.\d]+)'
111
+ name: 'ReactorNetty'
112
+ version: '$1'
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'
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'
@@ -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(?:/([\w\.]+))?'
109
+ name: 'foobar2000'
110
+ version: '$1'
111
+
112
+ - regex: 'HTC Streaming Player'
113
+ name: 'HTC Streaming Player'
114
+ version: ''
115
+
116
+ - regex: 'MediaGo(?:/([\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'