device_detector 0.9.1 → 1.0.4
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/.rubocop.yml +49 -0
- data/.ruby-version +1 -0
- data/.travis.yml +5 -9
- data/CHANGELOG.md +16 -3
- data/README.md +7 -9
- data/Rakefile +19 -13
- data/device_detector.gemspec +1 -0
- data/lib/device_detector.rb +32 -28
- data/lib/device_detector/bot.rb +2 -2
- data/lib/device_detector/client.rb +3 -2
- data/lib/device_detector/device.rb +44 -21
- 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 +121 -111
- data/lib/device_detector/parser.rb +22 -9
- data/lib/device_detector/version.rb +3 -1
- data/lib/device_detector/version_extractor.rb +2 -3
- data/regexes/bots.yml +840 -20
- data/regexes/client/browser_engine.yml +11 -2
- data/regexes/client/browsers.yml +909 -108
- data/regexes/client/feed_readers.yml +38 -2
- data/regexes/client/libraries.yml +76 -2
- data/regexes/client/mediaplayers.yml +25 -5
- data/regexes/client/mobile_apps.yml +167 -2
- data/regexes/client/pim.yml +10 -1
- data/regexes/device/cameras.yml +1 -1
- data/regexes/device/car_browsers.yml +7 -3
- data/regexes/device/consoles.yml +3 -3
- data/regexes/device/mobiles.yml +10123 -465
- data/regexes/device/portable_media_player.yml +4 -6
- data/regexes/device/televisions.yml +18 -4
- data/regexes/oss.yml +115 -21
- data/regexes/vendorfragments.yml +6 -2
- data/spec/device_detector/concrete_user_agent_spec.rb +16 -17
- data/spec/device_detector/detector_fixtures_spec.rb +51 -11
- data/spec/device_detector/device_spec.rb +28 -48
- data/spec/device_detector/memory_cache_spec.rb +60 -28
- data/spec/device_detector/model_extractor_spec.rb +3 -3
- data/spec/device_detector/version_extractor_spec.rb +5 -6
- data/spec/device_detector_spec.rb +60 -69
- data/spec/fixtures/client/browser.yml +1785 -262
- data/spec/fixtures/client/feed_reader.yml +47 -35
- data/spec/fixtures/client/library.yml +112 -3
- data/spec/fixtures/client/mediaplayer.yml +32 -37
- data/spec/fixtures/client/mobile_app.yml +193 -6
- data/spec/fixtures/client/pim.yml +37 -18
- data/spec/fixtures/detector/bots.yml +1426 -118
- data/spec/fixtures/detector/camera.yml +36 -10
- data/spec/fixtures/detector/car_browser.yml +64 -3
- data/spec/fixtures/detector/console.yml +80 -26
- data/spec/fixtures/detector/desktop.yml +2222 -1589
- data/spec/fixtures/detector/feature_phone.yml +151 -42
- data/spec/fixtures/detector/feed_reader.yml +186 -121
- data/spec/fixtures/detector/mediaplayer.yml +113 -39
- data/spec/fixtures/detector/mobile_apps.yml +366 -21
- data/spec/fixtures/detector/phablet.yml +2597 -570
- data/spec/fixtures/detector/portable_media_player.yml +41 -16
- data/spec/fixtures/detector/smart_display.yml +8 -5
- data/spec/fixtures/detector/smart_speaker.yml +55 -0
- data/spec/fixtures/detector/smartphone-1.yml +5468 -5010
- data/spec/fixtures/detector/smartphone-10.yml +9977 -0
- data/spec/fixtures/detector/smartphone-11.yml +9891 -0
- data/spec/fixtures/detector/smartphone-12.yml +9906 -0
- data/spec/fixtures/detector/smartphone-13.yml +9920 -0
- data/spec/fixtures/detector/smartphone-14.yml +2662 -0
- data/spec/fixtures/detector/smartphone-2.yml +5213 -4635
- data/spec/fixtures/detector/smartphone-3.yml +5082 -4533
- data/spec/fixtures/detector/smartphone-4.yml +6806 -2625
- data/spec/fixtures/detector/smartphone-5.yml +9914 -0
- data/spec/fixtures/detector/smartphone-6.yml +9962 -0
- data/spec/fixtures/detector/smartphone-7.yml +9899 -0
- data/spec/fixtures/detector/smartphone-8.yml +9931 -0
- data/spec/fixtures/detector/smartphone-9.yml +9899 -0
- data/spec/fixtures/detector/smartphone.yml +5225 -4652
- data/spec/fixtures/detector/tablet-1.yml +4691 -4191
- data/spec/fixtures/detector/tablet-2.yml +9800 -71
- data/spec/fixtures/detector/tablet-3.yml +9959 -0
- data/spec/fixtures/detector/tablet-4.yml +4528 -0
- data/spec/fixtures/detector/tablet.yml +4664 -4177
- data/spec/fixtures/detector/tv.yml +3399 -1048
- data/spec/fixtures/detector/unknown.yml +1017 -977
- data/spec/fixtures/detector/wearable.yml +61 -0
- data/spec/fixtures/device/camera.yml +4 -3
- data/spec/fixtures/device/car_browser.yml +9 -2
- data/spec/fixtures/device/console.yml +15 -14
- data/spec/fixtures/parser/oss.yml +284 -2
- data/spec/fixtures/parser/vendorfragments.yml +8 -2
- metadata +50 -7
@@ -5,32 +5,54 @@
|
|
5
5
|
name: Android
|
6
6
|
short_name: AND
|
7
7
|
version: "2.3.3"
|
8
|
-
platform:
|
8
|
+
platform: ""
|
9
9
|
client:
|
10
10
|
type: browser
|
11
11
|
name: Android Browser
|
12
12
|
short_name: AN
|
13
|
-
version:
|
13
|
+
version: ""
|
14
14
|
engine: WebKit
|
15
|
+
engine_version: "533.1"
|
15
16
|
device:
|
16
17
|
type: camera
|
17
18
|
brand: NN
|
18
19
|
model: Coolpix S800c
|
19
20
|
os_family: Android
|
20
21
|
browser_family: Android Browser
|
22
|
+
-
|
23
|
+
user_agent: Mozilla/5.0 (Linux; Android 5.0.2; DMC-CM1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.92 Mobile Safari/537.36
|
24
|
+
os:
|
25
|
+
name: Android
|
26
|
+
short_name: AND
|
27
|
+
version: "5.0.2"
|
28
|
+
platform: ""
|
29
|
+
client:
|
30
|
+
type: browser
|
31
|
+
name: Chrome Mobile
|
32
|
+
short_name: CM
|
33
|
+
version: "77.0.3865.92"
|
34
|
+
engine: Blink
|
35
|
+
engine_version: ""
|
36
|
+
device:
|
37
|
+
type: camera
|
38
|
+
brand: PA
|
39
|
+
model: Lumix DMC-CM1
|
40
|
+
os_family: Android
|
41
|
+
browser_family: Chrome
|
21
42
|
-
|
22
43
|
user_agent: Mozilla/5.0 (Linux; U; Android 4.0; de-DE; EK-GC100 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30
|
23
44
|
os:
|
24
45
|
name: Android
|
25
46
|
short_name: AND
|
26
47
|
version: "4.0"
|
27
|
-
platform:
|
48
|
+
platform: ""
|
28
49
|
client:
|
29
50
|
type: browser
|
30
51
|
name: Android Browser
|
31
52
|
short_name: AN
|
32
|
-
version:
|
53
|
+
version: ""
|
33
54
|
engine: WebKit
|
55
|
+
engine_version: "534.30"
|
34
56
|
device:
|
35
57
|
type: camera
|
36
58
|
brand: SA
|
@@ -43,13 +65,14 @@
|
|
43
65
|
name: Android
|
44
66
|
short_name: AND
|
45
67
|
version: "4.1.2"
|
46
|
-
platform:
|
68
|
+
platform: ""
|
47
69
|
client:
|
48
70
|
type: browser
|
49
71
|
name: Opera Mobile
|
50
72
|
short_name: OM
|
51
73
|
version: "15.0.1162.60140"
|
52
74
|
engine: Blink
|
75
|
+
engine_version: ""
|
53
76
|
device:
|
54
77
|
type: camera
|
55
78
|
brand: SA
|
@@ -62,13 +85,14 @@
|
|
62
85
|
name: Android
|
63
86
|
short_name: AND
|
64
87
|
version: "4.3"
|
65
|
-
platform:
|
88
|
+
platform: ""
|
66
89
|
client:
|
67
90
|
type: browser
|
68
91
|
name: Chrome Mobile
|
69
92
|
short_name: CM
|
70
93
|
version: "35.0.1916.141"
|
71
94
|
engine: Blink
|
95
|
+
engine_version: ""
|
72
96
|
device:
|
73
97
|
type: camera
|
74
98
|
brand: SA
|
@@ -81,13 +105,14 @@
|
|
81
105
|
name: Android
|
82
106
|
short_name: AND
|
83
107
|
version: "4.1.2"
|
84
|
-
platform:
|
108
|
+
platform: ""
|
85
109
|
client:
|
86
110
|
type: browser
|
87
111
|
name: Chrome Mobile
|
88
112
|
short_name: CM
|
89
113
|
version: "18.0.1025.166"
|
90
114
|
engine: WebKit
|
115
|
+
engine_version: "535.19"
|
91
116
|
device:
|
92
117
|
type: camera
|
93
118
|
brand: SA
|
@@ -100,13 +125,14 @@
|
|
100
125
|
name: Android
|
101
126
|
short_name: AND
|
102
127
|
version: "4.2.2"
|
103
|
-
platform:
|
128
|
+
platform: ""
|
104
129
|
client:
|
105
130
|
type: browser
|
106
|
-
name: Chrome
|
107
|
-
short_name:
|
131
|
+
name: Chrome Webview
|
132
|
+
short_name: CV
|
108
133
|
version: "18.0.1025.308"
|
109
134
|
engine: WebKit
|
135
|
+
engine_version: "535.19"
|
110
136
|
device:
|
111
137
|
type: camera
|
112
138
|
brand: SA
|
@@ -1,17 +1,78 @@
|
|
1
1
|
---
|
2
|
+
-
|
3
|
+
user_agent: Mozilla/5.0 (Linux; Android 4.4.2; CarPad-II-P Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Safari/537.36
|
4
|
+
os:
|
5
|
+
name: Android
|
6
|
+
short_name: AND
|
7
|
+
version: "4.4.2"
|
8
|
+
platform: ""
|
9
|
+
client:
|
10
|
+
type: browser
|
11
|
+
name: Chrome Webview
|
12
|
+
short_name: CV
|
13
|
+
version: "30.0.0.0"
|
14
|
+
engine: Blink
|
15
|
+
engine_version: ""
|
16
|
+
device:
|
17
|
+
type: car browser
|
18
|
+
brand: NS
|
19
|
+
model: CarPad-II-P
|
20
|
+
os_family: Android
|
21
|
+
browser_family: Chrome
|
22
|
+
-
|
23
|
+
user_agent: Mozilla/5.0 (Linux; Android 4.4.2; CarPad-III-P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.116 Safari/537.36
|
24
|
+
os:
|
25
|
+
name: Android
|
26
|
+
short_name: AND
|
27
|
+
version: "4.4.2"
|
28
|
+
platform: ""
|
29
|
+
client:
|
30
|
+
type: browser
|
31
|
+
name: Chrome
|
32
|
+
short_name: CH
|
33
|
+
version: "77.0.3865.116"
|
34
|
+
engine: Blink
|
35
|
+
engine_version: ""
|
36
|
+
device:
|
37
|
+
type: car browser
|
38
|
+
brand: NS
|
39
|
+
model: CarPad-III-P
|
40
|
+
os_family: Android
|
41
|
+
browser_family: Chrome
|
42
|
+
-
|
43
|
+
user_agent: Mozilla/5.0 (X11; GNU/Linux) AppleWebKit/537.36 (KHTML, like Gecko) Chromium/75.0.3770.100 Chrome/75.0.3770.100 Safari/537.36 Tesla/2019.40.50.7-ad132c7b057e
|
44
|
+
os:
|
45
|
+
name: GNU/Linux
|
46
|
+
short_name: LIN
|
47
|
+
version: ""
|
48
|
+
platform: ""
|
49
|
+
client:
|
50
|
+
type: browser
|
51
|
+
name: Chromium
|
52
|
+
short_name: CR
|
53
|
+
version: "75.0.3770.100"
|
54
|
+
engine: Blink
|
55
|
+
engine_version: ""
|
56
|
+
device:
|
57
|
+
type: car browser
|
58
|
+
brand: TA
|
59
|
+
model: ""
|
60
|
+
os_family: GNU/Linux
|
61
|
+
browser_family: Chrome
|
2
62
|
-
|
3
63
|
user_agent: Mozilla/5.0 (X11; u; Linux; C) AppleWebKit /533.3 (Khtml, like Gheko) QtCarBrowser Safari/533.3
|
4
64
|
os:
|
5
65
|
name: GNU/Linux
|
6
66
|
short_name: LIN
|
7
|
-
version:
|
8
|
-
platform:
|
67
|
+
version: ""
|
68
|
+
platform: ""
|
9
69
|
client:
|
10
70
|
type: browser
|
11
71
|
name: Safari
|
12
72
|
short_name: SF
|
13
|
-
version:
|
73
|
+
version: ""
|
14
74
|
engine: WebKit
|
75
|
+
engine_version: "533.3"
|
15
76
|
device:
|
16
77
|
type: car browser
|
17
78
|
brand: TA
|
@@ -5,13 +5,14 @@
|
|
5
5
|
name: Android
|
6
6
|
short_name: AND
|
7
7
|
version: "4.1.1"
|
8
|
-
platform:
|
8
|
+
platform: ""
|
9
9
|
client:
|
10
10
|
type: browser
|
11
11
|
name: Chrome
|
12
12
|
short_name: CH
|
13
13
|
version: "18.0.1025.166"
|
14
14
|
engine: WebKit
|
15
|
+
engine_version: "535.19"
|
15
16
|
device:
|
16
17
|
type: console
|
17
18
|
brand: AR
|
@@ -24,13 +25,14 @@
|
|
24
25
|
name: Android
|
25
26
|
short_name: AND
|
26
27
|
version: "4.2.2"
|
27
|
-
platform:
|
28
|
+
platform: ""
|
28
29
|
client:
|
29
30
|
type: browser
|
30
31
|
name: Android Browser
|
31
32
|
short_name: AN
|
32
|
-
version:
|
33
|
+
version: ""
|
33
34
|
engine: WebKit
|
35
|
+
engine_version: "534.30"
|
34
36
|
device:
|
35
37
|
type: console
|
36
38
|
brand: AR
|
@@ -43,13 +45,14 @@
|
|
43
45
|
name: Windows
|
44
46
|
short_name: WIN
|
45
47
|
version: "7"
|
46
|
-
platform:
|
48
|
+
platform: ""
|
47
49
|
client:
|
48
50
|
type: browser
|
49
51
|
name: Internet Explorer
|
50
52
|
short_name: IE
|
51
53
|
version: "9.0"
|
52
54
|
engine: Trident
|
55
|
+
engine_version: "5.0"
|
53
56
|
device:
|
54
57
|
type: console
|
55
58
|
brand: MS
|
@@ -62,13 +65,14 @@
|
|
62
65
|
name: Windows
|
63
66
|
short_name: WIN
|
64
67
|
version: "8"
|
65
|
-
platform:
|
68
|
+
platform: ""
|
66
69
|
client:
|
67
70
|
type: browser
|
68
71
|
name: Internet Explorer
|
69
72
|
short_name: IE
|
70
73
|
version: "10.0"
|
71
74
|
engine: Trident
|
75
|
+
engine_version: "6.0"
|
72
76
|
device:
|
73
77
|
type: console
|
74
78
|
brand: MS
|
@@ -81,13 +85,14 @@
|
|
81
85
|
name: Windows Phone
|
82
86
|
short_name: WPH
|
83
87
|
version: "8.0"
|
84
|
-
platform:
|
88
|
+
platform: ""
|
85
89
|
client:
|
86
90
|
type: browser
|
87
91
|
name: IE Mobile
|
88
92
|
short_name: IM
|
89
93
|
version: "10.0"
|
90
94
|
engine: Trident
|
95
|
+
engine_version: "6.0"
|
91
96
|
device:
|
92
97
|
type: console
|
93
98
|
brand: MS
|
@@ -100,13 +105,14 @@
|
|
100
105
|
name: Nintendo Mobile
|
101
106
|
short_name: NDS
|
102
107
|
version: "3DS"
|
103
|
-
platform:
|
108
|
+
platform: ""
|
104
109
|
client:
|
105
110
|
type: browser
|
106
111
|
name: NetFront
|
107
112
|
short_name: NF
|
108
|
-
version:
|
109
|
-
engine:
|
113
|
+
version: ""
|
114
|
+
engine: ""
|
115
|
+
engine_version: ""
|
110
116
|
device:
|
111
117
|
type: console
|
112
118
|
brand: NI
|
@@ -119,32 +125,54 @@
|
|
119
125
|
name: Nintendo Mobile
|
120
126
|
short_name: NDS
|
121
127
|
version: "DS"
|
122
|
-
platform:
|
128
|
+
platform: ""
|
123
129
|
client:
|
124
130
|
type: browser
|
125
131
|
name: Bunjalloo
|
126
132
|
short_name: BJ
|
127
133
|
version: "0.7.6"
|
128
|
-
engine:
|
134
|
+
engine: ""
|
135
|
+
engine_version: ""
|
129
136
|
device:
|
130
137
|
type: console
|
131
138
|
brand: NI
|
132
139
|
model: DS
|
133
140
|
os_family: Mobile Gaming Console
|
134
141
|
browser_family: Unknown
|
142
|
+
-
|
143
|
+
user_agent: Mozilla/5.0 (Nintendo Switch; WifiWebAuthApplet) AppleWebKit/601.6 (KHTML, like Gecko) NF/4.0.0.7.9 NintendoBrowser/5.1.0.15785
|
144
|
+
os:
|
145
|
+
name: Nintendo
|
146
|
+
short_name: WII
|
147
|
+
version: "Switch"
|
148
|
+
platform: ""
|
149
|
+
client:
|
150
|
+
type: browser
|
151
|
+
name: NetFront
|
152
|
+
short_name: NF
|
153
|
+
version: ""
|
154
|
+
engine: WebKit
|
155
|
+
engine_version: "601.6"
|
156
|
+
device:
|
157
|
+
type: console
|
158
|
+
brand: NI
|
159
|
+
model: Switch
|
160
|
+
os_family: Gaming Console
|
161
|
+
browser_family: NetFront
|
135
162
|
-
|
136
163
|
user_agent: Opera/9.30 (Nintendo Wii; U; ; 3642; en)
|
137
164
|
os:
|
138
165
|
name: Nintendo
|
139
166
|
short_name: WII
|
140
167
|
version: "Wii"
|
141
|
-
platform:
|
168
|
+
platform: ""
|
142
169
|
client:
|
143
170
|
type: browser
|
144
171
|
name: Opera
|
145
172
|
short_name: OP
|
146
173
|
version: "9.30"
|
147
174
|
engine: Presto
|
175
|
+
engine_version: ""
|
148
176
|
device:
|
149
177
|
type: console
|
150
178
|
brand: NI
|
@@ -157,13 +185,14 @@
|
|
157
185
|
name: Nintendo
|
158
186
|
short_name: WII
|
159
187
|
version: "Wii"
|
160
|
-
platform:
|
188
|
+
platform: ""
|
161
189
|
client:
|
162
190
|
type: browser
|
163
191
|
name: NetFront
|
164
192
|
short_name: NF
|
165
|
-
version:
|
193
|
+
version: ""
|
166
194
|
engine: WebKit
|
195
|
+
engine_version: "534.52"
|
167
196
|
device:
|
168
197
|
type: console
|
169
198
|
brand: NI
|
@@ -176,13 +205,14 @@
|
|
176
205
|
name: Android
|
177
206
|
short_name: AND
|
178
207
|
version: "4.1.2"
|
179
|
-
platform:
|
208
|
+
platform: ""
|
180
209
|
client:
|
181
210
|
type: browser
|
182
211
|
name: Android Browser
|
183
212
|
short_name: AN
|
184
|
-
version:
|
213
|
+
version: ""
|
185
214
|
engine: WebKit
|
215
|
+
engine_version: "534.30"
|
186
216
|
device:
|
187
217
|
type: console
|
188
218
|
brand: OU
|
@@ -195,13 +225,14 @@
|
|
195
225
|
name: PlayStation
|
196
226
|
short_name: PS3
|
197
227
|
version: "3"
|
198
|
-
platform:
|
228
|
+
platform: ""
|
199
229
|
client:
|
200
230
|
type: browser
|
201
231
|
name: NetFront
|
202
232
|
short_name: NF
|
203
|
-
version:
|
233
|
+
version: ""
|
204
234
|
engine: WebKit
|
235
|
+
engine_version: "531.22.8"
|
205
236
|
device:
|
206
237
|
type: console
|
207
238
|
brand: SO
|
@@ -214,32 +245,54 @@
|
|
214
245
|
name: PlayStation
|
215
246
|
short_name: PS3
|
216
247
|
version: "4"
|
217
|
-
platform:
|
248
|
+
platform: ""
|
218
249
|
client:
|
219
250
|
type: browser
|
220
251
|
name: NetFront
|
221
252
|
short_name: NF
|
222
|
-
version:
|
253
|
+
version: ""
|
223
254
|
engine: WebKit
|
255
|
+
engine_version: "536.26"
|
224
256
|
device:
|
225
257
|
type: console
|
226
258
|
brand: SO
|
227
259
|
model: PlayStation 4
|
228
260
|
os_family: Gaming Console
|
229
261
|
browser_family: NetFront
|
262
|
+
-
|
263
|
+
user_agent: Mozilla/5.0 (PlayStation 4 Pro 5.0)
|
264
|
+
os:
|
265
|
+
name: PlayStation
|
266
|
+
short_name: PS3
|
267
|
+
version: "4"
|
268
|
+
platform: ""
|
269
|
+
client:
|
270
|
+
type: browser
|
271
|
+
name: NetFront
|
272
|
+
short_name: NF
|
273
|
+
version: ""
|
274
|
+
engine: ""
|
275
|
+
engine_version: ""
|
276
|
+
device:
|
277
|
+
type: console
|
278
|
+
brand: SO
|
279
|
+
model: PlayStation 4 Pro
|
280
|
+
os_family: Gaming Console
|
281
|
+
browser_family: NetFront
|
230
282
|
-
|
231
283
|
user_agent: Mozilla/4.0 (PlayStation Portable); 2.00)
|
232
284
|
os:
|
233
285
|
name: PlayStation Portable
|
234
286
|
short_name: PSP
|
235
287
|
version: "Portable"
|
236
|
-
platform:
|
288
|
+
platform: ""
|
237
289
|
client:
|
238
290
|
type: browser
|
239
291
|
name: NetFront
|
240
292
|
short_name: NF
|
241
|
-
version:
|
242
|
-
engine:
|
293
|
+
version: ""
|
294
|
+
engine: ""
|
295
|
+
engine_version: ""
|
243
296
|
device:
|
244
297
|
type: console
|
245
298
|
brand: SO
|
@@ -252,16 +305,17 @@
|
|
252
305
|
name: PlayStation Portable
|
253
306
|
short_name: PSP
|
254
307
|
version: "Vita"
|
255
|
-
platform:
|
308
|
+
platform: ""
|
256
309
|
client:
|
257
310
|
type: browser
|
258
311
|
name: Mobile Silk
|
259
312
|
short_name: MS
|
260
313
|
version: "3.2"
|
261
|
-
engine:
|
314
|
+
engine: WebKit
|
315
|
+
engine_version: "536.26"
|
262
316
|
device:
|
263
317
|
type: console
|
264
318
|
brand: SO
|
265
319
|
model: PlayStation Vita
|
266
320
|
os_family: Mobile Gaming Console
|
267
|
-
browser_family:
|
321
|
+
browser_family: Chrome
|