device_detector 1.1.0 → 1.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +9 -0
- data/README.md +19 -17
- data/lib/device_detector/browser.rb +22 -2
- data/lib/device_detector/client_hint.rb +22 -7
- data/lib/device_detector/device.rb +231 -1
- data/lib/device_detector/os.rb +10 -2
- 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 +37 -5
- data/regexes/bots.yml +308 -17
- data/regexes/client/browsers.yml +82 -25
- data/regexes/client/feed_readers.yml +31 -23
- data/regexes/client/hints/apps.yml +22 -0
- data/regexes/client/hints/browsers.yml +20 -0
- data/regexes/client/libraries.yml +172 -24
- data/regexes/client/mediaplayers.yml +47 -0
- data/regexes/client/mobile_apps.yml +857 -39
- data/regexes/client/pim.yml +4 -0
- data/regexes/device/car_browsers.yml +1 -1
- data/regexes/device/consoles.yml +8 -4
- data/regexes/device/mobiles.yml +4945 -1234
- data/regexes/device/portable_media_player.yml +20 -4
- data/regexes/device/shell_tv.yml +5 -0
- data/regexes/device/televisions.yml +144 -6
- data/regexes/oss.yml +221 -107
- metadata +6 -4
@@ -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:
|
@@ -77,15 +77,25 @@ Wizz:
|
|
77
77
|
|
78
78
|
# Sonos (sonos.com)
|
79
79
|
SONOS:
|
80
|
-
regex: 'Sonos/.+\((?:ZP.+)\)|Sonos;'
|
80
|
+
regex: '(?:Sonos/.+\((?:ZP.+)\)|Sonos;)'
|
81
81
|
device: 'portable media player'
|
82
82
|
models:
|
83
83
|
- regex: '\((ZPS(?:[13569]|1[1-578]|2[03])|ZP90)\)'
|
84
84
|
model: '$1'
|
85
|
-
- regex: 'Sonos;
|
86
|
-
model: '
|
85
|
+
- regex: 'Sonos;Beam;'
|
86
|
+
model: 'Beam'
|
87
|
+
- regex: 'Sonos;Roam;'
|
88
|
+
model: 'Roam'
|
89
|
+
- regex: 'Sonos;Bookshelf;'
|
90
|
+
model: 'Bookshelf'
|
91
|
+
- regex: 'Sonos;Move;'
|
92
|
+
model: 'Move'
|
93
|
+
- regex: 'Sonos;Play(\d);'
|
94
|
+
model: 'Play:$1'
|
87
95
|
- regex: 'Sonos;One;'
|
88
96
|
model: 'One'
|
97
|
+
- regex: 'Sonos;OneSL'
|
98
|
+
model: 'OneSL'
|
89
99
|
|
90
100
|
# Shanling
|
91
101
|
Shanling:
|
@@ -100,3 +110,9 @@ Sylvania:
|
|
100
110
|
regex: '(SLTDVD102[34])'
|
101
111
|
device: 'portable media player'
|
102
112
|
model: '$1'
|
113
|
+
|
114
|
+
# KuGou
|
115
|
+
KuGou:
|
116
|
+
regex: 'KuGou[_ -](P5)'
|
117
|
+
device: 'portable media player'
|
118
|
+
model: '$1'
|
data/regexes/device/shell_tv.yml
CHANGED
@@ -38,6 +38,20 @@ Airties:
|
|
38
38
|
- regex: 'Altech UEC; ?([^);/]+)'
|
39
39
|
model: '$1'
|
40
40
|
|
41
|
+
# Altus (https://www.altus.com.tr/)
|
42
|
+
Altus:
|
43
|
+
regex: 'Altus[;,]'
|
44
|
+
device: 'tv'
|
45
|
+
model: ''
|
46
|
+
|
47
|
+
# Amazon
|
48
|
+
Amazon:
|
49
|
+
regex: 'Amazon.+AMZ'
|
50
|
+
device: 'tv'
|
51
|
+
models:
|
52
|
+
- regex: 'Amazon.+AMZ-([a-z0-9_ \-]+)_Build_'
|
53
|
+
model: '$1'
|
54
|
+
|
41
55
|
# AOC
|
42
56
|
AOC:
|
43
57
|
regex: 'AOC'
|
@@ -68,6 +82,12 @@ BangOlufsen:
|
|
68
82
|
device: 'tv'
|
69
83
|
model: 'BeoVision'
|
70
84
|
|
85
|
+
# Beko
|
86
|
+
Beko:
|
87
|
+
regex: 'Beko[;,]'
|
88
|
+
device: 'tv'
|
89
|
+
model: ''
|
90
|
+
|
71
91
|
# Blaupunkt
|
72
92
|
Blaupunkt:
|
73
93
|
regex: 'Blaupunkt_UMC[;,]'
|
@@ -96,18 +116,36 @@ Changhong:
|
|
96
116
|
- regex: 'Changhong; ?([^);/]+)'
|
97
117
|
model: '$1'
|
98
118
|
|
119
|
+
# CLAYTON
|
120
|
+
CLAYTON:
|
121
|
+
regex: 'CLAYTON[;,]'
|
122
|
+
device: 'tv'
|
123
|
+
model: ''
|
124
|
+
|
99
125
|
# CreNova
|
100
126
|
CreNova:
|
101
127
|
regex: 'CreNova'
|
102
128
|
device: 'tv'
|
103
129
|
model: 'CNV001'
|
104
130
|
|
131
|
+
# Daewoo
|
132
|
+
Daewoo:
|
133
|
+
regex: 'Daewoo[;,]'
|
134
|
+
device: 'tv'
|
135
|
+
model: ''
|
136
|
+
|
105
137
|
# Digihome
|
106
138
|
Digihome:
|
107
139
|
regex: 'DIGIHOME[;,]'
|
108
140
|
device: 'tv'
|
109
141
|
model: ''
|
110
142
|
|
143
|
+
# DIKOM
|
144
|
+
DIKOM:
|
145
|
+
regex: 'DIKOM[;,]'
|
146
|
+
device: 'tv'
|
147
|
+
model: ''
|
148
|
+
|
111
149
|
# DMM
|
112
150
|
DMM:
|
113
151
|
regex: 'DMM'
|
@@ -152,11 +190,13 @@ GoGEN:
|
|
152
190
|
|
153
191
|
# Grundig
|
154
192
|
Grundig:
|
155
|
-
regex: '(OWB|Grundig
|
193
|
+
regex: '(OWB|(?:Amazon.+)?Grundig)'
|
156
194
|
device: 'tv'
|
157
195
|
models:
|
158
196
|
- regex: 'G7'
|
159
197
|
model: 'G7'
|
198
|
+
- regex: 'Amazon.+Grundig-([a-z0-9_ \-]+)_Build_'
|
199
|
+
model: '$1'
|
160
200
|
|
161
201
|
# Haier
|
162
202
|
Haier:
|
@@ -292,9 +332,69 @@ Laurus:
|
|
292
332
|
device: 'tv'
|
293
333
|
model: ''
|
294
334
|
|
335
|
+
# Aiwa (https://eu-aiwa.com/)
|
336
|
+
Aiwa:
|
337
|
+
regex: 'LGE/SQY/RCA'
|
338
|
+
device: 'tv'
|
339
|
+
models:
|
340
|
+
- regex: 'LGE/SQY/RCA; ([a-z0-9]+);'
|
341
|
+
model: '$1'
|
342
|
+
|
343
|
+
# AXEN (https://www.axen.com.tr/)
|
344
|
+
AXEN:
|
345
|
+
regex: 'LGE/ATMACA/AXEN'
|
346
|
+
device: 'tv'
|
347
|
+
models:
|
348
|
+
- regex: 'LGE/ATMACA/AXEN; ([a-z0-9]+)-'
|
349
|
+
model: '$1'
|
350
|
+
|
351
|
+
# Dyon
|
352
|
+
Dyon:
|
353
|
+
regex: 'LGE/KONKA/DYON'
|
354
|
+
device: 'tv'
|
355
|
+
models:
|
356
|
+
- regex: 'SMART-32-X-EOS'
|
357
|
+
model: 'Smart 32 X-EOS'
|
358
|
+
|
359
|
+
# ONVO (https://onvo.com.tr/)
|
360
|
+
ONVO:
|
361
|
+
regex: '(?:SILICONPLAYER|XianYou)/ONVO'
|
362
|
+
device: 'tv'
|
363
|
+
models:
|
364
|
+
- regex: '(?:SILICONPLAYER|XianYou)/ONVO; ([a-z0-9]+);'
|
365
|
+
model: '$1'
|
366
|
+
|
367
|
+
# DIJITSU (http://dijitsu.com.tr/)
|
368
|
+
DIJITSU:
|
369
|
+
regex: 'LGE/SILICONPLAYER/DIJITSU'
|
370
|
+
device: 'tv'
|
371
|
+
models:
|
372
|
+
- regex: 'LGE/SILICONPLAYER/DIJITSU; ([a-z0-9]+);'
|
373
|
+
model: '$1'
|
374
|
+
|
375
|
+
# simfer (https://www.simfer.com.tr/)
|
376
|
+
simfer:
|
377
|
+
regex: 'LGE/WALTON/SIMFER'
|
378
|
+
device: 'tv'
|
379
|
+
models:
|
380
|
+
- regex: 'LGE/WALTON/SIMFER; ([a-z0-9]+);'
|
381
|
+
model: '$1'
|
382
|
+
|
383
|
+
# Sunny (https://www.sunny.com.tr/)
|
384
|
+
Sunny:
|
385
|
+
regex: '(?:ATMACA|XianYou)/SUNNY'
|
386
|
+
device: 'tv'
|
387
|
+
models:
|
388
|
+
- regex: '(?:ATMACA|XianYou)/SUNNY; ([a-z0-9]+)-'
|
389
|
+
model: '$1'
|
390
|
+
- regex: '(?:ATMACA|XianYou)/SUNNY.+(2018)\)'
|
391
|
+
model: 'Smart TV ($1)'
|
392
|
+
- regex: '(?:ATMACA|XianYou)/SUNNY;'
|
393
|
+
model: 'Smart TV'
|
394
|
+
|
295
395
|
# LG
|
296
396
|
LG:
|
297
|
-
regex: 'LGE'
|
397
|
+
regex: 'LGE ?;'
|
298
398
|
device: 'tv'
|
299
399
|
models:
|
300
400
|
- regex: 'XU43WT180N'
|
@@ -325,6 +425,8 @@ LG:
|
|
325
425
|
model: '$1'
|
326
426
|
- regex: 'LGE;? ?([0-9]{2}[A-Z]{2}[0-9]{2,4}[A-Z]?)'
|
327
427
|
model: '$1'
|
428
|
+
- regex: 'LGE;? ?([0-9]{2}QNED[0-9]{3}[A-Z]{2})'
|
429
|
+
model: '$1'
|
328
430
|
- regex: 'LM21U'
|
329
431
|
model: 'LM21U'
|
330
432
|
- regex: '32LM'
|
@@ -404,6 +506,12 @@ MTC:
|
|
404
506
|
- regex: '([24])K_Android_TV_V01'
|
405
507
|
model: '$1K Android TV'
|
406
508
|
|
509
|
+
# NEXT
|
510
|
+
NEXT:
|
511
|
+
regex: 'NEXT[;,]'
|
512
|
+
device: 'tv'
|
513
|
+
model: ''
|
514
|
+
|
407
515
|
# Nordmende
|
408
516
|
Nordmende:
|
409
517
|
regex: 'NORDMENDE[;,]'
|
@@ -416,6 +524,12 @@ Metz:
|
|
416
524
|
device: 'tv'
|
417
525
|
model: ''
|
418
526
|
|
527
|
+
# NORMANDE (https://normande.co.il/)
|
528
|
+
NORMANDE:
|
529
|
+
regex: 'NORMANDE[;,]'
|
530
|
+
device: 'tv'
|
531
|
+
model: ''
|
532
|
+
|
419
533
|
# Ok
|
420
534
|
Ok:
|
421
535
|
regex: 'OK[;,]'
|
@@ -462,7 +576,9 @@ Polaroid:
|
|
462
576
|
PROFiLO:
|
463
577
|
regex: 'PROFILO[;,]'
|
464
578
|
device: 'tv'
|
465
|
-
|
579
|
+
models:
|
580
|
+
- regex: 'Profilo[,;] ?((?! |HbbTV|MB130)[^),;/]+)'
|
581
|
+
model: '$1'
|
466
582
|
|
467
583
|
# Qilive
|
468
584
|
Qilive:
|
@@ -533,7 +649,7 @@ Sharp:
|
|
533
649
|
models:
|
534
650
|
- regex: 'SHARP, ([a-z0-9_ \-]+), (?:wired|wireless)'
|
535
651
|
model: ''
|
536
|
-
- regex: 'Sharp[,;] ?((?! |HbbTV)[^),;/]+)'
|
652
|
+
- regex: 'Sharp[,;] ?((?! |HbbTV|MB130)[^),;/]+)'
|
537
653
|
model: '$1'
|
538
654
|
- regex: '(LE[0-9]{3}[A-Z]{0,3})'
|
539
655
|
model: '$1'
|
@@ -638,11 +754,15 @@ Telefunken:
|
|
638
754
|
|
639
755
|
# TCL
|
640
756
|
TCL:
|
641
|
-
regex: 'TCL'
|
757
|
+
regex: '(?:Amazon.+)?TCL'
|
642
758
|
device: 'tv'
|
643
759
|
models:
|
644
760
|
- regex: '(32D1820|(?:39|55)D2900|32D2930|(?:32|43)S4900)'
|
645
761
|
model: '$1'
|
762
|
+
- regex: 'TCL[,;] ?((?! |HbbTV|MB130)[^),;/]+)'
|
763
|
+
model: '$1'
|
764
|
+
- regex: 'Amazon.+TCL-([a-z0-9_ \-]+)_Build_'
|
765
|
+
model: '$1'
|
646
766
|
|
647
767
|
# Thomson
|
648
768
|
Thomson:
|
@@ -674,13 +794,15 @@ TOKYO:
|
|
674
794
|
|
675
795
|
# Toshiba
|
676
796
|
Toshiba:
|
677
|
-
regex: 'Toshiba'
|
797
|
+
regex: '(?:Amazon.+)?Toshiba'
|
678
798
|
device: 'tv'
|
679
799
|
models:
|
680
800
|
- regex: '40L2600'
|
681
801
|
model: '40L2600'
|
682
802
|
- regex: '(([0-9]{2}|DTV_)[A-Z]{2}[0-9]{1,3})'
|
683
803
|
model: '$1'
|
804
|
+
- regex: 'Amazon.+Toshiba-([a-z0-9_ \-]+)_Build_'
|
805
|
+
model: '$1'
|
684
806
|
|
685
807
|
# Videoweb
|
686
808
|
Videoweb:
|
@@ -716,6 +838,22 @@ Vestel:
|
|
716
838
|
device: 'tv'
|
717
839
|
model: ''
|
718
840
|
|
841
|
+
# Arçelik
|
842
|
+
Arçelik:
|
843
|
+
regex: 'Arcelik'
|
844
|
+
device: 'tv'
|
845
|
+
model: ''
|
846
|
+
|
847
|
+
# Xiaomi
|
848
|
+
Xiaomi:
|
849
|
+
regex: 'Amazon.+Xiaomi'
|
850
|
+
device: 'tv'
|
851
|
+
models:
|
852
|
+
- regex: 'AFTANNA0'
|
853
|
+
model: 'F2 4K (2022)'
|
854
|
+
- regex: 'Amazon.+Xiaomi-([a-z0-9_ \-]+)_Build_'
|
855
|
+
model: '$1'
|
856
|
+
|
719
857
|
# Unknown
|
720
858
|
Unknown:
|
721
859
|
regex: 'OEM, ([a-z0-9_ \-]+), (?:wired|wireless)'
|