device_detector 1.0.4 → 1.0.5
Sign up to get free protection for your applications and to get access to all the features.
- 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: ''
|