Facebook is the only social network I use for anything serious. I wish it was more like the forums from 20-15 years ago, but I digress. Lately my Facebook got filled with more and more Suggested for you nonsense. Previously I used the hide feature on those, and that partly worked for a while, but now it just leads to more and more fringe stuff appearing. Eventually I conjured up some energy to deal with it.
I do not trust random browser plugins, so I decided to look into writing it myself. Firefox makes that very easy. This small snippet made Facebook acceptable again.
//Stupid flag to only run removal after some time, and not on each observed update
var mut = false;
//Get rid of "Suggested for you", probably needs customization everytime FB adds more divs ;) , worked on 19 Mar 2023!
function removeShit() {
if(mut == true) {
for (const span of document.querySelectorAll("span")) {
if (span.textContent.includes("Suggested for you")) {
console.log("Hide all the nonsense")
//The hardest part of all this is counting all that nesting, what is going on here.
var pr = span.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement
if(pr.style.display != "none") {
pr.style.display = "none";
}
}
}
} else {
//console.log("No crap seen yet")
}
}
//Observe the entire doc
const targetNode = document
//Observe all the crap
const config = { attributes: true, childList: true, subtree: true };
// Execute on observe
const callback = (mutationList, observer) => {
for (const mutation of mutationList) {
if (mutation.type === "childList") {
mut=true
} else if (mutation.type === "attributes") {
mut=true
}
}
};
const observer = new MutationObserver(callback);
// Start observing
observer.observe(targetNode, config);
//Interval to check for site changes and remove stuff.
const intervalID = setInterval(removeShit, 100);
As always, use at your own peril.
Facebook will still spice it all up with the ineffable timeline ordering, and still eats all the datas.