Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ==UserScript==
- // @name RG Tweet Video Remover
- // @namespace http://tampermonkey.net/
- // @version 1.0
- // @description Floating RG button activates/deactivates tweet_video post removal
- // @author you
- // @match *://twitter.com/*
- // @match *://x.com/*
- // @grant none
- // ==/UserScript==
- (function() {
- 'use strict';
- let isActive = false;
- let observer = null;
- function removeRelevantPosts() {
- const items = document.querySelectorAll('.timeline-item, article, [data-testid="tweet"]');
- items.forEach(function(item) {
- if (
- item.innerHTML.includes('video.twimg.com%2Ftweet_video%2F') ||
- item.innerHTML.includes('video.twimg.com/tweet_video/')
- ) {
- item.remove();
- }
- });
- }
- function setButtonActive(active) {
- if(active){
- removeRelevantPosts();
- observer = new MutationObserver(() => {
- removeRelevantPosts();
- });
- observer.observe(document.body, {childList:true, subtree:true});
- fabButton.style.background = isDarkMode() ? '#048848' : '#23be78';
- fabButton.style.color = '#fff';
- fabButton.title = 'RG Active: Hides tweet_video posts';
- } else {
- if(observer) observer.disconnect();
- observer = null;
- fabButton.style.background = isDarkMode() ? '#222' : '#fff';
- fabButton.style.color = isDarkMode() ? '#fff' : '#005940';
- fabButton.title = 'RG Inactive: Click to activate';
- }
- }
- function isDarkMode() {
- return window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;
- }
- // Create floating button
- let fabButton = document.createElement('button');
- fabButton.textContent = "RG ";
- fabButton.setAttribute('aria-label', 'Remove GIF posts');
- fabButton.title = 'RG Inactive: Click to activate';
- fabButton.style.position = 'fixed';
- fabButton.style.bottom = '24px';
- fabButton.style.left = '116px'; // ~2 places to right from far left; each "place" ~46px, adjust for your UI.
- fabButton.style.zIndex = '99999';
- fabButton.style.fontSize = '18px';
- fabButton.style.padding = '10px 18px';
- fabButton.style.borderRadius = '24px';
- fabButton.style.border = '1.5px solid #ccc';
- fabButton.style.boxShadow = '0 4px 24px rgba(0,0,0,0.11)';
- fabButton.style.fontWeight = 'bold';
- fabButton.style.cursor = 'pointer';
- fabButton.style.transition = 'background 0.2s,color 0.2s';
- fabButton.style.background = isDarkMode() ? '#222' : '#fff';
- fabButton.style.color = isDarkMode() ? '#fff' : '#005940';
- fabButton.style.userSelect = 'none';
- document.body.appendChild(fabButton);
- let style = document.createElement('style');
- style.textContent = `
- #__rg_fab_button:active {transform: scale(0.98);}
- `;
- document.head.appendChild(style);
- fabButton.addEventListener('click', function() {
- isActive = !isActive;
- setButtonActive(isActive);
- });
- // Persist state on reload
- window.addEventListener("pageshow",function(){
- setButtonActive(isActive);
- });
- // Optional: update button color on theme change
- window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', function() {
- setButtonActive(isActive);
- });
- })();
Advertisement
Add Comment
Please, Sign In to add comment