device_detector 1.0.0 → 1.1.3
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 +58 -4
- data/README.md +57 -21
- data/lib/device_detector/bot.rb +2 -2
- data/lib/device_detector/browser.rb +691 -0
- data/lib/device_detector/client.rb +11 -2
- data/lib/device_detector/client_hint.rb +249 -0
- data/lib/device_detector/device.rb +1954 -23
- data/lib/device_detector/memory_cache.rb +26 -19
- 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 +289 -112
- data/lib/device_detector/parser.rb +49 -13
- data/lib/device_detector/vendor_fragment.rb +25 -0
- data/lib/device_detector/version.rb +3 -1
- data/lib/device_detector/version_extractor.rb +29 -2
- data/lib/device_detector.rb +192 -44
- data/regexes/bots.yml +3399 -91
- data/regexes/client/browser_engine.yml +28 -4
- data/regexes/client/browsers.yml +2697 -408
- data/regexes/client/feed_readers.yml +60 -22
- data/regexes/client/hints/apps.yml +150 -0
- data/regexes/client/hints/browsers.yml +292 -0
- data/regexes/client/libraries.yml +598 -4
- data/regexes/client/mediaplayers.yml +110 -5
- data/regexes/client/mobile_apps.yml +2451 -14
- data/regexes/client/pim.yml +128 -3
- data/regexes/device/cameras.yml +6 -6
- data/regexes/device/car_browsers.yml +39 -3
- data/regexes/device/consoles.yml +40 -6
- data/regexes/device/mobiles.yml +38844 -2907
- data/regexes/device/notebooks.yml +127 -0
- data/regexes/device/portable_media_player.yml +75 -12
- data/regexes/device/shell_tv.yml +145 -0
- data/regexes/device/televisions.yml +981 -40
- data/regexes/oss.yml +1560 -311
- data/regexes/vendorfragments.yml +6 -2
- metadata +31 -105
- data/.gitignore +0 -14
- data/.travis.yml +0 -18
- data/Gemfile +0 -8
- data/Rakefile +0 -79
- 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 -136
- data/spec/device_detector/detector_fixtures_spec.rb +0 -60
- 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 -116
- 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 -80
- data/spec/device_detector_spec.rb +0 -198
- data/spec/fixtures/client/browser.yml +0 -1313
- data/spec/fixtures/client/feed_reader.yml +0 -187
- data/spec/fixtures/client/library.yml +0 -84
- data/spec/fixtures/client/mediaplayer.yml +0 -168
- data/spec/fixtures/client/mobile_app.yml +0 -30
- data/spec/fixtures/client/pim.yml +0 -96
- data/spec/fixtures/detector/bots.yml +0 -2418
- data/spec/fixtures/detector/camera.yml +0 -115
- data/spec/fixtures/detector/car_browser.yml +0 -20
- data/spec/fixtures/detector/console.yml +0 -267
- data/spec/fixtures/detector/desktop.yml +0 -4828
- data/spec/fixtures/detector/feature_phone.yml +0 -782
- data/spec/fixtures/detector/feed_reader.yml +0 -486
- data/spec/fixtures/detector/mediaplayer.yml +0 -179
- data/spec/fixtures/detector/mobile_apps.yml +0 -149
- data/spec/fixtures/detector/phablet.yml +0 -2140
- data/spec/fixtures/detector/portable_media_player.yml +0 -153
- data/spec/fixtures/detector/smart_display.yml +0 -58
- data/spec/fixtures/detector/smartphone-1.yml +0 -9469
- data/spec/fixtures/detector/smartphone-2.yml +0 -9414
- data/spec/fixtures/detector/smartphone-3.yml +0 -9396
- data/spec/fixtures/detector/smartphone-4.yml +0 -5742
- data/spec/fixtures/detector/smartphone.yml +0 -9411
- data/spec/fixtures/detector/tablet-1.yml +0 -9495
- data/spec/fixtures/detector/tablet-2.yml +0 -248
- data/spec/fixtures/detector/tablet.yml +0 -9484
- data/spec/fixtures/detector/tv.yml +0 -2582
- data/spec/fixtures/detector/unknown.yml +0 -3196
- data/spec/fixtures/device/camera.yml +0 -18
- data/spec/fixtures/device/car_browser.yml +0 -6
- data/spec/fixtures/device/console.yml +0 -78
- data/spec/fixtures/parser/oss.yml +0 -800
- data/spec/fixtures/parser/vendorfragments.yml +0 -162
- data/spec/spec_helper.rb +0 -9
@@ -1,10 +1,18 @@
|
|
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
|
|
8
|
+
- regex: 'Audacious(?:[ /]([\d\.]+))?'
|
9
|
+
name: 'Audacious'
|
10
|
+
version: '$1'
|
11
|
+
|
12
|
+
- regex: '(?:AlexaMediaPlayer/|^AlexaMediaPlayer/|^Echo/|Amazon;Echo(?:_|;)|^AlexaService/|^Alexa Mobile Voice/)([a-z\d]+\.[a-z.\d]+)?'
|
13
|
+
name: 'Alexa'
|
14
|
+
version: '$1'
|
15
|
+
|
8
16
|
- regex: 'Banshee(?:[ /]([\d\.]+))?'
|
9
17
|
name: 'Banshee'
|
10
18
|
version: '$1'
|
@@ -17,7 +25,11 @@
|
|
17
25
|
name: 'Clementine'
|
18
26
|
version: '$1'
|
19
27
|
|
20
|
-
- regex: '
|
28
|
+
- regex: 'Deezer(?:/([\d\.]+))?'
|
29
|
+
name: 'Deezer'
|
30
|
+
version: '$1'
|
31
|
+
|
32
|
+
- regex: 'iTunes(?:-iPhone|-iPad)?(?:/([\d\.]+))?'
|
21
33
|
name: 'iTunes'
|
22
34
|
version: '$1'
|
23
35
|
|
@@ -25,6 +37,10 @@
|
|
25
37
|
name: 'FlyCast'
|
26
38
|
version: '$1'
|
27
39
|
|
40
|
+
- regex: 'foobar2000(?:/([\d\.]+))?'
|
41
|
+
name: 'Foobar2000'
|
42
|
+
version: '$1'
|
43
|
+
|
28
44
|
- regex: 'MediaMonkey(?:[ /](\d+[\.\d]+))?'
|
29
45
|
name: 'MediaMonkey'
|
30
46
|
version: '$1'
|
@@ -53,6 +69,10 @@
|
|
53
69
|
name: 'SubStream'
|
54
70
|
version: '$1'
|
55
71
|
|
72
|
+
- regex: 'Sonos/([\d\.]+)?'
|
73
|
+
name: 'SONOS'
|
74
|
+
version: '$1'
|
75
|
+
|
56
76
|
- regex: '(?:Lib)?VLC(?:/([\d\.]+))?'
|
57
77
|
name: 'VLC'
|
58
78
|
version: '$1'
|
@@ -61,6 +81,10 @@
|
|
61
81
|
name: 'Winamp'
|
62
82
|
version: '$1'
|
63
83
|
|
84
|
+
- regex: 'J\. River Internet Reader/(\d+\.[.\d]+)'
|
85
|
+
name: 'JRiver Media Center'
|
86
|
+
version: '$1'
|
87
|
+
|
64
88
|
- regex: '(?:Windows-Media-Player|NSPlayer)(?:/(\d+[\.\d]+))?'
|
65
89
|
name: 'Windows Media Player'
|
66
90
|
version: '$1'
|
@@ -77,6 +101,87 @@
|
|
77
101
|
name: 'Stagefright'
|
78
102
|
version: '$1'
|
79
103
|
|
80
|
-
- regex: '
|
81
|
-
name: '
|
82
|
-
version: '$1'
|
104
|
+
- regex: 'GoogleChirp(?:/(\d+[\.\d]+))?'
|
105
|
+
name: 'Google Podcasts'
|
106
|
+
version: '$1'
|
107
|
+
|
108
|
+
- regex: 'Music Player Daemon (?:(\d+[\.\d]+))?'
|
109
|
+
name: 'Music Player Daemon'
|
110
|
+
version: '$1'
|
111
|
+
|
112
|
+
- regex: 'mpv (?:(\d+[\.\d]+))?'
|
113
|
+
name: 'mpv'
|
114
|
+
version: '$1'
|
115
|
+
|
116
|
+
- regex: 'foobar2000(?:/([\w\.]+))?'
|
117
|
+
name: 'foobar2000'
|
118
|
+
version: '$1'
|
119
|
+
|
120
|
+
- regex: 'HTC Streaming Player'
|
121
|
+
name: 'HTC Streaming Player'
|
122
|
+
version: ''
|
123
|
+
|
124
|
+
- regex: 'MediaGo(?:/([\w\.]+))?'
|
125
|
+
name: 'Sony Media Go'
|
126
|
+
version: '$1'
|
127
|
+
|
128
|
+
- regex: 'MPlayer[ /](\d+\.[\d\.])'
|
129
|
+
name: 'MPlayer'
|
130
|
+
version: '$1'
|
131
|
+
|
132
|
+
- regex: 'Downcast/(\d+\.[\d\.]+)?'
|
133
|
+
name: 'Downcast'
|
134
|
+
version: '$1'
|
135
|
+
|
136
|
+
- regex: '^Juice/([\d\.]+)'
|
137
|
+
name: 'Juice'
|
138
|
+
version: '$1'
|
139
|
+
|
140
|
+
- regex: 'just_audio/(\d+\.[.\d]+)'
|
141
|
+
name: 'Just Audio'
|
142
|
+
version: '$1'
|
143
|
+
|
144
|
+
# https://apps.kde.org/kasts/ ?
|
145
|
+
- regex: '^Kasts/(\d+\.[.\d]+)'
|
146
|
+
name: 'Kasts'
|
147
|
+
version: '$1'
|
148
|
+
|
149
|
+
- regex: 'MixerBox(?:%20Pro)?/([.\d]+)'
|
150
|
+
name: 'MixerBox'
|
151
|
+
version: '$1'
|
152
|
+
|
153
|
+
- regex: '^MusicBee(?:/(\d+\.[.\d]+))?'
|
154
|
+
name: 'MusicBee'
|
155
|
+
version: '$1'
|
156
|
+
|
157
|
+
- regex: '^amarok/(\d+\.[.\d]+)'
|
158
|
+
name: 'Amarok'
|
159
|
+
version: '$1'
|
160
|
+
|
161
|
+
- regex: 'Hubhopper/([\d\.]+)'
|
162
|
+
name: 'Hubhopper'
|
163
|
+
version: '$1'
|
164
|
+
|
165
|
+
- regex: 'StudioDisplay/(\d+\.[\d\.]+)'
|
166
|
+
name: 'StudioDisplay'
|
167
|
+
version: '$1'
|
168
|
+
|
169
|
+
# JHelioviewer (https://www.jhelioviewer.org/)
|
170
|
+
- regex: 'JHV/SWHV-([.\d+]+)'
|
171
|
+
name: 'JHelioviewer'
|
172
|
+
version: '$1'
|
173
|
+
|
174
|
+
# Xtream Player (https://play.google.com/store/apps/details?id=com.devcoder.iptvxtreamplayer)
|
175
|
+
- regex: 'com\.devcoder\.iptvxtreamplayer'
|
176
|
+
name: 'Xtream Player'
|
177
|
+
version: ''
|
178
|
+
|
179
|
+
# DIGA (https://av.jpn.support.panasonic.com/support/global/cs/bd/diga_player/2013/android/index.html)
|
180
|
+
- regex: 'DIGA(?:Plus/(\d+\.[.\d]+))?'
|
181
|
+
name: 'DIGA'
|
182
|
+
version: '$1'
|
183
|
+
|
184
|
+
# YouView (https://www.youview.com/)
|
185
|
+
- regex: 'YouView(?:HTML/(\d+\.[.\d]+))?'
|
186
|
+
name: 'YouView'
|
187
|
+
version: '$1'
|