NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript==
// @name promotion free twitter
// @namespace twitter_goes_droopy
// @description hides promoted tweets
// @include https://twitter.com/*
// @version 1.0
// @run-at document-start
// @copyright 2020, ladroop (https://openuserjs.org/users/ladroop)
// @updateURL https://openuserjs.org/meta/ladroop/promotion_free_twitter.meta.js
// @downloadURL https://openuserjs.org/install/ladroop/promotion_free_twitter.user.js
// @license MIT
// @grant none
// ==/UserScript==
(function() {
'use strict';
var n=0;
var m=0;
var i=0;
var names=["Promoted","Uitgelicht","Gesponsert","Promocionado"];
var adds=[];
var adds2=[];
var foundname="";
var observer = new MutationObserver(cleanup);
var observerConfig = {subtree:true, childList:true};
var observenode=document.querySelector("body");
observer.observe(observenode, observerConfig);
function cleanup(){
adds=document.querySelectorAll("div[data-testid='placementTracking']"); // this can be add's
for (n=0;n<adds.length ; n++){
if (adds[n].style.display!="none"){// already hidden
adds2=adds[n].getElementsByTagName("span"); // get all span tags in possible add's
for (m=0;m<adds2.length ; m++){ // check all span tags for language dependend message
if (foundname==""){ // don't know yet what language
for (i=0;i<names.length ; i++){
if (adds2[m].innerHTML==names[i]){ // found an add
adds[n].style.display="none"; // hide it
foundname=names[i]; // now i also know what language
break; //stop search in languages
}
if (foundname!=""){// stop searching in spans tags if found
break;
}
}
}else{ // i know what language
if (adds2[m].innerHTML==foundname){ // found add
adds[n].style.display="none"; // hide it
break;// stop searching in span tags
}
}
}
}
}
}
})();