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.
Files changed (94) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +15 -0
  3. data/README.md +8 -7
  4. data/lib/device_detector/bot.rb +2 -2
  5. data/lib/device_detector/browser.rb +364 -0
  6. data/lib/device_detector/client.rb +11 -2
  7. data/lib/device_detector/device.rb +1247 -22
  8. data/lib/device_detector/memory_cache.rb +5 -5
  9. data/lib/device_detector/metadata_extractor.rb +7 -8
  10. data/lib/device_detector/model_extractor.rb +3 -3
  11. data/lib/device_detector/name_extractor.rb +2 -2
  12. data/lib/device_detector/os.rb +150 -116
  13. data/lib/device_detector/parser.rb +23 -10
  14. data/lib/device_detector/version.rb +1 -1
  15. data/lib/device_detector/version_extractor.rb +29 -2
  16. data/lib/device_detector.rb +73 -40
  17. data/regexes/bots.yml +868 -62
  18. data/regexes/client/browser_engine.yml +11 -2
  19. data/regexes/client/browsers.yml +1132 -112
  20. data/regexes/client/feed_readers.yml +5 -11
  21. data/regexes/client/libraries.yml +86 -2
  22. data/regexes/client/mediaplayers.yml +39 -3
  23. data/regexes/client/mobile_apps.yml +940 -66
  24. data/regexes/client/pim.yml +66 -3
  25. data/regexes/device/cameras.yml +6 -6
  26. data/regexes/device/car_browsers.yml +23 -3
  27. data/regexes/device/consoles.yml +15 -3
  28. data/regexes/device/mobiles.yml +18351 -3566
  29. data/regexes/device/notebooks.yml +114 -0
  30. data/regexes/device/portable_media_player.yml +36 -9
  31. data/regexes/device/shell_tv.yml +117 -0
  32. data/regexes/device/televisions.yml +440 -35
  33. data/regexes/oss.yml +635 -284
  34. data/regexes/vendorfragments.yml +5 -1
  35. metadata +21 -118
  36. data/.gitignore +0 -14
  37. data/.travis.yml +0 -14
  38. data/Gemfile +0 -8
  39. data/Rakefile +0 -96
  40. data/device_detector.gemspec +0 -26
  41. data/spec/device_detector/bot_fixtures_spec.rb +0 -30
  42. data/spec/device_detector/client_fixtures_spec.rb +0 -31
  43. data/spec/device_detector/concrete_user_agent_spec.rb +0 -135
  44. data/spec/device_detector/detector_fixtures_spec.rb +0 -100
  45. data/spec/device_detector/device_fixtures_spec.rb +0 -36
  46. data/spec/device_detector/device_spec.rb +0 -151
  47. data/spec/device_detector/memory_cache_spec.rb +0 -148
  48. data/spec/device_detector/model_extractor_spec.rb +0 -63
  49. data/spec/device_detector/os_fixtures_spec.rb +0 -26
  50. data/spec/device_detector/version_extractor_spec.rb +0 -79
  51. data/spec/device_detector_spec.rb +0 -189
  52. data/spec/fixtures/client/browser.yml +0 -2206
  53. data/spec/fixtures/client/feed_reader.yml +0 -199
  54. data/spec/fixtures/client/library.yml +0 -175
  55. data/spec/fixtures/client/mediaplayer.yml +0 -163
  56. data/spec/fixtures/client/mobile_app.yml +0 -193
  57. data/spec/fixtures/client/pim.yml +0 -115
  58. data/spec/fixtures/detector/bots.yml +0 -3260
  59. data/spec/fixtures/detector/camera.yml +0 -121
  60. data/spec/fixtures/detector/car_browser.yml +0 -21
  61. data/spec/fixtures/detector/console.yml +0 -281
  62. data/spec/fixtures/detector/desktop.yml +0 -5361
  63. data/spec/fixtures/detector/feature_phone.yml +0 -891
  64. data/spec/fixtures/detector/feed_reader.yml +0 -551
  65. data/spec/fixtures/detector/mediaplayer.yml +0 -210
  66. data/spec/fixtures/detector/mobile_apps.yml +0 -456
  67. data/spec/fixtures/detector/phablet.yml +0 -3785
  68. data/spec/fixtures/detector/portable_media_player.yml +0 -178
  69. data/spec/fixtures/detector/smart_display.yml +0 -61
  70. data/spec/fixtures/detector/smartphone-1.yml +0 -9953
  71. data/spec/fixtures/detector/smartphone-10.yml +0 -9924
  72. data/spec/fixtures/detector/smartphone-11.yml +0 -9889
  73. data/spec/fixtures/detector/smartphone-12.yml +0 -8655
  74. data/spec/fixtures/detector/smartphone-2.yml +0 -9967
  75. data/spec/fixtures/detector/smartphone-3.yml +0 -9887
  76. data/spec/fixtures/detector/smartphone-4.yml +0 -9911
  77. data/spec/fixtures/detector/smartphone-5.yml +0 -9933
  78. data/spec/fixtures/detector/smartphone-6.yml +0 -9923
  79. data/spec/fixtures/detector/smartphone-7.yml +0 -9892
  80. data/spec/fixtures/detector/smartphone-8.yml +0 -9896
  81. data/spec/fixtures/detector/smartphone-9.yml +0 -9928
  82. data/spec/fixtures/detector/smartphone.yml +0 -9984
  83. data/spec/fixtures/detector/tablet-1.yml +0 -10023
  84. data/spec/fixtures/detector/tablet-2.yml +0 -9968
  85. data/spec/fixtures/detector/tablet-3.yml +0 -7787
  86. data/spec/fixtures/detector/tablet.yml +0 -9951
  87. data/spec/fixtures/detector/tv.yml +0 -3333
  88. data/spec/fixtures/detector/unknown.yml +0 -3283
  89. data/spec/fixtures/device/camera.yml +0 -19
  90. data/spec/fixtures/device/car_browser.yml +0 -7
  91. data/spec/fixtures/device/console.yml +0 -79
  92. data/spec/fixtures/parser/oss.yml +0 -1047
  93. data/spec/fixtures/parser/vendorfragments.yml +0 -162
  94. data/spec/spec_helper.rb +0 -9
@@ -0,0 +1,114 @@
1
+ ###############
2
+ # Device Detector - The Universal Device Detection library for parsing User Agents
3
+ #
4
+ # @link https://matomo.org
5
+ # @license http://www.gnu.org/licenses/lgpl.html LGPL v3 or later
6
+ ###############
7
+
8
+ Acer:
9
+ regex: 'FBMD/(?:Aspire E5-421G|Z5WAL|One S1003);'
10
+ device: 'desktop'
11
+ models:
12
+ - regex: 'FBMD/Aspire E5-421G;'
13
+ model: 'Aspire E5-421G'
14
+ - regex: 'FBMD/Z5WAL;'
15
+ model: 'Aspire E5-511'
16
+ - regex: 'FBMD/One S1003;'
17
+ model: 'One 10'
18
+
19
+ Asus:
20
+ regex: 'FBMD/(?:K50IN|K54L|T100HAN|T103HAF|UX360CAK|X550LB|X553MA|X555LN|X556UQK);'
21
+ device: 'desktop'
22
+ models:
23
+ - regex: 'FBMD/K50IN;'
24
+ model: 'K50IN'
25
+ - regex: 'FBMD/K54L;'
26
+ model: 'K54L'
27
+ - regex: 'FBMD/T100HAN;'
28
+ model: 'Transformer Book'
29
+ - regex: 'FBMD/T103HAF;'
30
+ model: 'Transformer Mini'
31
+ - regex: 'FBMD/UX360CAK;'
32
+ model: 'ZenBook Flip'
33
+ - regex: 'FBMD/X550LB;'
34
+ model: 'X550LB'
35
+ - regex: 'FBMD/X553MA;'
36
+ model: 'X553MA'
37
+ - regex: 'FBMD/X555LN;'
38
+ model: 'X555LN'
39
+ - regex: 'FBMD/X556UQK;'
40
+ model: 'X556UQK'
41
+
42
+ Dell:
43
+ regex: 'FBMD/(?:Latitude E4300|Inspiron 3541|XPS 15 95[35]0);'
44
+ device: 'desktop'
45
+ models:
46
+ - regex: 'Latitude E4300'
47
+ model: 'Latitude E4300'
48
+ - regex: 'Inspiron 3541'
49
+ model: 'Inspiron 3541'
50
+ - regex: 'XPS 15 9530'
51
+ model: 'XPS 15 9530'
52
+ - regex: 'XPS 15 9550'
53
+ model: 'XPS 15 9550'
54
+
55
+ HP:
56
+ regex: 'FBMD/((?:Compaq|HP) |23-f364)'
57
+ device: 'desktop'
58
+ models:
59
+ - regex: 'Compaq Presario CQ61 Notebook PC'
60
+ model: 'Compaq Presario CQ61'
61
+ - regex: 'HP Pavilion x2 Detachable'
62
+ model: 'Pavilion x2'
63
+ - regex: 'HP Laptop 15-bs0xx'
64
+ model: '15 Laptop PC'
65
+ - regex: 'HP ENVY x360 Convertible 15-bp0xx'
66
+ model: 'ENVY x360 Convertible PC'
67
+ - regex: 'HP EliteBook (25[67]0p)'
68
+ model: 'EliteBook $1'
69
+ - regex: 'HP ProBook (440 G5|6[35]60b)'
70
+ model: 'ProBook $1'
71
+ - regex: 'HP Pavilion dv6 Notebook PC'
72
+ model: 'Pavilion dv6'
73
+ - regex: 'HP Pavilion Notebook'
74
+ model: 'Pavilion'
75
+ - regex: 'HP Spectre x360 Convertible'
76
+ model: 'Spectre x360'
77
+ - regex: 'HP Pavilion All-in-One 24-r0xx'
78
+ model: 'Pavilion 24-r0xx All-in-One Desktop PC'
79
+ device: 'desktop'
80
+ - regex: '23-f364'
81
+ model: 'Pavilion TouchSmart 23-f364 All-in-One Desktop PC'
82
+ device: 'desktop'
83
+
84
+ Lenovo:
85
+ regex: 'FBMD/(?:37021C5|80E5|80SM|80VR);'
86
+ device: 'desktop'
87
+ models:
88
+ - regex: 'FBMD/37021C5;'
89
+ model: 'ThinkPad Helix 3702'
90
+ - regex: 'FBMD/80E5;'
91
+ model: 'G50-80'
92
+ - regex: 'FBMD/80SM;'
93
+ model: 'Ideapad 310-15ISK'
94
+ - regex: 'FBMD/80VR;'
95
+ model: 'Legion Y720'
96
+
97
+ Schneider:
98
+ regex: 'FBMD/SCL141CTP;'
99
+ device: 'desktop'
100
+ model: 'Notebook 14" Cherry Trail'
101
+
102
+ Thomson:
103
+ regex: 'FBMD/TH360R12.32CTW;'
104
+ device: 'desktop'
105
+ model: 'Prestige TH-360R12.32CTW'
106
+
107
+ Toshiba:
108
+ regex: 'FBMD/Satellite '
109
+ device: 'desktop'
110
+ models:
111
+ - regex: 'Satellite (A[25]00|C650|C855|L650|S855)'
112
+ model: 'Satellite $1'
113
+ - regex: 'Satellite ([^;\)]+);'
114
+ model: 'Satellite $1'
@@ -1,7 +1,7 @@
1
1
  ###############
2
2
  # Device Detector - The Universal Device Detection library for parsing User Agents
3
3
  #
4
- # @link http://piwik.org
4
+ # @link https://matomo.org
5
5
  # @license http://www.gnu.org/licenses/lgpl.html LGPL v3 or later
6
6
  ###############
7
7
 
@@ -9,18 +9,20 @@ Apple:
9
9
  regex: '(?:Apple-)?iPod'
10
10
  device: 'portable media player'
11
11
  models:
12
- - regex: '(?:Apple-)?iPod1[C,]1'
12
+ - regex: '(?:Apple-)?iPod1[C,_]?1'
13
13
  model: 'iPod Touch 1G'
14
- - regex: '(?:Apple-)?iPod2[C,]1'
14
+ - regex: '(?:Apple-)?iPod2[C,_]?1'
15
15
  model: 'iPod Touch 2G'
16
- - regex: '(?:Apple-)?iPod3[C,]1'
16
+ - regex: '(?:Apple-)?iPod3[C,_]?1'
17
17
  model: 'iPod Touch 3'
18
- - regex: '(?:Apple-)?iPod4[C,]1'
18
+ - regex: '(?:Apple-)?iPod4[C,_]?1'
19
19
  model: 'iPod Touch 4'
20
- - regex: '(?:Apple-)?iPod5[C,]1'
20
+ - regex: '(?:Apple-)?iPod5[C,_]?1'
21
21
  model: 'iPod Touch 5'
22
- - regex: '(?:Apple-)?iPod7[C,]1'
22
+ - regex: '(?:Apple-)?iPod7[C,_]?1'
23
23
  model: 'iPod Touch 6'
24
+ - regex: '(?:Apple-)?iPod9[C,_]?1'
25
+ model: 'iPod Touch 7'
24
26
  - regex: '(?:Apple-)?iPod'
25
27
  model: 'iPod Touch'
26
28
 
@@ -29,14 +31,22 @@ Cowon:
29
31
  device: 'portable media player'
30
32
  model: '$1'
31
33
 
34
+ # FiiO (https://www.fiio.com/)
35
+ FiiO:
36
+ regex: 'FiiO'
37
+ device: 'portable media player'
38
+ models:
39
+ - regex: 'M15'
40
+ model: 'M15'
41
+
32
42
  Microsoft:
33
43
  regex: 'Microsoft ZuneHD'
34
44
  device: 'portable media player'
35
45
  model: 'Zune HD'
36
46
 
37
47
  Panasonic:
38
- device: 'portable media player'
39
48
  regex: '(SV-MV100)'
49
+ device: 'portable media player'
40
50
  model: '$1'
41
51
 
42
52
  Samsung:
@@ -52,8 +62,25 @@ Samsung:
52
62
  - regex: 'YP-GI1'
53
63
  model: 'Galaxy Player 4.2'
54
64
  - regex: 'YP-GP1'
55
- model: 'Galaxy Player 5.8 '
65
+ model: 'Galaxy Player 5.8'
56
66
  - regex: 'YP-G50'
57
67
  model: 'Galaxy Player 50'
58
68
  - regex: 'YP-GB70D'
59
69
  model: 'Galaxy Player 70 Plus'
70
+
71
+ Wizz:
72
+ regex: '(DV-PTB1080)(?:[);/ ]|$)'
73
+ device: 'portable media player'
74
+ model: '$1'
75
+
76
+ # Sonos (sonos.com)
77
+ SONOS:
78
+ regex: 'Sonos/.+\((?:ZP.+)\)|Sonos;'
79
+ device: 'portable media player'
80
+ models:
81
+ - regex: '\((ZPS(?:[13569]|1[1-578]|2[03])|ZP90)\)'
82
+ model: '$1'
83
+ - regex: 'Sonos;Play5;'
84
+ model: 'Play:5'
85
+ - regex: 'Sonos;One;'
86
+ model: 'One'
@@ -0,0 +1,117 @@
1
+ ###############
2
+ # Device Detector - The Universal Device Detection library for parsing User Agents
3
+ #
4
+ # @link https://matomo.org
5
+ # @license http://www.gnu.org/licenses/lgpl.html LGPL v3 or later
6
+ #
7
+ # ATTENTION: This file may only include tv user agents that contain '[a-z]+[ _]Shell[ _]\w{6}'
8
+ #
9
+ ###############
10
+
11
+ # Telefunken
12
+ Telefunken:
13
+ regex: 'Telefunken Shell'
14
+ device: 'tv'
15
+ model: ''
16
+
17
+ # JVC
18
+ JVC:
19
+ regex: 'JVC Shell'
20
+ device: 'tv'
21
+ model: ''
22
+
23
+ # Leff
24
+ Leff:
25
+ regex: 'Leff Shell'
26
+ device: 'tv'
27
+ model: ''
28
+
29
+ # Leben
30
+ Leben:
31
+ regex: 'Leben Shell'
32
+ device: 'tv'
33
+ model: ''
34
+
35
+ # Lumus
36
+ Lumus:
37
+ regex: 'LUMUS Shell'
38
+ device: 'tv'
39
+ model: ''
40
+
41
+ # Erisson
42
+ Erisson:
43
+ regex: 'Erisson[_ ]Shell'
44
+ device: 'tv'
45
+ model: ''
46
+
47
+ # BBK
48
+ BBK:
49
+ regex: 'BBK shell'
50
+ device: 'tv'
51
+ model: ''
52
+
53
+ # Novex
54
+ Novex:
55
+ regex: 'Novex shell'
56
+ device: 'tv'
57
+ model: ''
58
+
59
+ # Digma
60
+ Digma:
61
+ regex: 'Digma Shell'
62
+ device: 'tv'
63
+ model: ''
64
+
65
+ # AMCV
66
+ AMCV:
67
+ regex: 'AMCV Shell'
68
+ device: 'tv'
69
+ model: ''
70
+
71
+ # Mystery
72
+ Mystery:
73
+ regex: 'Mystery Shell'
74
+ device: 'tv'
75
+ model: ''
76
+
77
+ # ECON (econ.su)
78
+ ECON:
79
+ regex: 'ECON Shell'
80
+ device: 'tv'
81
+ model: ''
82
+
83
+ # Starwind (starwind.com.ru)
84
+ Starwind:
85
+ regex: 'Starwind Shell'
86
+ device: 'tv'
87
+ model: ''
88
+
89
+ # Kvant (tvkvant.ru)
90
+ Kvant:
91
+ regex: 'Kvant Shell'
92
+ device: 'tv'
93
+ model: ''
94
+
95
+ # Hi
96
+ Hi:
97
+ regex: 'Hi Shell'
98
+ device: 'tv'
99
+ model: ''
100
+
101
+ # AKIRA (myakira.com)
102
+ AKIRA:
103
+ regex: 'AKIRA Shell'
104
+ device: 'tv'
105
+ model: ''
106
+
107
+ # Loview
108
+ Loview:
109
+ regex: 'Loview Shell'
110
+ device: 'tv'
111
+ model: ''
112
+
113
+ # Yuno (yuno.bbk.ru)
114
+ Yuno:
115
+ regex: 'Yuno Shell'
116
+ device: 'tv'
117
+ model: ''