From 6b6167f2151683c733a5dc14e5d2a3dabad9ee5d Mon Sep 17 00:00:00 2001 From: Liviu-Mihail Concioiu Date: Thu, 31 Oct 2024 08:19:32 +0100 Subject: [PATCH] Adds detection for Whale TV Browser, Cultraview, evvoli and Top-Tech brands, improves detection for various brands (#7881) * Improves detection for Thomson devices * Improves detection for Miray devices * Improves detection for Essentielb devices * Improves detection for Manta Multimedia devices * Improves detection for Master-G devices * Adds detection for evvoli brand * Improves detection for AOC devices * Improves detection for Philips devices * Improves detection for Whale OS * Improves detection for TCL devices * Improves detection for SCBC devices * Adds detection for WhaleBrowser * Improves detection for Skyworth devices * Adds detection for Top-Tech brand * Adds detection for Cultraview brand * Rename TCL to TCL SCBC * Rename WhaleBrowser to Whale TV Browser ref #7880 --- Parser/Client/Browser.php | 2 + Parser/Device/AbstractDeviceParser.php | 5 +- Tests/Parser/Client/fixtures/browser.yml | 9 + Tests/fixtures/tv-2.yml | 2 +- Tests/fixtures/tv-4.yml | 306 +++++++++++++++++++++++ Tests/fixtures/tv.yml | 4 +- regexes/client/browsers.yml | 7 + regexes/device/mobiles.yml | 76 ++++-- regexes/device/televisions.yml | 22 +- regexes/oss.yml | 2 +- 10 files changed, 404 insertions(+), 31 deletions(-) diff --git a/Parser/Client/Browser.php b/Parser/Client/Browser.php index ea56416fb1..ecf23b178f 100644 --- a/Parser/Client/Browser.php +++ b/Parser/Client/Browser.php @@ -684,6 +684,7 @@ class Browser extends AbstractClientParser 'WB' => 'Wave Browser', 'WA' => 'Wavebox', 'WH' => 'Whale Browser', + 'W2' => 'Whale TV Browser', 'WO' => 'wOSBrowser', '3W' => 'w3m', 'WT' => 'WeTab Browser', @@ -768,6 +769,7 @@ class Browser extends AbstractClientParser 'M9', 'F9', '0P', '0A', 'JR', 'D3', 'TK', 'BP', '2F', '2M', 'K7', '1N', '8A', 'H7', 'X3', 'T4', 'X4', '5O', '8C', '3M', '6I', '2P', 'PU', '7I', 'X5', 'AL', '3P', + 'W2', ], 'Firefox' => [ 'FF', 'BI', 'BF', 'BH', 'BN', 'C0', 'CU', 'EI', 'F1', diff --git a/Parser/Device/AbstractDeviceParser.php b/Parser/Device/AbstractDeviceParser.php index f2f7025dd1..138eca06a0 100644 --- a/Parser/Device/AbstractDeviceParser.php +++ b/Parser/Device/AbstractDeviceParser.php @@ -406,6 +406,7 @@ abstract class AbstractDeviceParser extends AbstractParser 'CU' => 'Cube', 'CB' => 'CUBOT', 'CUI' => 'Cuiud', + 'CUL' => 'Cultraview', 'CV' => 'CVTE', 'CWO' => 'Cwowdefu', 'CX0' => 'CX', @@ -575,6 +576,7 @@ abstract class AbstractDeviceParser extends AbstractParser 'EO' => 'Evolveo', '0Q' => 'Evoo', '5U' => 'EVPAD', + 'EVV' => 'evvoli', 'E0' => 'EvroMedia', 'XE' => 'ExMobile', '4Z' => 'Exmart', @@ -1529,7 +1531,7 @@ abstract class AbstractDeviceParser extends AbstractParser 'SY' => 'Sanyo', 'SAN' => 'SANY', 'S9' => 'Savio', - 'Y4' => 'SCBC', + 'Y4' => 'TCL SCBC', 'CZ' => 'Schneider', 'SCO' => 'Scosmos', 'SC1' => 'Scoole', @@ -1739,6 +1741,7 @@ abstract class AbstractDeviceParser extends AbstractParser 'TY' => 'Tooky', 'TYD' => 'TYD', 'TOO' => 'TOOGO', + 'TPT' => 'Top-Tech', 'T9' => 'Top House', 'DK' => 'Topelotek', '42' => 'Topway', diff --git a/Tests/Parser/Client/fixtures/browser.yml b/Tests/Parser/Client/fixtures/browser.yml index 0f4bcddd5e..c8152ed87c 100644 --- a/Tests/Parser/Client/fixtures/browser.yml +++ b/Tests/Parser/Client/fixtures/browser.yml @@ -10312,3 +10312,12 @@ family: Chrome headers: http-x-requested-with: com.cloaktp.browser +- + user_agent: Mozilla/5.0 (X11;Linux armv7l) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.4280.88 Safari/537.36 Model/NT6904K (SKW690;WHALEOSSKWNT6904KTVP1;WHALEOS-SKW-NT6904KTV-1000051.000;;_TV_NT6904K_HHbrowser_2k22;) LaTivu_1.0.1_2022 CE-HTML/1.0 NETTV_4.6.0.1 SignOn/2.0 SmartTvA/5.0.0 WhaleTV/3.0 WhaleBrowser/1.1.933.1 en + client: + type: browser + name: Whale TV Browser + version: 1.1.933.1 + engine: Blink + engine_version: 107.0.4280.88 + family: Chrome diff --git a/Tests/fixtures/tv-2.yml b/Tests/fixtures/tv-2.yml index 40a2cb2dd3..0b8a00279d 100644 --- a/Tests/fixtures/tv-2.yml +++ b/Tests/fixtures/tv-2.yml @@ -5876,7 +5876,7 @@ device: type: tv brand: TCL - model: 72563C + model: Smart TV (2020) os_family: Other Smart TV browser_family: Opera - diff --git a/Tests/fixtures/tv-4.yml b/Tests/fixtures/tv-4.yml index 78ad26124a..e2d8a439dc 100644 --- a/Tests/fixtures/tv-4.yml +++ b/Tests/fixtures/tv-4.yml @@ -3027,3 +3027,309 @@ model: 32SN6000H os_family: Android browser_family: Unknown +- + user_agent: 'Opera/9.80 NETTV/4.5.0 Mozilla/5.0 (Linux armv7i; CE-HTML/1.0; U; en) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.75 Safari/537.36 Tbrowser/2.0 TV/V8-S586T02-LF1V299 (THOMSON,55UD66*6,wired)' + os: + name: GNU/Linux + version: "" + platform: ARM + client: + type: browser + name: T-Browser + version: "2.0" + engine: Blink + engine_version: 49.0.2623.75 + device: + type: tv + brand: Thomson + model: 55UD66 + os_family: GNU/Linux + browser_family: Chrome +- + user_agent: Opera/9.80 NETTV/4.5.0 Mozilla/5.0 (Linux armv7i; CE-HTML/1.0; U; en) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.75 Safari/537.36 NETRANGEMMH Tbrowser/2.0 TV/V8-NT563LA-LF1V430 (MIRAY,32D1240,wired) + os: + name: GNU/Linux + version: "" + platform: ARM + client: + type: browser + name: T-Browser + version: "2.0" + engine: Blink + engine_version: 49.0.2623.75 + device: + type: tv + brand: Miray + model: 32D1240 + os_family: GNU/Linux + browser_family: Chrome +- + user_agent: Zeasn/2.0 NETTV/4.5.0 Mozilla/5.0 (Linux;CE-HTML/1.0;U;en), Chrome/49.0.2623.87 Safari/537.36 AppleWebKit 537.36 (KHTML, like Gecko) Tbrowser/2.0, _TV_UNKONWN/V8-NT563AM-LF1V033 (ESSENTIEL B,32A6000,wireless) + os: + name: Whale OS + version: "1" + platform: "" + client: + type: browser + name: T-Browser + version: "2.0" + engine: Blink + engine_version: 49.0.2623.87 + device: + type: tv + brand: Essentielb + model: 32A6000 + os_family: Other Smart TV + browser_family: Chrome +- + user_agent: Opera/9.80 NETTV/4.5.0 Mozilla/5.0 (Linux armv7i; CE-HTML/1.0; U; en) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.75 Safari/537.36 Tbrowser/2.0 _TV_NT563/V8-NT563AM-LF1V054 (MANTA,32D2040,wireless) + os: + name: GNU/Linux + version: "" + platform: ARM + client: + type: browser + name: T-Browser + version: "2.0" + engine: Blink + engine_version: 49.0.2623.75 + device: + type: tv + brand: Manta Multimedia + model: 32D2040 + os_family: GNU/Linux + browser_family: Chrome +- + user_agent: Opera/9.80 NETTV/4.5.0 Mozilla/5.0 (Linux armv7i; CE-HTML/1.0; U; en) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.75 Safari/537.36 NETRANGEMMH Tbrowser/2.0 TV/V8-NT563LA-LF1V430 (MASTER-G,43D1240,wireless) + os: + name: GNU/Linux + version: "" + platform: ARM + client: + type: browser + name: T-Browser + version: "2.0" + engine: Blink + engine_version: 49.0.2623.75 + device: + type: tv + brand: Master-G + model: 43D1240 + os_family: GNU/Linux + browser_family: Chrome +- + user_agent: Zeasn/2.0 NETTV/4.5.0 Mozilla/5.0 (Linux;CE-HTML/1.0;U;en), Chrome/49.0.2623.87 Safari/537.36 AppleWebKit 537.36 (KHTML, like Gecko) Tbrowser/2.0, _TV_UNKONWN/V8-NT563LA-LF1V270 (EVVOLI,32EV200DS,wireless) + os: + name: Whale OS + version: "1" + platform: "" + client: + type: browser + name: T-Browser + version: "2.0" + engine: Blink + engine_version: 49.0.2623.87 + device: + type: tv + brand: evvoli + model: 32EV200DS + os_family: Other Smart TV + browser_family: Chrome +- + user_agent: Mozilla/5.0 (Linux armv7l) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36 OPR/46.0.2207.0 OMI/4.20.4.54.Nebula.11 Model/Tango-NT72671(AOC;50U6305/43I;205.002.153.001;_TV_NT72671_Cosmos_2k20) SignOn/2.0 WhaleTV/2.0 NETTV/4.6.0.1 SmartTvA/5.0.0 es + os: + name: Whale OS + version: "2.0" + platform: ARM + client: + type: browser + name: Opera Devices + version: 4.20.4.54 + engine: Blink + engine_version: 77.0.3865.120 + device: + type: tv + brand: AOC + model: 50U6305/43I + os_family: Other Smart TV + browser_family: Opera +- + user_agent: Mozilla/5.0 (Linux; Andr0id 11.0; TPM191E Build/RTT2.211108.001) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36 OPR/32.0.2128.0 OMI/4.8.0.129.Typhoon2.10(;Philips;50PUS7304/62;TPM191E_R.201.000.248.227;_TV_5599;) CE-HTML/1.0 NETTV/9.0.0 SmartTvA/5.0.0 WH/1.0 + os: + name: Whale OS + version: "1.0" + platform: "" + client: + type: browser + name: Opera Devices + version: 4.8.0.129 + engine: Blink + engine_version: 49.0.2623.112 + device: + type: tv + brand: Philips + model: 50PUS7304/62 + os_family: Other Smart TV + browser_family: Opera +- + user_agent: Mozilla/5.0 (Linux; Andr0id 11.0; TPM191E Build/RTT2.211108.001) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36 OPR/32.0.2128.0 OMI/4.8.0.129.Typhoon2.10(;Philips;50PUS8505/62;TPM191E_R.201.000.248.227;_TV_5599;) CE-HTML/1.0 NETTV/9.0.0 SmartTvA/5.0.0 WH/1.0 + os: + name: Whale OS + version: "1.0" + platform: "" + client: + type: browser + name: Opera Devices + version: 4.8.0.129 + engine: Blink + engine_version: 49.0.2623.112 + device: + type: tv + brand: Philips + model: 50PUS8505/62 + os_family: Other Smart TV + browser_family: Opera +- + user_agent: Mozilla/5.0 (Linux; Andr0id 8.0; TPM171E Build/OC) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36 OPR/32.0.2128.0 OMI/4.8.0.129.Sprinter6.112(;Philips;49PUS7002/62;TPM171E_R.107.001.143.000;_TV_5596;) CE-HTML/1.0 NETTV/8.0.2 SmartTvA/5.0.0 + os: + name: Android TV + version: "8.0" + platform: "" + client: + type: browser + name: Opera Devices + version: 4.8.0.129 + engine: Blink + engine_version: 49.0.2623.112 + device: + type: tv + brand: Philips + model: 49PUS7002/62 + os_family: Android + browser_family: Opera +- + user_agent: 'Mozilla/5.0 (Linux armv7l) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36 OPR/46.0.2207.0 OMI/4.20.4.54.Elm.33 Model/ELM-NT72671D(TCL72671D;V8-NT671LA-LF1V603;T000.000.000.262_DM226.0.8_U1.0.129.17_A0.3.2 [2021-11-02 14:51:20];_TV_NT72671_Tbrowser_2k20) SignOn/2.0 WhaleTV/2.0 NETTV_4.6.0.1 en' + os: + name: Whale OS + version: "2.0" + platform: ARM + client: + type: browser + name: Opera Devices + version: 4.20.4.54 + engine: Blink + engine_version: 77.0.3865.120 + device: + type: tv + brand: TCL + model: Smart TV (2020) + os_family: Other Smart TV + browser_family: Opera +- + user_agent: 'Mozilla/5.0 (Linux armv7l) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36 OPR/46.0.2207.0 OMI/4.20.4.54.Elm.33 Model/ELM-NT72671D(TCL72671D;V8-NT671LA-LF1V621;T000.000.000.266_DM226.0.8_U1.0.129.21_A0.3.2 [2022-01-07 10:37:03];_TV_NT72671_Tbrowser_2k20) SignOn/2.0 WhaleTV/2.0 NETTV_4.6.0.1 es' + os: + name: Whale OS + version: "2.0" + platform: ARM + client: + type: browser + name: Opera Devices + version: 4.20.4.54 + engine: Blink + engine_version: 77.0.3865.120 + device: + type: tv + brand: TCL + model: Smart TV (2020) + os_family: Other Smart TV + browser_family: Opera +- + user_agent: 'Mozilla/5.0 (Linux armv7l) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36 OPR/46.0.2207.0 OMI/4.20.4.54.Elm.9 HbbTV/1.5.1 (+DRM; TCL72671D;V8-NT671LA-LF1V486;T000.000.000.218_DM100.2.29_U1.0.42.45_A0.0.38 [2021-04-21 14:44:20]; ;_TV_NT72671_TCL_SCBC_Tbrowser_2k20;) FVC/4.0 (TCL72671D;) LaTivu_1.0.1_2020 SignOn/2.0 WhaleTV/2.0 NETTV/4.6.0.1 es-MX' + os: + name: Whale OS + version: "2.0" + platform: ARM + client: + type: browser + name: Opera Devices + version: 4.20.4.54 + engine: Blink + engine_version: 77.0.3865.120 + device: + type: tv + brand: TCL SCBC + model: Smart TV (2020) + os_family: Other Smart TV + browser_family: Opera +- + user_agent: 'Mozilla/5.0 (Linux armv7l) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36 OPR/46.0.2207.0 OMI/4.20.4.54.Elm.9 HbbTV/1.5.1 (+DRM; TCL72671D;V8-NT671LA-LF1V458;T000.000.000.207_DM100.2.26_U1.0.42.40_A0.0.38 [2021-03-26 14:36:55]; ;_TV_NT72671_TCL_SCBC_Tbrowser_2k20;) FVC/4.0 (TCL72671D;) LaTivu_1.0.1_2020 SignOn/2.0 WhaleTV/2.0 NETTV/4.6.0.1 es-MX' + os: + name: Whale OS + version: "2.0" + platform: ARM + client: + type: browser + name: Opera Devices + version: 4.20.4.54 + engine: Blink + engine_version: 77.0.3865.120 + device: + type: tv + brand: TCL SCBC + model: Smart TV (2020) + os_family: Other Smart TV + browser_family: Opera +- + user_agent: Mozilla/5.0 (X11;Linux armv7l) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.4280.88 Safari/537.36 Model/NT6904K (SKW690;WHALEOSSKWNT6904KTVP1;WHALEOS-SKW-NT6904KTV-1000051.000;;_TV_NT6904K_HHbrowser_2k22;) LaTivu_1.0.1_2022 CE-HTML/1.0 NETTV_4.6.0.1 SignOn/2.0 SmartTvA/5.0.0 WhaleTV/3.0 WhaleBrowser/1.1.933.1 en + os: + name: Whale OS + version: "3.0" + platform: ARM + client: + type: browser + name: Whale TV Browser + version: 1.1.933.1 + engine: Blink + engine_version: 107.0.4280.88 + device: + type: tv + brand: Skyworth + model: Smart TV (2022) + os_family: Other Smart TV + browser_family: Chrome +- + user_agent: Mozilla/5.0 (X11;Linux armv7l) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4280.88 Safari/537.36 Model/NT726902K (Toptech690;WHALEOSDKNT6902KTVP41;WHALEOS-DK-NT6902KTV-0000082.000;;_TV_NT726902K_HHbrowser_2k22;) LaTivu_1.0.1_2022 CE-HTML/1.0 NETTV_4.6.0.1 SignOn/2.0 SmartTvA/5.0.0 WhaleTV/3.0 WhaleBrowser/1.3.240509.0 en + os: + name: Whale OS + version: "3.0" + platform: ARM + client: + type: browser + name: Whale TV Browser + version: 1.3.240509.0 + engine: Blink + engine_version: 97.0.4280.88 + device: + type: tv + brand: Top-Tech + model: Smart TV (2022) + os_family: Other Smart TV + browser_family: Chrome +- + user_agent: Mozilla/5.0 (X11;Linux armv7l) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4280.88 Safari/537.36 Model/NT726902K (Cultraview690;WHALEOSJRXNT6902KTVP66;WHALEOS-DK-NT6902KTV-0000040.000;;_TV_NT726902K_HHbrowser_2k22;) LaTivu_1.0.1_2022 CE-HTML/1.0 NETTV_4.6.0.1 SignOn/2.0 SmartTvA/5.0.0 WhaleTV/3.0 WhaleBrowser/1.3.21.5 en + os: + name: Whale OS + version: "3.0" + platform: ARM + client: + type: browser + name: Whale TV Browser + version: 1.3.21.5 + engine: Blink + engine_version: 97.0.4280.88 + device: + type: tv + brand: Cultraview + model: Smart TV (2022) + os_family: Other Smart TV + browser_family: Chrome diff --git a/Tests/fixtures/tv.yml b/Tests/fixtures/tv.yml index ca44f18c76..d9e347112d 100644 --- a/Tests/fixtures/tv.yml +++ b/Tests/fixtures/tv.yml @@ -8408,7 +8408,7 @@ engine_version: 39.0.2171.71 device: type: tv - brand: SCBC + brand: TCL SCBC model: SCBC586 os_family: GNU/Linux browser_family: Chrome @@ -8426,7 +8426,7 @@ engine_version: 39.0.2171.71 device: type: tv - brand: SCBC + brand: TCL SCBC model: 43D1850 os_family: GNU/Linux browser_family: Chrome diff --git a/regexes/client/browsers.yml b/regexes/client/browsers.yml index 77cd1ada1a..4377c33afc 100644 --- a/regexes/client/browsers.yml +++ b/regexes/client/browsers.yml @@ -1109,6 +1109,13 @@ engine: default: 'Blink' +# Whale TV Browser (https://partner.zeasn.com/partnerportal/TestingTools/index.jhtml) +- regex: 'WhaleBrowser/(\d+[\.\d]+)' + name: 'Whale TV Browser' + version: '$1' + engine: + default: 'Blink' + # SFive (https://sfive.vn/) - regex: 'SFive(?:_Android)?/.+ Chrome/(\d+[\.\d]+)' name: 'SFive' diff --git a/regexes/device/mobiles.yml b/regexes/device/mobiles.yml index bd399c3503..32772c39bb 100644 --- a/regexes/device/mobiles.yml +++ b/regexes/device/mobiles.yml @@ -3460,7 +3460,7 @@ ANS: # AOC (https://www.aoc.com/) AOC: - regex: 'AOC,|(?:Q10107L-ME)(?:[);/ ]|$)' + regex: 'AOC[;,]|(?:Q10107L-ME)(?:[);/ ]|$)' device: 'tv' models: - regex: '(Q10107L-ME)(?:[);/ ]|$)' @@ -3468,6 +3468,8 @@ AOC: model: '$1' - regex: '(LE(?:32|43)S5970(?:s)?-(?:20|28|30)|LE55U7970-30|LE43S5977-20|U60856)' model: '$1' + - regex: 'AOC;([a-z0-9_ \-/]+);' + model: '$1' # Assistant Assistant: @@ -8032,7 +8034,7 @@ Eton: # Essentielb Essentielb: - regex: '(?:Wooze[_ ]?(?:I55?|I45|X?L)|HEYOU(?:[135]|20PLUS|[1-7]0))(?:[);/ ]|$)' + regex: 'ESSENTIEL B[;,]|(?:Wooze[_ ]?(?:I55?|I45|X?L)|HEYOU(?:[135]|20PLUS|[1-7]0))(?:[);/ ]|$)' device: 'smartphone' models: - regex: 'HEYOU20PLUS(?:[);/ ]|$)' @@ -8041,6 +8043,9 @@ Essentielb: model: 'HEYou $1' - regex: 'Wooze[_ ]?((?:I55?|I45|X?L))(?:[);/ ]|$)' model: 'Wooze $1' + - regex: 'ESSENTIEL B,([a-z0-9_ \-]+),(?:wired|wireless)' + device: 'tv' + model: '$1' # Facebook Facebook: @@ -8918,6 +8923,14 @@ EVPAD: - regex: 'EVPAD-PRO-MAX' model: 'EVBox Pro Max' +# evvoli (https://evvoli.com/) +evvoli: + regex: 'EVVOLI[;,]' + device: 'tv' + models: + - regex: 'EVVOLI,([a-z0-9_ \-]+),(?:wired|wireless)' + model: '$1' + # EvroMedia EvroMedia: regex: 'EVROMEDIA|Playpad[ _]|PLAY_PAD_PRO_XL|3G NOTE XL' @@ -16786,7 +16799,7 @@ Mpman: # Manta Multimedia or Manta Manta Multimedia: - regex: 'MSP950(1[245]|2[01])|MSP96017|MSP94501|MSP95009|MSP96002|MSP450[79]|((?