Don't speak German? Here's a userscript for you

trent@kbin.social to /kbin meta@kbin.social – 29 points –

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

25

You are viewing a single comment

If you use Chrome, the world is your oyster at this point. Translation tools are getting amazing.

Text post, or title? Highlight, right click, translate. Done.

Oh no, but it's a meme/image/screenshot. Guess you're screwed, right? Gotta pull out your phone and use google lens, way too annoying, right? Wrong! Go to chrome://flags and enable "Translate text in images with Google Lens". Now you can right click anywhere to translate the page to English, and then just right-click any image and get a translated version.

Now go meme on some Germans. It is Wednesday, after all.

This is great, and true too, but I hate google man. Gonna wait to see when translation tools like this become FOSS. I think AI might get us there. In the meantime, LibreTranslate does good for translation and Tesseract works for OCR.