Recently, especially with feddit.de, there are a lot of posts in languages that are not English. This is great for adoption!, but unfortunately I have no idea what the posts are about because I don’t speak German. I couldn’t find a setting to hide posts in other languages either!

To make my feed better for myself, I wrote a simple user script which removes any posts that are tagged anything other than EN/ES (the two languages I can speak.

Update the script to your preferences (make sure to @match your instance), and load it up in TamperMonkey!

Here you go:

// ==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"]; // <-- Edit this to all of the languages you can speak / want to see in your feed. Format: ["lang", "lang", "lang"]

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

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

    Might be user error, but still seeing non-English articles (de, es). Script appears to be installed correctly.

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

      hmm

      • is it showing a red [1] in the extension list (to signify that it’s running) on the homepage?
      • what device & window size are you using?
      • marcf@kbin.social
        link
        fedilink
        arrow-up
        2
        ·
        edit-2
        1 year ago

        Wasn’t running! Added an * to the @match url and that seems to have fixed it. I default to /sub as my home, so perhaps that was the problem?

        Thanks for the script!

    • noughtnaut@kbin.social
      link
      fedilink
      arrow-up
      1
      ·
      edit-2
      1 year ago

      Edit: Disregard this comment; I see you’ve solved your problem elsehow.

      How did you modify your script?
      const allowedLangs = ["de", "es"]; // This should work
      or
      const allowedLangs = ["de, es"]; // This will not work

      Good luck friend.