slice / dogbot

utilitarian canine discord bot
MIT License
11 stars 6 forks source link

Improve AP actor linking #13

Closed slice closed 5 years ago

slice commented 5 years ago
lun-4 commented 5 years ago

Here's some things for detecting instance software via Nodeinfo:

Note: for mastodon instances, you can try querying the /api/v1/instance endpoint if and only if webfinger fails (pleroma's mastoapi implements that too)

If all fails, maybe just put a generic activitypub logo next instead of the software's logo? logo is here, in svg, "ActivityPub logo by mray, released into public domain under CC0 1.0."

pleroma website contains a logo, peertube too, pixelfed as well

slice commented 5 years ago

I'm only going to implement Pleroma support because I'm only interested in federated microblogging protocols.

Adding support for more than one linked AP actor will also require database changes which I do not wish to implement at this time.

lun-4 commented 5 years ago

There are other AP implementations for "microblogging" you may be interested in, then:

And while I do agree on keeping one linked AP actor per user, I'd see it as better if the user can choose their "main" AP account to be shown on their profile card instead of being only Mastodon or Pleroma, the code would still need to use nodeinfo to reliably detect a Pleroma instance too, so...

slice commented 5 years ago

I'm only interested in Pleroma and Mastodon at this point.

And users can only ever have one linked account Not sure what you mean by "main" AP when you can only have one.

lun-4 commented 5 years ago

example: suppose someone has a writefreely account and a pleroma account, and they want to put the writefreely account as the one other people know them for

slice commented 5 years ago

Right, but the bot doesn't support this at the moment.

slice commented 5 years ago

I am going to phase out support for linking AP actors to user profiles completely because of the exploitability of letting users command the bot to make requests to (pretty much) any domain.