Disclaimer: I am just a random stranger on the internet who likes uBlock Origin, read a handy comment, and figured out how to press F12. I am by no means a webpage expert, and these changes may have unintended consequences

I wanted to bring more attention to @[email protected]’s comment on how to block entire instances (not just specific communities on those instances) from your “all communities” feed, as well as add my own method to block them from the “list of communities” page.

This only works if you are using a web browser that supports uBlock Origin (so unfortunately, will not work on any of the mobile apps).

Firstly, install uBlock Origin if you haven’t already. Then, click on the uBlock extension icon -> “Gears” (settings) icon -> My Filters. Per @[email protected], add:

your.lemmy.instance.com##.post-listing:has-text(@theInstanceYouWantToBlock.com)

Then click “Apply Changes”

So if I were not interested in any of lemmynsfw.com’s content, I would add:

lemmy.world##.post-listing:has-text(@lemmynsfw.com)

@[email protected]’s ELI5 explanation:

lemmy.world## - only use this filter on this site

.post-listing - evaluate everything on the page with the class name post-listing

has-text(@lemmynsfw.com) - the text we want to filter. CASE SENSITIVE!

Similarly, if you want to filter entire instances out of the “list of communities” page, you would add:

your.lemmy.instance.com##tr:has-text(@theInstanceYouWantToBlock)

I believe the tr is table-responsive, which is the type of table displayed on the “list of communities” page. If there are other responsive tables on a different Lemmy page that I don’t know about, it may affect those. Also, if Lemmy’s website is updated, these filters may no longer work.

If someone knows of a better method of doing this, please chime in. But otherwise, enjoy!

Why YSK: some instances have many communities that are centered around topics people are not interested in, and instead of blocking all of those communities one by one, it is easier to just block the whole instance.

Edit: Note that this will remove posts if a blocked instance is listed ANYWHERE in the post body. I accidentally blocked my own post when I tested the lemmynsfw filter just now lol

Edit(s): Further clarification/typos

  • @TheKingBee
    link
    English
    311 months ago

    Exactly what I was looking for and the example is exactly what I wanted to do.

    Small problem, this blocks every mention of lemmynsfw, even this post.

    • @[email protected]
      link
      fedilink
      English
      111 months ago

      If you want you can look through the html and select the exact element you want.

      Right click on the channel name/link and select Inspect. This should open up the browser’s dev mode and the element should already be highlighted. Right click it and select Copy > CSS Selector. You can paste that into the UBlock filter replacing post-listing.

      The first element, div.post-listing:nth-child(17) is only going to check the nth(17th in this case) post on every page, so remove that nth-child() part. The rest of it should select the exact element you’re looking for.

      The upward(10) means instead of just hiding this element, go 10 levels up in the html document and hide that whole block.

      So in my case, it looks like this:

      vlemmy.net##div.post-listing > div:nth-child(2) > div:nth-child(1) > div:nth-child(3) > div:nth-child(1) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(1) > span:nth-child(2) > a:nth-child(2) > span:nth-child(2):has-text(@lemmynsfw.com):upward(10)

      You’ll have to change the domain at the beginning to your instance.

      image showing how to select html text for UBlock filter