Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

More powerful mute #5455

Open
goeo- opened this issue Sep 23, 2024 · 5 comments
Open

More powerful mute #5455

goeo- opened this issue Sep 23, 2024 · 5 comments
Labels
feature-request A request for a new feature

Comments

@goeo-
Copy link

goeo- commented Sep 23, 2024

Hey all! This is a feature request, but I'm also happy to take a crack at it myself if the team would consider the feature being included in the app - this issue is very much in the spirit of "Open an issue and give some time for discussion before submitting a PR." from the readme.

Is your feature request related to a problem? Please describe.

Mutes are a very cool client side tool for not just personalised moderation, but also for curating your content experience, allowing you to choose what you want to see and what you prefer to avoid, even if it’s not inherently harmful.

One argument against making mute more powerful might be the existence of labelers. If anything, they can have access to more information to make their judgement. However,

  • they require some technical knowledge to make, meaning this is not an option for most users (I expect my proposal to be more approachable for power users who may not be programmers, for example), and
  • as the network grows and the rate limits stay the same, just labeling every post that matches some criteria is becoming less and less feasible.

Describe the solution you'd like

My current proposal is adding more options to "Mute in" (currently limited to "text and tags" and "tags only"):

  • post record
  • app.bsky.feed.defs#postView as received from the app view
  • possibly also feedViewPost, threadViewPost

These would search all of the data represented as JSON by default, and optionally take a jq filter (or something similar) to search a specific part.

Additionally, I would propose adding a "muteword is regex" option for even more flexibility.

Describe alternatives you've considered

I haven't considered too many alternatives if we agree that making mute more powerful is a good idea - definitely open to ideas here.

I've mentioned why I don't see labelers as an alternative.

Additional context

The GIF labeler has been dead since Brazil joined the website, and I really don't like Tenor. If this was implemented, a mute filter for it could look like:

Mute in: post record
jq filter: .embed.external.uri
mute word: media.tenor.com
regex?: no

As another example, I'm always frustrated when I try to link a post and its author happens to have the !no-unauthenticated label. If my friends without accounts shouldn't see the post, I don't want to either. Here's a mute filter for that:

Mute in: postView
jq filter: .author.labels[].val
mute word: !no-unauthenticated
regex?: no

@goeo- goeo- added the feature-request A request for a new feature label Sep 23, 2024
@goeo-
Copy link
Author

goeo- commented Sep 23, 2024

Looking a bit more at the options something like https://github.com/jg-rp/json-p3 might be better

@imax9000
Copy link
Contributor

Overall I don't think it's a good idea. Filters that can have large variation in CPU cost make the service more susceptible to performance issues: now your latency greatly depends on the specifics of the data, not just the volume.

Data model here is known in advance and controlled, so addressing specific issues more directly is feasible and less likely to backfire.


Additionally, I would propose adding a "muteword is regex" option for even more flexibility.

I'd strongly advice against using regexps. They can be very expensive to evaluate, and in 99% of cases glob patterns would suffice.

As another example, I'm always frustrated when I try to link a post and its author happens to have the !no-unauthenticated label. If my friends without accounts shouldn't see the post, I don't want to either. Here's a mute filter for that:

This is better solved by converting these "magic" labels into proper labels, and providing appropriate UI for self-labels.

@goeo-
Copy link
Author

goeo- commented Sep 25, 2024

Maybe it's a good idea to try to be explicit about performance implications, but this is all happening on the client, and imo the user should be given the option.

@imax9000
Copy link
Contributor

Yeah, purely client-side implementation would have less performance impact on the backend, but there will be some anyway: if the filters drop all the posts - client on each page load will quickly iterate over the feed as far as the cursor would allow.

@goeo-
Copy link
Author

goeo- commented Sep 27, 2024

I seriously think this is a non issue, have you seen how they do the following feed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature-request A request for a new feature
Projects
None yet
Development

No branches or pull requests

2 participants