device_detector 1.0.3 → 1.0.7

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -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,10 +9,20 @@
9
9
  name: 'Outlook Express'
10
10
  version: '$1'
11
11
 
12
- - regex: 'Microsoft Outlook(?:[/ ](\d+[\.\d]+))?'
12
+ # Outlook https://apps.apple.com/ru/app/microsoft-outlook/id951937596
13
+ - regex: '^Outlook-iOS/(?:.+\((\d+[\.\d]+)\)$)?'
13
14
  name: 'Microsoft Outlook'
14
15
  version: '$1'
15
16
 
17
+ - regex: '(?:(?:Microsoft )?Outlook|MacOutlook)(?:[/ ](\d+[\.\d]+))?'
18
+ name: 'Microsoft Outlook'
19
+ version: '$1'
20
+
21
+ # Default Mail Client for Windows
22
+ - regex: 'WindowsMail(?:/(\d+[\.\d]+))'
23
+ name: 'Windows Mail'
24
+ version: '$1'
25
+
16
26
  - regex: '(?:Thunderbird|Icedove|Shredder)(?:/(\d+[\.\d]+))?'
17
27
  name: 'Thunderbird'
18
28
  version: '$1'
@@ -48,4 +58,57 @@
48
58
  # SeaMonkey
49
59
  - regex: '(?:SeaMonkey|Iceape)(?:/(\d+[\.\d]+))?'
50
60
  name: 'SeaMonkey'
51
- version: '$1'
61
+ version: '$1'
62
+
63
+ # Live5ch
64
+ - regex: 'Live5ch/(\d+[\.\d]+)'
65
+ name: 'Live5ch'
66
+ version: '$1'
67
+
68
+ - regex: 'JaneView/'
69
+ name: 'JaneView'
70
+ version: ''
71
+
72
+ - regex: 'BathyScaphe/'
73
+ name: 'BathyScaphe'
74
+ version: ''
75
+
76
+ # Raindrop.io (https://raindrop.io/)
77
+ - regex: 'Raindrop.io/(\d+[\.\d]+)'
78
+ name: 'Raindrop.io'
79
+ version: '$1'
80
+
81
+ # Franz (https://meetfranz.com/)
82
+ - regex: 'Franz/(\d+[\.\d]+)'
83
+ name: 'Franz'
84
+ version: '$1'
85
+
86
+ # Mailspring (https://www.electronjs.org/apps/mailspring)
87
+ - regex: 'Mailspring/(\d+[\.\d]+)'
88
+ name: 'Mailspring'
89
+ version: '$1'
90
+
91
+ # Notion (https://www.notion.so/)
92
+ - regex: 'Notion/(\d+[\.\d]+)'
93
+ name: 'Notion'
94
+ version: '$1'
95
+
96
+ # Basecamp (https://basecamp.com/)
97
+ - regex: 'Basecamp[0-9]/?(\d+[\.\d]+)'
98
+ name: 'Basecamp'
99
+ version: '$1'
100
+
101
+ # Evernote (https://evernote.com/)
102
+ - regex: 'Evernote/?(\d+[\.\d]+)'
103
+ name: 'Evernote'
104
+ version: '$1'
105
+
106
+ # Rambox Pro (https://rambox.app/)
107
+ - regex: 'ramboxpro/(\d+\.[\.\d]+)?'
108
+ name: 'Rambox Pro'
109
+ version: '$1'
110
+
111
+ # Mailbird (https://www.getmailbird.com/)
112
+ - regex: 'Mailbird/(\d+\.[\.\d]+)/'
113
+ name: 'Mailbird'
114
+ version: '$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
 
@@ -17,12 +17,12 @@ Samsung:
17
17
  device: 'camera'
18
18
  models:
19
19
  - regex: 'EK-GN120'
20
- model: 'GALAXY NX'
20
+ model: 'Galaxy NX'
21
21
  - regex: 'EK-GC100'
22
- model: 'GALAXY Camera'
22
+ model: 'Galaxy Camera'
23
23
  - regex: 'EK-GC110'
24
- model: 'GALAXY Camera WiFi only'
24
+ model: 'Galaxy Camera WiFi only'
25
25
  - regex: 'EK-GC200'
26
- model: 'GALAXY Camera 2'
26
+ model: 'Galaxy Camera 2'
27
27
  - regex: 'EK-GC([0-9]{3})'
28
- model: 'GALAXY Camera $1'
28
+ model: 'Galaxy Camera $1'
@@ -1,12 +1,32 @@
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
 
8
8
  # Tesla Model S
9
9
  Tesla:
10
- regex: 'QtCarBrowser'
10
+ regex: '(?:Tesla/[0-9.]+|QtCarBrowser)'
11
11
  device: 'car browser'
12
- model: 'Model S'
12
+ models:
13
+ - regex: 'QtCarBrowser'
14
+ model: 'Model S'
15
+ - regex: 'Tesla/[0-9.]+'
16
+ model: ''
17
+
18
+ # Mac Audio
19
+ MAC AUDIO:
20
+ regex: 'Mac Audio Spro'
21
+ device: 'car browser'
22
+ models:
23
+ - regex: 'Spro'
24
+ model: 'S Pro'
25
+
26
+ # Topway
27
+ Topway:
28
+ regex: 'sp9853i_1h10_vmm'
29
+ device: 'car browser'
30
+ models:
31
+ - regex: 'sp9853i_1h10_vmm'
32
+ model: 'TS9'
@@ -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
 
@@ -14,13 +14,19 @@ Microsoft:
14
14
  regex: 'Xbox'
15
15
  device: 'console'
16
16
  models:
17
+ - regex: 'Xbox Series X'
18
+ model: 'Xbox Series X'
19
+ - regex: 'Xbox One X'
20
+ model: 'Xbox One X'
17
21
  - regex: 'Xbox One'
18
22
  model: 'Xbox One'
23
+ - regex: 'XBOX_ONE_ED'
24
+ model: 'Xbox One S'
19
25
  - regex: 'Xbox'
20
26
  model: 'Xbox 360'
21
27
 
22
28
  Nintendo:
23
- regex: 'Nintendo (([3]?DS[i]?)|Wii[U]?)'
29
+ regex: 'Nintendo (([3]?DS[i]?)|Wii[U]?|Switch)'
24
30
  device: 'console'
25
31
  model: '$1'
26
32
 
@@ -35,6 +41,12 @@ Sega:
35
41
  model: 'Dreamcast'
36
42
 
37
43
  Sony:
38
- regex: 'PlayStation (3|4|Portable|Vita)'
44
+ regex: 'PlayStation (3|4 Pro|4|5|Portable|Vita)'
39
45
  device: 'console'
40
46
  model: 'PlayStation $1'
47
+
48
+ # Retroid Pocket (www.goretroid.com)
49
+ Retroid Pocket:
50
+ regex: 'Retroid Pocket 2Plus'
51
+ device: 'console'
52
+ model: '2 Plus'