diff --git a/lib/woothee/browser.rb b/lib/woothee/browser.rb index eb40c04..5644118 100644 --- a/lib/woothee/browser.rb +++ b/lib/woothee/browser.rb @@ -42,6 +42,14 @@ def self.challenge_safari_chrome(ua, result) version = Woothee::VALUE_UNKNOWN + # SamsungBrowser + if ua =~ /(?:SamsungBrowser)\/([.0-9]+)/o + version = $1 + update_map(result, Woothee::DataSet.get('SamsungBrowser')) + update_version(result, version) + return true + end + # Edge if ua =~ /(?:Edge|Edg|EdgiOS|EdgA)\/([.0-9]+)/o version = $1 diff --git a/lib/woothee/crawler.rb b/lib/woothee/crawler.rb index 235874a..c3f2d28 100644 --- a/lib/woothee/crawler.rb +++ b/lib/woothee/crawler.rb @@ -7,8 +7,6 @@ module Woothee::Crawler extend Woothee::Util def self.challenge_google(ua, result) - return false if ua.index('Google').nil? - if ua.index('compatible; Googlebot') if ua.index('compatible; Googlebot-Mobile') update_map(result, Woothee::DataSet.get('GoogleBotMobile')) @@ -22,6 +20,14 @@ def self.challenge_google(ua, result) update_map(result, Woothee::DataSet.get('GoogleBot')) return true end + if ua.index('compatible; AdsBot-Google-Mobile') || ua.index('Applebot/') + update_map(result, Woothee::DataSet.get('AdsBotGoogleMobile')) + return true + end + if ua.index('AdsBot-Google') + update_map(result, Woothee::DataSet.get('AdsBotGoogle')) + return true + end if ua.index('Mediapartners-Google') if ua.index('compatible; Mediapartners-Google') or ua == 'Mediapartners-Google' update_map(result, Woothee::DataSet.get('GoogleMediaPartners')) diff --git a/lib/woothee/dataset.rb b/lib/woothee/dataset.rb index 22ef3ed..c422a62 100644 --- a/lib/woothee/dataset.rb +++ b/lib/woothee/dataset.rb @@ -35,7 +35,7 @@ module Woothee module Woothee::DataSet DATASET = {} - # GENERATED from dataset.yaml at Tue Mar 17 20:33:08 JST 2020 by tagomoris + # GENERATED from dataset.yaml at Fri Sep 4 16:20:50 JST 2020 by lobin obj = {:label => 'MSIE', :name => 'Internet Explorer', :type => :browser} obj[:vendor] = 'Microsoft' DATASET[obj[:label]] = obj @@ -69,6 +69,9 @@ module Woothee::DataSet obj = {:label => 'YaBrowser', :name => 'Yandex Browser', :type => :browser} obj[:vendor] = 'Yandex' DATASET[obj[:label]] = obj + obj = {:label => 'SamsungBrowser', :name => 'SamsungBrowser', :type => :browser} + obj[:vendor] = 'Samsung' + DATASET[obj[:label]] = obj obj = {:label => 'Win', :name => 'Windows UNKNOWN Ver', :type => :os} obj[:category] = :pc DATASET[obj[:label]] = obj @@ -348,6 +351,12 @@ module Woothee::DataSet obj = {:label => 'VariousCrawler', :name => 'misc crawler', :type => :full} obj[:category] = :crawler DATASET[obj[:label]] = obj + obj = {:label => 'AdsBotGoogleMobile', :name => 'AdsBot-Google-Mobile', :type => :full} + obj[:category] = :crawler + DATASET[obj[:label]] = obj + obj = {:label => 'AdsBotGoogle', :name => 'AdsBot-Google', :type => :full} + obj[:category] = :crawler + DATASET[obj[:label]] = obj DATASET.freeze diff --git a/woothee b/woothee index f8da19e..dc62ea8 160000 --- a/woothee +++ b/woothee @@ -1 +1 @@ -Subproject commit f8da19ec0f0d602ccd98e23dce9c79bd78dc857d +Subproject commit dc62ea8c3b52e6d164f81319745a1cceda3315ba