device_detector 1.0.5 → 1.0.6

Sign up to get free protection for your applications and to get access to all the features.
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: ''