Twitter: view more replies and remove useless sections

View more replies and remove shit from twitter

目前为 2022-01-15 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name Twitter: view more replies and remove useless sections
  3. // @description View more replies and remove shit from twitter
  4. // @author MK
  5. // @namespace max44
  6. // @homepage https://greasyfork.org/en/users/309172-max44
  7. // @include https://twitter.com/*
  8. // @include https://mobile.twitter.com/*
  9. // @icon https://www.google.com/s2/favicons?domain=twitter.com
  10. // @version 1.6.3
  11. // @license MIT
  12. // @require https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js
  13. // @grant none
  14. // @run-at document-idle
  15. // ==/UserScript==
  16.  
  17. (function () {
  18. 'use strict';
  19.  
  20. const config = {childList: true, subtree: true};
  21.  
  22. /*setTimeout(function () {
  23. if (preview != null) {
  24. }
  25. }, 3000);*/
  26.  
  27. const rootCallback = function (mutationsList, observer) {
  28. //Show more
  29. $( "div[role='button'][tabindex='0'] > div > div > span:contains('Show more replies')" ).click(); //"Show more replies" button
  30. $( "div[role='button'][tabindex='0'] > div > span > span:contains('Show')" ).click(); //"Show additional replies, including those that may contain offensive content" button
  31.  
  32. //Hide useless sections
  33. $( "aside[aria-label='Who to follow']" ).parent().hide(); //At the newsfeed
  34. $( "div[style='-webkit-line-clamp: 3;'] > span:contains('Who to follow')" ).parent().parent().parent().parent().parent().hide().next().hide().next().hide().next().hide().next().hide().next().hide(); //At anybody's profile - hide header "Who to follow", then 3 suggestions, "Show more" and divider
  35. $( "div[aria-label='Timeline: Trending now']" ).parent().parent().parent().parent().hide(); //At the newsfeed
  36. $( "div[style='-webkit-line-clamp: 3;'] > span:contains('Trends for you')" ).parent().parent().parent().parent().parent().hide().next().hide().next().hide().next().hide().next().hide().next().hide().next().hide(); //At 'explore' page
  37. $( "div[style='-webkit-line-clamp: 3;'] > span:contains('Topics to follow')" ).parent().parent().parent().parent().parent().hide().next().hide().next().hide().next().hide(); //At anybody's profile
  38. $( "div[style='-webkit-line-clamp: 3;'] > span:contains('Discover new Lists')" ).parent().parent().parent().parent().parent().hide().next().hide().next().hide().next().hide().next().hide().next().hide(); //At the newsfeed
  39. $( "div[style='-webkit-line-clamp: 3;'] > span:contains('Expand your timeline with Topics')" ).parent().parent().parent().parent().parent().hide().next().hide().next().hide().next().hide().next().hide().next().hide(); //At the newsfeed
  40. $( "span[aria-label^='Recommended Topic:'] > span > span" ).parent().parent().parent().parent().parent().parent().parent().parent().parent().parent().parent().parent().parent().parent().parent().parent().parent().parent().parent().hide(); //At the newsfeed
  41. $( "div[aria-label='Open app']" ).parent().hide(); //At any tweet on mobile browser
  42.  
  43. //$( "article span:contains('Promoted')" ).parent().parent().parent().parent().parent().hide().next().hide().next().hide();
  44. //$( "span:contains('Promoted by')" ).parent().parent().parent().parent().hide().next().hide().next().hide();
  45. //$( "span:contains('Promoted Tweet')" ).parent().parent().parent().hide();
  46. //$( "span:contains('Promoted')" ).parent().parent().parent().parent().hide();
  47. //$( "div[aria-label='Set as not interested']" ).parent().parent().parent().parent().parent().parent().parent().hide();
  48. };
  49.  
  50. const rootNode = document.querySelector("#react-root");
  51. if (rootNode != null) {
  52. const rootObserver = new MutationObserver(rootCallback);
  53. rootObserver.observe(rootNode, config);
  54. }
  55.  
  56. })();