device_detector 1.0.0 → 1.1.3

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 (89) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +58 -4
  3. data/README.md +57 -21
  4. data/lib/device_detector/bot.rb +2 -2
  5. data/lib/device_detector/browser.rb +691 -0
  6. data/lib/device_detector/client.rb +11 -2
  7. data/lib/device_detector/client_hint.rb +249 -0
  8. data/lib/device_detector/device.rb +1954 -23
  9. data/lib/device_detector/memory_cache.rb +26 -19
  10. data/lib/device_detector/metadata_extractor.rb +7 -8
  11. data/lib/device_detector/model_extractor.rb +3 -3
  12. data/lib/device_detector/name_extractor.rb +2 -2
  13. data/lib/device_detector/os.rb +289 -112
  14. data/lib/device_detector/parser.rb +49 -13
  15. data/lib/device_detector/vendor_fragment.rb +25 -0
  16. data/lib/device_detector/version.rb +3 -1
  17. data/lib/device_detector/version_extractor.rb +29 -2
  18. data/lib/device_detector.rb +192 -44
  19. data/regexes/bots.yml +3399 -91
  20. data/regexes/client/browser_engine.yml +28 -4
  21. data/regexes/client/browsers.yml +2697 -408
  22. data/regexes/client/feed_readers.yml +60 -22
  23. data/regexes/client/hints/apps.yml +150 -0
  24. data/regexes/client/hints/browsers.yml +292 -0
  25. data/regexes/client/libraries.yml +598 -4
  26. data/regexes/client/mediaplayers.yml +110 -5
  27. data/regexes/client/mobile_apps.yml +2451 -14
  28. data/regexes/client/pim.yml +128 -3
  29. data/regexes/device/cameras.yml +6 -6
  30. data/regexes/device/car_browsers.yml +39 -3
  31. data/regexes/device/consoles.yml +40 -6
  32. data/regexes/device/mobiles.yml +38844 -2907
  33. data/regexes/device/notebooks.yml +127 -0
  34. data/regexes/device/portable_media_player.yml +75 -12
  35. data/regexes/device/shell_tv.yml +145 -0
  36. data/regexes/device/televisions.yml +981 -40
  37. data/regexes/oss.yml +1560 -311
  38. data/regexes/vendorfragments.yml +6 -2
  39. metadata +31 -105
  40. data/.gitignore +0 -14
  41. data/.travis.yml +0 -18
  42. data/Gemfile +0 -8
  43. data/Rakefile +0 -79
  44. data/device_detector.gemspec +0 -26
  45. data/spec/device_detector/bot_fixtures_spec.rb +0 -30
  46. data/spec/device_detector/client_fixtures_spec.rb +0 -31
  47. data/spec/device_detector/concrete_user_agent_spec.rb +0 -136
  48. data/spec/device_detector/detector_fixtures_spec.rb +0 -60
  49. data/spec/device_detector/device_fixtures_spec.rb +0 -36
  50. data/spec/device_detector/device_spec.rb +0 -151
  51. data/spec/device_detector/memory_cache_spec.rb +0 -116
  52. data/spec/device_detector/model_extractor_spec.rb +0 -63
  53. data/spec/device_detector/os_fixtures_spec.rb +0 -26
  54. data/spec/device_detector/version_extractor_spec.rb +0 -80
  55. data/spec/device_detector_spec.rb +0 -198
  56. data/spec/fixtures/client/browser.yml +0 -1313
  57. data/spec/fixtures/client/feed_reader.yml +0 -187
  58. data/spec/fixtures/client/library.yml +0 -84
  59. data/spec/fixtures/client/mediaplayer.yml +0 -168
  60. data/spec/fixtures/client/mobile_app.yml +0 -30
  61. data/spec/fixtures/client/pim.yml +0 -96
  62. data/spec/fixtures/detector/bots.yml +0 -2418
  63. data/spec/fixtures/detector/camera.yml +0 -115
  64. data/spec/fixtures/detector/car_browser.yml +0 -20
  65. data/spec/fixtures/detector/console.yml +0 -267
  66. data/spec/fixtures/detector/desktop.yml +0 -4828
  67. data/spec/fixtures/detector/feature_phone.yml +0 -782
  68. data/spec/fixtures/detector/feed_reader.yml +0 -486
  69. data/spec/fixtures/detector/mediaplayer.yml +0 -179
  70. data/spec/fixtures/detector/mobile_apps.yml +0 -149
  71. data/spec/fixtures/detector/phablet.yml +0 -2140
  72. data/spec/fixtures/detector/portable_media_player.yml +0 -153
  73. data/spec/fixtures/detector/smart_display.yml +0 -58
  74. data/spec/fixtures/detector/smartphone-1.yml +0 -9469
  75. data/spec/fixtures/detector/smartphone-2.yml +0 -9414
  76. data/spec/fixtures/detector/smartphone-3.yml +0 -9396
  77. data/spec/fixtures/detector/smartphone-4.yml +0 -5742
  78. data/spec/fixtures/detector/smartphone.yml +0 -9411
  79. data/spec/fixtures/detector/tablet-1.yml +0 -9495
  80. data/spec/fixtures/detector/tablet-2.yml +0 -248
  81. data/spec/fixtures/detector/tablet.yml +0 -9484
  82. data/spec/fixtures/detector/tv.yml +0 -2582
  83. data/spec/fixtures/detector/unknown.yml +0 -3196
  84. data/spec/fixtures/device/camera.yml +0 -18
  85. data/spec/fixtures/device/car_browser.yml +0 -6
  86. data/spec/fixtures/device/console.yml +0 -78
  87. data/spec/fixtures/parser/oss.yml +0 -800
  88. data/spec/fixtures/parser/vendorfragments.yml +0 -162
  89. data/spec/spec_helper.rb +0 -9
@@ -1,7 +1,7 @@
1
1
  ###############
2
2
  # Device Detector - The Universal Device Detection library for parsing User Agents
3
3
  #
4
- # @link http://piwik.org
4
+ # @link https://matomo.org
5
5
  # @license http://www.gnu.org/licenses/lgpl.html LGPL v3 or later
6
6
  #
7
7
  # ATTENTION: This file may only include tv user agents that contain 'HbbTV/([1-9]{1}(\.[0-9]{1}){1,2})'
@@ -16,6 +16,22 @@ Airties:
16
16
  - regex: 'Airties; ?([^);/]+)'
17
17
  model: '$1'
18
18
 
19
+ # ALDI NORD
20
+ 'ALDI NORD':
21
+ regex: 'ALDINORD[;,]'
22
+ device: 'tv'
23
+ models:
24
+ - regex: '_TV_[A-Z0-9]+_([0-9]{4});'
25
+ model: 'Smart TV ($1)'
26
+
27
+ # ALDI SÜD
28
+ 'ALDI SÜD':
29
+ regex: 'ALDISUED[;,]'
30
+ device: 'tv'
31
+ models:
32
+ - regex: 'ALDISUED, ([a-z0-9_ \-]+), (?:wired|wireless)'
33
+ model: ''
34
+
19
35
  # Altech UEC
20
36
  'Altech UEC':
21
37
  regex: 'Altech UEC'
@@ -24,12 +40,116 @@ Airties:
24
40
  - regex: 'Altech UEC; ?([^);/]+)'
25
41
  model: '$1'
26
42
 
43
+ # Altus (https://www.altus.com.tr/)
44
+ Altus:
45
+ regex: 'Altus[;,]'
46
+ device: 'tv'
47
+ model: ''
48
+
49
+ # Amazon
50
+ Amazon:
51
+ regex: 'Amazon.+AMZ'
52
+ device: 'tv'
53
+ models:
54
+ - regex: 'Amazon.+AMZ-([a-z0-9_ \-]+)_Build_'
55
+ model: '$1'
56
+
57
+ # AOC
58
+ AOC:
59
+ regex: 'AOC'
60
+ device: 'tv'
61
+ models:
62
+ - regex: '(LE43S5970-20|S50856)'
63
+ model: '$1'
64
+
65
+ # ARRIS
66
+ ARRIS:
67
+ regex: 'ARRIS[;,]'
68
+ device: 'tv'
69
+ models:
70
+ - regex: 'FS-ARS-01B'
71
+ model: 'FS-ARS-01B'
72
+
73
+ # Atlantic Electrics (https://www.atlanticelectrics.co.uk/)
74
+ Atlantic Electrics:
75
+ regex: 'ATLANTIC[;,]'
76
+ device: 'tv'
77
+ models:
78
+ - regex: '_TV_[A-Z0-9]+_([0-9]{4});'
79
+ model: 'Smart TV ($1)'
80
+
81
+ # Atvio
82
+ Atvio:
83
+ regex: 'ATVIO'
84
+ device: 'tv'
85
+ models:
86
+ - regex: '55D1620'
87
+ model: '55D1620'
88
+
89
+ # AWOX (https://www.awox.com.tr/)
90
+ AWOX:
91
+ regex: 'LGE/XianYou/AWOX'
92
+ device: 'tv'
93
+ models:
94
+ - regex: 'LGE/XianYou/AWOX; ([a-z0-9]+);'
95
+ model: '$1'
96
+
97
+ # AYA
98
+ AYA:
99
+ regex: 'AYA[;,]'
100
+ device: 'tv'
101
+ models:
102
+ - regex: '_TV_[A-Z0-9]+_([0-9]{4});'
103
+ model: 'Smart TV ($1)'
104
+
27
105
  # BangOlufsen
28
106
  BangOlufsen:
29
107
  regex: 'Bangolufsen'
30
108
  device: 'tv'
31
109
  model: 'BeoVision'
32
110
 
111
+ # Beko
112
+ Beko:
113
+ regex: 'Beko[;,]'
114
+ device: 'tv'
115
+ model: ''
116
+
117
+ # Blaupunkt
118
+ Blaupunkt:
119
+ regex: 'Blaupunkt_UMC[;,]'
120
+ device: 'tv'
121
+ models:
122
+ - regex: 'LC-65CUG8052E'
123
+ model: 'LC-65CUG8052E'
124
+
125
+ # Botech (https://botechgroupcompanies.com/en/homepage/)
126
+ Botech:
127
+ regex: 'Botech[;,]'
128
+ device: 'tv'
129
+ models:
130
+ - regex: '(ATV R[12])'
131
+ model: '$1'
132
+
133
+ # Bush
134
+ Bush:
135
+ regex: 'BUSH[;,]'
136
+ device: 'tv'
137
+ model: ''
138
+
139
+ # Cecotec (https://cecotec.es/)
140
+ Cecotec:
141
+ regex: 'CECOTEC[;,]'
142
+ device: 'tv'
143
+ models:
144
+ - regex: '_TV_[A-Z0-9]+_([0-9]{4});'
145
+ model: 'Smart TV ($1)'
146
+
147
+ # Celcus
148
+ Celcus:
149
+ regex: 'CELCUS[;,]'
150
+ device: 'tv'
151
+ model: ''
152
+
33
153
  # Changhong
34
154
  Changhong:
35
155
  regex: 'Changhong'
@@ -38,43 +158,263 @@ Changhong:
38
158
  - regex: 'Changhong; ?([^);/]+)'
39
159
  model: '$1'
40
160
 
161
+ # CLAYTON
162
+ CLAYTON:
163
+ regex: 'CLAYTON[;,]'
164
+ device: 'tv'
165
+ models:
166
+ - regex: '_TV_[A-Z0-9]+_([0-9]{4});'
167
+ model: 'Smart TV ($1)'
168
+
169
+ # Continental Edison (https://www.continentaledison.fr/en/)
170
+ Continental Edison:
171
+ regex: 'CONTINENTAL_EDI[;,]'
172
+ device: 'tv'
173
+ models:
174
+ - regex: '_TV_[A-Z0-9]+_([0-9]{4});'
175
+ model: 'Smart TV ($1)'
176
+
41
177
  # CreNova
42
178
  CreNova:
43
179
  regex: 'CreNova'
44
180
  device: 'tv'
45
181
  model: 'CNV001'
46
182
 
183
+ # Crown (https://www.crownindiatv.com/)
184
+ Crown:
185
+ regex: 'CROWN[;,]'
186
+ device: 'tv'
187
+ models:
188
+ - regex: '_TV_[A-Z0-9]+_([0-9]{4});'
189
+ model: 'Smart TV ($1)'
190
+
191
+ # Daewoo
192
+ Daewoo:
193
+ regex: 'Daewoo[;,]'
194
+ device: 'tv'
195
+ models:
196
+ - regex: '_TV_[A-Z0-9]+_([0-9]{4});'
197
+ model: 'Smart TV ($1)'
198
+
199
+ # Digihome
200
+ Digihome:
201
+ regex: 'DIGIHOME[;,]'
202
+ device: 'tv'
203
+ model: ''
204
+
205
+ # DIKOM
206
+ DIKOM:
207
+ regex: 'DIKOM[;,]'
208
+ device: 'tv'
209
+ models:
210
+ - regex: '_TV_[A-Z0-9]+_([0-9]{4});'
211
+ model: 'Smart TV ($1)'
212
+
213
+ # DIORA (https://dioraghana.com/)
214
+ DIORA:
215
+ regex: 'DIORA[;,]'
216
+ device: 'tv'
217
+ models:
218
+ - regex: '_TV_[A-Z0-9]+_([0-9]{4});'
219
+ model: 'Smart TV ($1)'
220
+
47
221
  # DMM
48
222
  DMM:
49
223
  regex: 'DMM'
50
224
  device: 'tv'
51
225
  model: 'Dreambox'
52
226
 
227
+ # Elektroland (https://www.elektroland.at/)
228
+ Elektroland:
229
+ regex: 'ELEKTROLAND[;,]'
230
+ device: 'tv'
231
+ models:
232
+ - regex: '_TV_[A-Z0-9]+_([0-9]{4});'
233
+ model: 'Smart TV ($1)'
234
+
235
+ # ELECTRONIA
236
+ ELECTRONIA:
237
+ regex: 'ELECTRONIA[;,]'
238
+ device: 'tv'
239
+ model: ''
240
+
241
+ # Essentielb
242
+ Essentielb:
243
+ regex: 'ESSENTIELB[;,]'
244
+ device: 'tv'
245
+ models:
246
+ - regex: '_TV_[A-Z0-9]+_([0-9]{4});'
247
+ model: 'Smart TV ($1)'
248
+
249
+ # Express LUCK (https://www.expressluck.com/)
250
+ Express LUCK:
251
+ regex: 'Expressluck[;,]'
252
+ device: 'tv'
253
+ models:
254
+ - regex: '([24]K)TV'
255
+ model: '$1 TV'
256
+
257
+ # Finlux
258
+ Finlux:
259
+ regex: 'FINLUX[;,]'
260
+ device: 'tv'
261
+ models:
262
+ - regex: '_TV_[A-Z0-9]+_([0-9]{4});'
263
+ model: 'Smart TV ($1)'
264
+
265
+ # F&U (https://www.fandu.gr/)
266
+ 'F&U':
267
+ regex: 'FU[;,]'
268
+ device: 'tv'
269
+ models:
270
+ - regex: '_TV_[A-Z0-9]+_([0-9]{4});'
271
+ model: 'Smart TV ($1)'
272
+
273
+ # Fuego
274
+ Fuego:
275
+ regex: 'FUEGO[;,]'
276
+ device: 'tv'
277
+ models:
278
+ - regex: '_TV_[A-Z0-9]+_([0-9]{4});'
279
+ model: 'Smart TV ($1)'
280
+
281
+ # GoGEN (https://www.gogen.cz/)
282
+ GoGEN:
283
+ regex: 'GOGEN[;,]'
284
+ device: 'tv'
285
+ model: ''
286
+
53
287
  # Grundig
54
288
  Grundig:
55
- regex: '(OWB|Grundig|Arcelik)'
289
+ regex: '(OWB|(?:Amazon.+)?Grundig)'
290
+ device: 'tv'
291
+ models:
292
+ - regex: 'G7'
293
+ model: 'G7'
294
+ - regex: 'Amazon.+Grundig-([a-z0-9_ \-]+)_Build_'
295
+ model: '$1'
296
+
297
+ # Haier
298
+ Haier:
299
+ regex: '(?:HHW_)?HAIER'
300
+ device: 'tv'
301
+ models:
302
+ - regex: 'LE55X7000U'
303
+ model: 'LE55X7000U'
304
+
305
+ # Hanseatic
306
+ Hanseatic:
307
+ regex: 'HANSEATIC[;,]'
308
+ device: 'tv'
309
+ models:
310
+ - regex: '_TV_[A-Z0-9]+_([0-9]{4});'
311
+ model: 'Smart TV ($1)'
312
+
313
+ # Hi-Level
314
+ Hi-Level:
315
+ regex: 'HI-LEVEL[;,]'
316
+ device: 'tv'
317
+ models:
318
+ - regex: '_TV_[A-Z0-9]+_([0-9]{4});'
319
+ model: 'Smart TV ($1)'
320
+
321
+ # Hisense
322
+ Hisense:
323
+ regex: 'Hisense|Eurofins_Digital_Testing'
324
+ device: 'tv'
325
+ models:
326
+ - regex: '32A35EEVS'
327
+ model: '32A35EEVS'
328
+ - regex: '40A35EEVS'
329
+ model: '40A35EEVS'
330
+ - regex: '50ADEVTOOL'
331
+ model: '50ADEVTOOL'
332
+ - regex: '50A53FEVS'
333
+ model: '50A53FEVS'
334
+ - regex: '50A683FEVS'
335
+ model: '50A683FEVS'
336
+ - regex: '55A6100EE'
337
+ model: '55A6100EE'
338
+ - regex: '55A69FEVS'
339
+ model: '55A69FEVS'
340
+ - regex: '55U62QGAVT'
341
+ model: '55U62QGAVT'
342
+ - regex: '50A6502EA'
343
+ model: '50A6502EA'
344
+ - regex: '50A60GEVS'
345
+ model: '50A60GEVS'
346
+ - regex: '75U9KAAT'
347
+ model: '75U9KAAT'
348
+ - regex: 'MICALIDVB6886'
349
+ model: 'MICALIDVB6886'
350
+ - regex: '(L[A-Z]{2,3}[0-9]{2}[A-Z][0-9]{3,4}[A-Z]{0,6}[0-9]?[A-Z]?)'
351
+ model: '$1'
352
+ - regex: '(H[A-Z]?[0-9]{2}[A-Z][0-9]{3,4}[A-Z]{0,4})'
353
+ model: '$1'
354
+
355
+ # Hitachi
356
+ Hitachi:
357
+ regex: 'Hitachi[;,]'
358
+ device: 'tv'
359
+ models:
360
+ - regex: '49D2900'
361
+ model: '49D2900'
362
+ - regex: '_TV_[A-Z0-9]+_([0-9]{4});'
363
+ model: 'Smart TV ($1)'
364
+
365
+ # HOFER (https://www.hofer.at/)
366
+ HOFER:
367
+ regex: 'HOFER[;,]'
368
+ device: 'tv'
369
+ models:
370
+ - regex: '_TV_[A-Z0-9]+_([0-9]{4});'
371
+ model: 'Smart TV ($1)'
372
+
373
+ # Horizon
374
+ Horizon:
375
+ regex: 'HORIZON[;,]'
376
+ device: 'tv'
377
+ models:
378
+ - regex: '_TV_[A-Z0-9]+_([0-9]{4});'
379
+ model: 'Smart TV ($1)'
380
+
381
+ # Hotel
382
+ Hotel:
383
+ regex: 'HOTEL[;,]'
56
384
  device: 'tv'
57
385
  model: ''
58
386
 
59
387
  # Humax
60
388
  Humax:
61
- regex: 'Humax'
389
+ regex: 'Humax|hdr1000s'
62
390
  device: 'tv'
63
391
  models:
64
392
  - regex: '(HD-FOX C|HD (FOX\+|NANO)|iCord (HD\+|MINI|Cable)|(CX|IR)HD-5100(C|S)|HM9503HD)'
65
393
  model: '$1'
66
394
  - regex: 'HMS1000S'
67
395
  model: 'HMS-1000S'
396
+ - regex: 'FVP4000T'
397
+ model: 'FVP-4000T'
398
+ - regex: 'HGS1000S'
399
+ model: 'HGS-1000S'
400
+ - regex: 'HDR1000S'
401
+ model: 'HDR-1000S'
402
+ - regex: 'HDR4000T'
403
+ model: 'HDR-4000T'
68
404
  - regex: 'Humax; ([^);/]+)'
69
405
  model: '$1'
70
406
 
407
+ # Hyundai
408
+ Hyundai:
409
+ regex: 'HYUNDAI[;,]'
410
+ device: 'tv'
411
+ model: ''
412
+
71
413
  # IKEA
72
414
  Ikea:
73
415
  regex: 'Ikea'
74
416
  device: 'tv'
75
- models:
76
- - regex: '(LF1V[0-9]{3})'
77
- model: '$1'
417
+ model: ''
78
418
 
79
419
  # Intek
80
420
  Intek:
@@ -94,25 +434,229 @@ Inverto:
94
434
  - regex: '(Volksbox Web Edition|Volksbox Essential|Volksbox II|Volksbox)'
95
435
  model: '$1'
96
436
 
437
+ # JVC
438
+ JVC:
439
+ regex: 'AFTSO001|JVC[;,]'
440
+ device: 'tv'
441
+ models:
442
+ - regex: 'AFTSO001'
443
+ model: '4K (2019)'
444
+
445
+ # Kalley
446
+ Kalley:
447
+ regex: 'KALLEY[;,]'
448
+ device: 'tv'
449
+ models:
450
+ - regex: '32D1620'
451
+ model: '32D1620'
452
+
453
+ # Kendo
454
+ Kendo:
455
+ regex: 'KENDO[;,]'
456
+ device: 'tv'
457
+ models:
458
+ - regex: '_TV_[A-Z0-9]+_([0-9]{4});'
459
+ model: 'Smart TV ($1)'
460
+
461
+ # KUBO
462
+ KUBO:
463
+ regex: 'KUBO[;,]'
464
+ device: 'tv'
465
+ model: ''
466
+
467
+ # Laurus
468
+ Laurus:
469
+ regex: 'LAURUS[;,]'
470
+ device: 'tv'
471
+ models:
472
+ - regex: '_TV_[A-Z0-9]+_([0-9]{4});'
473
+ model: 'Smart TV ($1)'
474
+
475
+ # Aiwa (https://eu-aiwa.com/)
476
+ Aiwa:
477
+ regex: 'LGE/SQY/RCA'
478
+ device: 'tv'
479
+ models:
480
+ - regex: 'LGE/SQY/RCA; ([a-z0-9]+);'
481
+ model: '$1'
482
+
483
+ # AXEN (https://www.axen.com.tr/)
484
+ AXEN:
485
+ regex: 'LGE/ATMACA/AXEN'
486
+ device: 'tv'
487
+ models:
488
+ - regex: 'LGE/ATMACA/AXEN; ([a-z0-9]+)-'
489
+ model: '$1'
490
+
491
+ # Dyon
492
+ Dyon:
493
+ regex: 'LGE/KONKA/DYON'
494
+ device: 'tv'
495
+ models:
496
+ - regex: 'SMART-32-X-EOS'
497
+ model: 'Smart 32 X-EOS'
498
+
499
+ # EAS Electric (https://easelectric.es/)
500
+ EAS Electric:
501
+ regex: 'EAS_ELECTRIC[;,]'
502
+ device: 'tv'
503
+ models:
504
+ - regex: '_TV_[A-Z0-9]+_([0-9]{4});'
505
+ model: 'Smart TV ($1)'
506
+
507
+ # Edenwood
508
+ Edenwood:
509
+ regex: 'EDENWOOD[;,]'
510
+ device: 'tv'
511
+ models:
512
+ - regex: '_TV_[A-Z0-9]+_([0-9]{4});'
513
+ model: 'Smart TV ($1)'
514
+
515
+ # ONVO (https://onvo.com.tr/)
516
+ ONVO:
517
+ regex: '(?:SILICONPLAYER|XianYou)/ONVO'
518
+ device: 'tv'
519
+ models:
520
+ - regex: '(?:SILICONPLAYER|XianYou)/ONVO; ([a-z0-9]+);'
521
+ model: '$1'
522
+
523
+ # DIJITSU (http://dijitsu.com.tr/)
524
+ DIJITSU:
525
+ regex: 'LGE/SILICONPLAYER/DIJITSU'
526
+ device: 'tv'
527
+ models:
528
+ - regex: 'LGE/SILICONPLAYER/DIJITSU; ([a-z0-9]+);'
529
+ model: '$1'
530
+
531
+ # simfer (https://www.simfer.com.tr/)
532
+ simfer:
533
+ regex: 'LGE/WALTON/SIMFER'
534
+ device: 'tv'
535
+ models:
536
+ - regex: 'LGE/WALTON/SIMFER; ([a-z0-9]+);'
537
+ model: '$1'
538
+
539
+ # Sunny (https://www.sunny.com.tr/)
540
+ Sunny:
541
+ regex: '(?:ATMACA|XianYou)/SUNNY'
542
+ device: 'tv'
543
+ models:
544
+ - regex: '(?:ATMACA|XianYou)/SUNNY; ([a-z0-9]+)-'
545
+ model: '$1'
546
+ - regex: '(?:ATMACA|XianYou)/SUNNY.+(2018)\)'
547
+ model: 'Smart TV ($1)'
548
+ - regex: '(?:ATMACA|XianYou)/SUNNY;'
549
+ model: 'Smart TV'
550
+
551
+ # Kydos
552
+ Kydos:
553
+ regex: 'KYDOS[;,]'
554
+ device: 'tv'
555
+ models:
556
+ - regex: '_TV_[A-Z0-9]+_([0-9]{4});'
557
+ model: 'Smart TV ($1)'
558
+
559
+ # Skytech (https://skytech.com.tr/)
560
+ Skytech:
561
+ regex: 'LGE/WALTON/SKYTECH'
562
+ device: 'tv'
563
+ models:
564
+ - regex: 'LGE/WALTON/SKYTECH; ([a-z0-9-]+);'
565
+ model: '$1'
566
+
97
567
  # LG
98
568
  LG:
99
- regex: 'LGE'
569
+ regex: 'LGE ?;'
100
570
  device: 'tv'
101
571
  models:
102
- - regex: '(NetCast [0-9]{1}.[0-9]{1}|GLOBAL_PLAT3)'
572
+ - regex: 'XU43WT180N'
573
+ model: 'XU43WT180N'
574
+ - regex: '43LJ614V-ZA'
575
+ model: '43LJ614V-ZA'
576
+ - regex: '55SK850V-ZA'
577
+ model: '55SK850V-ZA'
578
+ - regex: 'KEY0000213F1z'
579
+ model: 'KEY0000213F1z'
580
+ - regex: 'KEY0000213F'
581
+ model: 'KEY0000213F'
582
+ - regex: 'KEY000000(2E|2F|3B|3F)'
583
+ model: 'KEY000000$1'
584
+ - regex: '(NetCast [0-9]{1}\.[0-9]{1}|GLOBAL_PLAT3)'
585
+ model: '$1'
586
+ - regex: '(OLED[0-9]{2}[A-Z0-9]{3}[A-Z]{2})'
587
+ model: '$1'
588
+ - regex: '(OLED[0-9]{2}[A-Z][0-9][A-Z])'
589
+ model: '$1'
590
+ - regex: '(OLED[0-9]{2}[A-Z0-9]{2})'
591
+ model: '$1'
592
+ - regex: '([0-9]{2}[A-Z]{2}[0-9]{4}[A-Z0-9]{1}[A-Z]{2})'
593
+ model: '$1'
594
+ - regex: '([0-9]{2}NANO[0-9]{3}[A-Z]{2})'
595
+ model: '$1'
596
+ - regex: '([0-9]{2}NANO[0-9]{2})'
597
+ model: '$1'
598
+ - regex: 'LGE;? (?:HOTEL\-TV; )?([0-9]{2}[a-z0-9]{4,9}(?:\-[a-z]{2,3})?)'
599
+ model: '$1'
600
+ - regex: 'LGE;? ?([0-9]{2}[A-Z]{2}[0-9]{2,4}[A-Z]?)'
103
601
  model: '$1'
602
+ - regex: 'LGE;? ?([0-9]{2}QNED[0-9]{3}[A-Z]{2})'
603
+ model: '$1'
604
+ - regex: 'LM21U'
605
+ model: 'LM21U'
606
+ - regex: '32LM'
607
+ model: '32LM'
608
+
609
+ # Lifemaxx
610
+ Lifemaxx:
611
+ regex: 'Lifemaxx[;,]'
612
+ device: 'tv'
613
+ model: ''
614
+
615
+ # Linsar
616
+ Linsar:
617
+ regex: 'LINSAR[;,]'
618
+ device: 'tv'
619
+ models:
620
+ - regex: '_TV_[A-Z0-9]+_([0-9]{4});'
621
+ model: 'Smart TV ($1)'
104
622
 
105
623
  # Loewe
106
624
  Loewe:
107
625
  regex: 'Loewe'
108
626
  device: 'tv'
109
627
  models:
628
+ - regex: '40A35EEVS'
629
+ model: '40A35EEVS'
630
+ - regex: '50A683FEVS'
631
+ model: '50A683FEVS'
110
632
  - regex: '([A-Z]{2}[0-9]{3})'
111
633
  model: '$1'
112
634
 
635
+ # Logik
636
+ Logik:
637
+ regex: 'DIXONS-LOGIK[;,]'
638
+ device: 'tv'
639
+ models:
640
+ - regex: '_TV_[A-Z0-9]+_([0-9]{4});'
641
+ model: 'Smart TV ($1)'
642
+
643
+ # Luxor
644
+ Luxor:
645
+ regex: 'LUXOR[;,]'
646
+ device: 'tv'
647
+ model: ''
648
+
649
+ # Manhattan (https://manhattan-tv.com/)
650
+ Manhattan:
651
+ regex: 'Manhattan'
652
+ device: 'tv'
653
+ models:
654
+ - regex: 'T3'
655
+ model: 'T3'
656
+
113
657
  # MediaTek
114
658
  MediaTek:
115
- regex: 'MTK'
659
+ regex: 'MTK|MediaTek;'
116
660
  device: 'tv'
117
661
  models:
118
662
  - regex: '(MT[0-9]{4})'
@@ -123,8 +667,86 @@ Medion:
123
667
  regex: 'Medion'
124
668
  device: 'tv'
125
669
  models:
126
- - regex: '(MB[0-9]{2})'
127
- model: '$1'
670
+ - regex: 'MEDION, ([a-z0-9_ \-]+), (?:wired|wireless)'
671
+ model: ''
672
+
673
+ # MEGA VISION
674
+ MEGA VISION:
675
+ regex: 'MEGA_VISION[;,]'
676
+ device: 'tv'
677
+ models:
678
+ - regex: '_TV_[A-Z0-9]+_([0-9]{4});'
679
+ model: 'Smart TV ($1)'
680
+
681
+ # Miray
682
+ Miray:
683
+ regex: 'MIRAY'
684
+ device: 'tv'
685
+ models:
686
+ - regex: 'LEDM-322NIP'
687
+ model: 'LEDM-322NIP'
688
+
689
+ # Mitchell & Brown (https://www.mitchellandbrown.co.uk/)
690
+ 'Mitchell & Brown':
691
+ regex: 'MITCHELL_BROWN[;,]'
692
+ device: 'tv'
693
+ models:
694
+ - regex: '_TV_[A-Z0-9]+_([0-9]{4});'
695
+ model: 'Smart TV ($1)'
696
+
697
+ # MStar
698
+ MStar:
699
+ regex: 'MStar[;,]'
700
+ device: 'tv'
701
+ models:
702
+ - regex: '([24])KTV18'
703
+ model: '$1KTV18'
704
+
705
+ # MTC
706
+ MTC:
707
+ regex: 'MTC[;,]'
708
+ device: 'tv'
709
+ models:
710
+ - regex: '([24])K_Android_TV_V01'
711
+ model: '$1K Android TV'
712
+
713
+ # NABO (https://www.nabo.at/)
714
+ NABO:
715
+ regex: 'NABO[;,]'
716
+ device: 'tv'
717
+ models:
718
+ - regex: '_TV_[A-Z0-9]+_([0-9]{4});'
719
+ model: 'Smart TV ($1)'
720
+
721
+ # NEXON
722
+ NEXON:
723
+ regex: 'NEXON[;,]'
724
+ device: 'tv'
725
+ models:
726
+ - regex: '_TV_[A-Z0-9]+_([0-9]{4});'
727
+ model: 'Smart TV ($1)'
728
+
729
+ # NEXT
730
+ NEXT:
731
+ regex: 'NEXT[;,]'
732
+ device: 'tv'
733
+ models:
734
+ - regex: '_TV_[A-Z0-9]+_([0-9]{4});'
735
+ model: 'Smart TV ($1)'
736
+
737
+ # Nokia (https://www.nokia.com/)
738
+ Nokia:
739
+ regex: 'NOKIA[;,]'
740
+ device: 'tv'
741
+ models:
742
+ - regex: '_TV_[A-Z0-9]+_([0-9]{4});'
743
+ model: 'Smart TV ($1)'
744
+
745
+ # Nordmende
746
+ Nordmende:
747
+ regex: 'NORDMENDE[;,]'
748
+ device: 'tv'
749
+ model: ''
128
750
 
129
751
  # Metz
130
752
  Metz:
@@ -132,43 +754,167 @@ Metz:
132
754
  device: 'tv'
133
755
  model: ''
134
756
 
757
+ # NORMANDE (https://normande.co.il/)
758
+ NORMANDE:
759
+ regex: 'NORMANDE[;,]'
760
+ device: 'tv'
761
+ models:
762
+ - regex: '_TV_[A-Z0-9]+_([0-9]{4});'
763
+ model: 'Smart TV ($1)'
764
+
765
+ # OCEANIC (https://www.oceanic.eu/)
766
+ OCEANIC:
767
+ regex: 'OCEANIC[;,]'
768
+ device: 'tv'
769
+ models:
770
+ - regex: '_TV_[A-Z0-9]+_([0-9]{4});'
771
+ model: 'Smart TV ($1)'
772
+
773
+ # Ok
774
+ Ok:
775
+ regex: 'OK[;,]'
776
+ device: 'tv'
777
+ models:
778
+ - regex: '_TV_[A-Z0-9]+_([0-9]{4});'
779
+ model: 'Smart TV ($1)'
780
+
781
+ # Orava (https://www.orava.eu/)
782
+ Orava:
783
+ regex: 'ORAVA[;,]'
784
+ device: 'tv'
785
+ models:
786
+ - regex: '_TV_[A-Z0-9]+_([0-9]{4});'
787
+ model: 'Smart TV ($1)'
788
+
135
789
  # Panasonic
136
790
  Panasonic:
137
791
  regex: 'Panasonic'
138
792
  device: 'tv'
139
793
  models:
140
- - regex: '(VIERA [0-9]{1,4})|(DIGA [A-Z]{1}[0-9]{4})'
794
+ - regex: 'TX-50JX700E'
795
+ model: 'TX-50JX700E'
796
+ - regex: 'VIERA (201[1-9])'
797
+ model: 'VIERA ($1)'
798
+ - regex: '(DIGA [A-Z]{1}[0-9]{4})'
141
799
  model: '$1'
142
800
  - regex: 'DIGA Webkit ([A-Z]{1}[0-9]{4})'
143
801
  model: 'DIGA $1'
802
+ - regex: 'SmartTV(201[89]|202[0-2])'
803
+ model: 'Smart TV ($1)'
804
+ - regex: 'Panasonic\..+\.([0-9]{4})(?:[);/ ]|$)'
805
+ model: 'Smart TV ($1)'
806
+ - regex: 'Panasonic;Viera([0-9]{4});'
807
+ model: 'Smart TV ($1)'
808
+ - regex: '_TV_[A-Z0-9_]+_([0-9]{4});'
809
+ model: 'Smart TV ($1)'
144
810
 
145
811
  # PEAQ
146
812
  PEAQ:
147
813
  regex: 'PEAQ'
148
814
  device: 'tv'
149
- models:
150
- - regex: '(LF1V[0-9]{3})'
151
- model: '$1'
815
+ model: ''
152
816
 
153
817
  # Philips
154
818
  Philips:
155
819
  regex: 'Philips|NETTV/'
156
820
  device: 'tv'
157
821
  models:
158
- - regex: 'Philips[,;] ?((?! )[^),;/]+)'
822
+ - regex: '(?:Philips|TPVision)[,;](?: |Philips;)?((?! )[^),;/]+)'
159
823
  model: '$1'
160
824
  - regex: 'NETTV/[0-9\.]{5}'
161
825
  model: 'NetTV Series'
162
826
 
827
+ # Polaroid
828
+ Polaroid:
829
+ regex: 'POLAROID[;,]'
830
+ device: 'tv'
831
+ model: ''
832
+
833
+ # PROFiLO
834
+ PROFiLO:
835
+ regex: 'PROFILO[;,]'
836
+ device: 'tv'
837
+ models:
838
+ - regex: 'Profilo[,;] ?((?! |HbbTV|MB130)[^),;/]+)'
839
+ model: '$1'
840
+ - regex: '_TV_[A-Z0-9]+_([0-9]{4});'
841
+ model: 'Smart TV ($1)'
842
+
843
+ # PROSONIC (https://prosonic.co.in/)
844
+ PROSONIC:
845
+ regex: 'PROSONIC[;,]'
846
+ device: 'tv'
847
+ models:
848
+ - regex: '_TV_[A-Z0-9]+_([0-9]{4});'
849
+ model: 'Smart TV ($1)'
850
+
851
+ # Qilive
852
+ Qilive:
853
+ regex: 'QILIVE[;,]'
854
+ device: 'tv'
855
+ models:
856
+ - regex: '_TV_[A-Z0-9]+_([0-9]{4});'
857
+ model: 'Smart TV ($1)'
858
+
859
+ # REGAL (https://www.regal-tr.com/)
860
+ REGAL:
861
+ regex: 'REGAL[;,]'
862
+ device: 'tv'
863
+ models:
864
+ - regex: '_TV_[A-Z0-9]+_([0-9]{4});'
865
+ model: 'Smart TV ($1)'
866
+
867
+ # Saba
868
+ Saba:
869
+ regex: 'Saba[;,]'
870
+ device: 'tv'
871
+ model: ''
872
+
873
+ # Salora
874
+ Salora:
875
+ regex: 'Salora[;,]'
876
+ device: 'tv'
877
+ models:
878
+ - regex: '_TV_[A-Z0-9]+_([0-9]{4});'
879
+ model: 'Smart TV ($1)'
880
+
163
881
  # Samsung
164
882
  Samsung:
165
883
  regex: 'Samsung|Maple_2011'
166
884
  device: 'tv'
167
885
  models:
168
- - regex: 'SmartTV(2012|2013|2014|2015)'
169
- model: 'Smart TV $1'
886
+ - regex: 'SmartTV(201[2-9]|202[0-4]):([^);/]+)'
887
+ model: '$2'
888
+ - regex: 'SmartTV(201[2-9]|202[0-4])'
889
+ model: 'Smart TV ($1)'
170
890
  - regex: 'Maple_2011'
171
- model: 'Smart TV 2011'
891
+ model: 'Smart TV (2011)'
892
+
893
+ # SCBC
894
+ SCBC:
895
+ regex: 'SCBC[;,]'
896
+ device: 'tv'
897
+ models:
898
+ - regex: 'SCBC586'
899
+ model: 'SCBC586'
900
+ - regex: '43D1850'
901
+ model: '43D1850'
902
+
903
+ # SEG
904
+ SEG:
905
+ regex: 'SEG[;,]'
906
+ device: 'tv'
907
+ models:
908
+ - regex: '_TV_[A-Z0-9]+_([0-9]{4});'
909
+ model: 'Smart TV ($1)'
910
+
911
+ # SEHMAX
912
+ SEHMAX:
913
+ regex: 'SEHMAX[;,]'
914
+ device: 'tv'
915
+ models:
916
+ - regex: '_TV_[A-Z0-9]+_([0-9]{4});'
917
+ model: 'Smart TV ($1)'
172
918
 
173
919
  # Selevision
174
920
  Selevision:
@@ -182,25 +928,47 @@ Selevision:
182
928
 
183
929
  # Sharp
184
930
  Sharp:
185
- regex: 'Sharp'
931
+ regex: '(?:UMC-)?Sharp'
186
932
  device: 'tv'
187
933
  models:
188
- - regex: 'Sharp[,;] ?((?! |HbbTV)[^),;/]+)'
934
+ - regex: 'SHARP, ([a-z0-9_ \-]+), (?:wired|wireless)'
935
+ model: ''
936
+ - regex: 'Sharp[,;] ?((?! |HbbTV|MB130)[^),;/]+)'
189
937
  model: '$1'
190
938
  - regex: '(LE[0-9]{3}[A-Z]{0,3})'
191
939
  model: '$1'
940
+ - regex: 'LC-([^);/,]+)'
941
+ model: 'LC-$1'
942
+ - regex: 'BLA-43'
943
+ model: 'BLA-43'
944
+ - regex: 'UMC_2KAndroidTV_2019'
945
+ model: '2K Android TV'
946
+ - regex: 'UMC_AndroidTV_2021'
947
+ model: 'Android TV'
948
+ - regex: 'UMC_GoogleTV_2019'
949
+ model: 'Google TV'
950
+
951
+ # Silva Schneider (https://www.silva-schneider.at/)
952
+ Silva Schneider:
953
+ regex: 'SILVA_SCHNEIDER[;,]'
954
+ device: 'tv'
955
+ models:
956
+ - regex: '_TV_[A-Z0-9]+_([0-9]{4});'
957
+ model: 'Smart TV ($1)'
192
958
 
193
959
  # Skyworth
194
960
  Skyworth:
195
- regex: 'Sky_worth'
961
+ regex: 'Sky_worth|SWTV[;,]'
196
962
  device: 'tv'
197
963
  models:
964
+ - regex: 'SKWE20E21'
965
+ model: 'SKWE20E21'
198
966
  - regex: 'Sky_worth;([^);/]+)'
199
967
  model: '$1'
200
968
 
201
- # Smart
202
- Smart:
203
- regex: 'Smart[^a-z]'
969
+ # Smart Electronic
970
+ Smart Electronic:
971
+ regex: 'Smart[;,]'
204
972
  device: 'tv'
205
973
  models:
206
974
  - regex: 'Smart; ([^);/]+)'
@@ -213,9 +981,43 @@ Sony:
213
981
  regex: 'Sony'
214
982
  device: 'tv'
215
983
  models:
216
- - regex: '(KDL[0-9]{2}[A-Z]{1,2}[0-9]{3})'
984
+ - regex: '(KDL-GR[12])'
985
+ model: '$1'
986
+ - regex: 'KDL-GN([56])'
987
+ model: 'KDL-GN$1'
988
+ - regex: 'BRAVIA (VH1|4K VH2)'
989
+ model: 'BRAVIA $1'
990
+ - regex: '(K[DM]L?-?[0-9]{2}[A-Z]{1}[0-9]{4}[A-Z]{1})'
991
+ model: '$1'
992
+ - regex: '(K[DM]L?-?[0-9]{2}[A-Z]{1}[0-9]{3}[A-Z]{1})'
993
+ model: '$1'
994
+ - regex: '(K[DM]L?-?[0-9]{2}[A-Z]{1,2}[0-9]{1,5})'
217
995
  model: '$1'
218
996
 
997
+ # TD Systems
998
+ 'TD Systems':
999
+ regex: 'TDSystems[;,]'
1000
+ device: 'tv'
1001
+ models:
1002
+ - regex: 'SmartTV(2019|2020)'
1003
+ model: 'Smart TV ($1)'
1004
+
1005
+ # Technicolor
1006
+ Technicolor:
1007
+ regex: 'Technicolor'
1008
+ device: 'tv'
1009
+ models:
1010
+ - regex: 'uzw4054ttg'
1011
+ model: 'UZW4054TTG'
1012
+
1013
+ # Technika
1014
+ Technika:
1015
+ regex: 'TECHNIKA[;,]'
1016
+ device: 'tv'
1017
+ models:
1018
+ - regex: '_TV_[A-Z0-9]+_([0-9]{4});'
1019
+ model: 'Smart TV ($1)'
1020
+
219
1021
  # TechniSat
220
1022
  TechniSat:
221
1023
  regex: 'TechniSat'
@@ -232,44 +1034,93 @@ TechnoTrend:
232
1034
  - regex: '([A-Z]{1}-[0-9]{3})'
233
1035
  model: '$1'
234
1036
 
1037
+ # Techwood
1038
+ Techwood:
1039
+ regex: 'Techwood[;,]'
1040
+ device: 'tv'
1041
+ model: ''
1042
+
235
1043
  # Telefunken
236
1044
  Telefunken:
237
1045
  regex: 'Telefunken'
238
1046
  device: 'tv'
239
- models:
240
- - regex: '(MB[0-9]{2})'
241
- model: '$1'
1047
+ model: ''
1048
+
242
1049
  # TCL
243
1050
  TCL:
244
- regex: 'TCL'
1051
+ regex: '(?:Amazon.+)?TCL'
245
1052
  device: 'tv'
246
1053
  models:
247
- - regex: '(LF1V[0-9]{3})'
1054
+ - regex: '(32D1820|(?:39|55)D2900|32D2930|(?:32|43)S4900)'
1055
+ model: '$1'
1056
+ - regex: 'TCL[,;] ?((?! |HbbTV|MB130)[^),;/]+)'
1057
+ model: '$1'
1058
+ - regex: 'Amazon.+TCL-([a-z0-9_ \-]+)_Build_'
248
1059
  model: '$1'
249
1060
 
250
1061
  # Thomson
251
1062
  Thomson:
252
- regex: 'THOMSON|THOM'
1063
+ regex: 'THOMSON[,]?|THOM'
253
1064
  device: 'tv'
254
1065
  models:
255
- - regex: '(LF1V[0-9]{3})'
256
- model: '$1'
1066
+ - regex: '(TB28D19DHS-01|T28D18SFS-01B)'
1067
+ model: '$1 28.0"'
1068
+ - regex: '(T32RTM5040|T32D18SFS-01B)'
1069
+ model: '$1 32.0"'
1070
+ - regex: '(T43FSL5031|T43D18SFS-01B)'
1071
+ model: '$1 43.0"'
1072
+ - regex: '(T40D18SFS-01B)'
1073
+ model: '$1 40.0"'
1074
+ - regex: '(T49D18SFS-01B)'
1075
+ model: '$1 49.0"'
1076
+ - regex: '(T55D18[SD]FS-01B)'
1077
+ model: '$1 55.0"'
1078
+ - regex: '40FB5426'
1079
+ model: '40FB5426'
1080
+
1081
+ # TOKYO
1082
+ TOKYO:
1083
+ regex: 'TOKYO[;,]'
1084
+ device: 'tv'
1085
+ models:
1086
+ - regex: 'TOKTCLED32S'
1087
+ model: 'TOKTCLED32S'
1088
+
1089
+ # Turbo-X
1090
+ Turbo-X:
1091
+ regex: 'TURBO-X[;,]'
1092
+ device: 'tv'
1093
+ models:
1094
+ - regex: '_TV_[A-Z0-9]+_([0-9]{4});'
1095
+ model: 'Smart TV ($1)'
257
1096
 
258
1097
  # Toshiba
259
1098
  Toshiba:
260
- regex: 'Toshiba'
1099
+ regex: '(?:Amazon.+)?Toshiba'
261
1100
  device: 'tv'
262
1101
  models:
1102
+ - regex: '40L2600'
1103
+ model: '40L2600'
263
1104
  - regex: '(([0-9]{2}|DTV_)[A-Z]{2}[0-9]{1,3})'
264
1105
  model: '$1'
1106
+ - regex: 'Amazon.+Toshiba-([a-z0-9_ \-]+)_Build_'
1107
+ model: '$1'
265
1108
 
266
- # Vestel
267
- Vestel:
268
- regex: 'Vestel'
1109
+ # Tsinghua Tongfang
1110
+ Tsinghua Tongfang:
1111
+ regex: 'THTF_CVTE[;,]'
269
1112
  device: 'tv'
270
1113
  models:
271
- - regex: '(MB[0-9]{2})'
272
- model: '$1'
1114
+ - regex: 'LE40GY15'
1115
+ model: 'LE40GY15'
1116
+
1117
+ # VANGUARD
1118
+ VANGUARD:
1119
+ regex: 'VANGUARD[;,]'
1120
+ device: 'tv'
1121
+ models:
1122
+ - regex: '_TV_[A-Z0-9]+_([0-9]{4});'
1123
+ model: 'Smart TV ($1)'
273
1124
 
274
1125
  # Videoweb
275
1126
  Videoweb:
@@ -280,3 +1131,93 @@ Videoweb:
280
1131
  model: '$1'
281
1132
  - regex: '(videowebtv)'
282
1133
  model: 'VideoWeb TV'
1134
+
1135
+ # VOX (https://www.voxelectronics.com/)
1136
+ VOX:
1137
+ regex: 'VOX[;,]'
1138
+ device: 'tv'
1139
+ models:
1140
+ - regex: '_TV_[A-Z0-9]+_([0-9]{4});'
1141
+ model: 'Smart TV ($1)'
1142
+
1143
+ # Walker
1144
+ Walker:
1145
+ regex: 'WALKER[;,]'
1146
+ device: 'tv'
1147
+ models:
1148
+ - regex: '_TV_[A-Z0-9]+_([0-9]{4});'
1149
+ model: 'Smart TV ($1)'
1150
+
1151
+ # We. by Loewe. (https://we-by-loewe.com/)
1152
+ We. by Loewe.:
1153
+ regex: 'WeByLoewe[;,]'
1154
+ device: 'tv'
1155
+ models:
1156
+ - regex: '40A35EEVS'
1157
+ model: '40A35EEVS'
1158
+ - regex: '43A71FEVS'
1159
+ model: '43A71FEVS'
1160
+ - regex: '50A683FEVS'
1161
+ model: '50A683FEVS'
1162
+
1163
+ # WELLINGTON
1164
+ WELLINGTON:
1165
+ regex: 'WELLINGTON[;,]'
1166
+ device: 'tv'
1167
+ models:
1168
+ - regex: '_TV_[A-Z0-9]+_([0-9]{4});'
1169
+ model: 'Smart TV ($1)'
1170
+
1171
+ # WONDER
1172
+ WONDER:
1173
+ regex: 'WONDER[;,]'
1174
+ device: 'tv'
1175
+ models:
1176
+ - regex: '_TV_[A-Z0-9]+_([0-9]{4});'
1177
+ model: 'Smart TV ($1)'
1178
+
1179
+ # X.Vision
1180
+ X.Vision:
1181
+ regex: 'X-VISION[;,]'
1182
+ device: 'tv'
1183
+ model: ''
1184
+
1185
+ # Vestel
1186
+ Vestel:
1187
+ regex: '(?:Vestel.+VESTEL|(?:BBC_CUSTOMERS|VESTEL)[;,])'
1188
+ device: 'tv'
1189
+ models:
1190
+ - regex: '_TV_[A-Z0-9]+_([0-9]{4});'
1191
+ model: 'Smart TV ($1)'
1192
+
1193
+ # Arçelik
1194
+ Arçelik:
1195
+ regex: 'Arcelik'
1196
+ device: 'tv'
1197
+ model: ''
1198
+
1199
+ # XGEM
1200
+ XGEM:
1201
+ regex: 'XGEM[;,]'
1202
+ device: 'tv'
1203
+ models:
1204
+ - regex: 'XGEM[;,] ?([a-z0-9]+)(?:[);/ ]|$)'
1205
+ model: '$1'
1206
+
1207
+ # Xiaomi
1208
+ Xiaomi:
1209
+ regex: 'Amazon.+Xiaomi'
1210
+ device: 'tv'
1211
+ models:
1212
+ - regex: 'AFTANNA0'
1213
+ model: 'F2 4K (2022)'
1214
+ - regex: 'Amazon.+Xiaomi-([a-z0-9_ \-]+)_Build_'
1215
+ model: '$1'
1216
+
1217
+ # Unknown
1218
+ Unknown:
1219
+ regex: 'OEM, ([a-z0-9_ \-]+), (?:wired|wireless)|_TV_[A-Z0-9]+_([0-9]{4});'
1220
+ device: 'tv'
1221
+ models:
1222
+ - regex: '_TV_[A-Z0-9]+_([0-9]{4});'
1223
+ model: 'Smart TV ($1)'