Notification fixes - error on mailto:// when no format was specified, fixing default body and title of notifications to respect global settings (#2085)

pull/2094/head
dgtlmoon 12 months ago committed by GitHub
parent 0d92be348a
commit 77133de1cf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -1592,6 +1592,15 @@ def notification_runner():
try: try:
from changedetectionio import notification from changedetectionio import notification
# Fallback to system config if not set
if not n_object.get('notification_body') and datastore.data['settings']['application'].get('notification_body'):
n_object['notification_body'] = datastore.data['settings']['application'].get('notification_body')
if not n_object.get('notification_title') and datastore.data['settings']['application'].get('notification_title'):
n_object['notification_title'] = datastore.data['settings']['application'].get('notification_title')
if not n_object.get('notification_format') and datastore.data['settings']['application'].get('notification_format'):
n_object['notification_title'] = datastore.data['settings']['application'].get('notification_format')
sent_obj = notification.process_notification(n_object, datastore) sent_obj = notification.process_notification(n_object, datastore)

@ -119,8 +119,8 @@ def process_notification(n_object, datastore):
# Get the notification body from datastore # Get the notification body from datastore
jinja2_env = Environment(loader=BaseLoader) jinja2_env = Environment(loader=BaseLoader)
n_body = jinja2_env.from_string(n_object.get('notification_body', default_notification_body)).render(**notification_parameters) n_body = jinja2_env.from_string(n_object.get('notification_body', '')).render(**notification_parameters)
n_title = jinja2_env.from_string(n_object.get('notification_title', default_notification_title)).render(**notification_parameters) n_title = jinja2_env.from_string(n_object.get('notification_title', '')).render(**notification_parameters)
n_format = valid_notification_formats.get( n_format = valid_notification_formats.get(
n_object.get('notification_format', default_notification_format), n_object.get('notification_format', default_notification_format),
valid_notification_formats[default_notification_format], valid_notification_formats[default_notification_format],
@ -187,8 +187,8 @@ def process_notification(n_object, datastore):
if not 'format=' in url and (n_format == 'Text' or n_format == 'Markdown'): if not 'format=' in url and (n_format == 'Text' or n_format == 'Markdown'):
prefix = '?' if not '?' in url else '&' prefix = '?' if not '?' in url else '&'
# Apprise format is lowercase text https://github.com/caronc/apprise/issues/633 # Apprise format is lowercase text https://github.com/caronc/apprise/issues/633
n_format = n_format.tolower() n_format = n_format.lower()
url = "{}{}format={}".format(url, prefix, n_format) url = f"{url}{prefix}format={n_format}"
# If n_format == HTML, then apprise email should default to text/html and we should be sending HTML only # If n_format == HTML, then apprise email should default to text/html and we should be sending HTML only
apobj.add(url) apobj.add(url)

Loading…
Cancel
Save