Greasy Fork

Greasy Fork is available in English.

Twitter Sensitive Content Viewer

Simple script to automatically click "Show" on tweets hidden behind the sensitive content warning on Twitter.

目前为 2024-04-09 提交的版本。查看 最新版本

// ==UserScript==
// @name         Twitter Sensitive Content Viewer
// @namespace    [email protected]
// @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/*
// ==/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);
    });
})();