diff --git a/DeviceDetector.php b/DeviceDetector.php index 739b372255..170cc768a4 100644 --- a/DeviceDetector.php +++ b/DeviceDetector.php @@ -1065,7 +1065,7 @@ protected function parseDevice(): void */ if (\in_array($clientName, [ 'Kylo', 'Espial TV Browser', 'LUJO TV Browser', 'LogicUI TV Browser', 'Open TV Browser', 'Seraphic Sraf', - 'Opera Devices', 'Crow Browser', 'Vewd Browser', 'TiviMate', 'Quick Search TV', 'QJY TV Browser', + 'Opera Devices', 'Crow Browser', 'Vewd Browser', 'TiviMate', 'Quick Search TV', 'QJY TV Browser', 'TV Bro', ]) ) { $this->device = AbstractDeviceParser::DEVICE_TYPE_TV; diff --git a/Parser/Device/AbstractDeviceParser.php b/Parser/Device/AbstractDeviceParser.php index ce5f5d8af6..3ce7aa86dd 100644 --- a/Parser/Device/AbstractDeviceParser.php +++ b/Parser/Device/AbstractDeviceParser.php @@ -1553,6 +1553,7 @@ abstract class AbstractDeviceParser extends AbstractParser 'TB' => 'Tecno Mobile', 'TEC' => 'TecToy', '91' => 'TEENO', + 'TLK' => 'Telkom', '2L' => 'Tele2', 'TL' => 'Telefunken', 'TG' => 'Telego', @@ -1632,6 +1633,7 @@ abstract class AbstractDeviceParser extends AbstractParser 'TWN' => 'TwinMOS', '15' => 'Tymes', 'UC' => 'U.S. Cellular', + 'UD1' => 'UD', 'UGI' => 'UGINE', 'UG' => 'Ugoos', 'U1' => 'Uhans', diff --git a/Tests/Parser/Client/fixtures/library.yml b/Tests/Parser/Client/fixtures/library.yml index d23587488b..7492dfaa86 100644 --- a/Tests/Parser/Client/fixtures/library.yml +++ b/Tests/Parser/Client/fixtures/library.yml @@ -611,6 +611,12 @@ type: library name: request version: "" +- + user_agent: qbhttp/1.0.0 + client: + type: library + name: QbHttp + version: 1.0.0 - user_agent: kiwi-tcms/13.0 client: diff --git a/Tests/fixtures/clienthints-app.yml b/Tests/fixtures/clienthints-app.yml index fa09def3ad..2feaa7ddb8 100644 --- a/Tests/fixtures/clienthints-app.yml +++ b/Tests/fixtures/clienthints-app.yml @@ -2461,6 +2461,24 @@ model: Nova 9 SE os_family: Android browser_family: Unknown +- + user_agent: Mozilla/5.0 (Linux; Android 11.0; Orange TV Box Build/QTG1.200615.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/102.0.5005.22 Mobile Safari/537.36 + headers: + http-x-requested-with: com.droidlogic.xlauncher + os: + name: Android + version: "11.0" + platform: "" + client: + type: mobile app + name: X Launcher + version: "" + device: + type: tv + brand: Orange + model: TV Box + os_family: Android + browser_family: Unknown - user_agent: Mozilla/5.0 (Linux; Android 12; SM-A032F Build/SP1A.210812.016; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/119.0.6045.193 Mobile Safari/537.36 binu/7441 (5b9a75f88345479c) headers: diff --git a/Tests/fixtures/tv-3.yml b/Tests/fixtures/tv-3.yml index 11c74be52d..9366e0eb7d 100644 --- a/Tests/fixtures/tv-3.yml +++ b/Tests/fixtures/tv-3.yml @@ -2609,6 +2609,188 @@ model: X92 os_family: Android browser_family: Android Browser +- + user_agent: Mozilla/5.0 (Linux; Android 9; Hyundai 2K TV Build/PTO7.210317.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/107.0.5304.91 Mobile Safari/537.36 + os: + name: Android + version: "9" + platform: "" + client: + type: browser + name: TV Bro + version: "" + engine: Blink + engine_version: 107.0.5304.91 + device: + type: tv + brand: Hyundai + model: 2K TV + os_family: Android + browser_family: Chrome + headers: + http-x-requested-with: com.phlox.tvwebbrowser +- + user_agent: Mozilla/5.0 (Linux; Android 6.0; TV348_DVB Build/MRA58K; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/48.0.2542.0 Safari/537.36 + os: + name: Android + version: "6.0" + platform: "" + client: + type: browser + name: Chrome Webview + version: 48.0.2542.0 + engine: Blink + engine_version: 48.0.2542.0 + device: + type: tv + brand: UD + model: TV348 DVB + os_family: Android + browser_family: Chrome +- + user_agent: Mozilla/5.0 (Linux; Android 8.0.0; TV358DVB Build/OPR5.170623.014; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/62.0.3202.73 Safari/537.36 + os: + name: Android + version: 8.0.0 + platform: "" + client: + type: browser + name: Chrome Webview + version: 62.0.3202.73 + engine: Blink + engine_version: 62.0.3202.73 + device: + type: tv + brand: UD + model: TV358 DVB + os_family: Android + browser_family: Chrome +- + user_agent: Mozilla/5.0 (Linux; Android 6.0; TV348_ISDB Build/MRA58K; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/48.0.2542.0 Safari/537.36 + os: + name: Android + version: "6.0" + platform: "" + client: + type: browser + name: Chrome Webview + version: 48.0.2542.0 + engine: Blink + engine_version: 48.0.2542.0 + device: + type: tv + brand: UD + model: TV348 ISDB + os_family: Android + browser_family: Chrome +- + user_agent: Mozilla/5.0 (Linux; Android 6.0; tv001 on rtd289x Build/MRA58K; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/52.0.2743.100 Safari/537.36 + os: + name: Android + version: "6.0" + platform: "" + client: + type: browser + name: Chrome Webview + version: 52.0.2743.100 + engine: Blink + engine_version: 52.0.2743.100 + device: + type: tv + brand: "" + model: "" + os_family: Android + browser_family: Chrome +- + user_agent: Mozilla/5.0 (Linux; Android 6.0; net tv.plus Build/MRA58K; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/44.0.2403.119 Safari/537.36 + os: + name: Android + version: "6.0" + platform: "" + client: + type: browser + name: Chrome Webview + version: 44.0.2403.119 + engine: Blink + engine_version: 44.0.2403.119 + device: + type: tv + brand: "" + model: "" + os_family: Android + browser_family: Chrome +- + user_agent: Mozilla/5.0 (Linux; Android 11.0; Orange TV Box Build/QTG1.200615.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/102.0.5005.22 Mobile Safari/537.36 + os: + name: Android + version: "11.0" + platform: "" + client: + type: browser + name: Chrome Webview + version: 102.0.5005.22 + engine: Blink + engine_version: 102.0.5005.22 + device: + type: tv + brand: Orange + model: TV Box + os_family: Android + browser_family: Chrome +- + user_agent: Mozilla/5.0 (Linux; Android 12; O2 TV Box Build/QTT2.200720.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/101.0.4951.15 Mobile Safari/537.36 + os: + name: Android + version: "12" + platform: "" + client: + type: browser + name: Chrome Webview + version: 101.0.4951.15 + engine: Blink + engine_version: 101.0.4951.15 + device: + type: tv + brand: O2 + model: TV Box + os_family: Android + browser_family: Chrome +- + user_agent: Dalvik/2.1.0 (Linux; U; Android 9; TVB-100 Build/PI) + os: + name: Android + version: "9" + platform: "" + client: + type: browser + name: Android Browser + version: "" + engine: WebKit + engine_version: "" + device: + type: tv + brand: Telkom + model: TVB-100 + os_family: Android + browser_family: Android Browser +- + user_agent: Mozilla/5.0 (Linux ) 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.253 Model/Vestel-MB211 VSTVB MB200 FVC/2.0 (NORDMENDE; MB211; ) SmartTvA/3.0.0 + os: + name: GNU/Linux + version: "" + platform: "" + client: + type: browser + name: Opera Devices + version: 4.9.0.237 + engine: Blink + engine_version: 53.0.2785.143 + device: + type: tv + brand: Nordmende + model: "" + os_family: GNU/Linux + browser_family: Opera - user_agent: Mozilla/5.0 (Linux; Android 5.1.1; Cyclone X8) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.74 Safari/537.36 os: diff --git a/regexes/client/hints/apps.yml b/regexes/client/hints/apps.yml index 8f12813239..5733f559e9 100644 --- a/regexes/client/hints/apps.yml +++ b/regexes/client/hints/apps.yml @@ -126,6 +126,7 @@ 'com.massimple.nacion.gcba.es': '+Simple' 'com.massimple.nacion.parana.es': '+Simple' 'com.microsoft.math': 'Microsoft Math Solver' +'com.droidlogic.xlauncher': 'X Launcher' 'nu.bi.moya': 'Moya' # Vpns diff --git a/regexes/client/hints/browsers.yml b/regexes/client/hints/browsers.yml index c7b54a743a..086b2d3d6c 100644 --- a/regexes/client/hints/browsers.yml +++ b/regexes/client/hints/browsers.yml @@ -252,6 +252,7 @@ 'vpn.video.downloader': 'VD Browser' 'com.aospstudio.tvsearch': 'Quick Search TV' 'com.go.browser': 'GO Browser' +'com.phlox.tvwebbrowser': 'TV Bro' 'com.lovense.vibemate': 'VibeMate' 'dev.sect.lotus.browser.videoapp': 'Lotus' 'com.qjy.browser': 'QJY TV Browser' # http://www.qianjiayue.com/new/?c=index&a=show&id=100 diff --git a/regexes/client/libraries.yml b/regexes/client/libraries.yml index a914b30270..ad2a6de43f 100644 --- a/regexes/client/libraries.yml +++ b/regexes/client/libraries.yml @@ -576,3 +576,8 @@ name: 'request' version: '' url: 'https://github.com/request/request' + +- regex: 'qbhttp(?:/(\d+[\.\d]+))?' + name: 'QbHttp' + version: '$1' + url: 'https://github.com/OpenQb/QbHttp' diff --git a/regexes/device/mobiles.yml b/regexes/device/mobiles.yml index 6173851572..de9e855247 100644 --- a/regexes/device/mobiles.yml +++ b/regexes/device/mobiles.yml @@ -9507,6 +9507,18 @@ AWOX: - regex: 'AWOX;SmartTV;([a-z0-9_ \-]+);' model: '$1' +# UD (https://udtv.store/) +UD: + regex: 'TV3[45]8_?(?:DVB|ISDB)(?:[);/ ]|$)' + device: 'tv' + models: + - regex: 'TV348_DVB(?:[);/ ]|$)' + model: 'TV348 DVB' + - regex: 'TV348_ISDB(?:[);/ ]|$)' + model: 'TV348 ISDB' + - regex: 'TV358DVB(?:[);/ ]|$)' + model: 'TV358 DVB' + # UGINE (https://www.ugine.com.sa/ar) UGINE: regex: 'UGINE(?:[);/ ]|$)' @@ -11207,7 +11219,7 @@ Hyundai: - regex: '(?:Hyundai[_ ])?(Eternity[_ ](?:G57L?|G[56]0W?)|H7|Aero Plus|E435 Plus)' model: '$1' - - regex: '(H-LED\w+|H-DMP100)(?:[);/ ]|$)' + - regex: '(H-LED\w+|H-DMP100|2K TV)(?:[);/ ]|$)' device: 'tv' model: '$1' @@ -17468,7 +17480,7 @@ Noontec: # Nordmende Nordmende: - regex: 'NORDMENDE[ _]' + regex: 'NORDMENDE[ _;,]' device: 'tv' models: - regex: 'NORDMENDE_(43NM6000F)(?:[);/ ]|$)' @@ -17779,6 +17791,9 @@ O2: regex: 'Xda|(?