Add support for Opera Touch and Edge for Android
This commit is contained in:
@@ -40,6 +40,7 @@ const (
|
||||
|
||||
Opera = "Opera"
|
||||
OperaMini = "Opera Mini"
|
||||
OperaTouch = "Opera Touch"
|
||||
Chrome = "Chrome"
|
||||
Firefox = "Firefox"
|
||||
InternetExplorer = "Internet Explorer"
|
||||
@@ -137,6 +138,11 @@ func Parse(userAgent string) UserAgent {
|
||||
ua.Version = tokens["OPR"]
|
||||
ua.Mobile = tokens.existsAny("Mobile", "Mobile Safari")
|
||||
|
||||
case tokens["OPT"] != "":
|
||||
ua.Name = OperaTouch
|
||||
ua.Version = tokens["OPT"]
|
||||
ua.Mobile = tokens.existsAny("Mobile", "Mobile Safari")
|
||||
|
||||
// Opera on iOS
|
||||
case tokens["OPiOS"] != "":
|
||||
ua.Name = Opera
|
||||
@@ -174,6 +180,11 @@ func Parse(userAgent string) UserAgent {
|
||||
ua.Version = tokens["Edge"]
|
||||
ua.Mobile = tokens.existsAny("Mobile", "Mobile Safari")
|
||||
|
||||
case tokens["EdgA"] != "":
|
||||
ua.Name = Edge
|
||||
ua.Version = tokens["EdgA"]
|
||||
ua.Mobile = tokens.existsAny("Mobile", "Mobile Safari")
|
||||
|
||||
case tokens["bingbot"] != "":
|
||||
ua.Name = "Bingbot"
|
||||
ua.Version = tokens["bingbot"]
|
||||
|
||||
+10
-1
@@ -5,11 +5,12 @@ import (
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"github.com/mileusna/useragent"
|
||||
ua "github.com/mileusna/useragent"
|
||||
)
|
||||
|
||||
func TestParse(t *testing.T) {
|
||||
var testTable = [][]string{
|
||||
// useragent, name, version, mobile, os
|
||||
// Mac
|
||||
{"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/603.3.8 (KHTML, like Gecko) Version/10.1.2 Safari/603.3.8", ua.Safari, "10.1.2", "desktop", "macOS"},
|
||||
{"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36", ua.Chrome, "60.0.3112.90", "desktop", "macOS"},
|
||||
@@ -43,6 +44,14 @@ func TestParse(t *testing.T) {
|
||||
|
||||
{"Mozilla/5.0 (Linux; Android 6.0.1; SAMSUNG SM-A310F/A310FXXU2BQB1 Build/MMB29K) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/5.4 Chrome/51.0.2704.106 Mobile Safari/537.36", "Samsung Browser", "5.4", "mobile", "Android"},
|
||||
|
||||
// useragent, name, version, mobile, os
|
||||
{"Mozilla/5.0 (Linux; Android 9; ONEPLUS A6003) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.99 Mobile Safari/537.36", ua.Chrome, "71.0.3578.99", "mobile", ua.Android},
|
||||
{"Mozilla/5.0 (Android 9; Mobile; rv:64.0) Gecko/64.0 Firefox/64.0", ua.Firefox, "64.0", "mobile", ua.Android},
|
||||
{"Opera/9.80 (Android; Opera Mini/38.0.2254/128.54; U; en) Presto/2.12.423 Version/12.16", ua.OperaMini, "38.0.2254/128.54", "mobile", ua.Android},
|
||||
{"Mozilla/5.0 (Linux; Android 9; ONEPLUS A6003 Build/PKQ1.180716.001) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Mobile Safari/537.36 OPR/49.2.2361.134358", ua.Opera, "49.2.2361.134358", "mobile", ua.Android},
|
||||
{"Mozilla/5.0 (Linux; Android 9; ONEPLUS A6003 Build/PKQ1.180716.001) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.86 Mobile Safari/537.36 EdgA/42.0.92.2864", ua.Edge, "42.0.92.2864", "mobile", ua.Android},
|
||||
{"Mozilla/5.0 (Linux; Android 9; ONEPLUS A6003 Build/PKQ1.180716.001) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/71.0.3578.99 Mobile Safari/537.36 OPT/1.14.51", ua.OperaTouch, "1.14.51", "mobile", ua.Android},
|
||||
|
||||
// Windows phone
|
||||
{"Mozilla/4.0 (compatible; MSIE 7.0; Windows Phone OS 7.0; Trident/3.1; IEMobile/7.0; NOKIA; Lumia 630)", ua.InternetExplorer, "7.0", "mobile", ua.WindowsPhone},
|
||||
|
||||
|
||||
Reference in New Issue
Block a user