kopia lustrzana https://github.com/dgtlmoon/changedetection.io
2742-notification-headers-encoding
rodzic
b0ff9d161e
commit
82e0b99b07
|
@ -67,7 +67,6 @@ FlaskCompress(app)
|
||||||
|
|
||||||
# Stop browser caching of assets
|
# Stop browser caching of assets
|
||||||
app.config['SEND_FILE_MAX_AGE_DEFAULT'] = 0
|
app.config['SEND_FILE_MAX_AGE_DEFAULT'] = 0
|
||||||
|
|
||||||
app.config.exit = Event()
|
app.config.exit = Event()
|
||||||
|
|
||||||
app.config['NEW_VERSION_AVAILABLE'] = False
|
app.config['NEW_VERSION_AVAILABLE'] = False
|
||||||
|
@ -470,7 +469,7 @@ def changedetection_app(config=None, datastore_o=None):
|
||||||
continue
|
continue
|
||||||
if watch.get('last_error'):
|
if watch.get('last_error'):
|
||||||
errored_count += 1
|
errored_count += 1
|
||||||
|
|
||||||
if search_q:
|
if search_q:
|
||||||
if (watch.get('title') and search_q in watch.get('title').lower()) or search_q in watch.get('url', '').lower():
|
if (watch.get('title') and search_q in watch.get('title').lower()) or search_q in watch.get('url', '').lower():
|
||||||
sorted_watches.append(watch)
|
sorted_watches.append(watch)
|
||||||
|
@ -533,7 +532,7 @@ def changedetection_app(config=None, datastore_o=None):
|
||||||
@login_optionally_required
|
@login_optionally_required
|
||||||
def ajax_callback_send_notification_test(watch_uuid=None):
|
def ajax_callback_send_notification_test(watch_uuid=None):
|
||||||
|
|
||||||
# Watch_uuid could be unset in the case its used in tag editor, global setings
|
# Watch_uuid could be unset in the case it`s used in tag editor, global settings
|
||||||
import apprise
|
import apprise
|
||||||
import random
|
import random
|
||||||
from .apprise_asset import asset
|
from .apprise_asset import asset
|
||||||
|
@ -542,13 +541,15 @@ def changedetection_app(config=None, datastore_o=None):
|
||||||
from changedetectionio.apprise_plugin import apprise_custom_api_call_wrapper
|
from changedetectionio.apprise_plugin import apprise_custom_api_call_wrapper
|
||||||
is_global_settings_form = request.args.get('mode', '') == 'global-settings'
|
is_global_settings_form = request.args.get('mode', '') == 'global-settings'
|
||||||
is_group_settings_form = request.args.get('mode', '') == 'group-settings'
|
is_group_settings_form = request.args.get('mode', '') == 'group-settings'
|
||||||
|
|
||||||
# Use an existing random one on the global/main settings form
|
# Use an existing random one on the global/main settings form
|
||||||
if not watch_uuid and (is_global_settings_form or is_group_settings_form):
|
if not watch_uuid and (is_global_settings_form or is_group_settings_form) \
|
||||||
|
and datastore.data.get('watching'):
|
||||||
|
|
||||||
logger.debug(f"Send test notification - Choosing random Watch {watch_uuid}")
|
logger.debug(f"Send test notification - Choosing random Watch {watch_uuid}")
|
||||||
watch_uuid = random.choice(list(datastore.data['watching'].keys()))
|
watch_uuid = random.choice(list(datastore.data['watching'].keys()))
|
||||||
|
watch = datastore.data['watching'].get(watch_uuid)
|
||||||
watch = datastore.data['watching'].get(watch_uuid)
|
else:
|
||||||
|
watch = None
|
||||||
|
|
||||||
notification_urls = request.form['notification_urls'].strip().splitlines()
|
notification_urls = request.form['notification_urls'].strip().splitlines()
|
||||||
|
|
||||||
|
@ -1396,7 +1397,7 @@ def changedetection_app(config=None, datastore_o=None):
|
||||||
url = request.form.get('url').strip()
|
url = request.form.get('url').strip()
|
||||||
if datastore.url_exists(url):
|
if datastore.url_exists(url):
|
||||||
flash(f'Warning, URL {url} already exists', "notice")
|
flash(f'Warning, URL {url} already exists', "notice")
|
||||||
|
|
||||||
add_paused = request.form.get('edit_and_watch_submit_button') != None
|
add_paused = request.form.get('edit_and_watch_submit_button') != None
|
||||||
processor = request.form.get('processor', 'text_json_diff')
|
processor = request.form.get('processor', 'text_json_diff')
|
||||||
new_uuid = datastore.add_watch(url=url, tag=request.form.get('tags').strip(), extras={'paused': add_paused, 'processor': processor})
|
new_uuid = datastore.add_watch(url=url, tag=request.form.get('tags').strip(), extras={'paused': add_paused, 'processor': processor})
|
||||||
|
|
|
@ -429,3 +429,24 @@ def test_global_send_test_notification(client, live_server, measure_memory_usage
|
||||||
follow_redirects=True
|
follow_redirects=True
|
||||||
)
|
)
|
||||||
|
|
||||||
|
#2727 - be sure a test notification when there are zero watches works ( should all be deleted now)
|
||||||
|
|
||||||
|
os.unlink("test-datastore/notification.txt")
|
||||||
|
|
||||||
|
|
||||||
|
######### Test global/system settings
|
||||||
|
res = client.post(
|
||||||
|
url_for("ajax_callback_send_notification_test")+"?mode=global-settings",
|
||||||
|
data={"notification_urls": test_notification_url},
|
||||||
|
follow_redirects=True
|
||||||
|
)
|
||||||
|
|
||||||
|
assert res.status_code != 400
|
||||||
|
assert res.status_code != 500
|
||||||
|
|
||||||
|
# Give apprise time to fire
|
||||||
|
time.sleep(4)
|
||||||
|
|
||||||
|
with open("test-datastore/notification.txt", 'r') as f:
|
||||||
|
x = f.read()
|
||||||
|
assert 'change detection is cool 网站监测 内容更新了' in x
|
||||||
|
|
|
@ -81,7 +81,8 @@ class update_worker(threading.Thread):
|
||||||
'watch_url': watch.get('url') if watch else None,
|
'watch_url': watch.get('url') if watch else None,
|
||||||
})
|
})
|
||||||
|
|
||||||
n_object.update(watch.extra_notification_token_values())
|
if watch:
|
||||||
|
n_object.update(watch.extra_notification_token_values())
|
||||||
|
|
||||||
logger.trace(f"Main rendered notification placeholders (diff_added etc) calculated in {time.time()-now:.3f}s")
|
logger.trace(f"Main rendered notification placeholders (diff_added etc) calculated in {time.time()-now:.3f}s")
|
||||||
logger.debug("Queued notification for sending")
|
logger.debug("Queued notification for sending")
|
||||||
|
|
Ładowanie…
Reference in New Issue