ronilaukkarinen / finnish-mastodon-users

🇫🇮 A list for Finnish Mastodon users.
https://mementomori.social/suomalaiset-mastodon-kayttajat/
7 stars 6 forks source link

Support users with separate handle- and instance domains #9

Closed bluelhf closed 1 year ago

bluelhf commented 1 year ago

Some Mastodon instances (ahem Testausserveri ahem) have strange and confusing configurations which utilise the WEB_DOMAIN environment variable, causing the domain part of user handles to be distinct from the domain of the instance. This leads to problems displaying users from such instances, as the user look-up returns an HTTP 404 response.

One solution could be to use Webfinger to properly link to users, which would mean making one additional HTTP request. Though ugly, another solution would be updating the CSV to contain the instance domain name and full user handle in separate columns, as the instance domain name cannot necessarily be derived from the user handle without Webfinger.

In the case of Testausserveri, our Mastodon administrator notes that the instance's behaviour is up to specification, and that he is not intent on re-configuring the instance due to the problems described in the WEB_DOMAIN documentation linked above.

bluelhf commented 1 year ago

Here's some additional context from the Testausserveri Mastodon administrator: Discord chat messages in which the administrator notes that Webfinger can be used to obtain the instance, and the current code for doing so is simply incorrect.

Translated to English:

(In reply to: because webfinger has been configured exactly as the documentation recommended :)) you can get the instance with webfinger it's just one extra request :) this is simply not the right way to resolve the instance address of a mastodon user https://github.com/ronilaukkarinen/finnish-mastodon-users/blob/master/app.js#L20-L21

ronilaukkarinen commented 1 year ago

Though ugly, another solution would be updating the CSV to contain the instance domain name and full user handle in separate columns

Not possible, because the csv is locked to this format originally to allow feasible mass import following data to Mastodon in user settings.

the instance's behaviour is up to specification, and that he is not intent on re-configuring the instance due to the problems described in the WEB_DOMAIN documentation linked above.

I don't intent on making an exception for a single instance on the list.

The list was originally built for easier following Finns. I also use Webfinger to make a blog part of Fediverse but Webfinger and instance modifications are quite out of scope of the list I'm building here.

this is simply not the right way to resolve the instance address of a mastodon user

Literally all the other dozen instances work fine so it's right enough for me at the moment. If you have better ideas on how to make the list API call more flexible towards customized instances, please send a pull request.

raikasdev commented 1 year ago

It should be possible to use an other instances API (https://mementomori.social/api/v1/accounts/lookup?acct=raikas@testausserveri.fi works), but this of course would require that user has been indexed at least once.

bluelhf commented 1 year ago

Though ugly, another solution would be updating the CSV to contain the instance domain name and full user handle in separate columns

Not possible, because the csv is locked to this format originally to allow feasible mass import following data to Mastodon in user settings.

the instance's behaviour is up to specification, and that he is not intent on re-configuring the instance due to the problems described in the WEB_DOMAIN documentation linked above.

I don't intent on making an exception for a single instance on the list.

The list was originally built for easier following Finns. I also use Webfinger to make a blog part of Fediverse but Webfinger and instance modifications are quite out of scope of the list I'm building here.

this is simply not the right way to resolve the instance address of a mastodon user

Literally all the other dozen instances work fine so it's right enough for me at the moment. If you have better ideas on how to make the list API call more flexible towards customized instances, please send a pull request.

That's fair. I understand the priority is quite low for an issue that affects literally 1,3 % of all users on the list. I'll look into implementing Webfinger if I can.

P.S. I understand it's quite late for you, as well. I think all of us ought to get some sleep. :)

ronilaukkarinen commented 1 year ago

It should be possible to use an other instances API (https://mementomori.social/api/v1/accounts/lookup?acct=raikas@testausserveri.fi works), but this of course would require that user has been indexed at least once.

Yes, but not without changing the logic - currently everything is picked from the full username from the CSV file and I kinda want it to stay that way.

ronilaukkarinen commented 1 year ago

Vivaldi also drops out of the list. Needs more investigating. See this.

ronilaukkarinen commented 1 year ago

Tested with https://"+instance+"/api/v1/accounts/lookup?acct="+acct but it seems not all instances support with account without instance, causes problems this way as well.