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.

  • elmicha@feddit.de
    link
    fedilink
    arrow-up
    5
    ·
    edit-2
    1 year ago

    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).

    • Kaldo@kbin.social
      link
      fedilink
      arrow-up
      1
      ·
      1 year ago

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

    • trent@kbin.social
      link
      fedilink
      arrow-up
      1
      ·
      1 year ago

      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();
      })();