kopia lustrzana https://github.com/snarfed/bridgy-fed
webmention => AP: fix error handling for outbound AP requests
rodzic
b7f89dce99
commit
aa5fac01dd
|
@ -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
|
||||||
|
|
||||||
|
|
Ładowanie…
Reference in New Issue