// ==UserScript== // @name Twitter Sensitive Content Viewer // @namespace omfgmule@gmail.com // @version 1.1.1.1 // @description Simple script to automatically click "Show" on tweets hidden behind the sensitive content warning on Twitter. // @author omfgmule // @match *://twitter.com/* // @exclude *://twitter.com/settings/* // @downloadURL none // ==/UserScript== (function() { 'use strict'; //Supported languages, if you need languages added feel free to contact me at @omfgmule on twitter or post a comment on the greasefork page const supportedLanguages = { EN: "Show", JP: "表示", ES: "Mostrar" }; const supportedRemoveButtonLanguages = { EN: "Hide", JP: "非表示にする", ES: "Ocultar" }; window.addEventListener('load', function() { const revealSensitiveContent = () => { document.querySelectorAll('span.css-1qaijid.r-bcqeeo.r-qvutc0').forEach(span => { const foundSupportedLanguage = Object.values(supportedLanguages).includes(span.textContent); if(foundSupportedLanguage) { let clickedAlready = false; let target = span.parentNode; if(target && target.click && !clickedAlready) { target.click(); clickedAlready = true; } target = span.parentNode.parentNode if (target && target.click && !clickedAlready) { target.click(); } } }); }; const removeHideButton = () => { document.querySelectorAll('span.css-1qaijid.r-bcqeeo.r-qvutc0').forEach(span => { let foundSupportedRemoveButtonLanguage = Object.values(supportedRemoveButtonLanguages).includes(span.textContent); if(foundSupportedRemoveButtonLanguage) { let thirdParentNode = span.parentNode.parentNode.parentNode; if (thirdParentNode.className.includes('css-175oi2r r-sdzlij r-1phboty r-rs99b7 r-lrvibr')) { thirdParentNode.remove(); } } }); }; revealSensitiveContent(); removeHideButton(); setInterval(revealSensitiveContent, 100); setInterval(removeHideButton, 100); }); })();