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.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +3 -0
  3. data/README.md +4 -4
  4. data/Rakefile +1 -0
  5. data/lib/device_detector/device.rb +5 -2
  6. data/lib/device_detector/version.rb +1 -1
  7. data/regexes/bots.yml +57 -3
  8. data/regexes/client/browsers.yml +22 -3
  9. data/regexes/client/libraries.yml +5 -0
  10. data/regexes/client/mobile_apps.yml +46 -0
  11. data/regexes/device/mobiles.yml +3414 -875
  12. data/regexes/device/notebooks.yml +114 -0
  13. data/regexes/device/televisions.yml +15 -1
  14. data/regexes/oss.yml +23 -28
  15. data/spec/device_detector/detector_fixtures_spec.rb +30 -35
  16. data/spec/fixtures/client/browser.yml +67 -40
  17. data/spec/fixtures/client/library.yml +6 -0
  18. data/spec/fixtures/client/mobile_app.yml +34 -1
  19. data/spec/fixtures/detector/bots.yml +88 -1
  20. data/spec/fixtures/detector/desktop.yml +1341 -347
  21. data/spec/fixtures/detector/mobile_apps.yml +85 -0
  22. data/spec/fixtures/detector/phablet.yml +1282 -122
  23. data/spec/fixtures/detector/portable_media_player.yml +40 -0
  24. data/spec/fixtures/detector/smartphone-1.yml +3512 -3533
  25. data/spec/fixtures/detector/smartphone-10.yml +3959 -3963
  26. data/spec/fixtures/detector/smartphone-11.yml +4089 -3965
  27. data/spec/fixtures/detector/smartphone-12.yml +4029 -4038
  28. data/spec/fixtures/detector/smartphone-13.yml +3792 -3800
  29. data/spec/fixtures/detector/smartphone-14.yml +8236 -963
  30. data/spec/fixtures/detector/smartphone-15.yml +6595 -0
  31. data/spec/fixtures/detector/smartphone-16.yml +10021 -0
  32. data/spec/fixtures/detector/smartphone-17.yml +9408 -0
  33. data/spec/fixtures/detector/smartphone-2.yml +3454 -3457
  34. data/spec/fixtures/detector/smartphone-3.yml +3873 -3869
  35. data/spec/fixtures/detector/smartphone-4.yml +4276 -4260
  36. data/spec/fixtures/detector/smartphone-5.yml +3581 -3558
  37. data/spec/fixtures/detector/smartphone-6.yml +3938 -3786
  38. data/spec/fixtures/detector/smartphone-7.yml +4044 -3968
  39. data/spec/fixtures/detector/smartphone-8.yml +4901 -4935
  40. data/spec/fixtures/detector/smartphone-9.yml +4255 -4274
  41. data/spec/fixtures/detector/smartphone.yml +3431 -3424
  42. data/spec/fixtures/detector/tablet-1.yml +3815 -3815
  43. data/spec/fixtures/detector/tablet-2.yml +3742 -3736
  44. data/spec/fixtures/detector/tablet-3.yml +3836 -3827
  45. data/spec/fixtures/detector/tablet-4.yml +2592 -7
  46. data/spec/fixtures/detector/tablet.yml +466 -466
  47. data/spec/fixtures/detector/tv.yml +401 -1
  48. data/spec/fixtures/detector/unknown.yml +17 -21
  49. data/spec/fixtures/device/notebook.yml +7 -0
  50. data/spec/fixtures/parser/oss.yml +7 -0
  51. 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|THOM'
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
 
@@ -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
- fail "Failed to parse #{fixture_file}, reason: #{e}"
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
- string
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 "should be detected" do
28
+ it 'should be detected' do
31
29
  if detector.bot?
32
- assert_equal str_or_nil(f["bot"]["name"]), detector.bot_name, "failed bot name detection"
30
+ assert_equal str_or_nil(f['bot']['name']), detector.bot_name, 'failed bot name detection'
33
31
  else
34
- if f["client"]
35
- assert_equal str_or_nil(f["client"]["name"]), detector.name, "failed client name detection"
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["os_family"])
39
- if os_family != "Unknown"
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, "failed os family detection"
39
+ assert_nil os.family, 'failed os family detection'
42
40
  else
43
- assert_equal os_family, os.family, "failed os family detection"
41
+ assert_equal os_family, os.family, 'failed os family detection'
44
42
  end
45
43
 
46
- name = str_or_nil(f["os"]["name"])
44
+ name = str_or_nil(f['os']['name'])
47
45
  if name.nil?
48
- assert_nil os.name, "failed os name detection"
46
+ assert_nil os.name, 'failed os name detection'
49
47
  else
50
- assert_equal name, os.name, "failed os name detection"
48
+ assert_equal name, os.name, 'failed os name detection'
51
49
  end
52
50
 
53
- short_name = str_or_nil(f["os"]["short_name"])
51
+ short_name = str_or_nil(f['os']['short_name'])
54
52
  if short_name.nil?
55
- assert_nil os.short_name, "failed os short name detection"
53
+ assert_nil os.short_name, 'failed os short name detection'
56
54
  else
57
- assert_equal short_name, os.short_name, "failed os short name detection"
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["os"]["version"])
58
+ os_version = str_or_nil(f['os']['version'])
61
59
  if os_version.nil?
62
- assert_nil os.full_version, "failed os version detection"
60
+ assert_nil os.full_version, 'failed os version detection'
63
61
  else
64
- assert_equal os_version, os.full_version, "failed os version detection"
62
+ assert_equal os_version, os.full_version, 'failed os version detection'
65
63
  end
66
64
  end
67
- if f["device"]
68
- expected_type = str_or_nil(f["device"]["type"])
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, "failed device type detection"
75
+ assert_nil actual_type, 'failed device type detection'
78
76
  else
79
- assert_equal expected_type, actual_type, "failed device type detection"
77
+ assert_equal expected_type, actual_type, 'failed device type detection'
80
78
  end
81
79
 
82
- model = str_or_nil(f["device"]["model"])
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, "failed device name detection"
84
+ assert_nil detector.device_name, 'failed device name detection'
87
85
  else
88
- assert_equal model, detector.device_name, "failed device name detection"
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: ''