From 814109e68d6a578cecf597ab19f80ef590e1d5d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Milo=C5=A1=20Mileusni=C4=87?= Date: Sat, 16 Sep 2023 13:16:44 +0200 Subject: [PATCH] Add new confirmed Google user agents --- ua.go | 11 +++++++++++ ua_test.go | 3 ++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/ua.go b/ua.go index c866ef7..0863047 100644 --- a/ua.go +++ b/ua.go @@ -119,6 +119,7 @@ func Parse(userAgent string) UserAgent { ua.OS = ChromeOS ua.OSVersion = tokens.get("CrOS") ua.Desktop = true + case tokens.exists("BlackBerry"): ua.OS = BlackBerry ua.OSVersion = tokens.get("BlackBerry") @@ -132,6 +133,12 @@ func Parse(userAgent string) UserAgent { ua.Bot = true ua.Mobile = tokens.existsAny("Mobile", "Mobile Safari") + case tokens.existsAny("GoogleProber", "GoogleProducer"): + if name := tokens.findBestMatch(false); name != "" { + ua.Name = name + } + ua.Bot = true + case tokens.exists("Applebot"): ua.Name = Applebot ua.Version = tokens.get(Applebot) @@ -248,6 +255,7 @@ func Parse(userAgent string) UserAgent { case tokens.exists("FBAN"): ua.Name = FacebookApp ua.Version = tokens.get("FBAN") + case tokens.exists("FB_IAB"): ua.Name = FacebookApp ua.Version = tokens.get("FBAV") @@ -391,6 +399,9 @@ func parse(userAgent string) properties { case (parOpen || braOpen) && c == 59: // ; addToken() + case c == 59: // ; + addToken() + case c == 40: // ( addToken() parOpen = true diff --git a/ua_test.go b/ua_test.go index bfb3391..5c061b2 100644 --- a/ua_test.go +++ b/ua_test.go @@ -85,6 +85,8 @@ var testTable = [][]string{ {"Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.1.0.0 Mobile Safari/537.36 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)", "Bingbot", "2.0", "bot", ua.Android}, // new bingbot mobile {"Mozilla/5.0 (compatible; Yahoo Ad monitoring; https://help.yahoo.com/kb/yahoo-ad-monitoring-SLN24857.html) tands-prod-eng.hlfs-prod---sieve.hlfs-desktop/1681336006-0", "Yahoo Ad monitoring", "", "bot", ""}, {"Mozilla/5.0 (compatible; Yahoo Ad monitoring; https://help.yahoo.com/kb/yahoo-ad-monitoring-SLN24857.html) cnv.aws-prod---sieve.hlfs-rest_client/1681346790-0", "Yahoo Ad monitoring", "", "bot", ""}, + {"GoogleProber", "GoogleProber", "", "bot", ""}, + {"GoogleProducer; (+http://goo.gl/7y4SX)", "GoogleProducer", "", "bot", ""}, // Google ads bots {"Mozilla/5.0 (Linux; Android 4.0.0; Galaxy Nexus Build/IMM76B) AppleWebKit/537.36 (KHTML, like Gecko; Mediapartners-Google) Chrome/104.0.0.0 Mobile Safari/537.36", ua.GoogleAdsBot, "", "bot", ua.Android}, @@ -272,7 +274,6 @@ func ExampleParse() { if ua.URL != "" { fmt.Println(ua.URL) } - } }