From 2ed96f9b59ff949e16d0d48edccd5ddda3b3c2ee Mon Sep 17 00:00:00 2001 From: Hunter Stern Date: Fri, 5 Feb 2016 10:00:24 -0800 Subject: [PATCH] Allow clicking on already clicked element to continue in behaviors if click_until_hard_timeout is set to true --- umbra/behaviors.d/simpleclicks.js.in | 5 +++-- umbra/behaviors.py | 6 +++++- umbra/behaviors.yaml | 5 +++++ 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/umbra/behaviors.d/simpleclicks.js.in b/umbra/behaviors.d/simpleclicks.js.in index aabb0c0..59100bf 100644 --- a/umbra/behaviors.d/simpleclicks.js.in +++ b/umbra/behaviors.d/simpleclicks.js.in @@ -8,7 +8,8 @@ var umbraBehavior = { var somethingLeftBelow = false; var somethingLeftAbove = false; var cssSelector = "${click_css_selector}"; - + var clickUntilTimeout = "${click_until_hard_timeout}"; + var iframes = document.querySelectorAll("iframe"); var documents = Array(iframes.length + 1); documents[0] = document; @@ -22,7 +23,7 @@ var umbraBehavior = { var clickTargets = documents[j].querySelectorAll(cssSelector); for ( var i = 0; i < clickTargets.length; i++) { - if (clickTargets[i].umbraClicked) { + if (clickTargets[i].umbraClicked && !clickUntilTimeout) { continue; } diff --git a/umbra/behaviors.py b/umbra/behaviors.py index 2085690..0be9e4c 100644 --- a/umbra/behaviors.py +++ b/umbra/behaviors.py @@ -32,7 +32,11 @@ class Behavior: behavior_js = os.path.sep.join(__file__.split(os.path.sep)[:-1] + ["behaviors.d"] + [behavior["behavior_js"]]) behavior["script"] = open(behavior_js, encoding="utf-8").read() elif "click_css_selector" in behavior: - behavior["script"] = simpleclicks_js_template.substitute(click_css_selector=behavior["click_css_selector"]) + if "click_until_hard_timeout" in behavior: + click_until_hard_timeout_value=behavior["click_until_hard_timeout"] + else: + click_until_hard_timeout_value = False + behavior["script"] = simpleclicks_js_template.substitute(click_css_selector=behavior["click_css_selector"], click_until_hard_timeout=click_until_hard_timeout_value) return Behavior._behaviors diff --git a/umbra/behaviors.yaml b/umbra/behaviors.yaml index a90ae9b..2284d88 100644 --- a/umbra/behaviors.yaml +++ b/umbra/behaviors.yaml @@ -48,6 +48,11 @@ behaviors: url_regex: '^https?://(?:www\.)?youtube.com/.*$' click_css_selector: span.load-more-text request_idle_timeout_sec: 10 + - # https://webarchive.jira.com/browse/ARI-4725 + url_regex: '^https?://(?:www\.)?moma.org/.*$' + click_css_selector: button[data-more-results-bottom-button] + click_until_hard_timeout: True + request_idle_timeout_sec: 10 - # default fallback brhavior url_regex: '^.*$' request_idle_timeout_sec: 10