device_detector 1.0.3 → 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.
- checksums.yaml +5 -5
- data/CHANGELOG.md +15 -0
- data/README.md +8 -7
- data/lib/device_detector/bot.rb +2 -2
- data/lib/device_detector/browser.rb +364 -0
- data/lib/device_detector/client.rb +11 -2
- data/lib/device_detector/device.rb +1247 -22
- data/lib/device_detector/memory_cache.rb +5 -5
- data/lib/device_detector/metadata_extractor.rb +7 -8
- data/lib/device_detector/model_extractor.rb +3 -3
- data/lib/device_detector/name_extractor.rb +2 -2
- data/lib/device_detector/os.rb +150 -116
- data/lib/device_detector/parser.rb +23 -10
- data/lib/device_detector/version.rb +1 -1
- data/lib/device_detector/version_extractor.rb +29 -2
- data/lib/device_detector.rb +73 -40
- data/regexes/bots.yml +868 -62
- data/regexes/client/browser_engine.yml +11 -2
- data/regexes/client/browsers.yml +1132 -112
- data/regexes/client/feed_readers.yml +5 -11
- data/regexes/client/libraries.yml +86 -2
- data/regexes/client/mediaplayers.yml +39 -3
- data/regexes/client/mobile_apps.yml +940 -66
- data/regexes/client/pim.yml +66 -3
- data/regexes/device/cameras.yml +6 -6
- data/regexes/device/car_browsers.yml +23 -3
- data/regexes/device/consoles.yml +15 -3
- data/regexes/device/mobiles.yml +18351 -3566
- data/regexes/device/notebooks.yml +114 -0
- data/regexes/device/portable_media_player.yml +36 -9
- data/regexes/device/shell_tv.yml +117 -0
- data/regexes/device/televisions.yml +440 -35
- data/regexes/oss.yml +635 -284
- data/regexes/vendorfragments.yml +5 -1
- metadata +21 -118
- data/.gitignore +0 -14
- data/.travis.yml +0 -14
- data/Gemfile +0 -8
- data/Rakefile +0 -96
- data/device_detector.gemspec +0 -26
- data/spec/device_detector/bot_fixtures_spec.rb +0 -30
- data/spec/device_detector/client_fixtures_spec.rb +0 -31
- data/spec/device_detector/concrete_user_agent_spec.rb +0 -135
- data/spec/device_detector/detector_fixtures_spec.rb +0 -100
- data/spec/device_detector/device_fixtures_spec.rb +0 -36
- data/spec/device_detector/device_spec.rb +0 -151
- data/spec/device_detector/memory_cache_spec.rb +0 -148
- data/spec/device_detector/model_extractor_spec.rb +0 -63
- data/spec/device_detector/os_fixtures_spec.rb +0 -26
- data/spec/device_detector/version_extractor_spec.rb +0 -79
- data/spec/device_detector_spec.rb +0 -189
- data/spec/fixtures/client/browser.yml +0 -2206
- data/spec/fixtures/client/feed_reader.yml +0 -199
- data/spec/fixtures/client/library.yml +0 -175
- data/spec/fixtures/client/mediaplayer.yml +0 -163
- data/spec/fixtures/client/mobile_app.yml +0 -193
- data/spec/fixtures/client/pim.yml +0 -115
- data/spec/fixtures/detector/bots.yml +0 -3260
- data/spec/fixtures/detector/camera.yml +0 -121
- data/spec/fixtures/detector/car_browser.yml +0 -21
- data/spec/fixtures/detector/console.yml +0 -281
- data/spec/fixtures/detector/desktop.yml +0 -5361
- data/spec/fixtures/detector/feature_phone.yml +0 -891
- data/spec/fixtures/detector/feed_reader.yml +0 -551
- data/spec/fixtures/detector/mediaplayer.yml +0 -210
- data/spec/fixtures/detector/mobile_apps.yml +0 -456
- data/spec/fixtures/detector/phablet.yml +0 -3785
- data/spec/fixtures/detector/portable_media_player.yml +0 -178
- data/spec/fixtures/detector/smart_display.yml +0 -61
- data/spec/fixtures/detector/smartphone-1.yml +0 -9953
- data/spec/fixtures/detector/smartphone-10.yml +0 -9924
- data/spec/fixtures/detector/smartphone-11.yml +0 -9889
- data/spec/fixtures/detector/smartphone-12.yml +0 -8655
- data/spec/fixtures/detector/smartphone-2.yml +0 -9967
- data/spec/fixtures/detector/smartphone-3.yml +0 -9887
- data/spec/fixtures/detector/smartphone-4.yml +0 -9911
- data/spec/fixtures/detector/smartphone-5.yml +0 -9933
- data/spec/fixtures/detector/smartphone-6.yml +0 -9923
- data/spec/fixtures/detector/smartphone-7.yml +0 -9892
- data/spec/fixtures/detector/smartphone-8.yml +0 -9896
- data/spec/fixtures/detector/smartphone-9.yml +0 -9928
- data/spec/fixtures/detector/smartphone.yml +0 -9984
- data/spec/fixtures/detector/tablet-1.yml +0 -10023
- data/spec/fixtures/detector/tablet-2.yml +0 -9968
- data/spec/fixtures/detector/tablet-3.yml +0 -7787
- data/spec/fixtures/detector/tablet.yml +0 -9951
- data/spec/fixtures/detector/tv.yml +0 -3333
- data/spec/fixtures/detector/unknown.yml +0 -3283
- data/spec/fixtures/device/camera.yml +0 -19
- data/spec/fixtures/device/car_browser.yml +0 -7
- data/spec/fixtures/device/console.yml +0 -79
- data/spec/fixtures/parser/oss.yml +0 -1047
- data/spec/fixtures/parser/vendorfragments.yml +0 -162
- data/spec/spec_helper.rb +0 -9
@@ -1,7 +1,7 @@
|
|
1
1
|
###############
|
2
2
|
# Device Detector - The Universal Device Detection library for parsing User Agents
|
3
3
|
#
|
4
|
-
# @link
|
4
|
+
# @link https://matomo.org
|
5
5
|
# @license http://www.gnu.org/licenses/lgpl.html LGPL v3 or later
|
6
6
|
###############
|
7
7
|
|
@@ -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
|
110
|
+
- regex: 'Reeder[/ ](\d+[\.\d]+)'
|
117
111
|
name: 'Reeder'
|
118
112
|
version: '$1'
|
119
113
|
url: 'http://reederapp.com/'
|
@@ -1,7 +1,7 @@
|
|
1
1
|
###############
|
2
2
|
# Device Detector - The Universal Device Detection library for parsing User Agents
|
3
3
|
#
|
4
|
-
# @link
|
4
|
+
# @link https://matomo.org
|
5
5
|
# @license http://www.gnu.org/licenses/lgpl.html LGPL v3 or later
|
6
6
|
###############
|
7
7
|
|
@@ -55,7 +55,7 @@
|
|
55
55
|
name: 'aiohttp'
|
56
56
|
version: '$1'
|
57
57
|
|
58
|
-
- regex: 'Google-HTTP-Java-Client(?:/(\d+[\.\
|
58
|
+
- regex: 'Google-HTTP-Java-Client(?:/(\d+[\.\w-]+))?'
|
59
59
|
name: 'Google HTTP Java Client'
|
60
60
|
version: '$1'
|
61
61
|
|
@@ -91,3 +91,87 @@
|
|
91
91
|
name: 'RestSharp'
|
92
92
|
version: '$1'
|
93
93
|
url: 'http://restsharp.org/'
|
94
|
+
|
95
|
+
- regex: 'scalaj-http/(\d+[\.\d]+)'
|
96
|
+
name: 'ScalaJ HTTP'
|
97
|
+
version: '$1'
|
98
|
+
url: 'https://github.com/scalaj/scalaj-http'
|
99
|
+
|
100
|
+
- regex: 'REST::Client/(\d+)'
|
101
|
+
name: 'Perl REST::Client'
|
102
|
+
version: '$1'
|
103
|
+
url: 'https://metacpan.org/pod/REST::Client'
|
104
|
+
|
105
|
+
- regex: 'node-fetch/(\d+[\.\d]+)'
|
106
|
+
name: 'Node Fetch'
|
107
|
+
version: '$1'
|
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'
|
@@ -1,7 +1,7 @@
|
|
1
1
|
###############
|
2
2
|
# Device Detector - The Universal Device Detection library for parsing User Agents
|
3
3
|
#
|
4
|
-
# @link
|
4
|
+
# @link https://matomo.org
|
5
5
|
# @license http://www.gnu.org/licenses/lgpl.html LGPL v3 or later
|
6
6
|
###############
|
7
7
|
|
@@ -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'
|
@@ -87,4 +91,36 @@
|
|
87
91
|
|
88
92
|
- regex: 'stagefright(?:/([\d\.]+))?'
|
89
93
|
name: 'Stagefright'
|
90
|
-
version: '$1'
|
94
|
+
version: '$1'
|
95
|
+
|
96
|
+
- regex: 'GoogleChirp(?:/(\d+[\.\d]+))?'
|
97
|
+
name: 'Google Podcasts'
|
98
|
+
version: '$1'
|
99
|
+
|
100
|
+
- regex: 'Music Player Daemon (?:(\d+[\.\d]+))?'
|
101
|
+
name: 'Music Player Daemon'
|
102
|
+
version: '$1'
|
103
|
+
|
104
|
+
- regex: 'mpv (?:(\d+[\.\d]+))?'
|
105
|
+
name: 'mpv'
|
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'
|