device_detector 1.1.0 → 1.1.1
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 +6 -0
- data/README.md +4 -4
- data/lib/device_detector/browser.rb +6 -0
- data/lib/device_detector/client_hint.rb +22 -7
- data/lib/device_detector/device.rb +231 -1
- data/lib/device_detector/parser.rb +25 -3
- data/lib/device_detector/vendor_fragment.rb +25 -0
- data/lib/device_detector/version.rb +1 -1
- data/lib/device_detector.rb +33 -2
- data/regexes/bots.yml +172 -10
- data/regexes/client/browsers.yml +35 -18
- data/regexes/client/hints/browsers.yml +5 -0
- data/regexes/client/libraries.yml +1 -1
- data/regexes/client/mobile_apps.yml +76 -2
- data/regexes/device/car_browsers.yml +1 -1
- data/regexes/device/consoles.yml +2 -2
- data/regexes/device/mobiles.yml +4333 -1090
- data/regexes/device/portable_media_player.yml +7 -1
- data/regexes/device/shell_tv.yml +5 -0
- data/regexes/oss.yml +71 -22
- metadata +4 -3
@@ -38,7 +38,7 @@ FiiO:
|
|
38
38
|
models:
|
39
39
|
- regex: 'M11 Plus LTD'
|
40
40
|
model: 'M11 Plus LTD'
|
41
|
-
- regex: 'M(1[
|
41
|
+
- regex: 'FiiO M(1[157]|6)'
|
42
42
|
model: 'M$1'
|
43
43
|
|
44
44
|
Microsoft:
|
@@ -100,3 +100,9 @@ Sylvania:
|
|
100
100
|
regex: '(SLTDVD102[34])'
|
101
101
|
device: 'portable media player'
|
102
102
|
model: '$1'
|
103
|
+
|
104
|
+
# KuGou
|
105
|
+
KuGou:
|
106
|
+
regex: 'KuGou[_ -](P5)'
|
107
|
+
device: 'portable media player'
|
108
|
+
model: '$1'
|
data/regexes/device/shell_tv.yml
CHANGED
data/regexes/oss.yml
CHANGED
@@ -5,6 +5,13 @@
|
|
5
5
|
# @license http://www.gnu.org/licenses/lgpl.html LGPL v3 or later
|
6
6
|
###############
|
7
7
|
|
8
|
+
##########
|
9
|
+
# RedOS (https://redos.red-soft.ru/)
|
10
|
+
##########
|
11
|
+
- regex: 'RED OS; Linux'
|
12
|
+
name: 'RedOS'
|
13
|
+
version: ''
|
14
|
+
|
8
15
|
##########
|
9
16
|
# RouterOS (https://help.mikrotik.com/docs/display/ROS/RouterOS)
|
10
17
|
##########
|
@@ -180,6 +187,9 @@
|
|
180
187
|
- regex: 'HarmonyOS(?:[/ ](\d+[\.\d]+))?'
|
181
188
|
name: 'HarmonyOS'
|
182
189
|
version: '$1'
|
190
|
+
- regex: 'Hmos/1'
|
191
|
+
name: 'HarmonyOS'
|
192
|
+
version: '1.0.0'
|
183
193
|
|
184
194
|
- regex: 'RazoDroiD(?: v(\d+[\.\d]*))?'
|
185
195
|
name: 'RazoDroiD'
|
@@ -261,7 +271,7 @@
|
|
261
271
|
name: 'Android TV'
|
262
272
|
version: '$1'
|
263
273
|
|
264
|
-
- regex: 'Android[; ](\d+[\.\d]*).+(?:Android|AT&T) TV'
|
274
|
+
- regex: 'Android[; ](\d+[\.\d]*).+(?:(?:Android|AT&T) TV|AOSP on r33a0)'
|
265
275
|
name: 'Android TV'
|
266
276
|
version: '$1'
|
267
277
|
|
@@ -272,30 +282,34 @@
|
|
272
282
|
##########
|
273
283
|
# Android SDK Level Api
|
274
284
|
##########
|
275
|
-
- regex: '\d+/tclwebkit(?:\d+[\.\d]*)'
|
285
|
+
- regex: '(?:Android API \d+|\d+/tclwebkit(?:\d+[\.\d]*))'
|
276
286
|
name: 'Android'
|
277
287
|
versions:
|
278
|
-
- regex: '
|
288
|
+
- regex: '(?:Android API 34|34/tclwebkit)'
|
289
|
+
version: '14'
|
290
|
+
- regex: '(?:Android API 33|33/tclwebkit)'
|
279
291
|
version: '13'
|
280
|
-
- regex: '
|
292
|
+
- regex: '(?:Android API 32|32/tclwebkit)'
|
293
|
+
version: '12.1'
|
294
|
+
- regex: '(?:Android API 31|31/tclwebkit)'
|
281
295
|
version: '12'
|
282
|
-
- regex: '30/tclwebkit'
|
296
|
+
- regex: '(?:Android API 30|30/tclwebkit)'
|
283
297
|
version: '11'
|
284
|
-
- regex: '29/tclwebkit'
|
298
|
+
- regex: '(?:Android API 29|29/tclwebkit)'
|
285
299
|
version: '10'
|
286
|
-
- regex: '28/tclwebkit'
|
300
|
+
- regex: '(?:Android API 28|28/tclwebkit)'
|
287
301
|
version: '9'
|
288
|
-
- regex: '27/tclwebkit'
|
302
|
+
- regex: '(?:Android API 27|27/tclwebkit)'
|
289
303
|
version: '8.1'
|
290
|
-
- regex: '26/tclwebkit'
|
304
|
+
- regex: '(?:Android API 26|26/tclwebkit)'
|
291
305
|
version: '8'
|
292
|
-
- regex: '25/tclwebkit'
|
306
|
+
- regex: '(?:Android API 25|25/tclwebkit)'
|
293
307
|
version: '7.1'
|
294
|
-
- regex: '24/tclwebkit'
|
308
|
+
- regex: '(?:Android API 24|24/tclwebkit)'
|
295
309
|
version: '7'
|
296
|
-
- regex: '23/tclwebkit'
|
310
|
+
- regex: '(?:Android API 23|23/tclwebkit)'
|
297
311
|
version: '6'
|
298
|
-
- regex: '22/tclwebkit'
|
312
|
+
- regex: '(?:Android API 22|22/tclwebkit)'
|
299
313
|
version: '5.1'
|
300
314
|
- regex: '21/tclwebkit'
|
301
315
|
version: '5'
|
@@ -319,7 +333,7 @@
|
|
319
333
|
name: 'Android'
|
320
334
|
version: '6'
|
321
335
|
|
322
|
-
- regex: '(?:Podbean|Podimo)(?:.*)/Android'
|
336
|
+
- regex: '(?:Podbean|Podimo)(?:.*)/Android|Rutube(?:TV)?BlackAndroid'
|
323
337
|
name: 'Android'
|
324
338
|
version: ''
|
325
339
|
|
@@ -705,11 +719,15 @@
|
|
705
719
|
##########
|
706
720
|
# tvOS (https://developer.apple.com/tvos/)
|
707
721
|
##########
|
708
|
-
- regex: 'Apple ?TV.*CPU (?:iPhone )?OS ((?:9|1[0-
|
722
|
+
- regex: 'Apple ?TV.*CPU (?:iPhone )?OS ((?:9|1[0-7])[_\.]\d+(?:[_.]\d+)*)'
|
723
|
+
name: 'tvOS'
|
724
|
+
version: '$1'
|
725
|
+
|
726
|
+
- regex: 'iOS(?:; |/)((?:9|1[0-7]).\d+(?:[_\.]\d+)*) (?:model/)?AppleTV'
|
709
727
|
name: 'tvOS'
|
710
728
|
version: '$1'
|
711
729
|
|
712
|
-
- regex: '
|
730
|
+
- regex: 'tvOS((?:9|1[0-7]).\d+(?:[_\.]\d+)*);'
|
713
731
|
name: 'tvOS'
|
714
732
|
version: '$1'
|
715
733
|
|
@@ -719,6 +737,9 @@
|
|
719
737
|
- regex: '(?:Watch1,[12]/|Watch OS,|watchOS[ /])(\d+[\.\d]*)'
|
720
738
|
name: 'watchOS'
|
721
739
|
version: '$1'
|
740
|
+
- regex: 'Apple Watch(?!;)'
|
741
|
+
name: 'watchOS'
|
742
|
+
version: ''
|
722
743
|
|
723
744
|
##########
|
724
745
|
# iPadOS (https://www.apple.com/ipados/)
|
@@ -727,7 +748,7 @@
|
|
727
748
|
name: 'iPadOS'
|
728
749
|
version: '$1.$2'
|
729
750
|
|
730
|
-
- regex: 'iPad
|
751
|
+
- regex: 'iPad(?:OS)?/(1[3-6]).(\d+[\.\d]*)'
|
731
752
|
name: 'iPadOS'
|
732
753
|
version: '$1.$2'
|
733
754
|
|
@@ -735,7 +756,7 @@
|
|
735
756
|
name: 'iPadOS'
|
736
757
|
version: '$1.$2'
|
737
758
|
|
738
|
-
- regex: 'iPad(?:; (?:iOS|iPhone OS)|.+CPU OS) ((1[3-6])+(?:[_\.]\d+)*)'
|
759
|
+
- regex: 'iPad(?:; (?:iOS|iPadOS|iPhone OS)|.+CPU OS) ((1[3-6])+(?:[_\.]\d+)*)'
|
739
760
|
name: 'iPadOS'
|
740
761
|
version: '$1'
|
741
762
|
|
@@ -770,9 +791,23 @@
|
|
770
791
|
name: 'iOS'
|
771
792
|
version: '$1'
|
772
793
|
|
773
|
-
- regex: '^(?!com.apple.Safari.SearchHelper).*CFNetwork/.+ Darwin/(\d+[\.\d]+)(?!.*(?:x86_64|i386|PowerMac|Power%20Macintosh))'
|
794
|
+
- regex: '^(?!com.apple.Safari.SearchHelper|Safari).*CFNetwork/.+ Darwin/(\d+[\.\d]+)(?!.*(?:x86_64|i386|PowerMac|Power%20Macintosh))'
|
774
795
|
name: 'iOS'
|
775
796
|
versions:
|
797
|
+
- regex: 'Darwin/23.0.0'
|
798
|
+
version: '17.0'
|
799
|
+
- regex: 'Darwin/22.6.0'
|
800
|
+
version: '16.6'
|
801
|
+
- regex: 'Darwin/22.5.0'
|
802
|
+
version: '16.5'
|
803
|
+
- regex: 'Darwin/22.4.0'
|
804
|
+
version: '16.4'
|
805
|
+
- regex: 'Darwin/22.3.0'
|
806
|
+
version: '16.3'
|
807
|
+
- regex: 'Darwin/22.2.0'
|
808
|
+
version: '16.2'
|
809
|
+
- regex: 'Darwin/22.1.0'
|
810
|
+
version: '16.1'
|
776
811
|
- regex: 'Darwin/22.0.0'
|
777
812
|
version: '16.0'
|
778
813
|
- regex: 'Darwin/21.6.0'
|
@@ -979,9 +1014,23 @@
|
|
979
1014
|
##########
|
980
1015
|
# Mac
|
981
1016
|
##########
|
982
|
-
- regex: 'CFNetwork/.+ Darwin/(?:[\d\.]+).+(?:x86_64|i386|Power%20Macintosh)|(?:x86_64-apple-)?darwin(?:[\d\.]+)|PowerMac|com.apple.Safari.SearchHelper'
|
1017
|
+
- regex: 'CFNetwork/.+ Darwin/(?:[\d\.]+).+(?:x86_64|i386|Power%20Macintosh)|(?:x86_64-apple-)?darwin(?:[\d\.]+)|PowerMac|com.apple.Safari.SearchHelper|^Safari'
|
983
1018
|
name: 'Mac'
|
984
1019
|
versions:
|
1020
|
+
- regex: '(?:x86_64-apple-)?Darwin/?23.0.0'
|
1021
|
+
version: '14.0'
|
1022
|
+
- regex: '(?:x86_64-apple-)?Darwin/?22.6.0'
|
1023
|
+
version: '13.5'
|
1024
|
+
- regex: '(?:x86_64-apple-)?Darwin/?22.5.0'
|
1025
|
+
version: '13.4'
|
1026
|
+
- regex: '(?:x86_64-apple-)?Darwin/?22.4.0'
|
1027
|
+
version: '13.3'
|
1028
|
+
- regex: '(?:x86_64-apple-)?Darwin/?22.3.0'
|
1029
|
+
version: '13.2'
|
1030
|
+
- regex: '(?:x86_64-apple-)?Darwin/?22.2.0'
|
1031
|
+
version: '13.1'
|
1032
|
+
- regex: '(?:x86_64-apple-)?Darwin/?22.1.0'
|
1033
|
+
version: '13.0.1'
|
985
1034
|
- regex: '(?:x86_64-apple-)?Darwin/?22.0.0'
|
986
1035
|
version: '13.0'
|
987
1036
|
- regex: '(?:x86_64-apple-)?Darwin/?21.6.0'
|
@@ -1206,9 +1255,9 @@
|
|
1206
1255
|
##########
|
1207
1256
|
# BeOS
|
1208
1257
|
##########
|
1209
|
-
- regex: 'BeOS'
|
1258
|
+
- regex: 'BeOS[ +]?(\d[.\d]*)?'
|
1210
1259
|
name: 'BeOS'
|
1211
|
-
version: ''
|
1260
|
+
version: '$1'
|
1212
1261
|
|
1213
1262
|
##########
|
1214
1263
|
# Symbian
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: device_detector
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mati Sójka
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2023-08-07 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: minitest
|
@@ -90,6 +90,7 @@ files:
|
|
90
90
|
- lib/device_detector/name_extractor.rb
|
91
91
|
- lib/device_detector/os.rb
|
92
92
|
- lib/device_detector/parser.rb
|
93
|
+
- lib/device_detector/vendor_fragment.rb
|
93
94
|
- lib/device_detector/version.rb
|
94
95
|
- lib/device_detector/version_extractor.rb
|
95
96
|
- regexes/bots.yml
|
@@ -131,7 +132,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
131
132
|
- !ruby/object:Gem::Version
|
132
133
|
version: '0'
|
133
134
|
requirements: []
|
134
|
-
rubygems_version: 3.
|
135
|
+
rubygems_version: 3.4.10
|
135
136
|
signing_key:
|
136
137
|
specification_version: 4
|
137
138
|
summary: Precise and fast user agent parser and device detector
|