superseriousbusiness / gotosocial

Fast, fun, small ActivityPub server.
https://docs.gotosocial.org
GNU Affero General Public License v3.0
3.81k stars 330 forks source link

[feature] Mute users #717

Closed tsmethurst closed 5 months ago

tsmethurst commented 2 years ago

We should implement user muting, so that people can mute users to prevent posts from those users being inserted into their home timeline, without having to unfollow that user.

See https://docs.joinmastodon.org/methods/accounts/mutes/ and https://docs.joinmastodon.org/methods/accounts/

To be fully compliant with the mastodon API, we can also try to implement duration-based muting, but we'll have to look into the cleanest + most performant way of doing this.

9p4 commented 9 months ago

IMO this should be a target for the beta (as I think it's essential to user safety).

tsmethurst commented 9 months ago

Hmm, we already have blocking as a safety feature if someone is harassing you, and unfollowing if you're really just sick of seeing someone's posts in your timeline. I'd say muting is a nice-to-have thing, since it allows you to have the effects of unfollowing without the embarrassment of later sending a follow request back. We are interested in working on it during beta, but it doesn't need to be framed as a safety issue imo.

9p4 commented 9 months ago

I think that not having muting is still a safety issue: blocking remote users notifies the remote server of the block. In the case of a malicious instance owner, the block can be detected for further harassment in channels outside of AP. A mute is a safer way of preventing interaction.

https://github.com/superseriousbusiness/gotosocial/blob/9125a5158415e1d6096a7e124473d2368ccfa30c/internal/processing/workers/federate.go#L820

https://docs.joinmastodon.org/spec/activitypub/#Block

tsmethurst commented 9 months ago

Yeah okay fair enough, I can see the logic in that. Point taken. I'd say that in such a case where you know the instance is bad, because it's run by some bellend who uses a block announcer, it would be a good idea to consider adding an admin-level domain block for the entire domain (or ask your admin to do so, if you're not running a single-user instance). Or at least suspend specific accounts via the admin panel. Neither of those actions federate to the remote domain, and they're much stronger safety controls because they also prevent users from being able to look up new posts from you from their instance, or to send messages to you. User-level muting (when we implement it) is mainly meant for customizing what appears in your timeline so you can take a break (permanent or otherwise) from seeing someone's posts, in a way that's softer than blocking them. If they're real tossers, a stronger option might be better.

mirabilos commented 9 months ago

tobi dixit:

and unfollowing if you're really just sick of seeing someone's posts in your timeline.

Not quite: they still show up as boosts. And to avoid these is the reason I asked for user muting. I’d not categorised it under user safety, though, until…

9p4 dixit:

blocking remote users notifies the remote server of the block.

… I saw this õÕ but yeah, I agree, in those cases, it’s better defederated by the admin anyway.

bye, //mirabilos