How can I block an entire instance on kbin?

Maestro@kbin.social to /kbin meta@kbin.social – 10 points –

Can anyone tell me how I can block an entire instance on kbin? I don't speak German so I want to remove feddit.de from my feed. I found how to block a single magazine/community but not how to block an entire instance.

11

Next to each thread's post, you should see an instance specified in parentheses, such as (lemmygrad.ml). Click that item to list other threads from that host, as well as a sidebar box that says Domain. Click the "no smoking" type of button to suppress everything that domain produces. I think.

Verify it worked by going to your user's settings menu, click the blocked tab, then the Domains link.

I have yiffi.net blocked (the whole instance) and yet that shit still shows up on the bottom right of my page under "random posts." Any idea how to stop it from appearing there as well?

Almost exactly what I would have written!

I wish you didn't have to see a magazine you don't want to see to block it

I'm sorry I don't know the answer, but I would like to point out that there are also some English speaking communities on feddit.de (e.g. boardgames). I guess a better filter would be language based, although I don't know if the communities/magazines even have meta data with their language(s).

I think lemmy has language in account settings which presumably filters content based on it, but kbin doesn't (yet).

Kbin does have tags for the language of posts, and they are accurately represented in these German posts, but I can't find a way to filter them without just blocking the server!

As a quick fix, a user script:

// ==UserScript==
// @name         Kbin: delete articles in other languages
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  Auto-delete posts in languages you do not speak.
// @author       luphoria (https://kbin.social/u/trent)
// @match        https://kbin.social/
// @icon         https://www.google.com/s2/favicons?sz=64&domain=kbin.social
// @grant        none
// ==/UserScript==

(function() {
  'use strict';
  const allowedLangs = ["en", "es"]; // Edit this to all of the languages you can speak / want to see in your feed

  let deleteUnwantedPosts = () => {
    const postTags = document.getElementsByClassName("kbin-bg");

    for (let i = 0; i < postTags.length; i++) {
      let postTag = postTags[i];
      if (postTag && postTag.textContent && postTag.textContent !== "OC" && !allowedLangs.includes(postTag.textContent)) { // OC tags are the only elements (i know of) with the same class.
        // Delete element's parent's parent's parent
        if (postTag.parentElement.children[0].textContent) {
          console.log(`Removing post labeled \`${postTag.textContent}\`: "${postTag.parentElement.children[0].textContent}"`);
          postTag.parentElement.parentElement.parentElement.remove();
        }
      }
    }
  }
  deleteUnwantedPosts(); // on load

  // for continuous feeds
  let observeDOMChanges = () => {
    const observer = new MutationObserver(function(mutationsList) {
      deleteUnwantedPosts();
    });
    observer.observe(document.body, { childList: true, subtree: true });
  }
  observeDOMChanges();
})();