From 6fde0d92d60752821f214394f337259589b3187e Mon Sep 17 00:00:00 2001 From: Garrit Franke Date: Tue, 8 Nov 2022 15:08:50 +0100 Subject: [PATCH 1/9] Support Panasonic Viera Smart TVs --- src/ua-parser.js | 68 ++++++++++++++++++++++++------------------ test/browser-test.json | 10 +++++++ test/device-test.json | 9 ++++++ test/os-test.json | 9 ++++++ 4 files changed, 67 insertions(+), 29 deletions(-) diff --git a/src/ua-parser.js b/src/ua-parser.js index b47ad236..5faa66c6 100755 --- a/src/ua-parser.js +++ b/src/ua-parser.js @@ -53,9 +53,11 @@ MICROSOFT = 'Microsoft', MOTOROLA = 'Motorola', OPERA = 'Opera', + PANASONIC = 'Panasonic', SAMSUNG = 'Samsung', SHARP = 'Sharp', SONY = 'Sony', + VIERA = 'Viera', XIAOMI = 'Xiaomi', ZEBRA = 'Zebra', FACEBOOK = 'Facebook'; @@ -295,6 +297,8 @@ / wv\).+(chrome)\/([\w\.]+)/i // Chrome WebView ], [[NAME, CHROME+' WebView'], VERSION], [ + /Panasonic;(VIERA)/i // Panasonic Viera + ], [[NAME, VIERA]], [ /droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i // Android Browser ], [VERSION, [NAME, 'Android '+BROWSER]], [ @@ -367,6 +371,35 @@ device : [[ + /////////////////// + // SMARTTVS + /////////////////// + + /smart-tv.+(samsung)/i // Samsung + ], [VENDOR, [TYPE, SMARTTV]], [ + /hbbtv.+maple;(\d+)/i + ], [[MODEL, /^/, 'SmartTV'], [VENDOR, SAMSUNG], [TYPE, SMARTTV]], [ + /(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i // LG SmartTV + ], [[VENDOR, LG], [TYPE, SMARTTV]], [ + /(apple) ?tv/i // Apple TV + ], [VENDOR, [MODEL, APPLE+' TV'], [TYPE, SMARTTV]], [ + /crkey/i // Google Chromecast + ], [[MODEL, CHROME+'cast'], [VENDOR, GOOGLE], [TYPE, SMARTTV]], [ + /droid.+aft(\w)( bui|\))/i // Fire TV + ], [MODEL, [VENDOR, AMAZON], [TYPE, SMARTTV]], [ + /\(dtv[\);].+(aquos)/i, + /(aquos-tv[\w ]+)\)/i // Sharp + ], [MODEL, [VENDOR, SHARP], [TYPE, SMARTTV]],[ + /(bravia[\w ]+)( bui|\))/i // Sony + ], [MODEL, [VENDOR, SONY], [TYPE, SMARTTV]], [ + /(mitv-\w{5}) bui/i // Xiaomi + ], [MODEL, [VENDOR, XIAOMI], [TYPE, SMARTTV]], [ + /\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i, // Roku + /hbbtv\/\d+\.\d+\.\d+ +\([\w ]*; *(\w[^;]*);([^;]*)/i // HbbTV devices + ], [[VENDOR, trim], [MODEL, trim], [TYPE, SMARTTV]], [ + /\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i // SmartTV from Unidentified Vendors + ], [[TYPE, SMARTTV]], [ + ////////////////////////// // MOBILES & TABLETS // Ordered by popularity @@ -601,35 +634,6 @@ /\b(xbox(?: one)?(?!; xbox))[\); ]/i // Microsoft Xbox ], [MODEL, [VENDOR, MICROSOFT], [TYPE, CONSOLE]], [ - /////////////////// - // SMARTTVS - /////////////////// - - /smart-tv.+(samsung)/i // Samsung - ], [VENDOR, [TYPE, SMARTTV]], [ - /hbbtv.+maple;(\d+)/i - ], [[MODEL, /^/, 'SmartTV'], [VENDOR, SAMSUNG], [TYPE, SMARTTV]], [ - /(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i // LG SmartTV - ], [[VENDOR, LG], [TYPE, SMARTTV]], [ - /(apple) ?tv/i // Apple TV - ], [VENDOR, [MODEL, APPLE+' TV'], [TYPE, SMARTTV]], [ - /crkey/i // Google Chromecast - ], [[MODEL, CHROME+'cast'], [VENDOR, GOOGLE], [TYPE, SMARTTV]], [ - /droid.+aft(\w)( bui|\))/i // Fire TV - ], [MODEL, [VENDOR, AMAZON], [TYPE, SMARTTV]], [ - /\(dtv[\);].+(aquos)/i, - /(aquos-tv[\w ]+)\)/i // Sharp - ], [MODEL, [VENDOR, SHARP], [TYPE, SMARTTV]],[ - /(bravia[\w ]+)( bui|\))/i // Sony - ], [MODEL, [VENDOR, SONY], [TYPE, SMARTTV]], [ - /(mitv-\w{5}) bui/i // Xiaomi - ], [MODEL, [VENDOR, XIAOMI], [TYPE, SMARTTV]], [ - /\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i, // Roku - /hbbtv\/\d+\.\d+\.\d+ +\([\w ]*; *(\w[^;]*);([^;]*)/i // HbbTV devices - ], [[VENDOR, trim], [MODEL, trim], [TYPE, SMARTTV]], [ - /\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i // SmartTV from Unidentified Vendors - ], [[TYPE, SMARTTV]], [ - /////////////////// // WEARABLES /////////////////// @@ -729,10 +733,16 @@ /(cros) [\w]+ ([\w\.]+\w)/i // Chromium OS ], [[NAME, 'Chromium OS'], VERSION],[ + // Smart TVs + /Panasonic;VIERA/i // Panasonic Viera + ], [[NAME, VIERA]], [ + + // Console /(nintendo|playstation) ([wids345portablevuch]+)/i, // Nintendo/Playstation /(xbox); +xbox ([^\);]+)/i, // Microsoft Xbox (360, One, X, S, Series X, Series S) + // Other /\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i, // Joli/Palm /(mint)[\/\(\) ]?(\w*)/i, // Mint diff --git a/test/browser-test.json b/test/browser-test.json index bf8163a1..4db45f05 100644 --- a/test/browser-test.json +++ b/test/browser-test.json @@ -1278,6 +1278,16 @@ "major" : "1" } }, + { + "desc" : "Viera", + "ua" : "HbbTV/1.2.1 (;Panasonic;VIERA 2015;3.014;a001-003 4000-0000;)", + "expect" : + { + "name" : "Viera", + "version" : "undefined", + "major" : "undefined" + } + }, { "desc" : "Yandex", "ua" : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/536.5 (KHTML, like Gecko) YaBrowser/1.0.1084.5402 Chrome/19.0.1084.5402 Safari/536.5", diff --git a/test/device-test.json b/test/device-test.json index bad1e50a..235b0e60 100644 --- a/test/device-test.json +++ b/test/device-test.json @@ -1431,6 +1431,15 @@ "type": "mobile" } }, + { + "desc": "Panasonic TX-32CSW514 SmartTV", + "ua": "HbbTV/1.2.1 (;Panasonic;VIERA 2015;3.014;a001-003 4000-0000;)", + "expect": { + "vendor": "Panasonic", + "model": "VIERA 2015", + "type": "smarttv" + } + }, { "desc": "Philips SmartTV", "ua": "Opera/9.80 HbbTV/1.1.1 (; Philips; ; ; ; ) NETTV/4.0.2; en) Version/11.60", diff --git a/test/os-test.json b/test/os-test.json index 57a4d8a9..b7b78fec 100644 --- a/test/os-test.json +++ b/test/os-test.json @@ -1043,6 +1043,15 @@ "version" : "undefined" } }, + { + "desc" : "Panasonic Viera", + "ua" : "HbbTV/1.2.1 (;Panasonic;VIERA 2015;3.014;a001-003 4000-0000;)", + "expect" : + { + "name" : "Viera", + "version" : "undefined" + } + }, { "desc" : "HP-UX", "ua" : "Mozilla/5.0 (X11; U; HP-UX 9000/785; es-ES; rv:1.0.1) Gecko/20020827 Netscape/7.0", From 5fd47ee00d4aa01838da870b6fcf965812622291 Mon Sep 17 00:00:00 2001 From: Garrit Franke Date: Tue, 8 Nov 2022 15:26:12 +0100 Subject: [PATCH 2/9] Support Panasonic 2018+ smart tvs --- src/ua-parser.js | 2 +- test/device-test.json | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/ua-parser.js b/src/ua-parser.js index 5faa66c6..f825faff 100755 --- a/src/ua-parser.js +++ b/src/ua-parser.js @@ -395,7 +395,7 @@ /(mitv-\w{5}) bui/i // Xiaomi ], [MODEL, [VENDOR, XIAOMI], [TYPE, SMARTTV]], [ /\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i, // Roku - /hbbtv\/\d+\.\d+\.\d+ +\([\w ]*; *(\w[^;]*);([^;]*)/i // HbbTV devices + /hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i // HbbTV devices ], [[VENDOR, trim], [MODEL, trim], [TYPE, SMARTTV]], [ /\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i // SmartTV from Unidentified Vendors ], [[TYPE, SMARTTV]], [ diff --git a/test/device-test.json b/test/device-test.json index 235b0e60..d6525f20 100644 --- a/test/device-test.json +++ b/test/device-test.json @@ -1440,6 +1440,15 @@ "type": "smarttv" } }, + { + "desc": "Panasonic TX-40FXW724 SmartTV", + "ua": "HbbTV/1.4.1 (+DRM;Panasonic;SmartTV2018mid;3.024;4301-0003 0002-0000;SmartTV2018;)", + "expect": { + "vendor": "Panasonic", + "model": "SmartTV2018mid", + "type": "smarttv" + } + }, { "desc": "Philips SmartTV", "ua": "Opera/9.80 HbbTV/1.1.1 (; Philips; ; ; ; ) NETTV/4.0.2; en) Version/11.60", From 98096f14548d12befbb49555447aae953b65d074 Mon Sep 17 00:00:00 2001 From: Garrit Franke Date: Tue, 8 Nov 2022 15:28:14 +0100 Subject: [PATCH 3/9] Add test for panasonic 2020 smart tv --- test/device-test.json | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/test/device-test.json b/test/device-test.json index d6525f20..154b20e9 100644 --- a/test/device-test.json +++ b/test/device-test.json @@ -1449,6 +1449,15 @@ "type": "smarttv" } }, + { + "desc": "Panasonic TX-43HXW904 SmartTV", + "ua": "HbbTV/1.5.1 (+DRM;Panasonic;SmartTV2020mid;3.326;4301-0003 0008-0000;com.panasonic.SmartTV2020mid;)", + "expect": { + "vendor": "Panasonic", + "model": "SmartTV2020mid", + "type": "smarttv" + } + }, { "desc": "Philips SmartTV", "ua": "Opera/9.80 HbbTV/1.1.1 (; Philips; ; ; ; ) NETTV/4.0.2; en) Version/11.60", From 8ffdf232f488a6f59733241ba177538882c8189f Mon Sep 17 00:00:00 2001 From: Garrit Franke Date: Tue, 8 Nov 2022 15:30:54 +0100 Subject: [PATCH 4/9] Add test for panasonic SAT receiver --- test/device-test.json | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/test/device-test.json b/test/device-test.json index 154b20e9..69323c33 100644 --- a/test/device-test.json +++ b/test/device-test.json @@ -1458,6 +1458,15 @@ "type": "smarttv" } }, + { + "desc": "Panasonic DMR-HST130 SAT receiver", + "ua": "HbbTV/1.1.1 (+PVR;Panasonic;DIGA WebKit M8658;3.420;;)", + "expect": { + "vendor": "Panasonic", + "model": "DIGA WebKit M8658", + "type": "smarttv" + } + }, { "desc": "Philips SmartTV", "ua": "Opera/9.80 HbbTV/1.1.1 (; Philips; ; ; ; ) NETTV/4.0.2; en) Version/11.60", From db5567d61487a9940aeceb25eba68bacc1286df4 Mon Sep 17 00:00:00 2001 From: Garrit Franke Date: Tue, 8 Nov 2022 15:56:40 +0100 Subject: [PATCH 5/9] Support Loewe Smart TVs --- src/ua-parser.js | 5 ++++- test/device-test.json | 9 +++++++++ test/os-test.json | 9 +++++++++ 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/ua-parser.js b/src/ua-parser.js index f825faff..c9d8655b 100755 --- a/src/ua-parser.js +++ b/src/ua-parser.js @@ -52,6 +52,7 @@ LG = 'LG', MICROSOFT = 'Microsoft', MOTOROLA = 'Motorola', + NETRANGE= 'Netrange', OPERA = 'Opera', PANASONIC = 'Panasonic', SAMSUNG = 'Samsung', @@ -734,8 +735,10 @@ ], [[NAME, 'Chromium OS'], VERSION],[ // Smart TVs - /Panasonic;VIERA/i // Panasonic Viera + /Panasonic;VIERA/i // Panasonic Viera ], [[NAME, VIERA]], [ + /NETRANGEMMH/i // Netrange + ], [[NAME, NETRANGE]], [ // Console diff --git a/test/device-test.json b/test/device-test.json index 69323c33..f4e4c5b0 100644 --- a/test/device-test.json +++ b/test/device-test.json @@ -970,6 +970,15 @@ "type": "smarttv" } }, + { + "desc": "Loewe Smart TV", + "ua": "Mozilla/5.0 (Linux; U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36 OPR/46.0.2207.0 LOEWE-SL410/5.2.0.0 HbbTV/1.4.1 (; LOEWE; SL410; LOH/5.2.0.0;;) FVC/3.0 (LOEWE; SL410;) CE-HTML/1.0 Config (L:deu,CC:DEU) NETRANGEMMH", + "expect": { + "vendor": "LOEWE", + "model": "SL410", + "type": "smarttv" + } + }, { "desc": "Meizu M5 Note", "ua": "Mozilla/5.0 (Linux; Android 6.0; M5 Note Build/MRA58K; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.49 Mobile MQQBrowser/6.2 TBS/043024 Safari/537.36 MicroMessenger/6.5.7.1040 NetType/WIFI Language/zh_CN", diff --git a/test/os-test.json b/test/os-test.json index b7b78fec..006504cb 100644 --- a/test/os-test.json +++ b/test/os-test.json @@ -1052,6 +1052,15 @@ "version" : "undefined" } }, + { + "desc" : "Netrange Smart TV", + "ua" : "Mozilla/5.0 (Linux; U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36 OPR/46.0.2207.0 LOEWE-SL410/5.2.0.0 HbbTV/1.4.1 (; LOEWE; SL410; LOH/5.2.0.0;;) FVC/3.0 (LOEWE; SL410;) CE-HTML/1.0 Config (L:deu,CC:DEU) NETRANGEMMH", + "expect" : + { + "name" : "Netrange", + "version" : "undefined" + } + }, { "desc" : "HP-UX", "ua" : "Mozilla/5.0 (X11; U; HP-UX 9000/785; es-ES; rv:1.0.1) Gecko/20020827 Netscape/7.0", From a8a4e71345b22f7ba0fce024426d046a5da3183c Mon Sep 17 00:00:00 2001 From: Garrit Franke Date: Tue, 8 Nov 2022 16:17:57 +0100 Subject: [PATCH 6/9] Add tests for JVC smart tvs --- test/device-test.json | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/test/device-test.json b/test/device-test.json index f4e4c5b0..dd2111a4 100644 --- a/test/device-test.json +++ b/test/device-test.json @@ -790,6 +790,24 @@ "type": "mobile" } }, + { + "desc": "JVC LT-43V55LFA Smart TV", + "ua": "Mozilla/5.0 (Linux armv7l) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36 OPR/40.0.2207.0 OMI/4.9.0.237.DOM3-OPT.245 Model/Vestel-MB211 VSTVB MB200 HbbTV/1.2.1 (; JVC; MB211; 3.19.4.2; _TV_NT72563_2017 SmartTvA/3.0.0", + "expect": { + "vendor": "JVC", + "model": "MB211", + "type": "smarttv" + } + }, + { + "desc": "JVC LT-43V65LUA Smart TV", + "ua": "Mozilla/5.0 (Linux armv7l) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36 OPR/40.0.2207.0 OMI/4.9.0.237.DOM3-OPT.245 Model/Vestel-MB130 VSTVB MB100 HbbTV/1.2.1 (; JVC; MB130; 5.7.20.0; _TV_G10_2017;) SmartTvA/3.0.0", + "expect": { + "vendor": "JVC", + "model": "MB130", + "type": "smarttv" + } + }, { "desc": "Lenovo Tab 2", "ua": "Mozilla/5.0 (Linux; Android 5.0.1; Lenovo TAB 2 A7-30HC Build/LRX21M; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/74.0.3729.157 Safari/537.36", From 528e7aea1cd1a300043e00f0a7299edc348e3afc Mon Sep 17 00:00:00 2001 From: Garrit Franke Date: Wed, 9 Nov 2022 11:03:13 +0100 Subject: [PATCH 7/9] Support philips smart tvs --- src/ua-parser.js | 3 +++ test/device-test.json | 27 +++++++++++++++++++++++++++ test/os-test.json | 9 +++++++++ 3 files changed, 39 insertions(+) diff --git a/src/ua-parser.js b/src/ua-parser.js index c9d8655b..d8068a0b 100755 --- a/src/ua-parser.js +++ b/src/ua-parser.js @@ -53,6 +53,7 @@ MICROSOFT = 'Microsoft', MOTOROLA = 'Motorola', NETRANGE= 'Netrange', + NETTV = 'NetTV', OPERA = 'Opera', PANASONIC = 'Panasonic', SAMSUNG = 'Samsung', @@ -739,6 +740,8 @@ ], [[NAME, VIERA]], [ /NETRANGEMMH/i // Netrange ], [[NAME, NETRANGE]], [ + /nettv\/(\d\.\d.\d)/i // NetTV + ], [VERSION, [NAME, NETTV]], [ // Console diff --git a/test/device-test.json b/test/device-test.json index dd2111a4..136b61e0 100644 --- a/test/device-test.json +++ b/test/device-test.json @@ -1503,6 +1503,33 @@ "type": "smarttv" } }, + { + "desc": "Philips 32PFL6606K/02 SmartTV (2011)", + "ua": "Opera/9.80 (Linux mips ; U; HbbTV/1.1.1 (; Philips; ; ; ; ) CE-HTML/1.0 NETTV/3.1.0; en) Presto/2.6.33 Version/10.70", + "expect": { + "vendor": "Philips", + "model": "", + "type": "smarttv" + } + }, + { + "desc": "Philips 32PFL6606K/02 SmartTV (2013)", + "ua": "Opera/9.80 (Linux mips ; U; HbbTV/1.1.1 (; Philips; ; ; ; ) CE-HTML/1.0 NETTV/3.1.0; en) Presto/2.6.33 Version/10.70", + "expect": { + "vendor": "Philips", + "model": "", + "type": "smarttv" + } + }, + { + "desc": "Philips 32PHS5301/12 SmartTV (2016)", + "ua": "Mozilla/5.0 (Linux armv7l) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.152 Safari/537.36 OPR/29.0.1803.0 OMI/4.5.23.37.MOT2.13 HbbTV/1.2.1 (;Philips;32PHS5301/12;;_TV_MT5800;) Firmware/TPM161E_012.002.045.001 en", + "expect": { + "vendor": "Philips", + "model": "32PHS5301/12", + "type": "smarttv" + } + }, { "desc": "Roku", "ua": "Mozilla/5.0 (Roku) AppleWebKit/537.36 (KHTML, like Gecko) Web/1.1 Safari/537.36", diff --git a/test/os-test.json b/test/os-test.json index 006504cb..e5b13c27 100644 --- a/test/os-test.json +++ b/test/os-test.json @@ -1061,6 +1061,15 @@ "version" : "undefined" } }, + { + "desc" : "NetTV 3.2.1", + "ua" : "Opera/9.80 (Linux mips ; U; HbbTV/1.1.1 (; Philips; ; ; ; ) CE-HTML/1.0 NETTV/3.2.1; en) Presto/2.6.33 Version/10.70", + "expect" : + { + "name" : "NetTV", + "version" : "3.2.1" + } + }, { "desc" : "HP-UX", "ua" : "Mozilla/5.0 (X11; U; HP-UX 9000/785; es-ES; rv:1.0.1) Gecko/20020827 Netscape/7.0", From e5942dc505ac219872e0da384dd8e4fbe6a738b6 Mon Sep 17 00:00:00 2001 From: Garrit Franke Date: Thu, 10 Nov 2022 09:07:08 +0100 Subject: [PATCH 8/9] Add samsung testcases --- test/device-test.json | 9 +++++++++ test/os-test.json | 9 +++++++++ 2 files changed, 18 insertions(+) diff --git a/test/device-test.json b/test/device-test.json index 136b61e0..fbdc9f4b 100644 --- a/test/device-test.json +++ b/test/device-test.json @@ -1809,6 +1809,15 @@ "type": "smarttv" } }, + { + "desc": "Samsung SmartTV HBBTV", + "ua": "HbbTV/1.5.1 (+DRM;Samsung;SmartTV2021:UAU7000;T-KSU2EDEUC-1506.0;KantSU2e;urn:samsungtv:familyname:21_KANTSU2E_UHD_BASIC:2021;) Tizen/6.0 (+TVPLUS+SmartHubLink) Chrome/76 LaTivu_1.0.1_2021 RVID/17", + "expect": { + "vendor": "Samsung", + "model": "SmartTV2021:UAU7000", + "type": "smarttv" + } + }, { "desc": "Sharp AQUOS-TVX19B", "ua": "Mozilla/5.0 (Linux; Android 9; AQUOS-TVX19B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Mobile Safari/537.36", diff --git a/test/os-test.json b/test/os-test.json index e5b13c27..3408ddd9 100644 --- a/test/os-test.json +++ b/test/os-test.json @@ -197,6 +197,15 @@ "version" : "2.3" } }, + { + "desc" : "Tizen 6.0", + "ua" : "HbbTV/1.5.1 (+DRM;Samsung;SmartTV2021:UAU7000;T-KSU2EDEUC-1506.0;KantSU2e;urn:samsungtv:familyname:21_KANTSU2E_UHD_BASIC:2021;) Tizen/6.0 (+TVPLUS+SmartHubLink) Chrome/76 LaTivu_1.0.1_2021 RVID/17", + "expect" : + { + "name" : "Tizen", + "version" : "6.0" + } + }, { "desc" : "Android", "ua" : "Mozilla/5.0 (Linux; U; Android 2.2.2; en-us; VM670 Build/FRG83G) AppleWebKit/533.1 (KHTML, like Gecko)", From df7551c9b69d067cb2a14c91849f0c8715c0af86 Mon Sep 17 00:00:00 2001 From: Garrit Franke Date: Thu, 10 Nov 2022 11:20:31 +0100 Subject: [PATCH 9/9] Add support for TechniSAT TVs and SATs --- src/ua-parser.js | 2 ++ test/device-test.json | 20 ++++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/src/ua-parser.js b/src/ua-parser.js index d8068a0b..d3895e06 100755 --- a/src/ua-parser.js +++ b/src/ua-parser.js @@ -396,6 +396,8 @@ ], [MODEL, [VENDOR, SONY], [TYPE, SMARTTV]], [ /(mitv-\w{5}) bui/i // Xiaomi ], [MODEL, [VENDOR, XIAOMI], [TYPE, SMARTTV]], [ + /Hbbtv.*(technisat) (.*);/i // TechniSAT + ], [VENDOR, MODEL, [TYPE, SMARTTV]], [ /\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i, // Roku /hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i // HbbTV devices ], [[VENDOR, trim], [MODEL, trim], [TYPE, SMARTTV]], [ diff --git a/test/device-test.json b/test/device-test.json index fbdc9f4b..fbcc5441 100644 --- a/test/device-test.json +++ b/test/device-test.json @@ -2045,6 +2045,26 @@ "type": "embedded" } }, + { + "desc" : "TechniSAT Digit ISIO S SAT receiver", + "ua" : "Opera/9.80 (Linux sh4; U; HbbTV/1.1.1 (;;;;;); CE-HTML; TechniSat Digit ISIO S; de) Presto/2.9.167 Version/11.50", + "expect" : + { + "vendor": "TechniSat", + "model": "Digit ISIO S", + "type": "smarttv" + } + }, + { + "desc" : "TechniSAT MultyVision SmartTV", + "ua" : "Opera/9.80 (Linux i686; U; HbbTV/1.1.1 (;;;;;); CE-HTML; TechniSat MultyVision ISIO; de) Presto/2.9.167 Version/11.50", + "expect" : + { + "vendor": "TechniSat", + "model": "MultyVision ISIO", + "type": "smarttv" + } + }, { "desc": "Xiaomi 2013023", "ua": "Mozilla/5.0 (Linux; U; Android 4.2.2; en-US; 2013023 Build/HM2013023) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 UCBrowser/10.0.1.512 U3/0.8.0 Mobile Safari/533.1",