aboutsummaryrefslogtreecommitdiff
path: root/modules/fediverse
diff options
context:
space:
mode:
Diffstat (limited to 'modules/fediverse')
-rw-r--r--modules/fediverse/__init__.py2
-rw-r--r--modules/fediverse/ap_server.py4
-rw-r--r--modules/fediverse/ap_utils.py15
3 files changed, 12 insertions, 9 deletions
diff --git a/modules/fediverse/__init__.py b/modules/fediverse/__init__.py
index c1279eb7..aefd966e 100644
--- a/modules/fediverse/__init__.py
+++ b/modules/fediverse/__init__.py
@@ -95,7 +95,7 @@ class Module(ModuleManager.BaseModule):
note = note["object"]
cw, author, content, url = ap_utils.parse_note(actor, note, type)
- shorturl = self.exports.get_one("shorturl")(event["server"], url,
+ shorturl = self.exports.get("shorturl")(event["server"], url,
context=event["target"])
if cw:
diff --git a/modules/fediverse/ap_server.py b/modules/fediverse/ap_server.py
index e1b5cece..1fb98760 100644
--- a/modules/fediverse/ap_server.py
+++ b/modules/fediverse/ap_server.py
@@ -12,7 +12,7 @@ class Server(object):
self.username = username
self.instance = instance
- url_for = self.exports.get_one("url-for")
+ url_for = self.exports.get("url-for")
key_id = self._ap_keyid_url(url_for)
private_key = ap_security.PrivateKey(self.bot.config["tls-key"], key_id)
@@ -61,7 +61,7 @@ class Server(object):
def _toot(self, activity_id):
content, timestamp = self.bot.get_setting(
"ap-activity-%s" % activity_id)
- url_for = self.exports.get_one("url-for")
+ url_for = self.exports.get("url-for")
self_id = self._ap_self_url(url_for)
activity_url = self._ap_activity_url(url_for, activity_id)
diff --git a/modules/fediverse/ap_utils.py b/modules/fediverse/ap_utils.py
index 0d44d523..9174648c 100644
--- a/modules/fediverse/ap_utils.py
+++ b/modules/fediverse/ap_utils.py
@@ -39,15 +39,17 @@ class FindActorException(Exception):
pass
def find_actor(username, instance):
- hostmeta = HOSTMETA_TEMPLATE % instance
- hostmeta_request = utils.http.Request(HOSTMETA_TEMPLATE % instance)
+ hostmeta_url = HOSTMETA_TEMPLATE % instance
+ hostmeta_request = utils.http.Request(hostmeta_url)
try:
hostmeta = utils.http.request(hostmeta_request)
except:
- raise FindActorException("Failed to get host-meta for %s" % instance)
+ # failed to GET hostmeta; this is an optional step for servers that do
+ # not host their webfinger at the usual URL (see WEBFINGER_TEMPLATE)
+ hostmeta = None
webfinger_url = None
- if hostmeta.code == 200:
+ if hostmeta and hostmeta.code == 200:
for item in hostmeta.soup().find_all("link"):
if item["rel"] and item["rel"][0] == "lrdd":
webfinger_url = item["template"]
@@ -60,8 +62,9 @@ def find_actor(username, instance):
try:
webfinger = activity_request(webfinger_url, type=JRD_TYPE)
- except:
- raise FindActorException("Failed to get webfinger for %s" % instance)
+ except Exception as e:
+ raise FindActorException("Failed to get webfinger for %s: %s" %
+ (instance, str(e)))
actor_url = None
if webfinger.code == 200: