Twitter: view more replies and remove useless sections

View more replies and remove useless sections from twitter

当前为 2022-05-22 提交的版本,查看 最新版本

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name          Twitter: view more replies and remove useless sections
// @description   View more replies and remove useless sections from twitter
// @author        MK
// @namespace     max44
// @homepage      https://greasyfork.org/en/users/309172-max44
// @match         *://twitter.com/*
// @match         *://mobile.twitter.com/*
// @icon          https://www.google.com/s2/favicons?domain=twitter.com
// @version       1.7.6
// @license       MIT
// @require       https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js
// @grant         none
// @run-at        document-idle
// ==/UserScript==

(function () {
  'use strict';

  const config = {childList: true, subtree: true};

  /*setTimeout(function () {
    if (preview != null) {
    }
  }, 3000);*/

  const rootCallback = function (mutationsList, observer) {
    //==== ENGLISH INTERFACE
    //Show more
    $( "div[role='button'][tabindex='0'] > div > div > div > span:contains('Show replies')" ).click(); //"Show replies" button
    $( "div[role='button'][tabindex='0'] > div > div > span:contains('Show more replies')" ).click(); //"Show more replies" button
    $( "div[role='button'][tabindex='0'] > div > span > span:contains('Show')" ).click(); //"Show additional replies, including those that may contain offensive content" button

    //Hide useless sections
    $( "aside[aria-label='Who to follow']" ).parent().hide(); //"Who to follow" - at the newsfeed (right column)
    $( "div > div > h2 > div[style='-webkit-line-clamp: 3;'] > span:contains('Who to follow')" ).parent().parent().parent().parent().parent().parent().hide().next().hide().next().hide().next().hide().next().hide().next().hide(); //"Who to follow" - at anybody's profile
    $( "section[role='region'] > div[aria-label='Timeline: Trending now']" ).parent().parent().hide(); //"Trends for you" - at the newsfeed (right column)
    $( "div > h2 > div[style='-webkit-line-clamp: 3;'] > span:contains('Trends for you')" ).parent().parent().parent().parent().parent().parent().hide().next().hide().next().hide().next().hide().next().hide().next().hide().next().hide().next().hide().next().hide(); //"Trends for you" - at 'Explore' page
    $( "div > div > div > div > div > h1 > span:contains('You seem to be in a new location')" ).parent().parent().parent().parent().parent().parent().hide(); //"You seem to be in a new location" - at 'Explore' page
    $( "div > div > h2 > div[style='-webkit-line-clamp: 3;'] > span:contains('Topics to follow')" ).parent().parent().parent().parent().parent().parent().hide().next().hide().next().hide().next().hide(); //"Topics to follow" - at anybody's profile
    $( "div[style='-webkit-line-clamp: 3;'] > span:contains('Suggested Topics')" ).parent().parent().parent().parent().parent().parent().hide().next().hide().next().hide().next().hide(); //"Suggested topics" - at 'More > Topics' page
    $( "div[style='-webkit-line-clamp: 3;'] > span:contains('Discover new Lists')" ).parent().parent().parent().parent().parent().parent().hide().next().hide().next().hide().next().hide().next().hide().next().hide(); //"Discover new Lists" - at 'Lists' page
    //$( "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
    //$( "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
    $( "div[aria-label='Open app']" ).parent().hide(); //"Open app" - at any tweet on mobile browser
    $( "div[data-testid='inlinePrompt'] > h1[role='heading'] > span > span > span:contains('Concerned about your digital security?')" ).parent().parent().parent().parent().parent().parent().parent().hide().next().hide(); //"Digital security" - at the newsfeed
    $( "div[data-testid='inlinePrompt'] > h1[role='heading'] > span > span > span:contains('Get the app')" ).parent().parent().parent().parent().parent().parent().parent().hide().next().hide(); //"Get the app" - at the newsfeed

    //==== UKRAINIAN INTERFACE
    //Show more
    $( "div[role='button'][tabindex='0'] > div > div > div > span:contains('Показати відповіді')" ).click(); //"Show replies" button
    $( "div[role='button'][tabindex='0'] > div > div > span:contains('Показати більше відповідей')" ).click(); //"Show more replies" button
    $( "div[role='button'][tabindex='0'] > div > span > span:contains('Показати')" ).click(); //"Show additional replies, including those that may contain offensive content" button

    //Hide useless sections
    $( "aside[aria-label='Рекомендовані']" ).parent().hide(); //"Who to follow" - at the newsfeed (right column)
    $( "div > div > h2 > div[style='-webkit-line-clamp: 3;'] > span:contains('Рекомендації')" ).parent().parent().parent().parent().parent().parent().hide().next().hide().next().hide().next().hide().next().hide().next().hide(); //"Who to follow" - at anybody's profile
    $( "section[role='region'] > div[aria-label='Стрічка: Актуальне зараз']" ).parent().parent().hide(); //"Trends for you" - at the newsfeed (right column)
    $( "div > h2 > div[style='-webkit-line-clamp: 3;'] > span:contains('Тренди для вас')" ).parent().parent().parent().parent().parent().parent().hide().next().hide().next().hide().next().hide().next().hide().next().hide().next().hide().next().hide().next().hide(); //"Trends for you" - at 'Explore' page
    $( "div > div > div > div > div > h1 > span:contains('Схоже, ви перебуваєте в новому місці')" ).parent().parent().parent().parent().parent().parent().hide(); //"You seem to be in a new location" - at 'Explore' page
    //$( "div > div > h2 > div[style='-webkit-line-clamp: 3;'] > span:contains('Topics to follow')" ).parent().parent().parent().parent().parent().parent().hide().next().hide().next().hide().next().hide(); //"Topics to follow" - at anybody's profile
    //$( "div[style='-webkit-line-clamp: 3;'] > span:contains('Suggested Topics')" ).parent().parent().parent().parent().parent().parent().hide().next().hide().next().hide().next().hide(); //"Suggested topics" - at 'More > Topics' page
    //$( "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
    //$( "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
    //$( "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
    $( "div[aria-label='Відкрити додаток']" ).parent().hide(); //"Open app" - at any tweet on mobile browser
    $( "div[data-testid='inlinePrompt'] > h1[role='heading'] > span > span > span:contains('Є сумніви щодо цифрової безпеки?')" ).parent().parent().parent().parent().parent().parent().parent().hide().next().hide(); //"Digital security" - at the newsfeed
    //$( "div[data-testid='inlinePrompt'] > h1[role='heading'] > span > span > span:contains('Get the app')" ).parent().parent().parent().parent().parent().parent().parent().hide().next().hide(); //"Get the app" - at the newsfeed

    //==== CHINEESE SIMPLIFIED INTERFACE
    //Show more
    $( "div[role='button'][tabindex='0'] > div > div > div > span:contains('显示回复')" ).click(); //"Show replies" button
    $( "div[role='button'][tabindex='0'] > div > div > span:contains('显示更多回复')" ).click(); //"Show more replies" button
    $( "div[role='button'][tabindex='0'] > div > span > span:contains('显示')" ).click(); //"Show additional replies, including those that may contain offensive content" button

    //Hide useless sections
    $( "aside[aria-label='推荐关注']" ).parent().hide(); //"Who to follow" - at the newsfeed (right column)
    $( "div > div > h2 > div[style='-webkit-line-clamp: 3;'] > span:contains('推荐关注')" ).parent().parent().parent().parent().parent().parent().hide().next().hide().next().hide().next().hide().next().hide().next().hide(); //"Who to follow" - at anybody's profile
    $( "section[role='region'] > div[aria-label='Timeline: Trending now']" ).parent().parent().hide(); //"Trends for you" - at the newsfeed (right column)
    $( "div > h2 > div[style='-webkit-line-clamp: 3;'] > span:contains('你的趋势')" ).parent().parent().parent().parent().parent().parent().hide().next().hide().next().hide().next().hide().next().hide().next().hide().next().hide().next().hide().next().hide(); //"Trends for you" - at 'Explore' page
    $( "div > div > div > div > div > h1 > span:contains('你似乎到了一个新位置')" ).parent().parent().parent().parent().parent().parent().hide(); //"You seem to be in a new location" - at 'Explore' page
    //$( "div > div > h2 > div[style='-webkit-line-clamp: 3;'] > span:contains('Topics to follow')" ).parent().parent().parent().parent().parent().parent().hide().next().hide().next().hide().next().hide(); //"Topics to follow" - at anybody's profile
    //$( "div[style='-webkit-line-clamp: 3;'] > span:contains('Suggested Topics')" ).parent().parent().parent().parent().parent().parent().hide().next().hide().next().hide().next().hide(); //"Suggested topics" - at 'More > Topics' page
    //$( "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
    //$( "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
    //$( "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
    $( "div[aria-label='打开应用']" ).parent().hide(); //"Open app" - at any tweet on mobile browser
    //$( "div[data-testid='inlinePrompt'] > h1[role='heading'] > span > span > span:contains('Concerned about your digital security?')" ).parent().parent().parent().parent().parent().parent().parent().hide().next().hide(); //"Digital security" - at the newsfeed
    //$( "div[data-testid='inlinePrompt'] > h1[role='heading'] > span > span > span:contains('Get the app')" ).parent().parent().parent().parent().parent().parent().parent().hide().next().hide(); //"Get the app" - at the newsfeed

    //==== CHINEESE TRADITIONAL INTERFACE
    //Show more
    $( "div[role='button'][tabindex='0'] > div > div > div > span:contains('顯示回覆')" ).click(); //"Show replies" button
    $( "div[role='button'][tabindex='0'] > div > div > span:contains('顯示更多回覆')" ).click(); //"Show more replies" button
    $( "div[role='button'][tabindex='0'] > div > span > span:contains('顯示')" ).click(); //"Show additional replies, including those that may contain offensive content" button

    //Hide useless sections
    $( "aside[aria-label='跟隨誰']" ).parent().hide(); //"Who to follow" - at the newsfeed (right column)
    $( "div > div > h2 > div[style='-webkit-line-clamp: 3;'] > span:contains('跟隨誰')" ).parent().parent().parent().parent().parent().parent().hide().next().hide().next().hide().next().hide().next().hide().next().hide(); //"Who to follow" - at anybody's profile
    $( "section[role='region'] > div[aria-label='時間軸:流行趨勢']" ).parent().parent().hide(); //"Trends for you" - at the newsfeed (right column)
    $( "div > h2 > div[style='-webkit-line-clamp: 3;'] > span:contains('你的流行趨勢')" ).parent().parent().parent().parent().parent().parent().hide().next().hide().next().hide().next().hide().next().hide().next().hide().next().hide().next().hide().next().hide(); //"Trends for you" - at 'Explore' page
    $( "div > div > div > div > div > h1 > span:contains('你似乎位於新的位置')" ).parent().parent().parent().parent().parent().parent().hide(); //"You seem to be in a new location" - at 'Explore' page
    //$( "div > div > h2 > div[style='-webkit-line-clamp: 3;'] > span:contains('Topics to follow')" ).parent().parent().parent().parent().parent().parent().hide().next().hide().next().hide().next().hide(); //"Topics to follow" - at anybody's profile
    //$( "div[style='-webkit-line-clamp: 3;'] > span:contains('Suggested Topics')" ).parent().parent().parent().parent().parent().parent().hide().next().hide().next().hide().next().hide(); //"Suggested topics" - at 'More > Topics' page
    //$( "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
    //$( "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
    //$( "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
    $( "div[aria-label='開啟應用程式']" ).parent().hide(); //"Open app" - at any tweet on mobile browser
    //$( "div[data-testid='inlinePrompt'] > h1[role='heading'] > span > span > span:contains('Concerned about your digital security?')" ).parent().parent().parent().parent().parent().parent().parent().hide().next().hide(); //"Digital security" - at the newsfeed
    //$( "div[data-testid='inlinePrompt'] > h1[role='heading'] > span > span > span:contains('Get the app')" ).parent().parent().parent().parent().parent().parent().parent().hide().next().hide(); //"Get the app" - at the newsfeed

    //==== SPANISH INTERFACE
    //Show more
    $( "div[role='button'][tabindex='0'] > div > div > div > span:contains('Mostrar respuestas')" ).click(); //"Show replies" button
    $( "div[role='button'][tabindex='0'] > div > div > span:contains('Mostrar más respuestas')" ).click(); //"Show more replies" button
    $( "div[role='button'][tabindex='0'] > div > span > span:contains('Mostrar')" ).click(); //"Show additional replies, including those that may contain offensive content" button

    //Hide useless sections
    $( "aside[aria-label='A quién seguir']" ).parent().hide(); //"Who to follow" - at the newsfeed (right column)
    $( "div > div > h2 > div[style='-webkit-line-clamp: 3;'] > span:contains('A quién seguir')" ).parent().parent().parent().parent().parent().parent().hide().next().hide().next().hide().next().hide().next().hide().next().hide(); //"Who to follow" - at anybody's profile
    $( "section[role='region'] > div[aria-label='Cronología: Tendencias del momento']" ).parent().parent().hide(); //"Trends for you" - at the newsfeed (right column)
    $( "div > h2 > div[style='-webkit-line-clamp: 3;'] > span:contains('Tendencias para ti')" ).parent().parent().parent().parent().parent().parent().hide().next().hide().next().hide().next().hide().next().hide().next().hide().next().hide().next().hide().next().hide(); //"Trends for you" - at 'Explore' page
    $( "div > div > div > div > div > h1 > span:contains('Parece que estás en una nueva ubicación')" ).parent().parent().parent().parent().parent().parent().hide(); //"You seem to be in a new location" - at 'Explore' page
    $( "div > div > h2 > div[style='-webkit-line-clamp: 3;'] > span:contains('Temas para seguir')" ).parent().parent().parent().parent().parent().parent().hide().next().hide().next().hide().next().hide(); //"Topics to follow" - at anybody's profile
    $( "div[style='-webkit-line-clamp: 3;'] > span:contains('Temas sugeridos')" ).parent().parent().parent().parent().parent().parent().hide().next().hide().next().hide().next().hide(); //"Suggested topics" - at 'More > Topics' page
    $( "div[style='-webkit-line-clamp: 3;'] > span:contains('Descubra nuevas Listas')" ).parent().parent().parent().parent().parent().parent().hide().next().hide().next().hide().next().hide().next().hide().next().hide(); //"Discover new Lists" - at 'Lists' page
    //$( "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
    //$( "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
    $( "div[aria-label='Abrir aplicación']" ).parent().hide(); //"Open app" - at any tweet on mobile browser
    //$( "div[data-testid='inlinePrompt'] > h1[role='heading'] > span > span > span:contains('Concerned about your digital security?')" ).parent().parent().parent().parent().parent().parent().parent().hide().next().hide(); //"Digital security" - at the newsfeed
    //$( "div[data-testid='inlinePrompt'] > h1[role='heading'] > span > span > span:contains('Get the app')" ).parent().parent().parent().parent().parent().parent().parent().hide().next().hide(); //"Get the app" - at the newsfeed

};

  const rootNode = document.querySelector("#react-root");
  if (rootNode != null) {
    const rootObserver = new MutationObserver(rootCallback);
    rootObserver.observe(rootNode, config);
  }

})();