Properly send webmentions after deleting an entry :3

This commit is contained in:
Danielle McLean 2018-07-02 15:30:32 +10:00
父節點 fa8419976d
當前提交 bab7097fa3
簽署人: 00dani
GPG 金鑰 ID: 8EB789DDF3ABD240
共有 2 個檔案被更改,包括 13 行新增6 行删除

查看文件

@ -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)

查看文件

@ -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)