aboutsummaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorGravatar jesopo2019-09-17 17:41:15 +0100
committerGravatar jesopo2019-09-17 17:41:15 +0100
commitf84b48adbe761ffeac3ccc7e3a7db826610808f7 (patch)
treea332becfde821eca63f2d73532d152101a850013 /modules
parentdon't check already-read data when checking for too-large requests (diff)
signature
pass full Response from ap_utils.activity_request, use it for Actor 404
Diffstat (limited to 'modules')
-rw-r--r--modules/fediverse/ap_actor.py23
-rw-r--r--modules/fediverse/ap_utils.py5
2 files changed, 15 insertions, 13 deletions
diff --git a/modules/fediverse/ap_actor.py b/modules/fediverse/ap_actor.py
index 07676f06..dd5fee91 100644
--- a/modules/fediverse/ap_actor.py
+++ b/modules/fediverse/ap_actor.py
@@ -11,10 +11,13 @@ class Actor(object):
self.outbox = None
def load(self):
- data = ap_utils.activity_request(self.url)
- self.username = data["preferredUsername"]
- self.inbox = Inbox(data["inbox"])
- self.outbox = Outbox(data["outbox"])
+ response = ap_utils.activity_request(self.url)
+ if response.code == 200:
+ self.username = response.data["preferredUsername"]
+ self.inbox = Inbox(response.data["inbox"])
+ self.outbox = Outbox(responsedata["outbox"])
+ return True
+ return False
class Outbox(object):
def __init__(self, url):
@@ -24,16 +27,16 @@ class Outbox(object):
outbox = ap_utils.activity_request(self._url)
items = None
- if "first" in outbox:
- if type(outbox["first"]) == dict:
+ if "first" in outbox.data:
+ if type(outbox.data["first"]) == dict:
# pleroma
- items = outbox["first"]["orderedItems"]
+ items = outbox.data["first"]["orderedItems"]
else:
# mastodon
- first = ap_utils.activity_request(outbox["first"])
+ first = ap_utils.activity_request(outbox.data["first"])
items = first["orderedItems"]
else:
- items = outbox["orderedItems"]
+ items = outbox.data["orderedItems"]
return items
class Inbox(object):
@@ -53,5 +56,5 @@ class Inbox(object):
headers.append(["signature", signature])
return ap_utils.activity_request(self._url, activity.format(sender),
- method="POST", headers=dict(headers))
+ method="POST", headers=dict(headers)).data
diff --git a/modules/fediverse/ap_utils.py b/modules/fediverse/ap_utils.py
index d15ff243..39e30590 100644
--- a/modules/fediverse/ap_utils.py
+++ b/modules/fediverse/ap_utils.py
@@ -26,7 +26,7 @@ def activity_request(url, data=None, method="GET", type=ACTIVITY_TYPE,
request = utils.http.Request(url, headers=headers, useragent=USERAGENT,
content_type=content_type, post_data=data, method=method, json=True,
json_body=True)
- return utils.http.request(request).data
+ return utils.http.request(request)
HOSTMETA_TEMPLATE = "https://%s/.well-known/host-meta"
WEBFINGER_TEMPLATE = "https://%s/.well-known/webfinger?resource={uri}"
@@ -51,7 +51,7 @@ def find_actor(username, instance):
webfinger = activity_request(webfinger_url, type=JRD_TYPE)
actor_url = None
- for link in webfinger["links"]:
+ for link in webfinger.data["links"]:
if link["type"] == ACTIVITY_TYPE:
return link["href"]
@@ -63,7 +63,6 @@ def format_note(actor, note):
original_tooter = ap_actor.Actor(retoot.data["attributedTo"])
original_tooter.load()
- original_tooter = activity_request(original_tooter_url)
retooted_user = "@%s@%s" % (original_tooter.username, retoot_instance)
retoot_content = utils.http.strip_html(retoot.data["content"])