mirror of
https://github.com/dgtlmoon/changedetection.io.git
synced 2025-11-26 03:13:21 +00:00
Compare commits
4 Commits
remove-sam
...
2548-trigg
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
16a85e2a60 | ||
|
|
ecafa27833 | ||
|
|
f7d4e58613 | ||
|
|
5bb47e47db |
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
# Read more https://github.com/dgtlmoon/changedetection.io/wiki
|
# Read more https://github.com/dgtlmoon/changedetection.io/wiki
|
||||||
|
|
||||||
__version__ = '0.47.01'
|
__version__ = '0.47.03'
|
||||||
|
|
||||||
from changedetectionio.strtobool import strtobool
|
from changedetectionio.strtobool import strtobool
|
||||||
from json.decoder import JSONDecodeError
|
from json.decoder import JSONDecodeError
|
||||||
|
|||||||
@@ -331,13 +331,21 @@ class perform_site_check(difference_detection_processor):
|
|||||||
if result:
|
if result:
|
||||||
blocked = True
|
blocked = True
|
||||||
|
|
||||||
# The main thing that all this at the moment comes down to :)
|
|
||||||
if watch.get('previous_md5') != fetched_md5:
|
|
||||||
changed_detected = True
|
|
||||||
|
|
||||||
# Looks like something changed, but did it match all the rules?
|
# Looks like something changed, but did it match all the rules?
|
||||||
if blocked:
|
if blocked:
|
||||||
changed_detected = False
|
changed_detected = False
|
||||||
|
else:
|
||||||
|
# The main thing that all this at the moment comes down to :)
|
||||||
|
if watch.get('previous_md5') != fetched_md5:
|
||||||
|
changed_detected = True
|
||||||
|
|
||||||
|
# Always record the new checksum
|
||||||
|
update_obj["previous_md5"] = fetched_md5
|
||||||
|
|
||||||
|
# On the first run of a site, watch['previous_md5'] will be None, set it the current one.
|
||||||
|
if not watch.get('previous_md5'):
|
||||||
|
watch['previous_md5'] = fetched_md5
|
||||||
|
|
||||||
logger.debug(f"Watch UUID {watch.get('uuid')} content check - Previous MD5: {watch.get('previous_md5')}, Fetched MD5 {fetched_md5}")
|
logger.debug(f"Watch UUID {watch.get('uuid')} content check - Previous MD5: {watch.get('previous_md5')}, Fetched MD5 {fetched_md5}")
|
||||||
|
|
||||||
@@ -357,12 +365,6 @@ class perform_site_check(difference_detection_processor):
|
|||||||
else:
|
else:
|
||||||
logger.debug(f"check_unique_lines: UUID {watch.get('uuid')} had unique content")
|
logger.debug(f"check_unique_lines: UUID {watch.get('uuid')} had unique content")
|
||||||
|
|
||||||
# Always record the new checksum
|
|
||||||
update_obj["previous_md5"] = fetched_md5
|
|
||||||
|
|
||||||
# On the first run of a site, watch['previous_md5'] will be None, set it the current one.
|
|
||||||
if not watch.get('previous_md5'):
|
|
||||||
watch['previous_md5'] = fetched_md5
|
|
||||||
|
|
||||||
# stripped_text_from_html - Everything after filters and NO 'ignored' content
|
# stripped_text_from_html - Everything after filters and NO 'ignored' content
|
||||||
return changed_detected, update_obj, stripped_text_from_html
|
return changed_detected, update_obj, stripped_text_from_html
|
||||||
|
|||||||
@@ -26,8 +26,7 @@ function set_active_tab() {
|
|||||||
if (tab.length) {
|
if (tab.length) {
|
||||||
tab[0].parentElement.className = "active";
|
tab[0].parentElement.className = "active";
|
||||||
}
|
}
|
||||||
// hash could move the page down
|
|
||||||
window.scrollTo(0, 0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function focus_error_tab() {
|
function focus_error_tab() {
|
||||||
|
|||||||
@@ -148,7 +148,7 @@ body.spinner-active {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.tabs ul li a {
|
.tab-pane-inner {
|
||||||
// .tab-pane-inner will have the #id that the tab button jumps/anchors to
|
// .tab-pane-inner will have the #id that the tab button jumps/anchors to
|
||||||
scroll-margin-top: 200px;
|
scroll-margin-top: 200px;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -605,8 +605,7 @@ body.spinner-active #pure-menu-horizontal-spinner {
|
|||||||
background-color: var(--color-background-menu-link-hover);
|
background-color: var(--color-background-menu-link-hover);
|
||||||
color: var(--color-text-menu-link-hover); }
|
color: var(--color-text-menu-link-hover); }
|
||||||
|
|
||||||
|
.tab-pane-inner {
|
||||||
.tabs ul li a {
|
|
||||||
scroll-margin-top: 200px; }
|
scroll-margin-top: 200px; }
|
||||||
|
|
||||||
section.content {
|
section.content {
|
||||||
|
|||||||
@@ -65,11 +65,8 @@ def test_check_block_changedetection_text_NOT_present(client, live_server, measu
|
|||||||
live_server_setup(live_server)
|
live_server_setup(live_server)
|
||||||
# Use a mix of case in ZzZ to prove it works case-insensitive.
|
# Use a mix of case in ZzZ to prove it works case-insensitive.
|
||||||
ignore_text = "out of stoCk\r\nfoobar"
|
ignore_text = "out of stoCk\r\nfoobar"
|
||||||
|
|
||||||
set_original_ignore_response()
|
set_original_ignore_response()
|
||||||
|
|
||||||
# Give the endpoint time to spin up
|
|
||||||
time.sleep(1)
|
|
||||||
|
|
||||||
# Add our URL to the import page
|
# Add our URL to the import page
|
||||||
test_url = url_for('test_endpoint', _external=True)
|
test_url = url_for('test_endpoint', _external=True)
|
||||||
@@ -127,13 +124,24 @@ def test_check_block_changedetection_text_NOT_present(client, live_server, measu
|
|||||||
assert b'unviewed' not in res.data
|
assert b'unviewed' not in res.data
|
||||||
assert b'/test-endpoint' in res.data
|
assert b'/test-endpoint' in res.data
|
||||||
|
|
||||||
|
# 2548
|
||||||
|
# Going back to the ORIGINAL should NOT trigger a change
|
||||||
|
set_original_ignore_response()
|
||||||
|
client.get(url_for("form_watch_checknow"), follow_redirects=True)
|
||||||
|
wait_for_all_checks(client)
|
||||||
|
res = client.get(url_for("index"))
|
||||||
|
assert b'unviewed' not in res.data
|
||||||
|
|
||||||
# Now we set a change where the text is gone, it should now trigger
|
|
||||||
|
# Now we set a change where the text is gone AND its different content, it should now trigger
|
||||||
set_modified_response_minus_block_text()
|
set_modified_response_minus_block_text()
|
||||||
client.get(url_for("form_watch_checknow"), follow_redirects=True)
|
client.get(url_for("form_watch_checknow"), follow_redirects=True)
|
||||||
wait_for_all_checks(client)
|
wait_for_all_checks(client)
|
||||||
res = client.get(url_for("index"))
|
res = client.get(url_for("index"))
|
||||||
assert b'unviewed' in res.data
|
assert b'unviewed' in res.data
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
res = client.get(url_for("form_delete", uuid="all"), follow_redirects=True)
|
res = client.get(url_for("form_delete", uuid="all"), follow_redirects=True)
|
||||||
assert b'Deleted' in res.data
|
assert b'Deleted' in res.data
|
||||||
|
|||||||
Reference in New Issue
Block a user