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