Guest User

Untitled

a guest
Jun 17th, 2025
11
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ==UserScript==
  2. // @name         RG Tweet Video Remover
  3. // @namespace    http://tampermonkey.net/
  4. // @version      1.0
  5. // @description  Floating RG button activates/deactivates tweet_video post removal
  6. // @author       you
  7. // @match        *://twitter.com/*
  8. // @match        *://x.com/*
  9. // @grant        none
  10. // ==/UserScript==
  11.  
  12. (function() {
  13.     'use strict';
  14.  
  15.     let isActive = false;
  16.     let observer = null;
  17.  
  18.     function removeRelevantPosts() {
  19.         const items = document.querySelectorAll('.timeline-item, article, [data-testid="tweet"]');
  20.         items.forEach(function(item) {
  21.             if (
  22.                 item.innerHTML.includes('video.twimg.com%2Ftweet_video%2F') ||
  23.                 item.innerHTML.includes('video.twimg.com/tweet_video/')
  24.             ) {
  25.                 item.remove();
  26.             }
  27.         });
  28.     }
  29.  
  30.     function setButtonActive(active) {
  31.         if(active){
  32.             removeRelevantPosts();
  33.             observer = new MutationObserver(() => {
  34.                 removeRelevantPosts();
  35.             });
  36.             observer.observe(document.body, {childList:true, subtree:true});
  37.             fabButton.style.background = isDarkMode() ? '#048848' : '#23be78';
  38.             fabButton.style.color = '#fff';
  39.             fabButton.title = 'RG Active: Hides tweet_video posts';
  40.         } else {
  41.             if(observer) observer.disconnect();
  42.             observer = null;
  43.             fabButton.style.background = isDarkMode() ? '#222' : '#fff';
  44.             fabButton.style.color = isDarkMode() ? '#fff' : '#005940';
  45.             fabButton.title = 'RG Inactive: Click to activate';
  46.         }
  47.     }
  48.  
  49.     function isDarkMode() {
  50.         return window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;
  51.     }
  52.  
  53.     // Create floating button
  54.     let fabButton = document.createElement('button');
  55.     fabButton.textContent = "RG ";
  56.     fabButton.setAttribute('aria-label', 'Remove GIF posts');
  57.     fabButton.title = 'RG Inactive: Click to activate';
  58.     fabButton.style.position = 'fixed';
  59.     fabButton.style.bottom = '24px';
  60.     fabButton.style.left = '116px'; // ~2 places to right from far left; each "place" ~46px, adjust for your UI.
  61.     fabButton.style.zIndex = '99999';
  62.     fabButton.style.fontSize = '18px';
  63.     fabButton.style.padding = '10px 18px';
  64.     fabButton.style.borderRadius = '24px';
  65.     fabButton.style.border = '1.5px solid #ccc';
  66.     fabButton.style.boxShadow = '0 4px 24px rgba(0,0,0,0.11)';
  67.     fabButton.style.fontWeight = 'bold';
  68.     fabButton.style.cursor = 'pointer';
  69.     fabButton.style.transition = 'background 0.2s,color 0.2s';
  70.     fabButton.style.background = isDarkMode() ? '#222' : '#fff';
  71.     fabButton.style.color = isDarkMode() ? '#fff' : '#005940';
  72.     fabButton.style.userSelect = 'none';
  73.  
  74.     document.body.appendChild(fabButton);
  75.  
  76.     let style = document.createElement('style');
  77.     style.textContent = `
  78.     #__rg_fab_button:active {transform: scale(0.98);}
  79.     `;
  80.     document.head.appendChild(style);
  81.  
  82.     fabButton.addEventListener('click', function() {
  83.         isActive = !isActive;
  84.         setButtonActive(isActive);
  85.     });
  86.  
  87.     // Persist state on reload
  88.     window.addEventListener("pageshow",function(){
  89.         setButtonActive(isActive);
  90.     });
  91.  
  92.     // Optional: update button color on theme change
  93.     window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', function() {
  94.         setButtonActive(isActive);
  95.     });
  96. })();
  97.  
Advertisement
Add Comment
Please, Sign In to add comment