From bab7097fa3884d05cd15b5f0fa9e6d4ef0db7177 Mon Sep 17 00:00:00 2001 From: Danielle McLean Date: Mon, 2 Jul 2018 15:30:32 +1000 Subject: [PATCH] Properly send webmentions after deleting an entry :3 --- entries/jobs.py | 7 ++++--- micropub/views/delete.py | 12 +++++++++--- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/entries/jobs.py b/entries/jobs.py index 7704095..68a873c 100644 --- a/entries/jobs.py +++ b/entries/jobs.py @@ -14,9 +14,10 @@ def ping_hub(*urls): @job -def send_mentions(source): - result = webmention.findMentions(source) - for target in result['refs']: +def send_mentions(source, targets=None): + if targets is None: + targets = webmention.findMentions(source)['refs'] + for target in targets: status, endpoint = webmention.discoverEndpoint(target) if endpoint is not None and status == 200: webmention.sendWebmention(source, target, endpoint) diff --git a/micropub/views/delete.py b/micropub/views/delete.py index 4ee8a89..5daa696 100644 --- a/micropub/views/delete.py +++ b/micropub/views/delete.py @@ -1,8 +1,9 @@ from django.http import HttpResponse from django.urls import resolve, Resolver404 from urllib.parse import urlparse +from ronkyuu import webmention -from entries.jobs import ping_hub +from entries.jobs import ping_hub, send_mentions from entries.models import Entry from . import error @@ -42,7 +43,12 @@ def delete(request): if entry.author != request.token.user: return error.forbid('entry belongs to another user') - urls = entry.affected_urls + perma = entry.absolute_url + pings = entry.affected_urls + mentions = webmention.findMentions(perma)['refs'] + entry.delete() - ping_hub.delay(urls) + + ping_hub.delay(*pings) + send_mentions.delay(perma, mentions) return HttpResponse(status=204)