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.

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