device_detector 1.0.5 → 1.0.6

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 (90) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +7 -6
  3. data/lib/device_detector/browser.rb +364 -0
  4. data/lib/device_detector/client.rb +8 -0
  5. data/lib/device_detector/device.rb +1124 -4
  6. data/lib/device_detector/os.rb +36 -11
  7. data/lib/device_detector/version.rb +1 -1
  8. data/lib/device_detector/version_extractor.rb +9 -0
  9. data/lib/device_detector.rb +57 -13
  10. data/regexes/bots.yml +551 -58
  11. data/regexes/client/browser_engine.yml +7 -1
  12. data/regexes/client/browsers.yml +594 -71
  13. data/regexes/client/feed_readers.yml +4 -10
  14. data/regexes/client/libraries.yml +47 -2
  15. data/regexes/client/mediaplayers.yml +25 -1
  16. data/regexes/client/mobile_apps.yml +447 -77
  17. data/regexes/client/pim.yml +49 -1
  18. data/regexes/device/cameras.yml +5 -5
  19. data/regexes/device/car_browsers.yml +16 -0
  20. data/regexes/device/consoles.yml +6 -0
  21. data/regexes/device/mobiles.yml +12905 -4561
  22. data/regexes/device/portable_media_player.yml +20 -3
  23. data/regexes/device/shell_tv.yml +117 -0
  24. data/regexes/device/televisions.yml +426 -35
  25. data/regexes/oss.yml +567 -139
  26. data/spec/device_detector/concrete_user_agent_spec.rb +30 -42
  27. data/spec/device_detector/detector_fixtures_spec.rb +9 -5
  28. data/spec/device_detector/device_spec.rb +26 -10
  29. data/spec/fixtures/client/browser.yml +1463 -391
  30. data/spec/fixtures/client/feed_reader.yml +0 -12
  31. data/spec/fixtures/client/library.yml +91 -37
  32. data/spec/fixtures/client/mediaplayer.yml +30 -0
  33. data/spec/fixtures/client/mobile_app.yml +498 -45
  34. data/spec/fixtures/client/pim.yml +60 -0
  35. data/spec/fixtures/detector/bots.yml +1189 -568
  36. data/spec/fixtures/detector/camera.yml +12 -26
  37. data/spec/fixtures/detector/car_browser.yml +151 -15
  38. data/spec/fixtures/detector/console.yml +70 -48
  39. data/spec/fixtures/detector/desktop.yml +2041 -916
  40. data/spec/fixtures/detector/feature_phone.yml +895 -189
  41. data/spec/fixtures/detector/feed_reader.yml +50 -77
  42. data/spec/fixtures/detector/mediaplayer.yml +79 -26
  43. data/spec/fixtures/detector/mobile_apps.yml +726 -72
  44. data/spec/fixtures/detector/peripheral.yml +271 -0
  45. data/spec/fixtures/detector/phablet.yml +3635 -1596
  46. data/spec/fixtures/detector/portable_media_player.yml +355 -46
  47. data/spec/fixtures/detector/smart_display.yml +183 -9
  48. data/spec/fixtures/detector/smart_speaker.yml +13 -8
  49. data/spec/fixtures/detector/smartphone-1.yml +4002 -4286
  50. data/spec/fixtures/detector/smartphone-10.yml +3771 -4763
  51. data/spec/fixtures/detector/smartphone-11.yml +3615 -4692
  52. data/spec/fixtures/detector/smartphone-12.yml +3856 -4764
  53. data/spec/fixtures/detector/smartphone-13.yml +4213 -4713
  54. data/spec/fixtures/detector/smartphone-14.yml +4039 -4497
  55. data/spec/fixtures/detector/smartphone-15.yml +5642 -2956
  56. data/spec/fixtures/detector/smartphone-16.yml +4739 -5082
  57. data/spec/fixtures/detector/smartphone-17.yml +4832 -4275
  58. data/spec/fixtures/detector/smartphone-18.yml +9806 -0
  59. data/spec/fixtures/detector/smartphone-19.yml +9965 -0
  60. data/spec/fixtures/detector/smartphone-2.yml +4842 -2589
  61. data/spec/fixtures/detector/smartphone-20.yml +9710 -0
  62. data/spec/fixtures/detector/smartphone-21.yml +8693 -0
  63. data/spec/fixtures/detector/smartphone-22.yml +10178 -0
  64. data/spec/fixtures/detector/smartphone-23.yml +9453 -0
  65. data/spec/fixtures/detector/smartphone-24.yml +9843 -0
  66. data/spec/fixtures/detector/smartphone-25.yml +9703 -0
  67. data/spec/fixtures/detector/smartphone-26.yml +10007 -0
  68. data/spec/fixtures/detector/smartphone-27.yml +4927 -0
  69. data/spec/fixtures/detector/smartphone-3.yml +4387 -4427
  70. data/spec/fixtures/detector/smartphone-4.yml +3597 -4582
  71. data/spec/fixtures/detector/smartphone-5.yml +4066 -5022
  72. data/spec/fixtures/detector/smartphone-6.yml +3455 -4621
  73. data/spec/fixtures/detector/smartphone-7.yml +3574 -4574
  74. data/spec/fixtures/detector/smartphone-8.yml +4617 -4704
  75. data/spec/fixtures/detector/smartphone-9.yml +4080 -5035
  76. data/spec/fixtures/detector/smartphone.yml +3244 -4234
  77. data/spec/fixtures/detector/tablet-1.yml +4652 -4492
  78. data/spec/fixtures/detector/tablet-2.yml +3515 -4434
  79. data/spec/fixtures/detector/tablet-3.yml +3418 -4351
  80. data/spec/fixtures/detector/tablet-4.yml +5149 -3200
  81. data/spec/fixtures/detector/tablet-5.yml +9273 -0
  82. data/spec/fixtures/detector/tablet-6.yml +4588 -0
  83. data/spec/fixtures/detector/tablet.yml +1621 -2613
  84. data/spec/fixtures/detector/tv-1.yml +2501 -0
  85. data/spec/fixtures/detector/tv.yml +7826 -3114
  86. data/spec/fixtures/detector/unknown.yml +370 -531
  87. data/spec/fixtures/detector/wearable.yml +863 -9
  88. data/spec/fixtures/parser/oss.yml +1350 -21
  89. data/spec/fixtures/parser/vendorfragments.yml +53 -53
  90. metadata +35 -5
@@ -16,6 +16,18 @@ Airties:
16
16
  - regex: 'Airties; ?([^);/]+)'
17
17
  model: '$1'
18
18
 
19
+ # ALDI NORD
20
+ 'ALDI NORD':
21
+ regex: 'ALDINORD[;,]'
22
+ device: 'tv'
23
+ model: ''
24
+
25
+ # ALDI SÜD
26
+ 'ALDI SÜD':
27
+ regex: 'ALDISUED[;,]'
28
+ device: 'tv'
29
+ model: ''
30
+
19
31
  # Altech UEC
20
32
  'Altech UEC':
21
33
  regex: 'Altech UEC'
@@ -24,12 +36,56 @@ Airties:
24
36
  - regex: 'Altech UEC; ?([^);/]+)'
25
37
  model: '$1'
26
38
 
39
+ # AOC
40
+ AOC:
41
+ regex: 'AOC'
42
+ device: 'tv'
43
+ models:
44
+ - regex: '(LE43S5970-20|S50856)'
45
+ model: '$1'
46
+
47
+ # ARRIS
48
+ ARRIS:
49
+ regex: 'ARRIS[;,]'
50
+ device: 'tv'
51
+ models:
52
+ - regex: 'FS-ARS-01B'
53
+ model: 'FS-ARS-01B'
54
+
55
+ # Atvio
56
+ Atvio:
57
+ regex: 'ATVIO'
58
+ device: 'tv'
59
+ models:
60
+ - regex: '55D1620'
61
+ model: '55D1620'
62
+
27
63
  # BangOlufsen
28
64
  BangOlufsen:
29
65
  regex: 'Bangolufsen'
30
66
  device: 'tv'
31
67
  model: 'BeoVision'
32
68
 
69
+ # Blaupunkt
70
+ Blaupunkt:
71
+ regex: 'Blaupunkt_UMC[;,]'
72
+ device: 'tv'
73
+ models:
74
+ - regex: 'LC-65CUG8052E'
75
+ model: 'LC-65CUG8052E'
76
+
77
+ # Bush
78
+ Bush:
79
+ regex: 'BUSH[;,]'
80
+ device: 'tv'
81
+ model: ''
82
+
83
+ # Celcus
84
+ Celcus:
85
+ regex: 'CELCUS[;,]'
86
+ device: 'tv'
87
+ model: ''
88
+
33
89
  # Changhong
34
90
  Changhong:
35
91
  regex: 'Changhong'
@@ -44,28 +100,116 @@ CreNova:
44
100
  device: 'tv'
45
101
  model: 'CNV001'
46
102
 
103
+ # Digihome
104
+ Digihome:
105
+ regex: 'DIGIHOME[;,]'
106
+ device: 'tv'
107
+ model: ''
108
+
47
109
  # DMM
48
110
  DMM:
49
111
  regex: 'DMM'
50
112
  device: 'tv'
51
113
  model: 'Dreambox'
52
114
 
115
+ # ELECTRONIA
116
+ ELECTRONIA:
117
+ regex: 'ELECTRONIA[;,]'
118
+ device: 'tv'
119
+ model: ''
120
+
121
+ # Essentielb
122
+ Essentielb:
123
+ regex: 'ESSENTIELB[;,]'
124
+ device: 'tv'
125
+ model: ''
126
+
127
+ # Finlux
128
+ Finlux:
129
+ regex: 'FINLUX[;,]'
130
+ device: 'tv'
131
+ model: ''
132
+
133
+ # F&U (https://www.fandu.gr/)
134
+ 'F&U':
135
+ regex: 'FU[;,]'
136
+ device: 'tv'
137
+ model: ''
138
+
139
+ # Fuego
140
+ Fuego:
141
+ regex: 'FUEGO[;,]'
142
+ device: 'tv'
143
+ model: ''
144
+
145
+ # GoGEN (https://www.gogen.cz/)
146
+ GoGEN:
147
+ regex: 'GOGEN[;,]'
148
+ device: 'tv'
149
+ model: ''
150
+
53
151
  # Grundig
54
152
  Grundig:
55
153
  regex: '(OWB|Grundig|Arcelik)'
56
154
  device: 'tv'
57
155
  model: ''
58
156
 
157
+ # Haier
158
+ Haier:
159
+ regex: '(?:HHW_)?HAIER'
160
+ device: 'tv'
161
+ models:
162
+ - regex: 'LE55X7000U'
163
+ model: 'LE55X7000U'
164
+
165
+ # Hi-Level
166
+ Hi-Level:
167
+ regex: 'HI-LEVEL[;,]'
168
+ device: 'tv'
169
+ model: ''
170
+
59
171
  # Hisense
60
172
  Hisense:
61
- regex: 'Hisense'
173
+ regex: 'Hisense|Eurofins_Digital_Testing'
62
174
  device: 'tv'
63
175
  models:
176
+ - regex: '50ADEVTOOL'
177
+ model: '50ADEVTOOL'
178
+ - regex: '50A683FEVS'
179
+ model: '50A683FEVS'
180
+ - regex: '55A6100EE'
181
+ model: '55A6100EE'
182
+ - regex: '55U62QGAVT'
183
+ model: '55U62QGAVT'
184
+ - regex: '50A6502EA'
185
+ model: '50A6502EA'
186
+ - regex: 'MICALIDVB6886'
187
+ model: 'MICALIDVB6886'
64
188
  - regex: '(L[A-Z]{2,3}[0-9]{2}[A-Z][0-9]{3,4}[A-Z]{0,6}[0-9]?[A-Z]?)'
65
189
  model: '$1'
66
190
  - regex: '(H[A-Z]?[0-9]{2}[A-Z][0-9]{3,4}[A-Z]{0,4})'
67
191
  model: '$1'
68
192
 
193
+ # Hitachi
194
+ Hitachi:
195
+ regex: 'Hitachi[;,]'
196
+ device: 'tv'
197
+ models:
198
+ - regex: '49D2900'
199
+ model: '49D2900'
200
+
201
+ # Horizon
202
+ Horizon:
203
+ regex: 'HORIZON[;,]'
204
+ device: 'tv'
205
+ model: ''
206
+
207
+ # Hotel
208
+ Hotel:
209
+ regex: 'HOTEL[;,]'
210
+ device: 'tv'
211
+ model: ''
212
+
69
213
  # Humax
70
214
  Humax:
71
215
  regex: 'Humax'
@@ -78,13 +222,17 @@ Humax:
78
222
  - regex: 'Humax; ([^);/]+)'
79
223
  model: '$1'
80
224
 
225
+ # Hyundai
226
+ Hyundai:
227
+ regex: 'HYUNDAI[;,]'
228
+ device: 'tv'
229
+ model: ''
230
+
81
231
  # IKEA
82
232
  Ikea:
83
233
  regex: 'Ikea'
84
234
  device: 'tv'
85
- models:
86
- - regex: '(LF1V[0-9]{3})'
87
- model: '$1'
235
+ model: ''
88
236
 
89
237
  # Intek
90
238
  Intek:
@@ -104,17 +252,83 @@ Inverto:
104
252
  - regex: '(Volksbox Web Edition|Volksbox Essential|Volksbox II|Volksbox)'
105
253
  model: '$1'
106
254
 
255
+ # JVC
256
+ JVC:
257
+ regex: 'AFTSO001|JVC[;,]'
258
+ device: 'tv'
259
+ models:
260
+ - regex: 'AFTSO001'
261
+ model: '4K (2019)'
262
+
263
+ # Kalley
264
+ Kalley:
265
+ regex: 'KALLEY[;,]'
266
+ device: 'tv'
267
+ models:
268
+ - regex: '32D1620'
269
+ model: '32D1620'
270
+
271
+ # KUBO
272
+ KUBO:
273
+ regex: 'KUBO[;,]'
274
+ device: 'tv'
275
+ model: ''
276
+
277
+ # Laurus
278
+ Laurus:
279
+ regex: 'LAURUS[;,]'
280
+ device: 'tv'
281
+ model: ''
282
+
107
283
  # LG
108
284
  LG:
109
285
  regex: 'LGE'
110
286
  device: 'tv'
111
287
  models:
288
+ - regex: 'XU43WT180N'
289
+ model: 'XU43WT180N'
290
+ - regex: '43LJ614V-ZA'
291
+ model: '43LJ614V-ZA'
292
+ - regex: '55SK850V-ZA'
293
+ model: '55SK850V-ZA'
294
+ - regex: 'KEY0000213F1z'
295
+ model: 'KEY0000213F1z'
296
+ - regex: 'KEY0000213F'
297
+ model: 'KEY0000213F'
298
+ - regex: 'KEY000000(2E|2F|3B|3F)'
299
+ model: 'KEY000000$1'
112
300
  - regex: '(NetCast [0-9]{1}.[0-9]{1}|GLOBAL_PLAT3)'
113
301
  model: '$1'
302
+ - regex: '(OLED[0-9]{2}[A-Z0-9]{3}[A-Z]{2})'
303
+ model: '$1'
114
304
  - regex: '(OLED[0-9]{2}[A-Z][0-9][A-Z])'
115
305
  model: '$1'
306
+ - regex: '(OLED[0-9]{2}[A-Z0-9]{2})'
307
+ model: '$1'
308
+ - regex: '([0-9]{2}[A-Z]{2}[0-9]{4}[A-Z0-9]{1}[A-Z]{2})'
309
+ model: '$1'
310
+ - regex: '([0-9]{2}NANO[0-9]{3}[A-Z]{2})'
311
+ model: '$1'
312
+ - regex: '([0-9]{2}NANO[0-9]{2})'
313
+ model: '$1'
116
314
  - regex: 'LGE;? ?([0-9]{2}[A-Z]{2}[0-9]{2,4}[A-Z]?)'
117
315
  model: '$1'
316
+ - regex: 'LM21U'
317
+ model: 'LM21U'
318
+ - regex: '32LM'
319
+ model: '32LM'
320
+
321
+ # Lifemaxx
322
+ Lifemaxx:
323
+ regex: 'Lifemaxx[;,]'
324
+ device: 'tv'
325
+ model: ''
326
+
327
+ # Linsar
328
+ Linsar:
329
+ regex: 'LINSAR[;,]'
330
+ device: 'tv'
331
+ model: ''
118
332
 
119
333
  # Loewe
120
334
  Loewe:
@@ -124,9 +338,23 @@ Loewe:
124
338
  - regex: '([A-Z]{2}[0-9]{3})'
125
339
  model: '$1'
126
340
 
341
+ # Luxor
342
+ Luxor:
343
+ regex: 'LUXOR[;,]'
344
+ device: 'tv'
345
+ model: ''
346
+
347
+ # Manhattan (https://manhattan-tv.com/)
348
+ Manhattan:
349
+ regex: 'Manhattan'
350
+ device: 'tv'
351
+ models:
352
+ - regex: 'T3'
353
+ model: 'T3'
354
+
127
355
  # MediaTek
128
356
  MediaTek:
129
- regex: 'MTK'
357
+ regex: 'MTK|MediaTek;'
130
358
  device: 'tv'
131
359
  models:
132
360
  - regex: '(MT[0-9]{4})'
@@ -136,9 +364,37 @@ MediaTek:
136
364
  Medion:
137
365
  regex: 'Medion'
138
366
  device: 'tv'
367
+ model: ''
368
+
369
+ # Miray
370
+ Miray:
371
+ regex: 'MIRAY'
372
+ device: 'tv'
139
373
  models:
140
- - regex: '(MB[0-9]{2})'
141
- model: '$1'
374
+ - regex: 'LEDM-322NIP'
375
+ model: 'LEDM-322NIP'
376
+
377
+ # MStar
378
+ MStar:
379
+ regex: 'MStar[;,]'
380
+ device: 'tv'
381
+ models:
382
+ - regex: '([24])KTV18'
383
+ model: '$1KTV18'
384
+
385
+ # MTC
386
+ MTC:
387
+ regex: 'MTC[;,]'
388
+ device: 'tv'
389
+ models:
390
+ - regex: '([24])K_Android_TV_V01'
391
+ model: '$1K Android TV'
392
+
393
+ # Nordmende
394
+ Nordmende:
395
+ regex: 'NORDMENDE[;,]'
396
+ device: 'tv'
397
+ model: ''
142
398
 
143
399
  # Metz
144
400
  Metz:
@@ -146,23 +402,31 @@ Metz:
146
402
  device: 'tv'
147
403
  model: ''
148
404
 
405
+ # Ok
406
+ Ok:
407
+ regex: 'OK[;,]'
408
+ device: 'tv'
409
+ model: ''
410
+
149
411
  # Panasonic
150
412
  Panasonic:
151
413
  regex: 'Panasonic'
152
414
  device: 'tv'
153
415
  models:
154
- - regex: '(VIERA [0-9]{1,4})|(DIGA [A-Z]{1}[0-9]{4})'
416
+ - regex: 'VIERA (201[1-9])'
417
+ model: 'VIERA ($1)'
418
+ - regex: '(DIGA [A-Z]{1}[0-9]{4})'
155
419
  model: '$1'
156
420
  - regex: 'DIGA Webkit ([A-Z]{1}[0-9]{4})'
157
421
  model: 'DIGA $1'
422
+ - regex: 'SmartTV(201[89]|202[0-1])'
423
+ model: 'Smart TV ($1)'
158
424
 
159
425
  # PEAQ
160
426
  PEAQ:
161
427
  regex: 'PEAQ'
162
428
  device: 'tv'
163
- models:
164
- - regex: '(LF1V[0-9]{3})'
165
- model: '$1'
429
+ model: ''
166
430
 
167
431
  # Philips
168
432
  Philips:
@@ -174,15 +438,69 @@ Philips:
174
438
  - regex: 'NETTV/[0-9\.]{5}'
175
439
  model: 'NetTV Series'
176
440
 
441
+ # Polaroid
442
+ Polaroid:
443
+ regex: 'POLAROID[;,]'
444
+ device: 'tv'
445
+ model: ''
446
+
447
+ # PROFiLO
448
+ PROFiLO:
449
+ regex: 'PROFILO[;,]'
450
+ device: 'tv'
451
+ model: ''
452
+
453
+ # Qilive
454
+ Qilive:
455
+ regex: 'QILIVE[;,]'
456
+ device: 'tv'
457
+ model: ''
458
+
459
+ # REGAL
460
+ REGAL:
461
+ regex: 'REGAL[;,]'
462
+ device: 'tv'
463
+ model: ''
464
+
465
+ # Saba
466
+ Saba:
467
+ regex: 'Saba[;,]'
468
+ device: 'tv'
469
+ model: ''
470
+
471
+ # Salora
472
+ Salora:
473
+ regex: 'Salora[;,]'
474
+ device: 'tv'
475
+ model: ''
476
+
177
477
  # Samsung
178
478
  Samsung:
179
479
  regex: 'Samsung|Maple_2011'
180
480
  device: 'tv'
181
481
  models:
182
- - regex: 'SmartTV(201[2-9])'
183
- model: 'Smart TV $1'
482
+ - regex: 'SmartTV(201[2-9]|202[0-1]):([^);/]+)'
483
+ model: '$2'
484
+ - regex: 'SmartTV(201[2-9]|202[0-1])'
485
+ model: 'Smart TV ($1)'
184
486
  - regex: 'Maple_2011'
185
- model: 'Smart TV 2011'
487
+ model: 'Smart TV (2011)'
488
+
489
+ # SCBC
490
+ SCBC:
491
+ regex: 'SCBC[;,]'
492
+ device: 'tv'
493
+ models:
494
+ - regex: 'SCBC586'
495
+ model: 'SCBC586'
496
+ - regex: '43D1850'
497
+ model: '43D1850'
498
+
499
+ # SEG
500
+ SEG:
501
+ regex: 'SEG[;,]'
502
+ device: 'tv'
503
+ model: ''
186
504
 
187
505
  # Selevision
188
506
  Selevision:
@@ -196,13 +514,17 @@ Selevision:
196
514
 
197
515
  # Sharp
198
516
  Sharp:
199
- regex: 'Sharp'
517
+ regex: '(?:UMC-)?Sharp'
200
518
  device: 'tv'
201
519
  models:
202
520
  - regex: 'Sharp[,;] ?((?! |HbbTV)[^),;/]+)'
203
521
  model: '$1'
204
522
  - regex: '(LE[0-9]{3}[A-Z]{0,3})'
205
523
  model: '$1'
524
+ - regex: 'LC-([^);/]+)'
525
+ model: 'LC-$1'
526
+ - regex: 'BLA-43'
527
+ model: 'BLA-43'
206
528
 
207
529
  # Skyworth
208
530
  Skyworth:
@@ -212,9 +534,9 @@ Skyworth:
212
534
  - regex: 'Sky_worth;([^);/]+)'
213
535
  model: '$1'
214
536
 
215
- # Smart
216
- Smart:
217
- regex: 'Smart[^a-z]'
537
+ # Smart Electronic
538
+ Smart Electronic:
539
+ regex: 'Smart[;,]'
218
540
  device: 'tv'
219
541
  models:
220
542
  - regex: 'Smart; ([^);/]+)'
@@ -227,9 +549,49 @@ Sony:
227
549
  regex: 'Sony'
228
550
  device: 'tv'
229
551
  models:
552
+ - regex: 'KDL-GR1'
553
+ model: 'KDL-GR1'
554
+ - regex: 'KDL-GN([56])'
555
+ model: 'KDL-GN$1'
556
+ - regex: 'BRAVIA (VH1|4K VH2)'
557
+ model: 'BRAVIA $1'
558
+ - regex: '(KDL?-?[0-9]{2}[A-Z]{1}[0-9]{4}[A-Z]{1})'
559
+ model: '$1'
560
+ - regex: '(KDL?-?[0-9]{2}[A-Z]{1}[0-9]{3}[A-Z]{1})'
561
+ model: '$1'
230
562
  - regex: '(KDL?-?[0-9]{2}[A-Z]{1,2}[0-9]{1,5})'
231
563
  model: '$1'
232
564
 
565
+ # SWTV
566
+ SWTV:
567
+ regex: 'SWTV[;,]'
568
+ device: 'tv'
569
+ models:
570
+ - regex: 'SKWE20E21'
571
+ model: 'SKWE20E21'
572
+
573
+ # TD Systems
574
+ 'TD Systems':
575
+ regex: 'TDSystems[;,]'
576
+ device: 'tv'
577
+ models:
578
+ - regex: 'SmartTV(2019|2020)'
579
+ model: 'Smart TV ($1)'
580
+
581
+ # Technicolor
582
+ Technicolor:
583
+ regex: 'Technicolor'
584
+ device: 'tv'
585
+ models:
586
+ - regex: 'uzw4054ttg'
587
+ model: 'UZW4054TTG'
588
+
589
+ # Technika
590
+ Technika:
591
+ regex: 'TECHNIKA[;,]'
592
+ device: 'tv'
593
+ model: ''
594
+
233
595
  # TechniSat
234
596
  TechniSat:
235
597
  regex: 'TechniSat'
@@ -246,21 +608,24 @@ TechnoTrend:
246
608
  - regex: '([A-Z]{1}-[0-9]{3})'
247
609
  model: '$1'
248
610
 
611
+ # Techwood
612
+ Techwood:
613
+ regex: 'Techwood[;,]'
614
+ device: 'tv'
615
+ model: ''
616
+
249
617
  # Telefunken
250
618
  Telefunken:
251
619
  regex: 'Telefunken'
252
620
  device: 'tv'
253
- models:
254
- - regex: '(MB[0-9]{2})'
255
- model: '$1'
621
+ model: ''
622
+
256
623
  # TCL
257
624
  TCL:
258
625
  regex: 'TCL'
259
626
  device: 'tv'
260
627
  models:
261
- - regex: '(32D1820)'
262
- model: '$1'
263
- - regex: '(LF1V[0-9]{3})'
628
+ - regex: '(32D1820|(?:39|55)D2900|32D2930|(?:32|43)S4900)'
264
629
  model: '$1'
265
630
 
266
631
  # Thomson
@@ -280,25 +645,27 @@ Thomson:
280
645
  model: '$1 49.0"'
281
646
  - regex: '(T55D18[SD]FS-01B)'
282
647
  model: '$1 55.0"'
283
- - regex: '(LF1V[0-9]{3})'
284
- model: '$1'
648
+ - regex: '40FB5426'
649
+ model: '40FB5426'
650
+
651
+ # TOKYO
652
+ TOKYO:
653
+ regex: 'TOKYO[;,]'
654
+ device: 'tv'
655
+ models:
656
+ - regex: 'TOKTCLED32S'
657
+ model: 'TOKTCLED32S'
285
658
 
286
659
  # Toshiba
287
660
  Toshiba:
288
661
  regex: 'Toshiba'
289
662
  device: 'tv'
290
663
  models:
664
+ - regex: '40L2600'
665
+ model: '40L2600'
291
666
  - regex: '(([0-9]{2}|DTV_)[A-Z]{2}[0-9]{1,3})'
292
667
  model: '$1'
293
668
 
294
- # Vestel
295
- Vestel:
296
- regex: 'Vestel'
297
- device: 'tv'
298
- models:
299
- - regex: '(MB[0-9]{2})'
300
- model: '$1'
301
-
302
669
  # Videoweb
303
670
  Videoweb:
304
671
  regex: 'videoweb|tv2n'
@@ -307,4 +674,28 @@ Videoweb:
307
674
  - regex: '(tv2n)'
308
675
  model: '$1'
309
676
  - regex: '(videowebtv)'
310
- model: 'VideoWeb TV'
677
+ model: 'VideoWeb TV'
678
+
679
+ # VOX (https://www.voxelectronics.com/)
680
+ VOX:
681
+ regex: 'VOX[;,]'
682
+ device: 'tv'
683
+ model: ''
684
+
685
+ # WELLINGTON
686
+ WELLINGTON:
687
+ regex: 'WELLINGTON[;,]'
688
+ device: 'tv'
689
+ model: ''
690
+
691
+ # X.Vision
692
+ X.Vision:
693
+ regex: 'X-VISION[;,]'
694
+ device: 'tv'
695
+ model: ''
696
+
697
+ # Vestel
698
+ Vestel:
699
+ regex: '(?:Vestel.+VESTEL|VESTEL;)'
700
+ device: 'tv'
701
+ model: ''