See issue 347 <https://github.com/ihabunek/toot/issues/347>.
Basically, there is a discrepancy in what different server softwares
put in the "uri" field returned by the `instance` API endpoint. While
mastodon (and the mastodon API documentation) use this for the *domain
name*, pleroma and its forks (like akkoma) use it for the actual
URI. This commit adds a check to get_instance_domain, so that when the
instance is served by pleroma or a pleroma fork, the domain name is
extracted from the URI and returned. Previously, the whole URI was returned.
---
toot/auth.py | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/toot/auth.py b/toot/auth.py
index 0ee2bac..3808bf7 100644
--- a/toot/auth.py+++ b/toot/auth.py
@@ -3,6 +3,7 @@ import webbrowser
from builtins import input
from getpass import getpass
+from urllib.parse import urlparsefrom toot import api, config, DEFAULT_INSTANCE, User, App
from toot.exceptions import ApiError, ConsoleError
@@ -46,6 +47,11 @@ def get_instance_domain(base_url):
f"running Mastodon version <yellow>{instance['version']}</yellow>"
)
+ # Pleroma and its forks return an actual URI here, rather than a+ # domain name like Mastodon.+ if "pleroma" in instance:+ return urlparse(instance["uri"]).netloc+ # NB: when updating to v2 instance endpoint, this field has been renamed to `domain`
return instance["uri"]
--
2.39.2
Sorry I never responded to this email, it's been a crazy lately. I see you came up with an alternative solution with Dan. Thanks for your contribution!
Regards,
-- Ivan