Last active
April 22, 2023 22:51
-
-
Save ckarnell/8632685e240a017c74307e0ae9ad7e3a to your computer and use it in GitHub Desktop.
Remove twitter blue and blocked tweets from twitter on load and on scroll
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ==UserScript== | |
// @name Remove Verified and Blocked Accounts on Twitter Scroll | |
// @namespace remove-verified-blocked-accounts-on-twitter-scroll | |
// @version 1 | |
// @description Remove verified and blocked accounts when you finish scrolling down the Twitter feed. | |
// @match https://twitter.com/* | |
// @grant none | |
// ==/UserScript== | |
(function() { | |
'use strict'; | |
function removeElements() { | |
var verified_elements = document.querySelectorAll('svg[aria-label="Verified account"]'); | |
var blocked_elements = document.evaluate("//*[contains(text(), 'an account you blocked')]", document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null); | |
var elements_to_remove = new Set(); | |
verified_elements.forEach(function(element) { | |
var article_element = element.closest('article'); | |
if (article_element) { | |
elements_to_remove.add(article_element); | |
} | |
}); | |
for (var i = 0; i < blocked_elements.snapshotLength; i++) { | |
var element = blocked_elements.snapshotItem(i); | |
var article_element = element.closest('article'); | |
if (article_element) { | |
elements_to_remove.add(article_element); | |
} | |
} | |
elements_to_remove.forEach(function(element) { | |
if (element.parentElement.getAttribute('data-testid') != 'placementTracking') { | |
element.parentElement.removeChild(element); | |
} | |
}); | |
} | |
var scrolling = false; | |
var scrollTimeout = null; | |
addEventListener("load", (event) => removeElements()); | |
scrollTimeout = setTimeout(function() { | |
removeElements(); | |
}, 3500); | |
window.addEventListener('scroll', function() { | |
scrolling = true; | |
clearTimeout(scrollTimeout); | |
scrollTimeout = setTimeout(function() { | |
scrolling = false; | |
removeElements(); | |
}, 200); | |
}); | |
})(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment