fix: use local instance

This commit is contained in:
Jean-Baptiste Pasquier 2019-10-21 17:35:37 +02:00
parent 5f25431182
commit 9416c27971
No known key found for this signature in database
GPG Key ID: F2702E6D22ED4D62
1 changed files with 37 additions and 27 deletions

View File

@ -79,32 +79,42 @@ def send_request(target, object_iri):
@receiver(post_save, sender=Notification)
def send_email_on_notification(sender, instance, created, **kwargs):
if created and instance.summary and settings.JABBER_DEFAULT_HOST and instance.user.email:
try:
who = requests.get(instance.author).json()['name'] or 'Unknown Person' # I've no idea how to handle dead links.
where = requests.get(instance.object).json()['name'] or 'some unknown place' # So let's get to the unknown :)
if(instance.author == instance.object):
where = "has sent you a private message"
try:
if instance.author.startswith(settings.SITE_URL):
who = str(Model.resolve_id(instance.author.replace(settings.SITE_URL,'')))
else:
where = "mention you on " + where
html_message = loader.render_to_string(
'email.html',
{
'on': settings.JABBER_DEFAULT_HOST,
'instance': instance,
'author': who,
'object': where
}
)
send_mail(
'Notification on ' + settings.JABBER_DEFAULT_HOST,
instance.summary,
settings.EMAIL_HOST_USER or "noreply@" + settings.JABBER_DEFAULT_HOST,
[instance.user.email],
fail_silently=True,
html_message=html_message
)
who = requests.get(instance.author).json()['name']
except:
logging.error('Djangoldp_notifications: Can\'t mail the user')
else:
if created:
raise Exception('Djangoldp_notifications: Misconfiguration, missing JABBER_DEFAULT_HOST or no mail for user found')
who = "Unknown Person"
try:
if instance.object.startswith(settings.SITE_URL):
where = str(Model.resolve_id(instance.object.replace(settings.SITE_URL,'')))
else:
where = requests.get(instance.object).json()['name']
except:
where = "Unknown place"
if(who == where):
where = "has sent you a private message"
else:
where = "mention you on " + where
html_message = loader.render_to_string(
'email.html',
{
'on': settings.JABBER_DEFAULT_HOST,
'instance': instance,
'author': who,
'object': where
}
)
send_mail(
'Notification on ' + settings.JABBER_DEFAULT_HOST,
instance.summary,
settings.EMAIL_HOST_USER or "noreply@" + settings.JABBER_DEFAULT_HOST,
[instance.user.email],
fail_silently=True,
html_message=html_message
)