device_detector 1.0.4 → 1.0.5
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 +4 -4
- data/CHANGELOG.md +3 -0
- data/README.md +4 -4
- data/Rakefile +1 -0
- data/lib/device_detector/device.rb +5 -2
- data/lib/device_detector/version.rb +1 -1
- data/regexes/bots.yml +57 -3
- data/regexes/client/browsers.yml +22 -3
- data/regexes/client/libraries.yml +5 -0
- data/regexes/client/mobile_apps.yml +46 -0
- data/regexes/device/mobiles.yml +3414 -875
- data/regexes/device/notebooks.yml +114 -0
- data/regexes/device/televisions.yml +15 -1
- data/regexes/oss.yml +23 -28
- data/spec/device_detector/detector_fixtures_spec.rb +30 -35
- data/spec/fixtures/client/browser.yml +67 -40
- data/spec/fixtures/client/library.yml +6 -0
- data/spec/fixtures/client/mobile_app.yml +34 -1
- data/spec/fixtures/detector/bots.yml +88 -1
- data/spec/fixtures/detector/desktop.yml +1341 -347
- data/spec/fixtures/detector/mobile_apps.yml +85 -0
- data/spec/fixtures/detector/phablet.yml +1282 -122
- data/spec/fixtures/detector/portable_media_player.yml +40 -0
- data/spec/fixtures/detector/smartphone-1.yml +3512 -3533
- data/spec/fixtures/detector/smartphone-10.yml +3959 -3963
- data/spec/fixtures/detector/smartphone-11.yml +4089 -3965
- data/spec/fixtures/detector/smartphone-12.yml +4029 -4038
- data/spec/fixtures/detector/smartphone-13.yml +3792 -3800
- data/spec/fixtures/detector/smartphone-14.yml +8236 -963
- data/spec/fixtures/detector/smartphone-15.yml +6595 -0
- data/spec/fixtures/detector/smartphone-16.yml +10021 -0
- data/spec/fixtures/detector/smartphone-17.yml +9408 -0
- data/spec/fixtures/detector/smartphone-2.yml +3454 -3457
- data/spec/fixtures/detector/smartphone-3.yml +3873 -3869
- data/spec/fixtures/detector/smartphone-4.yml +4276 -4260
- data/spec/fixtures/detector/smartphone-5.yml +3581 -3558
- data/spec/fixtures/detector/smartphone-6.yml +3938 -3786
- data/spec/fixtures/detector/smartphone-7.yml +4044 -3968
- data/spec/fixtures/detector/smartphone-8.yml +4901 -4935
- data/spec/fixtures/detector/smartphone-9.yml +4255 -4274
- data/spec/fixtures/detector/smartphone.yml +3431 -3424
- data/spec/fixtures/detector/tablet-1.yml +3815 -3815
- data/spec/fixtures/detector/tablet-2.yml +3742 -3736
- data/spec/fixtures/detector/tablet-3.yml +3836 -3827
- data/spec/fixtures/detector/tablet-4.yml +2592 -7
- data/spec/fixtures/detector/tablet.yml +466 -466
- data/spec/fixtures/detector/tv.yml +401 -1
- data/spec/fixtures/detector/unknown.yml +17 -21
- data/spec/fixtures/device/notebook.yml +7 -0
- data/spec/fixtures/parser/oss.yml +7 -0
- metadata +11 -2
@@ -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'
|
@@ -258,14 +258,28 @@ TCL:
|
|
258
258
|
regex: 'TCL'
|
259
259
|
device: 'tv'
|
260
260
|
models:
|
261
|
+
- regex: '(32D1820)'
|
262
|
+
model: '$1'
|
261
263
|
- regex: '(LF1V[0-9]{3})'
|
262
264
|
model: '$1'
|
263
265
|
|
264
266
|
# Thomson
|
265
267
|
Thomson:
|
266
|
-
regex: 'THOMSON
|
268
|
+
regex: 'THOMSON[,]?|THOM'
|
267
269
|
device: 'tv'
|
268
270
|
models:
|
271
|
+
- regex: '(TB28D19DHS-01|T28D18SFS-01B)'
|
272
|
+
model: '$1 28.0"'
|
273
|
+
- regex: '(T32RTM5040|T32D18SFS-01B)'
|
274
|
+
model: '$1 32.0"'
|
275
|
+
- regex: '(T43FSL5031|T43D18SFS-01B)'
|
276
|
+
model: '$1 43.0"'
|
277
|
+
- regex: '(T40D18SFS-01B)'
|
278
|
+
model: '$1 40.0"'
|
279
|
+
- regex: '(T49D18SFS-01B)'
|
280
|
+
model: '$1 49.0"'
|
281
|
+
- regex: '(T55D18[SD]FS-01B)'
|
282
|
+
model: '$1 55.0"'
|
269
283
|
- regex: '(LF1V[0-9]{3})'
|
270
284
|
model: '$1'
|
271
285
|
|
data/regexes/oss.yml
CHANGED
@@ -98,11 +98,14 @@
|
|
98
98
|
##########
|
99
99
|
# Android
|
100
100
|
##########
|
101
|
+
- regex: '[ ]([\d\.]+)\) AppleWebKit.*ROBLOX Android App'
|
102
|
+
name: 'Android'
|
103
|
+
version: '$1'
|
104
|
+
|
101
105
|
- regex: '(?:(?:Orca-)?Android|Adr)[ /](?:[a-z]+ )?(\d+[\.\d]*)'
|
102
106
|
name: 'Android'
|
103
107
|
version: '$1'
|
104
108
|
|
105
|
-
|
106
109
|
- regex: 'Android|Silk-Accelerated=[a-z]{4,5}'
|
107
110
|
name: 'Android'
|
108
111
|
version: ''
|
@@ -184,7 +187,7 @@
|
|
184
187
|
##########
|
185
188
|
# webOS
|
186
189
|
##########
|
187
|
-
- regex: '(?:webOS|Palm webOS)(?:/(\d+[\.\d]+))?'
|
190
|
+
- regex: '(?:webOS|web0S|Palm webOS)(?:/(\d+[\.\d]+))?'
|
188
191
|
name: 'webOS'
|
189
192
|
version: '$1'
|
190
193
|
|
@@ -209,70 +212,62 @@
|
|
209
212
|
name: 'Windows'
|
210
213
|
version: '10'
|
211
214
|
|
212
|
-
- regex: 'CYGWIN_NT-6.4|Windows NT 6.4|Windows 10'
|
215
|
+
- regex: 'CYGWIN_NT-6.4|Windows NT 6.4|Windows 10|win10'
|
213
216
|
name: 'Windows'
|
214
217
|
version: '10'
|
215
|
-
|
218
|
+
|
216
219
|
- regex: 'CYGWIN_NT-6.3|Windows NT 6.3|Windows 8.1'
|
217
220
|
name: 'Windows'
|
218
221
|
version: '8.1'
|
219
222
|
|
220
|
-
|
221
223
|
- regex: 'CYGWIN_NT-6.2|Windows NT 6.2|Windows 8'
|
222
224
|
name: 'Windows'
|
223
225
|
version: '8'
|
224
|
-
|
225
|
-
|
226
|
-
- regex: 'CYGWIN_NT-6.1|Windows NT 6.1|Windows 7'
|
226
|
+
|
227
|
+
- regex: 'CYGWIN_NT-6.1|Windows NT 6.1|Windows 7|win7'
|
227
228
|
name: 'Windows'
|
228
229
|
version: '7'
|
229
|
-
|
230
|
-
|
230
|
+
|
231
231
|
- regex: 'CYGWIN_NT-6.0|Windows NT 6.0|Windows Vista'
|
232
232
|
name: 'Windows'
|
233
233
|
version: 'Vista'
|
234
|
-
|
235
|
-
|
234
|
+
|
236
235
|
- regex: 'CYGWIN_NT-5.2|Windows NT 5.2|Windows Server 2003 / XP x64'
|
237
236
|
name: 'Windows'
|
238
237
|
version: 'Server 2003'
|
239
|
-
|
240
|
-
|
238
|
+
|
241
239
|
- regex: 'CYGWIN_NT-5.1|Windows NT 5.1|Windows XP'
|
242
240
|
name: 'Windows'
|
243
241
|
version: 'XP'
|
244
|
-
|
245
|
-
|
242
|
+
|
246
243
|
- regex: 'CYGWIN_NT-5.0|Windows NT 5.0|Windows 2000'
|
247
244
|
name: 'Windows'
|
248
245
|
version: '2000'
|
249
|
-
|
250
|
-
|
246
|
+
|
251
247
|
- regex: 'CYGWIN_NT-4.0|Windows NT 4.0|WinNT|Windows NT'
|
252
248
|
name: 'Windows'
|
253
249
|
version: 'NT'
|
254
|
-
|
255
|
-
|
250
|
+
|
256
251
|
- regex: 'CYGWIN_ME-4.90|Win 9x 4.90|Windows ME'
|
257
252
|
name: 'Windows'
|
258
253
|
version: 'ME'
|
259
|
-
|
260
|
-
|
254
|
+
|
261
255
|
- regex: 'CYGWIN_98-4.10|Win98|Windows 98'
|
262
256
|
name: 'Windows'
|
263
257
|
version: '98'
|
264
|
-
|
265
|
-
|
258
|
+
|
266
259
|
- regex: 'CYGWIN_95-4.0|Win32|Win95|Windows 95|Windows_95'
|
267
260
|
name: 'Windows'
|
268
261
|
version: '95'
|
269
|
-
|
270
|
-
|
262
|
+
|
271
263
|
- regex: 'Windows 3.1'
|
272
264
|
name: 'Windows'
|
273
265
|
version: '3.1'
|
274
|
-
|
275
|
-
|
266
|
+
|
267
|
+
- regex: 'FBW.*FBSV/(\d+[\.\d]*);'
|
268
|
+
name: 'Windows'
|
269
|
+
version: '$1'
|
270
|
+
|
276
271
|
- regex: 'Windows'
|
277
272
|
name: 'Windows'
|
278
273
|
version: ''
|
@@ -1,71 +1,69 @@
|
|
1
1
|
require_relative '../spec_helper'
|
2
2
|
|
3
3
|
describe DeviceDetector do
|
4
|
-
|
5
|
-
fixture_dir = File.expand_path('../../fixtures/detector', __FILE__)
|
4
|
+
fixture_dir = File.expand_path('../fixtures/detector', __dir__)
|
6
5
|
fixture_files = Dir["#{fixture_dir}/*.yml"]
|
7
6
|
fixture_files.each do |fixture_file|
|
8
|
-
|
9
7
|
describe File.basename(fixture_file) do
|
10
|
-
|
11
8
|
fixtures = nil
|
12
9
|
begin
|
13
10
|
fixtures = YAML.load(File.read(fixture_file))
|
14
11
|
rescue Psych::SyntaxError => e
|
15
|
-
|
12
|
+
raise "Failed to parse #{fixture_file}, reason: #{e}"
|
16
13
|
end
|
17
14
|
|
18
15
|
def str_or_nil(string)
|
16
|
+
return nil if string.nil?
|
19
17
|
return nil if string == ''
|
20
|
-
|
18
|
+
|
19
|
+
string.to_s
|
21
20
|
end
|
22
21
|
|
23
22
|
fixtures.each do |f|
|
24
|
-
|
25
|
-
user_agent = f["user_agent"]
|
23
|
+
user_agent = f['user_agent']
|
26
24
|
detector = DeviceDetector.new(user_agent)
|
27
25
|
os = detector.send(:os)
|
28
26
|
|
29
27
|
describe user_agent do
|
30
|
-
it
|
28
|
+
it 'should be detected' do
|
31
29
|
if detector.bot?
|
32
|
-
assert_equal str_or_nil(f[
|
30
|
+
assert_equal str_or_nil(f['bot']['name']), detector.bot_name, 'failed bot name detection'
|
33
31
|
else
|
34
|
-
if f[
|
35
|
-
assert_equal str_or_nil(f[
|
32
|
+
if f['client']
|
33
|
+
assert_equal str_or_nil(f['client']['name']), detector.name, 'failed client name detection'
|
36
34
|
end
|
37
35
|
|
38
|
-
os_family = str_or_nil(f[
|
39
|
-
if os_family !=
|
36
|
+
os_family = str_or_nil(f['os_family'])
|
37
|
+
if os_family != 'Unknown'
|
40
38
|
if os_family.nil?
|
41
|
-
assert_nil os.family,
|
39
|
+
assert_nil os.family, 'failed os family detection'
|
42
40
|
else
|
43
|
-
assert_equal os_family, os.family,
|
41
|
+
assert_equal os_family, os.family, 'failed os family detection'
|
44
42
|
end
|
45
43
|
|
46
|
-
name = str_or_nil(f[
|
44
|
+
name = str_or_nil(f['os']['name'])
|
47
45
|
if name.nil?
|
48
|
-
assert_nil os.name,
|
46
|
+
assert_nil os.name, 'failed os name detection'
|
49
47
|
else
|
50
|
-
assert_equal name, os.name,
|
48
|
+
assert_equal name, os.name, 'failed os name detection'
|
51
49
|
end
|
52
50
|
|
53
|
-
short_name = str_or_nil(f[
|
51
|
+
short_name = str_or_nil(f['os']['short_name'])
|
54
52
|
if short_name.nil?
|
55
|
-
assert_nil os.short_name,
|
53
|
+
assert_nil os.short_name, 'failed os short name detection'
|
56
54
|
else
|
57
|
-
assert_equal short_name, os.short_name,
|
55
|
+
assert_equal short_name, os.short_name, 'failed os short name detection'
|
58
56
|
end
|
59
57
|
|
60
|
-
os_version = str_or_nil(f[
|
58
|
+
os_version = str_or_nil(f['os']['version'])
|
61
59
|
if os_version.nil?
|
62
|
-
assert_nil os.full_version,
|
60
|
+
assert_nil os.full_version, 'failed os version detection'
|
63
61
|
else
|
64
|
-
assert_equal os_version, os.full_version,
|
62
|
+
assert_equal os_version, os.full_version, 'failed os version detection'
|
65
63
|
end
|
66
64
|
end
|
67
|
-
if f[
|
68
|
-
expected_type = str_or_nil(f[
|
65
|
+
if f['device']
|
66
|
+
expected_type = str_or_nil(f['device']['type'])
|
69
67
|
actual_type = detector.device_type
|
70
68
|
|
71
69
|
if expected_type != actual_type
|
@@ -74,27 +72,24 @@ describe DeviceDetector do
|
|
74
72
|
# detector.device_type
|
75
73
|
end
|
76
74
|
if expected_type.nil?
|
77
|
-
assert_nil actual_type,
|
75
|
+
assert_nil actual_type, 'failed device type detection'
|
78
76
|
else
|
79
|
-
assert_equal expected_type, actual_type,
|
77
|
+
assert_equal expected_type, actual_type, 'failed device type detection'
|
80
78
|
end
|
81
79
|
|
82
|
-
model = str_or_nil(f[
|
80
|
+
model = str_or_nil(f['device']['model'])
|
83
81
|
model = model.to_s unless model.nil?
|
84
82
|
|
85
83
|
if model.nil?
|
86
|
-
assert_nil detector.device_name,
|
84
|
+
assert_nil detector.device_name, 'failed device name detection'
|
87
85
|
else
|
88
|
-
assert_equal model, detector.device_name,
|
86
|
+
assert_equal model, detector.device_name, 'failed device name detection'
|
89
87
|
end
|
90
88
|
end
|
91
89
|
end
|
92
90
|
end
|
93
91
|
end
|
94
92
|
end
|
95
|
-
|
96
93
|
end
|
97
|
-
|
98
94
|
end
|
99
|
-
|
100
95
|
end
|
@@ -223,7 +223,7 @@
|
|
223
223
|
short_name: CA
|
224
224
|
version: "2.1.2"
|
225
225
|
engine: Gecko
|
226
|
-
engine_version: ""
|
226
|
+
engine_version: "1.9.2.28"
|
227
227
|
-
|
228
228
|
user_agent: Mozilla/5.0 (X11; Linux x86_64; rv:27.0) Gecko/20100101 Firefox/27.0 Cunaguaro/27.0
|
229
229
|
client:
|
@@ -232,7 +232,7 @@
|
|
232
232
|
short_name: CU
|
233
233
|
version: "27.0"
|
234
234
|
engine: Gecko
|
235
|
-
engine_version: ""
|
235
|
+
engine_version: "27.0"
|
236
236
|
-
|
237
237
|
user_agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) coc_coc_browser/45.0 Chrome/39.0.2171.74 Safari/537.36
|
238
238
|
client:
|
@@ -331,7 +331,7 @@
|
|
331
331
|
short_name: CK
|
332
332
|
version: "1.0"
|
333
333
|
engine: Gecko
|
334
|
-
engine_version: ""
|
334
|
+
engine_version: "17.0"
|
335
335
|
-
|
336
336
|
user_agent: Mozilla/5.0 (Linux; Android 4.1.1; ALCATEL ONE TOUCH 6033X Build/JRO03C) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.59 Mobile Safari/537.36
|
337
337
|
client:
|
@@ -358,7 +358,7 @@
|
|
358
358
|
short_name: CO
|
359
359
|
version: "11.0"
|
360
360
|
engine: Gecko
|
361
|
-
engine_version: ""
|
361
|
+
engine_version: "11.0"
|
362
362
|
-
|
363
363
|
user_agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.98 Safari/534.13 ChromePlus/1.6.0.0
|
364
364
|
client:
|
@@ -493,8 +493,8 @@
|
|
493
493
|
short_name: EP
|
494
494
|
version: "1.2.6"
|
495
495
|
engine: Gecko
|
496
|
-
engine_version: ""
|
497
|
-
-
|
496
|
+
engine_version: "1.6"
|
497
|
+
-
|
498
498
|
user_agent: Mozilla/5.0 (X11; U; Linux i686; fr-fr) AppleWebKit/531.2+ (KHTML, like Gecko) Version/5.0 Safari/531.2+ Debian/squeeze (2.30.6-1) Epiphany/2.30.6
|
499
499
|
client:
|
500
500
|
type: browser
|
@@ -520,7 +520,7 @@
|
|
520
520
|
short_name: FB
|
521
521
|
version: "0.7"
|
522
522
|
engine: Gecko
|
523
|
-
engine_version: ""
|
523
|
+
engine_version: "1.5"
|
524
524
|
-
|
525
525
|
user_agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_6; en-us) AppleWebKit/528.16 (KHTML, like Gecko) Fluid/0.9.6 Safari/528.16
|
526
526
|
client:
|
@@ -538,7 +538,7 @@
|
|
538
538
|
short_name: FE
|
539
539
|
version: "10.0"
|
540
540
|
engine: Gecko
|
541
|
-
engine_version: ""
|
541
|
+
engine_version: "10.0"
|
542
542
|
-
|
543
543
|
user_agent: Mozilla/5.0 (X11; Arch Linux i686; rv:2.0) Gecko/20110321 Firefox/4.0
|
544
544
|
client:
|
@@ -547,7 +547,7 @@
|
|
547
547
|
short_name: FF
|
548
548
|
version: "4.0"
|
549
549
|
engine: Gecko
|
550
|
-
engine_version: ""
|
550
|
+
engine_version: "2.0"
|
551
551
|
-
|
552
552
|
user_agent: Mozilla/5.0 (BeOS; U; Haiku BePC; en-US; rv:1.8.1.21pre) Gecko/20090218 BonEcho/2.0.0.21pre
|
553
553
|
client:
|
@@ -556,7 +556,7 @@
|
|
556
556
|
short_name: FF
|
557
557
|
version: "2.0.0.21"
|
558
558
|
engine: Gecko
|
559
|
-
engine_version: ""
|
559
|
+
engine_version: "1.8.1.21"
|
560
560
|
-
|
561
561
|
user_agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.11) Gecko GranParadiso/3.0.11
|
562
562
|
client:
|
@@ -574,7 +574,7 @@
|
|
574
574
|
short_name: FF
|
575
575
|
version: "3.0"
|
576
576
|
engine: Gecko
|
577
|
-
engine_version: ""
|
577
|
+
engine_version: "1.9"
|
578
578
|
-
|
579
579
|
user_agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1b5pre) Gecko/20090424 Shiretoko/3.5b5pre
|
580
580
|
client:
|
@@ -583,7 +583,7 @@
|
|
583
583
|
short_name: FF
|
584
584
|
version: "3.5"
|
585
585
|
engine: Gecko
|
586
|
-
engine_version: ""
|
586
|
+
engine_version: "1.9.1"
|
587
587
|
-
|
588
588
|
user_agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.3pre) Gecko/20100403 Lorentz/3.6.3plugin2pre (.NET CLR 4.0.20506)
|
589
589
|
client:
|
@@ -592,7 +592,7 @@
|
|
592
592
|
short_name: FF
|
593
593
|
version: "3.6.3"
|
594
594
|
engine: Gecko
|
595
|
-
engine_version: ""
|
595
|
+
engine_version: "1.9.2.3"
|
596
596
|
-
|
597
597
|
user_agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20110504 Namoroka/3.6.13
|
598
598
|
client:
|
@@ -601,7 +601,7 @@
|
|
601
601
|
short_name: FF
|
602
602
|
version: "3.6.13"
|
603
603
|
engine: Gecko
|
604
|
-
engine_version: ""
|
604
|
+
engine_version: "1.9.2.13"
|
605
605
|
-
|
606
606
|
user_agent: Mozilla/5.0 (iPhone; CPU iPhone OS 8_3 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) FxiOS/1.0 Mobile/12F69 Safari/600.1.4
|
607
607
|
client:
|
@@ -637,7 +637,7 @@
|
|
637
637
|
short_name: FL
|
638
638
|
version: "2.5.6"
|
639
639
|
engine: Gecko
|
640
|
-
engine_version: ""
|
640
|
+
engine_version: "1.9.0.16"
|
641
641
|
-
|
642
642
|
user_agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:2.0) Treco/20110515 Fireweb Navigator/2.4
|
643
643
|
client:
|
@@ -664,7 +664,7 @@
|
|
664
664
|
short_name: GA
|
665
665
|
version: "1.3.21"
|
666
666
|
engine: Gecko
|
667
|
-
engine_version: ""
|
667
|
+
engine_version: "1.7.12"
|
668
668
|
-
|
669
669
|
user_agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; cs-CZ) AppleWebKit/532.4 (KHTML, like Gecko) Google Earth/5.2.1.1329 Safari/532.4
|
670
670
|
client:
|
@@ -718,7 +718,7 @@
|
|
718
718
|
short_name: ID
|
719
719
|
version: "26.0.0.2"
|
720
720
|
engine: Gecko
|
721
|
-
engine_version: ""
|
721
|
+
engine_version: "26.0"
|
722
722
|
-
|
723
723
|
user_agent: Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.0.15) Gecko/2009102815 Iceweasel/3.0.6 (Debian-3.0.6-3)
|
724
724
|
client:
|
@@ -727,7 +727,7 @@
|
|
727
727
|
short_name: IW
|
728
728
|
version: "3.0.6"
|
729
729
|
engine: Gecko
|
730
|
-
engine_version: ""
|
730
|
+
engine_version: "1.9.0.15"
|
731
731
|
-
|
732
732
|
user_agent: Mozilla/4.0 (compatible; MSIE 4.01; Mac_PowerPC)
|
733
733
|
client:
|
@@ -898,7 +898,7 @@
|
|
898
898
|
short_name: KM
|
899
899
|
version: "1.5.4"
|
900
900
|
engine: Gecko
|
901
|
-
engine_version: ""
|
901
|
+
engine_version: "1.8.1.24"
|
902
902
|
-
|
903
903
|
user_agent: Mozilla/5.0 (compatible; Konqueror/3.5; Linux; de) KHTML/3.5.8 (like Gecko) (Debian)
|
904
904
|
client:
|
@@ -916,7 +916,7 @@
|
|
916
916
|
short_name: KP
|
917
917
|
version: "3.0"
|
918
918
|
engine: Gecko
|
919
|
-
engine_version: ""
|
919
|
+
engine_version: "1.9"
|
920
920
|
-
|
921
921
|
user_agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.8) Gecko Fedora/1.9.0.8-1.fc10 Kazehakase/0.5.6
|
922
922
|
client:
|
@@ -934,7 +934,7 @@
|
|
934
934
|
short_name: KY
|
935
935
|
version: "0.6.1.70394"
|
936
936
|
engine: Gecko
|
937
|
-
engine_version: ""
|
937
|
+
engine_version: "1.9.2"
|
938
938
|
-
|
939
939
|
user_agent: Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.137 Safari/537.36 LBBROWSER
|
940
940
|
client:
|
@@ -988,7 +988,7 @@
|
|
988
988
|
short_name: MB
|
989
989
|
version: "0.9.7"
|
990
990
|
engine: Gecko
|
991
|
-
engine_version: ""
|
991
|
+
engine_version: "1.9.2"
|
992
992
|
-
|
993
993
|
user_agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36 Avast/66.2.567.182
|
994
994
|
client:
|
@@ -1015,7 +1015,7 @@
|
|
1015
1015
|
short_name: MB
|
1016
1016
|
version: "1.7.4.8"
|
1017
1017
|
engine: Gecko
|
1018
|
-
engine_version: ""
|
1018
|
+
engine_version: "1.9.2.3"
|
1019
1019
|
-
|
1020
1020
|
user_agent: NCSA_Mosaic/2.7b5 (X11;Linux 2.6.7 i686) libwww/2.12 modified
|
1021
1021
|
client:
|
@@ -1159,7 +1159,7 @@
|
|
1159
1159
|
short_name: NS
|
1160
1160
|
version: "8.1.3"
|
1161
1161
|
engine: Gecko
|
1162
|
-
engine_version: ""
|
1162
|
+
engine_version: "1.7.5"
|
1163
1163
|
-
|
1164
1164
|
user_agent: Mozilla/5.0 (Android 5.1; U613 Build/LMY47D) AppleWebKit/537.36 (KHTML, like Gecko) NTENTBrowser/1.0.0.547 (CellularOne-US) Mobile Safari/537.36
|
1165
1165
|
client:
|
@@ -1375,7 +1375,7 @@
|
|
1375
1375
|
short_name: PM
|
1376
1376
|
version: "24.3.1"
|
1377
1377
|
engine: Gecko
|
1378
|
-
engine_version: ""
|
1378
|
+
engine_version: "24.0"
|
1379
1379
|
-
|
1380
1380
|
user_agent: Mozilla/5.0 (webOS/1.0; U; en-US) AppleWebKit/525.27.1 (KHTML, like Gecko) Version/1.0 Safari/525.27.1 Pre/1.0
|
1381
1381
|
client:
|
@@ -1420,7 +1420,7 @@
|
|
1420
1420
|
short_name: PX
|
1421
1421
|
version: "0.4"
|
1422
1422
|
engine: Gecko
|
1423
|
-
engine_version: ""
|
1423
|
+
engine_version: "1.2"
|
1424
1424
|
-
|
1425
1425
|
user_agent: Mozilla/4.0 (compatible; Polaris 6.2; Brew 3.1.5; en)/240X320 Samsung sam-r631
|
1426
1426
|
client:
|
@@ -1609,7 +1609,7 @@
|
|
1609
1609
|
short_name: SX
|
1610
1610
|
version: "2.0"
|
1611
1611
|
engine: Gecko
|
1612
|
-
engine_version: ""
|
1612
|
+
engine_version: "1.8.1"
|
1613
1613
|
-
|
1614
1614
|
user_agent: Mozilla/5.0 (Linux; U; Tizen/1.0 like Android; en-us; AppleWebKit/534.46 (KHTML, like Gecko) Tizen Browser/1.0 Mobile
|
1615
1615
|
client:
|
@@ -1744,7 +1744,7 @@
|
|
1744
1744
|
short_name: EI
|
1745
1745
|
version: "1.2"
|
1746
1746
|
engine: Gecko
|
1747
|
-
engine_version: ""
|
1747
|
+
engine_version: "1.9.2.10"
|
1748
1748
|
-
|
1749
1749
|
user_agent: Mozilla/5.0 (Linux; Android 5.1; Epic P7 Build/LMY47D; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/43.0.2357.121 Safari/537.36
|
1750
1750
|
client:
|
@@ -1789,7 +1789,7 @@
|
|
1789
1789
|
short_name: WF
|
1790
1790
|
version: "30.0"
|
1791
1791
|
engine: Gecko
|
1792
|
-
engine_version: ""
|
1792
|
+
engine_version: "30.0"
|
1793
1793
|
-
|
1794
1794
|
user_agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4) AppleWebKit/537.36 (KHTML, like Gecko) Iridium/41.2 Safari/537.36 Chrome/41.0.2272.118
|
1795
1795
|
client:
|
@@ -1807,7 +1807,7 @@
|
|
1807
1807
|
short_name: CY
|
1808
1808
|
version: "28.0.1"
|
1809
1809
|
engine: Gecko
|
1810
|
-
engine_version: ""
|
1810
|
+
engine_version: "28.0"
|
1811
1811
|
-
|
1812
1812
|
user_agent: Mozilla/5.0 (iPhone; CPU OS 8_0 like Mac OS X) AppleWebKit/538.34.9 (KHTML, like Gecko) iCabMobile/1.1
|
1813
1813
|
client:
|
@@ -1852,7 +1852,7 @@
|
|
1852
1852
|
short_name: TF
|
1853
1853
|
version: ""
|
1854
1854
|
engine: Gecko
|
1855
|
-
engine_version: ""
|
1855
|
+
engine_version: "45.0"
|
1856
1856
|
-
|
1857
1857
|
user_agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 AOLShield/52.4.2
|
1858
1858
|
client:
|
@@ -1861,7 +1861,7 @@
|
|
1861
1861
|
short_name: AD
|
1862
1862
|
version: "52.4.2"
|
1863
1863
|
engine: Gecko
|
1864
|
-
engine_version: ""
|
1864
|
+
engine_version: "52.0"
|
1865
1865
|
-
|
1866
1866
|
user_agent: Mozilla/5.0 (Linux; Android 9; ONEPLUS A3003 Build/PQ3A.190505.002; rv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Rocket/1.6.2(12322) Chrome/74.0.3729.157 Mobile Safari/537.36
|
1867
1867
|
client:
|
@@ -2212,7 +2212,7 @@
|
|
2212
2212
|
short_name: OS
|
2213
2213
|
version: "3.8.20"
|
2214
2214
|
engine: Gecko
|
2215
|
-
engine_version: ""
|
2215
|
+
engine_version: "52.0"
|
2216
2216
|
-
|
2217
2217
|
user_agent: Mozilla/5.0 (X11; Linux i686 on x86_64; rv:42.0) Gecko/20100101 Firefox/42.0 webissimo3/3.7.22+svn30377
|
2218
2218
|
client:
|
@@ -2221,7 +2221,7 @@
|
|
2221
2221
|
short_name: OS
|
2222
2222
|
version: "3.7.22"
|
2223
2223
|
engine: Gecko
|
2224
|
-
engine_version: ""
|
2224
|
+
engine_version: "42.0"
|
2225
2225
|
-
|
2226
2226
|
user_agent: Mozilla/5.0 (Linux; U; COS like Android 4.1.2; zh_CN; 909d Build/JRO03C) AppleWebKit/537.17 (KHTML, like Gecko) COSBrowser/1.0.0 Version/4.0 Mobile Safari/537.17
|
2227
2227
|
client:
|
@@ -2311,7 +2311,7 @@
|
|
2311
2311
|
short_name: TO
|
2312
2312
|
version: "7.68.0.201"
|
2313
2313
|
engine: Gecko
|
2314
|
-
engine_version: ""
|
2314
|
+
engine_version: "68.0"
|
2315
2315
|
-
|
2316
2316
|
user_agent: Mozilla/5.0 (Linux; Android 7.0; SO-01H Build/32.3.E.0.136; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/64.0.3282.137 Mobile Safari/537.36 Sleipnir/3.5.7
|
2317
2317
|
client:
|
@@ -2401,7 +2401,7 @@
|
|
2401
2401
|
short_name: BH
|
2402
2402
|
version: "25.3.1"
|
2403
2403
|
engine: Gecko
|
2404
|
-
engine_version: ""
|
2404
|
+
engine_version: "25.3"
|
2405
2405
|
-
|
2406
2406
|
user_agent: Mozilla/5.0 (X11; U; Linux armv6l; rv 1.8.1.5pre) Gecko/20070619 Minimo/0.020
|
2407
2407
|
client:
|
@@ -2410,7 +2410,7 @@
|
|
2410
2410
|
short_name: MN
|
2411
2411
|
version: "0.020"
|
2412
2412
|
engine: Gecko
|
2413
|
-
engine_version: ""
|
2413
|
+
engine_version: "1.8.1.5"
|
2414
2414
|
-
|
2415
2415
|
user_agent: Mozilla/5.0 (Linux; Android 4.4; Moto 360 Build/KNX01S) AppleWebKit/537.36 (KHTML, like Gecko) WIB/0.9.8 Mobile Safari/537.36
|
2416
2416
|
client:
|
@@ -2590,7 +2590,7 @@
|
|
2590
2590
|
short_name: LH
|
2591
2591
|
version: "49.0"
|
2592
2592
|
engine: Gecko
|
2593
|
-
engine_version: ""
|
2593
|
+
engine_version: "49.0"
|
2594
2594
|
-
|
2595
2595
|
user_agent: Mozilla/5.0 (Linux; U; X11; en-US; Valve Steam GameOverlay/1586022601; ) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36
|
2596
2596
|
client:
|
@@ -2662,7 +2662,7 @@
|
|
2662
2662
|
short_name: S5
|
2663
2663
|
version: "2.4"
|
2664
2664
|
engine: Gecko
|
2665
|
-
engine_version: ""
|
2665
|
+
engine_version: "52.0"
|
2666
2666
|
-
|
2667
2667
|
user_agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Colibri/1.16.0 Chrome/78.0.3904.99 Electron/7.1.1 Safari/537.36
|
2668
2668
|
client:
|
@@ -2824,7 +2824,7 @@
|
|
2824
2824
|
short_name: ZV
|
2825
2825
|
version: 18.0.1
|
2826
2826
|
engine: Gecko
|
2827
|
-
engine_version: ""
|
2827
|
+
engine_version: "18.0"
|
2828
2828
|
|
2829
2829
|
- user_agent: Mozilla/5.0 (Linux; U; Android 10; zh-Hans-CN; CDY-TN00 Build/HUAWEICDY-TN00) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.108 Quark/4.1.2.133 Mobile Safari/537.36
|
2830
2830
|
client:
|
@@ -2834,3 +2834,30 @@
|
|
2834
2834
|
version: 4.1.2.133
|
2835
2835
|
engine: WebKit
|
2836
2836
|
engine_version: "537.36"
|
2837
|
+
-
|
2838
|
+
user_agent: Mozilla/5.0 (Android 8.1.0; Xiaomi Redmi Note 6 Pro) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36 BlueBrowser/3.0
|
2839
|
+
client:
|
2840
|
+
type: browser
|
2841
|
+
name: Blue Browser
|
2842
|
+
short_name: BU
|
2843
|
+
version: "3.0"
|
2844
|
+
engine: WebKit
|
2845
|
+
engine_version: "537.36"
|
2846
|
+
-
|
2847
|
+
user_agent: Mozilla/5.0 (Android 8.0.0; SM-J330F Build/R16NW) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3317.0 YaaniBrowser/4.3.0.153 (Turkcell-TR) Mobile Safari/537.36
|
2848
|
+
client:
|
2849
|
+
type: browser
|
2850
|
+
name: Yaani Browser
|
2851
|
+
short_name: YN
|
2852
|
+
version: 4.3.0.153
|
2853
|
+
engine: Blink
|
2854
|
+
engine_version: ""
|
2855
|
+
-
|
2856
|
+
user_agent: GOGGalaxyClient/2.0.20.39 (GOG Galaxy) 83b6745cff679691b69876bc7ee33e05e5d90bda (win10 x64)
|
2857
|
+
client:
|
2858
|
+
type: browser
|
2859
|
+
name: GOG Galaxy
|
2860
|
+
short_name: GO
|
2861
|
+
version: 2.0.20.39
|
2862
|
+
engine: ''
|
2863
|
+
engine_version: ''
|