diff --git a/regexes.yaml b/regexes.yaml index fe50bf71..40b1d372 100644 --- a/regexes.yaml +++ b/regexes.yaml @@ -116,6 +116,10 @@ user_agent_parsers: # must go before Firefox to catch Chimera/SeaMonkey/Camino/Waterfox - regex: '(Chimera|SeaMonkey|Camino|Waterfox)/(\d+)\.(\d+)\.?([ab]?\d+[a-z]*|)' + # must be before Firefox / Gecko to catch SailfishBrowser properly + - regex: '(SailfishBrowser)/(\d+)\.(\d+)(?:\.(\d+)|)' + family_replacement: 'Sailfish Browser' + # Social Networks # Facebook Messenger must go before Facebook - regex: '\[(FBAN/MessengerForiOS|FB_IAB/MESSENGER);FBAV/(\d+)(?:\.(\d+)(?:\.(\d+)|)|)' @@ -1443,7 +1447,7 @@ os_parsers: # Generic patterns # since the majority of os cases are very specific, these go last ########## - - regex: '(Fedora|Red Hat|PCLinuxOS|Puppy|Ubuntu|Kindle|Bada|Lubuntu|BackTrack|Slackware|(?:Free|Open|Net|\b)BSD)[/ ](\d+)\.(\d+)(?:\.(\d+)|)(?:\.(\d+)|)' + - regex: '(Fedora|Red Hat|PCLinuxOS|Puppy|Ubuntu|Kindle|Bada|Sailfish|Lubuntu|BackTrack|Slackware|(?:Free|Open|Net|\b)BSD)[/ ](\d+)\.(\d+)(?:\.(\d+)|)(?:\.(\d+)|)' # Gentoo Linux + Kernel Version - regex: '(Linux)[ /](\d+)\.(\d+)(?:\.(\d+)|).*gentoo' diff --git a/tests/test_os.yaml b/tests/test_os.yaml index f7bb923a..bad11b91 100644 --- a/tests/test_os.yaml +++ b/tests/test_os.yaml @@ -1015,6 +1015,13 @@ test_cases: patch: patch_minor: + - user_agent_string: 'Mozilla/5.0 (Linux; U; Sailfish 3.0; Mobile; rv:45.0) Gecko/45.0 Firefox/45.0 SailfishBrowser/1.0' + family: 'Sailfish' + major: '3' + minor: '0' + patch: + patch_minor: + # up market model - user_agent_string: 'HbbTV/1.1.1 (;Samsung;SmartTV2013;T-FXPDEUC-1102.2;;) WebKit' family: 'Samsung' diff --git a/tests/test_ua.yaml b/tests/test_ua.yaml index 41a5b7e0..0f8f97a3 100644 --- a/tests/test_ua.yaml +++ b/tests/test_ua.yaml @@ -3984,6 +3984,18 @@ test_cases: minor: '7' patch: + - user_agent_string: 'Mozilla/5.0 (Linux; U; Sailfish 3.0; Mobile; rv:45.0) Gecko/45.0 Firefox/45.0 SailfishBrowser/1.0' + family: 'Sailfish Browser' + major: '1' + minor: '0' + patch: + + - user_agent_string: 'Mozilla/5.0 (Linux; U; Sailfish 3.0; Mobile; rv:45.0) Gecko/45.0 Firefox/45.0 SailfishBrowser/1.2.3' + family: 'Sailfish Browser' + major: '1' + minor: '2' + patch: '3' + - user_agent_string: 'Mozilla/5.0 (Linux; Android 5.0.1; SAMSUNG GT-I9506-ORANGE Build/LRX22C) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/2.1 Chrome/34.0.1847.76 Mobile Safari/537.36' family: 'Samsung Internet' major: '2'