device_detector 1.0.3 → 1.0.4

Sign up to get free protection for your applications and to get access to all the features.
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