From e0d4f55c3a23e93e7b17de2d270e60dcb8990271 Mon Sep 17 00:00:00 2001 From: Hideo Hattori Date: Sat, 2 Oct 2021 15:46:36 +0900 Subject: [PATCH 1/2] update woothee --- lib/woothee/dataset.py | 11 ++++++++++- woothee | 2 +- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/lib/woothee/dataset.py b/lib/woothee/dataset.py index 042df3d..a6a8731 100644 --- a/lib/woothee/dataset.py +++ b/lib/woothee/dataset.py @@ -42,7 +42,7 @@ def _init(): - # GENERATED from dataset.yaml at Mon Apr 13 11:52:09 2020 by hattorihideo + # GENERATED from dataset.yaml at Fri Oct 1 10:08:57 2021 by hattori obj = {'label': 'MSIE', 'name': 'Internet Explorer', 'type': 'browser'} # NOQA obj['vendor'] = 'Microsoft' DATASET[obj['label']] = obj @@ -76,6 +76,9 @@ def _init(): obj = {'label': 'YaBrowser', 'name': 'Yandex Browser', 'type': 'browser'} # NOQA obj['vendor'] = 'Yandex' DATASET[obj['label']] = obj + obj = {'label': 'SamsungBrowser', 'name': 'SamsungBrowser', 'type': 'browser'} # NOQA + obj['vendor'] = 'Samsung' + DATASET[obj['label']] = obj obj = {'label': 'Win', 'name': 'Windows UNKNOWN Ver', 'type': 'os'} # NOQA obj['category'] = 'pc' DATASET[obj['label']] = obj @@ -355,6 +358,12 @@ def _init(): obj = {'label': 'VariousCrawler', 'name': 'misc crawler', 'type': 'full'} # NOQA obj['category'] = 'crawler' DATASET[obj['label']] = obj + obj = {'label': 'AdsBotGoogleMobile', 'name': 'AdsBot-Google-Mobile', 'type': 'full'} # NOQA + obj['category'] = 'crawler' + DATASET[obj['label']] = obj + obj = {'label': 'AdsBotGoogle', 'name': 'AdsBot-Google', 'type': 'full'} # NOQA + obj['category'] = 'crawler' + DATASET[obj['label']] = obj _init() diff --git a/woothee b/woothee index f8da19e..7ea09a7 160000 --- a/woothee +++ b/woothee @@ -1 +1 @@ -Subproject commit f8da19ec0f0d602ccd98e23dce9c79bd78dc857d +Subproject commit 7ea09a7bd37572119174832881e0c2506cb41791 From 8ff2ff20ecf2f9cd9d8cf6ad081c77d1a5ad4e2b Mon Sep 17 00:00:00 2001 From: Hideo Hattori Date: Sat, 2 Oct 2021 15:46:55 +0900 Subject: [PATCH 2/2] catch version 1.12.1 --- lib/woothee/__init__.py | 2 ++ lib/woothee/browser.py | 11 +++++++++++ lib/woothee/crawler.py | 8 ++++++++ 3 files changed, 21 insertions(+) diff --git a/lib/woothee/__init__.py b/lib/woothee/__init__.py index e3ec3a8..9903f23 100644 --- a/lib/woothee/__init__.py +++ b/lib/woothee/__init__.py @@ -78,6 +78,8 @@ def try_browser(useragent, result): return True if browser.challenge_yandexbrowser(useragent, result): return True + if browser.challenge_samsung(useragent, result): + return True if browser.challenge_safari_chrome(useragent, result): return True if browser.challenge_firefox(useragent, result): diff --git a/lib/woothee/browser.py b/lib/woothee/browser.py index d9dee5f..ded4b2b 100644 --- a/lib/woothee/browser.py +++ b/lib/woothee/browser.py @@ -169,3 +169,14 @@ def challenge_vivaldi(ua, result): util.update_map(result, dataset.get('Vivaldi')) util.update_version(result, version) return True + + +def challenge_samsung(ua, result): + if 'SamsungBrowser/' not in ua: + return False + + obj = re.search('SamsungBrowser/([.0-9]+)', ua) + version = obj.group(1) if obj else dataset.VALUE_UNKNOWN + util.update_map(result, dataset.get('SamsungBrowser')) + util.update_version(result, version) + return True diff --git a/lib/woothee/crawler.py b/lib/woothee/crawler.py index 5c0fcce..605e38f 100644 --- a/lib/woothee/crawler.py +++ b/lib/woothee/crawler.py @@ -18,6 +18,14 @@ def challenge_google(ua, result): util.update_map(result, dataset.get('GoogleBot')) return True + if 'compatible; AdsBot-Google-Mobile;' in ua: + util.update_map(result, dataset.get('AdsBotGoogleMobile')) + return True + + if ua.startswith('AdsBot-Google'): + util.update_map(result, dataset.get('AdsBotGoogle')) + return True + if 'Googlebot-Image/' in ua: util.update_map(result, dataset.get('GoogleBot')) return True