ryanjj245

Hide Non Relevant Conversations for Twitter

Feb 26th, 2020
134
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2.  
  3.  first need to download Custom JavaScript for websites
  4.  
  5.  hide users in mentions when the conversation is no longer relevant to you
  6.  
  7. */
  8.  
  9.  
  10.  
  11. myHandle = "";
  12.  
  13. if(myAvatarElem = document.querySelector('a[aria-label*=Profile]')) {
  14.     if(myAvatarElem.getAttribute('href')) {
  15.         myHandle = myAvatarElem.getAttribute('href').replace(/\//g, '');
  16.     }
  17. }
  18.  
  19. function removeNonRelevantTweets() {
  20.     if(!myHandle) { return; }
  21.    
  22.     window.nonRelevantUsers = {};
  23.     allTweets = document.querySelectorAll('article[role=article]');
  24.    
  25.     for(removeTweetI = 0; removeTweetI < allTweets.length; removeTweetI++) {
  26.             tweetUserElem = allTweets[removeTweetI].querySelector("a[class*=dnmrzs]");
  27.             if(tweetUserElem) {
  28.                 tweetUserText = tweetUserElem.innerText;
  29.                 if(tweetUserMatch = tweetUserText.match(/@([^\s]+)(\s|$)/)) {
  30.                     tweetUser = tweetUserMatch[1];
  31.                     // I was not originator of tweet, add their tweet to non relevant list or increment if already there                   
  32.                     if(tweetUser != myHandle) {
  33.                         nonRelevantUsers[tweetUser] = (nonRelevantUsers[tweetUser] == undefined)? 1 : parseInt(nonRelevantUsers[tweetUser]) + 1;
  34.                         if(nonRelevantUsers[tweetUser] > 2) {
  35.                             allTweets[removeTweetI].style.opacity = '0';
  36.                         }
  37.                     } else {
  38.                         // every user that was in this tweet that I started, decrement their non relevant status
  39.                         usersInTweetElems = allTweets[removeTweetI].querySelectorAll('a[role*=link]');
  40.                         for(userInTweetI = 0; userInTweetI < usersInTweetElems.length; userInTweetI++) {
  41.                             userInTweetText = usersInTweetElems[userInTweetI].innerText;
  42.                             if(userInTweetText.indexOf('@') > -1) {
  43.                                 if(userInTweetMatch = userInTweetText.match(/@([^\s]+)(\s|$)/)) {
  44.                                     userInTweet = userInTweetMatch[1];
  45.                                     if(userInTweet != myHandle) {
  46.                                         nonRelevantUsers[userInTweet] = (nonRelevantUsers[userInTweet] == undefined)? -1 : parseInt(nonRelevantUsers[userInTweet]) - 1;
  47.                                     }
  48.                                 }
  49.                             }
  50.                         }
  51.                        
  52.                     }
  53.                 }
  54.             }
  55.     }
  56.       setTimeout(function() {
  57.             removeNonRelevantTweets();
  58.       }, 250); 
  59.    
  60. }
  61.  
  62. removeNonRelevantTweets();
RAW Paste Data