diff --git a/Parser/AbstractParser.php b/Parser/AbstractParser.php index 7c4945af23..188c22334e 100644 --- a/Parser/AbstractParser.php +++ b/Parser/AbstractParser.php @@ -351,6 +351,7 @@ protected function hasDesktopFragment(): bool 'CE-HTML', ' Mozilla/|Andr[o0]id|Tablet|Mobile|iPhone|Windows Phone|ricoh|OculusBrowser', 'PicoBrowser|Lenovo|compatible; MSIE|Trident/|Tesla/|XBOX|FBMD/|ARM; ?([^)]+)', + 'Steam', ]); return diff --git a/Parser/Device/AbstractDeviceParser.php b/Parser/Device/AbstractDeviceParser.php index 9b7c0ba835..c69a9e3e9f 100644 --- a/Parser/Device/AbstractDeviceParser.php +++ b/Parser/Device/AbstractDeviceParser.php @@ -1998,6 +1998,7 @@ abstract class AbstractDeviceParser extends AbstractParser 'VAL' => 'VALEM', 'VA2' => 'VALE', 'VAT' => 'VALTECH', + 'VLV' => 'Valve Corporation', 'VAN' => 'VANGUARD', 'VAW' => 'VANWIN', 'VB' => 'VC', diff --git a/Parser/OperatingSystem.php b/Parser/OperatingSystem.php index 244ec41f94..85639742be 100644 --- a/Parser/OperatingSystem.php +++ b/Parser/OperatingSystem.php @@ -210,6 +210,7 @@ class OperatingSystem extends AbstractParser 'SMA' => 'Smartisan OS', 'SOS' => 'Solaris', 'SBL' => 'Star-Blade OS', + 'STM' => 'SteamOS', 'SYL' => 'Syllable', 'SYM' => 'Symbian', 'SYS' => 'Symbian OS', @@ -287,7 +288,7 @@ class OperatingSystem extends AbstractParser 'KOB', 'FRT', ], 'Mac' => ['MAC'], - 'Mobile Gaming Console' => ['PSP', 'NDS', 'XBX'], + 'Mobile Gaming Console' => ['PSP', 'NDS', 'XBX', 'STM'], 'OpenHarmony' => ['OHS', 'HNX'], 'OpenVMS' => ['OVS'], 'Real-time OS' => ['MTK', 'TDX', 'MRE', 'JME', 'REX', 'RXT', 'KOL', 'MOS', 'NTX'], diff --git a/Tests/Parser/Client/fixtures/browser.yml b/Tests/Parser/Client/fixtures/browser.yml index cf0ff51520..3c2104451d 100644 --- a/Tests/Parser/Client/fixtures/browser.yml +++ b/Tests/Parser/Client/fixtures/browser.yml @@ -11703,3 +11703,12 @@ engine: Blink engine_version: "" family: Chrome +- + user_agent: Mozilla/5.0 (X11; Linux x86_64; Valve Steam GameOverlay; ) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36 + client: + type: browser + name: Steam In-Game Overlay + version: "" + engine: Blink + engine_version: 85.0.4183.102 + family: Chrome diff --git a/Tests/Parser/fixtures/oss.yml b/Tests/Parser/fixtures/oss.yml index 73dba4e4b9..d527dc7d57 100644 --- a/Tests/Parser/fixtures/oss.yml +++ b/Tests/Parser/fixtures/oss.yml @@ -7226,3 +7226,11 @@ version: "7.0" platform: "" family: GNU/Linux +- + user_agent: Mozilla/5.0 (X11; Linux x86_64; Valve Steam GameOverlay; ) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36 + os: + name: SteamOS + short_name: STM + version: "" + platform: x64 + family: Mobile Gaming Console diff --git a/Tests/fixtures/console.yml b/Tests/fixtures/console.yml index 350aa0a1e8..5e3d36da98 100644 --- a/Tests/fixtures/console.yml +++ b/Tests/fixtures/console.yml @@ -846,3 +846,39 @@ model: Switch Lite os_family: Gaming Console browser_family: NetFront +- + user_agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 SteamDeck + os: + name: SteamOS + version: "" + platform: x64 + client: + type: browser + name: Chrome + version: 131.0.0.0 + engine: Blink + engine_version: 131.0.0.0 + device: + type: console + brand: Valve Corporation + model: Steam Deck + os_family: Mobile Gaming Console + browser_family: Chrome +- + user_agent: Mozilla/5.0 (X11; Linux x86_64; Valve Steam GameOverlay; ) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36 + os: + name: SteamOS + version: "" + platform: x64 + client: + type: browser + name: Steam In-Game Overlay + version: "" + engine: Blink + engine_version: 85.0.4183.102 + device: + type: console + brand: Valve Corporation + model: "" + os_family: Mobile Gaming Console + browser_family: Chrome diff --git a/regexes/client/browsers.yml b/regexes/client/browsers.yml index 8858efe53e..c03bb2b5d6 100644 --- a/regexes/client/browsers.yml +++ b/regexes/client/browsers.yml @@ -1455,7 +1455,7 @@ version: '$1' # Steam (https://www.valvesoftware.com/) -- regex: 'Valve Steam GameOverlay/(?:(\d+[.\d]+))?' +- regex: 'Valve Steam GameOverlay(?:/(\d+[.\d]+))?' name: 'Steam In-Game Overlay' version: '$1' diff --git a/regexes/device/consoles.yml b/regexes/device/consoles.yml index fb5a848f29..9b3b344da4 100644 --- a/regexes/device/consoles.yml +++ b/regexes/device/consoles.yml @@ -82,3 +82,11 @@ Retroid Pocket: model: '4 Pro' - regex: 'Pocket ([235])' model: '$1' + +# Valve Corporation (https://www.steamdeck.com/en/) +Valve Corporation: + regex: 'Steam' + device: 'console' + models: + - regex: 'SteamDeck' + model: 'Steam Deck' diff --git a/regexes/oss.yml b/regexes/oss.yml index c67fb1bb72..375ac62ca0 100644 --- a/regexes/oss.yml +++ b/regexes/oss.yml @@ -5,6 +5,13 @@ # @license http://www.gnu.org/licenses/lgpl.html LGPL v3 or later ############### +########## +# SteamOS (https://store.steampowered.com/steamos) +########## +- regex: 'Steam' + name: 'SteamOS' + version: '' + ########## # FortiOS (https://www.fortinet.com/products/fortigate/fortios) ##########