device_detector 1.0.3 → 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.
Files changed (76) hide show
  1. checksums.yaml +5 -5
  2. data/.rubocop.yml +49 -0
  3. data/.ruby-version +1 -0
  4. data/.travis.yml +1 -1
  5. data/CHANGELOG.md +5 -0
  6. data/README.md +4 -4
  7. data/Rakefile +6 -17
  8. data/device_detector.gemspec +1 -0
  9. data/lib/device_detector.rb +17 -28
  10. data/lib/device_detector/bot.rb +2 -2
  11. data/lib/device_detector/client.rb +3 -2
  12. data/lib/device_detector/device.rb +44 -21
  13. data/lib/device_detector/memory_cache.rb +5 -5
  14. data/lib/device_detector/metadata_extractor.rb +7 -8
  15. data/lib/device_detector/model_extractor.rb +3 -3
  16. data/lib/device_detector/name_extractor.rb +2 -2
  17. data/lib/device_detector/os.rb +121 -114
  18. data/lib/device_detector/parser.rb +22 -9
  19. data/lib/device_detector/version.rb +1 -1
  20. data/lib/device_detector/version_extractor.rb +2 -3
  21. data/regexes/bots.yml +228 -12
  22. data/regexes/client/browser_engine.yml +4 -1
  23. data/regexes/client/browsers.yml +358 -34
  24. data/regexes/client/feed_readers.yml +1 -1
  25. data/regexes/client/libraries.yml +16 -1
  26. data/regexes/client/mediaplayers.yml +14 -2
  27. data/regexes/client/mobile_apps.yml +26 -2
  28. data/regexes/client/pim.yml +1 -1
  29. data/regexes/device/cameras.yml +1 -1
  30. data/regexes/device/car_browsers.yml +7 -3
  31. data/regexes/device/consoles.yml +3 -3
  32. data/regexes/device/mobiles.yml +2468 -823
  33. data/regexes/device/portable_media_player.yml +2 -2
  34. data/regexes/device/televisions.yml +1 -1
  35. data/regexes/oss.yml +20 -5
  36. data/regexes/vendorfragments.yml +5 -1
  37. data/spec/device_detector/device_spec.rb +4 -24
  38. data/spec/fixtures/client/browser.yml +632 -2
  39. data/spec/fixtures/client/library.yml +18 -0
  40. data/spec/fixtures/client/mobile_app.yml +24 -0
  41. data/spec/fixtures/detector/bots.yml +533 -67
  42. data/spec/fixtures/detector/camera.yml +20 -0
  43. data/spec/fixtures/detector/car_browser.yml +60 -0
  44. data/spec/fixtures/detector/console.yml +40 -0
  45. data/spec/fixtures/detector/desktop.yml +140 -40
  46. data/spec/fixtures/detector/mediaplayer.yml +43 -0
  47. data/spec/fixtures/detector/mobile_apps.yml +40 -2
  48. data/spec/fixtures/detector/phablet.yml +383 -1
  49. data/spec/fixtures/detector/smart_speaker.yml +55 -0
  50. data/spec/fixtures/detector/smartphone-1.yml +3669 -3695
  51. data/spec/fixtures/detector/smartphone-10.yml +4147 -4094
  52. data/spec/fixtures/detector/smartphone-11.yml +4475 -4473
  53. data/spec/fixtures/detector/smartphone-12.yml +5502 -4251
  54. data/spec/fixtures/detector/smartphone-13.yml +9920 -0
  55. data/spec/fixtures/detector/smartphone-14.yml +2662 -0
  56. data/spec/fixtures/detector/smartphone-2.yml +3738 -3713
  57. data/spec/fixtures/detector/smartphone-3.yml +3970 -3912
  58. data/spec/fixtures/detector/smartphone-4.yml +4518 -4506
  59. data/spec/fixtures/detector/smartphone-5.yml +3645 -3664
  60. data/spec/fixtures/detector/smartphone-6.yml +3868 -3829
  61. data/spec/fixtures/detector/smartphone-7.yml +3992 -3985
  62. data/spec/fixtures/detector/smartphone-8.yml +4510 -4475
  63. data/spec/fixtures/detector/smartphone-9.yml +4226 -4255
  64. data/spec/fixtures/detector/smartphone.yml +3197 -3197
  65. data/spec/fixtures/detector/tablet-1.yml +3940 -3968
  66. data/spec/fixtures/detector/tablet-2.yml +3773 -3764
  67. data/spec/fixtures/detector/tablet-3.yml +5243 -3071
  68. data/spec/fixtures/detector/tablet-4.yml +4528 -0
  69. data/spec/fixtures/detector/tablet.yml +3145 -3125
  70. data/spec/fixtures/detector/tv.yml +1695 -95
  71. data/spec/fixtures/detector/unknown.yml +13 -60
  72. data/spec/fixtures/detector/wearable.yml +61 -0
  73. data/spec/fixtures/device/car_browser.yml +6 -0
  74. data/spec/fixtures/parser/oss.yml +36 -1
  75. data/spec/fixtures/parser/vendorfragments.yml +6 -0
  76. metadata +32 -7
@@ -19,6 +19,26 @@
19
19
  model: Coolpix S800c
20
20
  os_family: Android
21
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
22
42
  -
23
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
24
44
  os:
@@ -1,4 +1,64 @@
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:
@@ -139,6 +139,26 @@
139
139
  model: DS
140
140
  os_family: Mobile Gaming Console
141
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
142
162
  -
143
163
  user_agent: Opera/9.30 (Nintendo Wii; U; ; 3642; en)
144
164
  os:
@@ -239,6 +259,26 @@
239
259
  model: PlayStation 4
240
260
  os_family: Gaming Console
241
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
242
282
  -
243
283
  user_agent: Mozilla/4.0 (PlayStation Portable); 2.00)
244
284
  os:
@@ -516,6 +516,26 @@
516
516
  model: ""
517
517
  os_family: Unix
518
518
  browser_family: Unknown
519
+ -
520
+ user_agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.8.1.18) Gecko/20081206 Firefox/2.0.0.18 Kazehakase/0.5.4
521
+ os:
522
+ name: FreeBSD
523
+ short_name: BSD
524
+ version: ""
525
+ platform: x86
526
+ client:
527
+ type: browser
528
+ name: Kazehakase
529
+ short_name: KZ
530
+ version: "0.5.4"
531
+ engine: Gecko
532
+ engine_version: ""
533
+ device:
534
+ type: desktop
535
+ brand: ""
536
+ model: ""
537
+ os_family: Unix
538
+ browser_family: Unknown
519
539
  -
520
540
  user_agent: Mozilla/3.0 (WorldGate Gazelle 3.5.1 build 11; FreeBSD2.2.8-STABLE)
521
541
  os:
@@ -850,26 +870,6 @@
850
870
  model: ""
851
871
  os_family: GNU/Linux
852
872
  browser_family: Opera
853
- -
854
- user_agent: Mozilla/5.0 (Linux; BRAVIA 2015 Build/LMY48E.S223) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.101 Safari/537.36 OPR/28.0.1754.0 OMI/4.4.22.20.E102586-1.136
855
- os:
856
- name: GNU/Linux
857
- short_name: LIN
858
- version: ""
859
- platform: ""
860
- client:
861
- type: browser
862
- name: Opera Devices
863
- short_name: OH
864
- version: "4.4.22.20"
865
- engine: Blink
866
- engine_version: ""
867
- device:
868
- type: desktop
869
- brand: ""
870
- model: ""
871
- os_family: GNU/Linux
872
- browser_family: Opera
873
873
  -
874
874
  user_agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2b) Gecko/20021029 Phoenix/0.4
875
875
  os:
@@ -3800,6 +3800,26 @@
3800
3800
  model: ""
3801
3801
  os_family: Windows
3802
3802
  browser_family: Opera
3803
+ -
3804
+ user_agent: Mozilla/5.0 (Windows NT 5.1; rv:52.9) Gecko/20100101 Goanna/3.4 Firefox/52.9 PaleMoon/27.9.1a1
3805
+ os:
3806
+ name: Windows
3807
+ short_name: WIN
3808
+ version: "XP"
3809
+ platform: ""
3810
+ client:
3811
+ type: browser
3812
+ name: Pale Moon
3813
+ short_name: PM
3814
+ version: "27.9.1"
3815
+ engine: Goanna
3816
+ engine_version: "3.4"
3817
+ device:
3818
+ type: desktop
3819
+ brand: ""
3820
+ model: ""
3821
+ os_family: Windows
3822
+ browser_family: Unknown
3803
3823
  -
3804
3824
  user_agent: Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.48 Safari/537.36 QQBrowser/8.0.3197.400
3805
3825
  os:
@@ -4074,6 +4094,26 @@
4074
4094
  model: ""
4075
4095
  os_family: Mac
4076
4096
  browser_family: Unknown
4097
+ -
4098
+ user_agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:37.0) Servo/1.0 Firefox/37.0
4099
+ os:
4100
+ name: Mac
4101
+ short_name: MAC
4102
+ version: "10.10"
4103
+ platform: ""
4104
+ client:
4105
+ type: browser
4106
+ name: Firefox
4107
+ short_name: FF
4108
+ version: "37.0"
4109
+ engine: Servo
4110
+ engine_version: "1.0"
4111
+ device:
4112
+ type: desktop
4113
+ brand: AP
4114
+ model: ""
4115
+ os_family: Mac
4116
+ browser_family: Firefox
4077
4117
  -
4078
4118
  user_agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/537.36 (KHTML, like Gecko) brave/0.7.9 Chrome/47.0.2526.73 Electron/0.36.2 Safari/537.36
4079
4119
  os:
@@ -5059,6 +5099,86 @@
5059
5099
  model: ""
5060
5100
  os_family: Windows
5061
5101
  browser_family: Internet Explorer
5102
+ -
5103
+ user_agent: Mozilla/5.0 (X11; Linux i686 on x86_64; rv:42.0) Gecko/20100101 Firefox/42.0 webissimo3/3.7.22+svn30377
5104
+ os:
5105
+ name: Ordissimo
5106
+ short_name: ORD
5107
+ version: ""
5108
+ platform: x64
5109
+ client:
5110
+ type: browser
5111
+ name: Ordissimo
5112
+ short_name: OS
5113
+ version: "3.7.22"
5114
+ engine: Gecko
5115
+ engine_version: ""
5116
+ device:
5117
+ type: desktop
5118
+ brand: OS
5119
+ model: ""
5120
+ os_family: GNU/Linux
5121
+ browser_family: Firefox
5122
+ -
5123
+ user_agent: Mozilla/5.0 (X11; Linux i686; rv:45.0) Gecko/20100101 Firefox/45.0 webissimo3/3.7.30+svn32090
5124
+ os:
5125
+ name: Ordissimo
5126
+ short_name: ORD
5127
+ version: ""
5128
+ platform: x86
5129
+ client:
5130
+ type: browser
5131
+ name: Ordissimo
5132
+ short_name: OS
5133
+ version: "3.7.30"
5134
+ engine: Gecko
5135
+ engine_version: ""
5136
+ device:
5137
+ type: desktop
5138
+ brand: OS
5139
+ model: ""
5140
+ os_family: GNU/Linux
5141
+ browser_family: Firefox
5142
+ -
5143
+ user_agent: Mozilla/5.0 (X11; Linux i686 on x86_64; rv:52.0) Gecko/20100101 Firefox/52.0 Ordissimo/3.8.20+svn37598
5144
+ os:
5145
+ name: Ordissimo
5146
+ short_name: ORD
5147
+ version: ""
5148
+ platform: x64
5149
+ client:
5150
+ type: browser
5151
+ name: Ordissimo
5152
+ short_name: OS
5153
+ version: "3.8.20"
5154
+ engine: Gecko
5155
+ engine_version: ""
5156
+ device:
5157
+ type: desktop
5158
+ brand: OS
5159
+ model: ""
5160
+ os_family: GNU/Linux
5161
+ browser_family: Firefox
5162
+ -
5163
+ user_agent: Mozilla/5.0 (X11; Linux i686; rv:45.0) Gecko/20100101 Firefox/45.0 Ordissimo/3.8.6.6+svn37147
5164
+ os:
5165
+ name: Ordissimo
5166
+ short_name: ORD
5167
+ version: ""
5168
+ platform: x86
5169
+ client:
5170
+ type: browser
5171
+ name: Ordissimo
5172
+ short_name: OS
5173
+ version: "3.8.6.6"
5174
+ engine: Gecko
5175
+ engine_version: ""
5176
+ device:
5177
+ type: desktop
5178
+ brand: OS
5179
+ model: ""
5180
+ os_family: GNU/Linux
5181
+ browser_family: Firefox
5062
5182
  -
5063
5183
  user_agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; MASM; .NET4.0C; .NET4.0E)
5064
5184
  os:
@@ -5339,23 +5459,3 @@
5339
5459
  model: ""
5340
5460
  os_family: Windows
5341
5461
  browser_family: Internet Explorer
5342
- -
5343
- user_agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:37.0) Servo/1.0 Firefox/37.0
5344
- os:
5345
- name: Mac
5346
- short_name: MAC
5347
- version: "10.10"
5348
- platform: ""
5349
- client:
5350
- type: browser
5351
- name: Firefox
5352
- short_name: FF
5353
- version: "37.0"
5354
- engine: Servo
5355
- engine_version: "1.0"
5356
- device:
5357
- type: desktop
5358
- brand: AP
5359
- model:
5360
- os_family: Mac
5361
- browser_family: Firefox
@@ -208,3 +208,46 @@
208
208
  model: ""
209
209
  os_family: Mac
210
210
  browser_family: Unknown
211
+ -
212
+ user_agent: GoogleChirp/1.0.1 (Linux; Android/5.0) GOOG/7 AppleWebKit/534.30 (KHTML, like Gecko)
213
+ os:
214
+ name: Android
215
+ short_name: AND
216
+ version: "5.0"
217
+ platform: ""
218
+ client:
219
+ type: mediaplayer
220
+ name: Google Podcasts
221
+ version: "1.0.1"
222
+ device:
223
+ type: ""
224
+ brand: ""
225
+ model: ""
226
+ os_family: Android
227
+ browser_family: Unknown
228
+ -
229
+ user_agent: Music Player Daemon 0.19.21
230
+ os: [ ]
231
+ client:
232
+ type: mediaplayer
233
+ name: Music Player Daemon
234
+ version: "0.19.21"
235
+ device:
236
+ type: ""
237
+ brand: ""
238
+ model: ""
239
+ os_family: Unknown
240
+ browser_family: Unknown
241
+ -
242
+ user_agent: mpv 0.29.1
243
+ os: [ ]
244
+ client:
245
+ type: mediaplayer
246
+ name: mpv
247
+ version: "0.29.1"
248
+ device:
249
+ type: ""
250
+ brand: ""
251
+ model: ""
252
+ os_family: Unknown
253
+ browser_family: Unknown
@@ -171,7 +171,11 @@
171
171
  browser_family: Unknown
172
172
  -
173
173
  user_agent: '[FBAN/FB4A;FBAV/26.0.0.22.16;FBBV/6590638;FBDM/{density=1.5,width=791,height=480};FBLC/en_US;FBCR/SmarTone HK;FBMF/Sony;FBBD/Sony;FBPN/com.facebook.katana;FBDV/C1905;FBSV/4.1.2;FBOP/19;FBCA/armeabi-v7a:armeabi;]'
174
- os: [ ]
174
+ os:
175
+ name: Android
176
+ short_name: AND
177
+ version: "4.1.2"
178
+ platform: ARM
175
179
  client:
176
180
  type: mobile app
177
181
  name: Facebook
@@ -180,7 +184,7 @@
180
184
  type: smartphone
181
185
  brand: SO
182
186
  model: Xperia M
183
- os_family: Unknown
187
+ os_family: Android
184
188
  browser_family: Unknown
185
189
  -
186
190
  user_agent: Mozilla/5.0 (iPhone; CPU iPhone OS 8_2 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Mobile/12D508 Safari Line/5.9.5
@@ -454,3 +458,37 @@
454
458
  model: ""
455
459
  os_family: Android
456
460
  browser_family: Unknown
461
+ -
462
+ user_agent: com.google.android.apps.searchlite/101032 (Linux; U; Android 8.1.0; ru_RU; M580; Build/O11019; Cronet/74.0.3729.182)
463
+ os:
464
+ name: Android
465
+ short_name: AND
466
+ version: "8.1.0"
467
+ platform: ""
468
+ client:
469
+ type: mobile app
470
+ name: Google Go
471
+ version: ""
472
+ device:
473
+ type: ""
474
+ brand: ""
475
+ model: ""
476
+ os_family: Android
477
+ browser_family: Unknown
478
+ -
479
+ user_agent: CastBox/4.8.1 (fm.castbox.audiobook.radio.podcast; build:2; iOS 11.2.5)
480
+ os:
481
+ name: iOS
482
+ short_name: IOS
483
+ version: "11.2.5"
484
+ platform: ""
485
+ client:
486
+ type: mobile app
487
+ name: CastBox
488
+ version: "4.8.1"
489
+ device:
490
+ type: ""
491
+ brand: AP
492
+ model: ""
493
+ os_family: iOS
494
+ browser_family: Unknown