// ==UserScript== // @name X Repost and Reply Remover (Enhanced) // @namespace https://x.com/ // @version 2.6 // @description Hide reposts and replies on X.com timeline with advanced techniques // @author // @match https://twitter.com/* // @match https://x.com/* // @grant none // @license MIT // @downloadURL none // ==/UserScript== window.addEventListener('scroll', () => { // Hide based on scroll event hideRepliesAndReposts(); }); function hideRepliesAndReposts() { requestAnimationFrame(() => { var tweets = document.querySelectorAll("article"); tweets.forEach(tweet => { var labels = tweet.querySelectorAll("div[aria-label]"); labels.forEach(label => { // Check for labels in multiple languages const languages = ["Reposted", "Replying to", "Retweeted", "Répondu", "Reshared", "Antwort", "リツイート"]; if (languages.some(lang => label.ariaLabel.includes(lang))) { tweet.style.display = 'none'; } }); }); }); } // Apply CSS-based instant hiding const style = document.createElement('style'); style.textContent = ` [aria-label*="Reposted"], [aria-label*="Replying to"] { display: none !important; } `; document.head.appendChild(style); // Observe dynamic content loading const observer = new MutationObserver(() => { hideRepliesAndReposts(); }); observer.observe(document.body, { childList: true, subtree: true });