Do not send newsletter if failed to render template

This commit is contained in:
JonnyWong16 2018-05-27 23:02:56 -07:00
parent e93808381c
commit ac207260c8

View file

@ -288,9 +288,9 @@ def serve_template(templatename, **kwargs):
try:
template = _hplookup.get_template(templatename)
return template.render(**kwargs)
return template.render(**kwargs), False
except:
return exceptions.html_error_template().render()
return exceptions.html_error_template().render(), True
def generate_newsletter_uuid():
@ -376,6 +376,7 @@ class Newsletter(object):
self.newsletter = None
self.is_preview = False
self.template_error = None
def set_config(self, config=None, default=None):
return self._validate_config(config=config, default=default)
@ -421,7 +422,7 @@ class Newsletter(object):
self.retrieve_data()
newsletter_rendered = serve_template(
newsletter_rendered, self.template_error = serve_template(
templatename=self._TEMPLATE,
uuid=self.uuid,
subject=self.subject_formatted,
@ -432,6 +433,9 @@ class Newsletter(object):
preview=self.is_preview
)
if self.template_error:
return newsletter_rendered
# Force Tautulli footer
if '<!-- FOOTER MESSAGE - DO NOT REMOVE -->' in newsletter_rendered:
newsletter_rendered = newsletter_rendered.replace(
@ -439,7 +443,7 @@ class Newsletter(object):
'Newsletter generated by <a href="https://tautulli.com" target="_blank" '
'style="text-decoration: underline;color: inherit;font-size: inherit;">Tautulli</a>.'
)
return newsletter_rendered
else:
msg = ('<div style="text-align: center;padding-top: 100px;padding-bottom: 100px;">'
'<p style="font-family: \'Open Sans\', Helvetica, Arial, sans-serif;color: #282A2D;'
@ -449,11 +453,16 @@ class Newsletter(object):
'<a href="https://tautulli.com" target="_blank">Tautulli</a>.<br>Thank you.'
'</p></div>')
newsletter_rendered = re.sub(r'(<body.*?>)', r'\1' + msg, newsletter_rendered)
return newsletter_rendered
def send(self):
self.newsletter = self.generate_newsletter()
if self.template_error:
logger.error(u"Tautulli Newsletters :: %s newsletter failed to render template. Newsletter not sent." % self.NAME)
return False
if not self._has_data():
logger.warn(u"Tautulli Newsletters :: %s newsletter has no data. Newsletter not sent." % self.NAME)
return False