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.
- checksums.yaml +5 -5
- data/CHANGELOG.md +15 -0
- data/README.md +8 -7
- data/lib/device_detector/bot.rb +2 -2
- data/lib/device_detector/browser.rb +364 -0
- data/lib/device_detector/client.rb +11 -2
- data/lib/device_detector/device.rb +1247 -22
- data/lib/device_detector/memory_cache.rb +5 -5
- 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 +150 -116
- data/lib/device_detector/parser.rb +23 -10
- data/lib/device_detector/version.rb +1 -1
- data/lib/device_detector/version_extractor.rb +29 -2
- data/lib/device_detector.rb +73 -40
- data/regexes/bots.yml +868 -62
- data/regexes/client/browser_engine.yml +11 -2
- data/regexes/client/browsers.yml +1132 -112
- data/regexes/client/feed_readers.yml +5 -11
- data/regexes/client/libraries.yml +86 -2
- data/regexes/client/mediaplayers.yml +39 -3
- data/regexes/client/mobile_apps.yml +940 -66
- data/regexes/client/pim.yml +66 -3
- data/regexes/device/cameras.yml +6 -6
- data/regexes/device/car_browsers.yml +23 -3
- data/regexes/device/consoles.yml +15 -3
- data/regexes/device/mobiles.yml +18351 -3566
- data/regexes/device/notebooks.yml +114 -0
- data/regexes/device/portable_media_player.yml +36 -9
- data/regexes/device/shell_tv.yml +117 -0
- data/regexes/device/televisions.yml +440 -35
- data/regexes/oss.yml +635 -284
- data/regexes/vendorfragments.yml +5 -1
- metadata +21 -118
- data/.gitignore +0 -14
- data/.travis.yml +0 -14
- data/Gemfile +0 -8
- data/Rakefile +0 -96
- data/device_detector.gemspec +0 -26
- data/spec/device_detector/bot_fixtures_spec.rb +0 -30
- data/spec/device_detector/client_fixtures_spec.rb +0 -31
- data/spec/device_detector/concrete_user_agent_spec.rb +0 -135
- data/spec/device_detector/detector_fixtures_spec.rb +0 -100
- data/spec/device_detector/device_fixtures_spec.rb +0 -36
- data/spec/device_detector/device_spec.rb +0 -151
- data/spec/device_detector/memory_cache_spec.rb +0 -148
- data/spec/device_detector/model_extractor_spec.rb +0 -63
- data/spec/device_detector/os_fixtures_spec.rb +0 -26
- data/spec/device_detector/version_extractor_spec.rb +0 -79
- data/spec/device_detector_spec.rb +0 -189
- data/spec/fixtures/client/browser.yml +0 -2206
- data/spec/fixtures/client/feed_reader.yml +0 -199
- data/spec/fixtures/client/library.yml +0 -175
- data/spec/fixtures/client/mediaplayer.yml +0 -163
- data/spec/fixtures/client/mobile_app.yml +0 -193
- data/spec/fixtures/client/pim.yml +0 -115
- data/spec/fixtures/detector/bots.yml +0 -3260
- data/spec/fixtures/detector/camera.yml +0 -121
- data/spec/fixtures/detector/car_browser.yml +0 -21
- data/spec/fixtures/detector/console.yml +0 -281
- data/spec/fixtures/detector/desktop.yml +0 -5361
- data/spec/fixtures/detector/feature_phone.yml +0 -891
- data/spec/fixtures/detector/feed_reader.yml +0 -551
- data/spec/fixtures/detector/mediaplayer.yml +0 -210
- data/spec/fixtures/detector/mobile_apps.yml +0 -456
- data/spec/fixtures/detector/phablet.yml +0 -3785
- data/spec/fixtures/detector/portable_media_player.yml +0 -178
- data/spec/fixtures/detector/smart_display.yml +0 -61
- data/spec/fixtures/detector/smartphone-1.yml +0 -9953
- data/spec/fixtures/detector/smartphone-10.yml +0 -9924
- data/spec/fixtures/detector/smartphone-11.yml +0 -9889
- data/spec/fixtures/detector/smartphone-12.yml +0 -8655
- data/spec/fixtures/detector/smartphone-2.yml +0 -9967
- data/spec/fixtures/detector/smartphone-3.yml +0 -9887
- data/spec/fixtures/detector/smartphone-4.yml +0 -9911
- data/spec/fixtures/detector/smartphone-5.yml +0 -9933
- data/spec/fixtures/detector/smartphone-6.yml +0 -9923
- data/spec/fixtures/detector/smartphone-7.yml +0 -9892
- data/spec/fixtures/detector/smartphone-8.yml +0 -9896
- data/spec/fixtures/detector/smartphone-9.yml +0 -9928
- data/spec/fixtures/detector/smartphone.yml +0 -9984
- data/spec/fixtures/detector/tablet-1.yml +0 -10023
- data/spec/fixtures/detector/tablet-2.yml +0 -9968
- data/spec/fixtures/detector/tablet-3.yml +0 -7787
- data/spec/fixtures/detector/tablet.yml +0 -9951
- data/spec/fixtures/detector/tv.yml +0 -3333
- data/spec/fixtures/detector/unknown.yml +0 -3283
- data/spec/fixtures/device/camera.yml +0 -19
- data/spec/fixtures/device/car_browser.yml +0 -7
- data/spec/fixtures/device/console.yml +0 -79
- data/spec/fixtures/parser/oss.yml +0 -1047
- data/spec/fixtures/parser/vendorfragments.yml +0 -162
- data/spec/spec_helper.rb +0 -9
data/regexes/client/pim.yml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
###############
|
2
2
|
# Device Detector - The Universal Device Detection library for parsing User Agents
|
3
3
|
#
|
4
|
-
# @link
|
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
|
-
|
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'
|
data/regexes/device/cameras.yml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
###############
|
2
2
|
# Device Detector - The Universal Device Detection library for parsing User Agents
|
3
3
|
#
|
4
|
-
# @link
|
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: '
|
20
|
+
model: 'Galaxy NX'
|
21
21
|
- regex: 'EK-GC100'
|
22
|
-
model: '
|
22
|
+
model: 'Galaxy Camera'
|
23
23
|
- regex: 'EK-GC110'
|
24
|
-
model: '
|
24
|
+
model: 'Galaxy Camera WiFi only'
|
25
25
|
- regex: 'EK-GC200'
|
26
|
-
model: '
|
26
|
+
model: 'Galaxy Camera 2'
|
27
27
|
- regex: 'EK-GC([0-9]{3})'
|
28
|
-
model: '
|
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
|
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
|
-
|
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'
|
data/regexes/device/consoles.yml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
###############
|
2
2
|
# Device Detector - The Universal Device Detection library for parsing User Agents
|
3
3
|
#
|
4
|
-
# @link
|
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'
|