~ihabunek/toot-discuss

Add pleroma special case to get_instance_domain v1 PROPOSED

Laura Aino Violetta Aléanor <lav@vampires.gay>
Laura Aino Violetta Aléanor: 1
 Add pleroma special case to get_instance_domain

 1 files changed, 6 insertions(+), 0 deletions(-)
Export patchset (mbox)
How do I use this?

Copy & paste the following snippet into your terminal to import this patchset into git:

curl -s https://lists.sr.ht/~ihabunek/toot-discuss/patches/40675/mbox | git am -3
Learn more about email & git

[PATCH] Add pleroma special case to get_instance_domain Export this patch

Laura Aino Violetta Aléanor <lav@vampires.gay>
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 urlparse

from 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