From d43856486b5137cb84b55b39e25a81e61b89f688 Mon Sep 17 00:00:00 2001 From: Wataru Maeda Date: Fri, 4 Sep 2020 16:28:40 +0900 Subject: [PATCH 1/4] Update git submodule --- woothee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/woothee b/woothee index f8da19e..dc62ea8 160000 --- a/woothee +++ b/woothee @@ -1 +1 @@ -Subproject commit f8da19ec0f0d602ccd98e23dce9c79bd78dc857d +Subproject commit dc62ea8c3b52e6d164f81319745a1cceda3315ba From 0d45f8913bf6bc9c2a69063ba673f958fc3b8c12 Mon Sep 17 00:00:00 2001 From: Wataru Maeda Date: Fri, 4 Sep 2020 16:29:03 +0900 Subject: [PATCH 2/4] Regenerate dataset.rb --- lib/woothee/dataset.rb | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) 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 From b33f76e9daeb6361269799dd12071cd6c6e3cfad Mon Sep 17 00:00:00 2001 From: Wataru Maeda Date: Fri, 4 Sep 2020 16:29:32 +0900 Subject: [PATCH 3/4] Add Samsung Browser --- lib/woothee/browser.rb | 8 ++++++++ 1 file changed, 8 insertions(+) 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 From 98e166b11bc1d0d14fe03e24f288377c029b2827 Mon Sep 17 00:00:00 2001 From: Wataru Maeda Date: Tue, 20 Oct 2020 14:02:38 +0900 Subject: [PATCH 4/4] Add AdsBotGoogle, Applebot --- lib/woothee/crawler.rb | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) 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'))