webmention => AP: fix error handling for outbound AP requests

pull/59/head
Ryan Barrett 2018-12-11 08:00:38 -08:00
rodzic b7f89dce99
commit aa5fac01dd
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 6BE31FDF4776E9D4
1 zmienionych plików z 11 dodań i 6 usunięć

Wyświetl plik

@ -92,7 +92,7 @@ class WebmentionHandler(webapp2.RequestHandler):
return False return False
key = MagicKey.get_or_create(self.source_domain) key = MagicKey.get_or_create(self.source_domain)
error = False error = None
delivered = set() # inboxes we've delivered to delivered = set() # inboxes we've delivered to
# TODO: collect by inbox, add 'to' fields, de-dupe inboxes and recipients # TODO: collect by inbox, add 'to' fields, de-dupe inboxes and recipients
@ -108,16 +108,21 @@ class WebmentionHandler(webapp2.RequestHandler):
try: try:
last = activitypub.send(source_activity, inbox, self.source_domain) last = activitypub.send(source_activity, inbox, self.source_domain)
resp.status = 'complete' resp.status = 'complete'
except: except BaseException as e:
error = e
resp.status = 'error' resp.status = 'error'
resp.put() resp.put()
if resp.status == 'error':
error = sent
# Pass the AP response status code and body through as our response # Pass the AP response status code and body through as our response
self.response.status_int = (error or last).status_code if not error:
self.response.write((error or last).text) self.response.status_int = last.status_code
self.response.write(last.text)
elif isinstance(error, requests.HTTPError):
self.response.status_int = error.status_code
self.response.write(error.text)
else:
self.response.write(unicode(error))
return not error return not error