Twitter: view more replies and remove useless sections

View more replies and remove useless sections from twitter

当前为 2022-10-14 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name Twitter: view more replies and remove useless sections
  3. // @description View more replies and remove useless sections from twitter
  4. // @author MK
  5. // @namespace max44
  6. // @homepage https://greasyfork.org/en/users/309172-max44
  7. // @match *://twitter.com/*
  8. // @match *://mobile.twitter.com/*
  9. // @icon https://www.google.com/s2/favicons?domain=twitter.com
  10. // @version 1.7.15
  11. // @license MIT
  12. // @require https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js
  13. // @grant none
  14. // @run-at document-idle
  15. // ==/UserScript==
  16.  
  17. (function () {
  18. 'use strict';
  19.  
  20. //Remove filter from sensitive content
  21. var css = `
  22. /*No filter for sensitive content*/
  23. .r-yfv4eo {
  24. filter: none !important;
  25. }
  26. `;
  27. var node = document.createElement('style');
  28. node.type = 'text/css';
  29. node.appendChild(document.createTextNode(css));
  30. document.documentElement.appendChild(node);
  31.  
  32. const config = {childList: true, subtree: true};
  33.  
  34. const rootCallback = function (mutationsList, observer) {
  35. // setInterval(function() { //Check page content constantly
  36. //==== ANY INTERFACE
  37. $( "div[data-testid='cellInnerDiv'] > div > div > div > div[data-testid='inlinePrompt']" ).parent().parent().parent().parent().hide(); //Inline prompts - at the newsfeed
  38. $( "article div[role='button'][tabindex='0'][style^='backdrop-filter: blur']" ).parent().parent().hide(); //Remove sensitive content warning
  39.  
  40. //==== ENGLISH INTERFACE
  41. //Show more
  42. $( "div[role='button'][tabindex='0'] > div > div > div > span:contains('Show replies')" ).click(); //"Show replies" button
  43. $( "div[role='button'][tabindex='0'] > div > div > span:contains('Show more replies')" ).click(); //"Show more replies" button
  44. $( "div[role='button'][tabindex='0']:not([style^='backdrop-filter: blur']) > div > span > span:contains('Show')" ).click(); //"Show additional replies, including those that may contain offensive content" button
  45.  
  46. //Hide useless sections
  47. $( "aside[aria-label='Who to follow']" ).parent().hide(); //"Who to follow" - at the newsfeed (right column)
  48. $( "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
  49. $( "section[role='region'] > div[aria-label='Timeline: Trending now']" ).parent().parent().hide(); //"Trends for you" - at the newsfeed (right column)
  50. $( "div > div > h2 > div[style='-webkit-line-clamp: 3;'] > span:contains('What's happening')" ).parent().parent().parent().parent().parent().parent().parent().parent().parent().parent().hide(); //"What's happening" - at the newsfeed (right column)
  51. $( "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
  52. $( "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
  53. $( "div > div > h2 > div[style='-webkit-line-clamp: 3;'] > span:contains('Topic to follow')" ).parent().parent().parent().parent().parent().parent().hide().next().hide().next().hide().next().hide(); //"Topics to follow" - at anybody's profile
  54. $( "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
  55. $( "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
  56. $( "div[style='-webkit-line-clamp: 3;'] > span:contains('Expand your timeline with Topics')" ).parent().parent().parent().parent().parent().parent().hide().next().hide().next().hide().next().hide(); //"Expand your timeline with Topics" - at the newsfeed
  57. //$( "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
  58. $( "div[aria-label='Open app']" ).parent().hide(); //"Open app" - at any tweet on mobile browser
  59. $( "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
  60. $( "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
  61. // $( "article span:contains('Promoted')" ).parent().parent().parent().parent().parent().hide().next().hide().next().hide(); //"Promoted" - at ?, active for some regions only
  62. // $( "span:contains('Promoted by')" ).parent().parent().parent().parent().hide().next().hide().next().hide(); //"Promoted by" - at ?, active for some regions only
  63. $( "div[style='-webkit-line-clamp: 3;'] > span:contains('Promoted Tweet')" ).parent().parent().parent().parent().parent().parent().parent().hide(); //"Promoted Tweet" - at anybody's profile, active for some regions only
  64. $( "div[data-testid='placementTracking'] > div > article > div > div > div > div > div > div > div > div > span:contains('Promoted')" ).parent().parent().parent().parent().parent().parent().parent().parent().parent().parent().parent().parent().parent().parent().hide(); //"Promoted" - at the newsfeed, active for some regions only
  65. // $( "div[aria-label='Set as not interested']" ).parent().parent().parent().parent().parent().parent().parent().hide(); //"Set as non-interested" - at ?, active for some regions only
  66.  
  67. //==== UKRAINIAN INTERFACE
  68. //Show more
  69. $( "div[role='button'][tabindex='0'] > div > div > div > span:contains('Показати відповіді')" ).click(); //"Show replies" button
  70. $( "div[role='button'][tabindex='0'] > div > div > span:contains('Показати більше відповідей')" ).click(); //"Show more replies" button
  71. $( "div[role='button'][tabindex='0']:not([style^='backdrop-filter: blur']) > div > span > span:contains('Показати')" ).click(); //"Show additional replies, including those that may contain offensive content" button
  72.  
  73. //Hide useless sections
  74. $( "aside[aria-label='Рекомендовані']" ).parent().hide(); //"Who to follow" - at the newsfeed (right column)
  75. $( "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
  76. $( "section[role='region'] > div[aria-label='Стрічка: Актуальне зараз']" ).parent().parent().hide(); //"Trends for you" - at the newsfeed (right column)
  77. //$( "div > div > h2 > div[style='-webkit-line-clamp: 3;'] > span:contains('What's happening')" ).parent().parent().parent().parent().parent().parent().parent().parent().parent().parent().hide(); //"What's happening" - at the newsfeed (right column)
  78. $( "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
  79. $( "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
  80. //$( "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
  81. //$( "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
  82. //$( "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
  83. //$( "div[style='-webkit-line-clamp: 3;'] > span:contains('Expand your timeline with Topics')" ).parent().parent().parent().parent().parent().parent().hide().next().hide().next().hide().next().hide(); //"Expand your timeline with Topics" - at the newsfeed
  84. //$( "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
  85. $( "div[aria-label='Відкрити додаток']" ).parent().hide(); //"Open app" - at any tweet on mobile browser
  86. $( "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
  87. //$( "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
  88. $( "div[style='-webkit-line-clamp: 3;'] > span:contains('Рекламований твіт')" ).parent().parent().parent().parent().parent().parent().parent().hide(); //"Promoted Tweet" - at anybody's profile, active for some regions only
  89. $( "div[data-testid='placementTracking'] > div > article > div > div > div > div > div > div > div > div > span:contains('Реклама')" ).parent().parent().parent().parent().parent().parent().parent().parent().parent().parent().parent().parent().parent().parent().hide(); //"Promoted" - at the newsfeed, active for some regions only
  90.  
  91. //==== CHINEESE SIMPLIFIED INTERFACE
  92. //Show more
  93. $( "div[role='button'][tabindex='0'] > div > div > div > span:contains('显示回复')" ).click(); //"Show replies" button
  94. $( "div[role='button'][tabindex='0'] > div > div > span:contains('显示更多回复')" ).click(); //"Show more replies" button
  95. $( "div[role='button'][tabindex='0']:not([style^='backdrop-filter: blur']) > div > span > span:contains('显示')" ).click(); //"Show additional replies, including those that may contain offensive content" button
  96.  
  97. //Hide useless sections
  98. $( "aside[aria-label='推荐关注']" ).parent().hide(); //"Who to follow" - at the newsfeed (right column)
  99. $( "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
  100. $( "section[role='region'] > div[aria-label='时间线:当前趋势']" ).parent().parent().hide(); //"Trends for you" - at the newsfeed (right column)
  101. //$( "div > div > h2 > div[style='-webkit-line-clamp: 3;'] > span:contains('What's happening')" ).parent().parent().parent().parent().parent().parent().parent().parent().parent().parent().hide(); //"What's happening" - at the newsfeed (right column)
  102. $( "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
  103. $( "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
  104. $( "div > div > h2 > div[style='-webkit-line-clamp: 3;'] > span:contains('要关注的话题')" ).parent().parent().parent().parent().parent().parent().hide().next().hide().next().hide().next().hide(); //"Topics to follow" - at anybody's profile
  105. //$( "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
  106. //$( "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
  107. //$( "div[style='-webkit-line-clamp: 3;'] > span:contains('Expand your timeline with Topics')" ).parent().parent().parent().parent().parent().parent().hide().next().hide().next().hide().next().hide(); //"Expand your timeline with Topics" - at the newsfeed
  108. //$( "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
  109. $( "div[aria-label='打开应用']" ).parent().hide(); //"Open app" - at any tweet on mobile browser
  110. //$( "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
  111. //$( "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
  112. $( "div[style='-webkit-line-clamp: 3;'] > span:contains('推广推文')" ).parent().parent().parent().parent().parent().parent().parent().hide(); //"Promoted Tweet" - at anybody's profile, active for some regions only
  113. $( "div[data-testid='placementTracking'] > div > article > div > div > div > div > div > div > div > div > span:contains('推荐')" ).parent().parent().parent().parent().parent().parent().parent().parent().parent().parent().parent().parent().parent().parent().hide(); //"Promoted" - at the newsfeed, active for some regions only
  114.  
  115. //==== CHINEESE TRADITIONAL INTERFACE
  116. //Show more
  117. $( "div[role='button'][tabindex='0'] > div > div > div > span:contains('顯示回覆')" ).click(); //"Show replies" button
  118. $( "div[role='button'][tabindex='0'] > div > div > span:contains('顯示更多回覆')" ).click(); //"Show more replies" button
  119. $( "div[role='button'][tabindex='0']:not([style^='backdrop-filter: blur']) > div > span > span:contains('顯示')" ).click(); //"Show additional replies, including those that may contain offensive content" button
  120.  
  121. //Hide useless sections
  122. $( "aside[aria-label='跟隨誰']" ).parent().hide(); //"Who to follow" - at the newsfeed (right column)
  123. $( "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
  124. $( "section[role='region'] > div[aria-label='時間軸:流行趨勢']" ).parent().parent().hide(); //"Trends for you" - at the newsfeed (right column)
  125. //$( "div > div > h2 > div[style='-webkit-line-clamp: 3;'] > span:contains('What's happening')" ).parent().parent().parent().parent().parent().parent().parent().parent().parent().parent().hide(); //"What's happening" - at the newsfeed (right column)
  126. $( "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
  127. $( "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
  128. $( "div > div > h2 > div[style='-webkit-line-clamp: 3;'] > span:contains('可跟隨的主題')" ).parent().parent().parent().parent().parent().parent().hide().next().hide().next().hide().next().hide(); //"Topics to follow" - at anybody's profile
  129. //$( "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
  130. //$( "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
  131. //$( "div[style='-webkit-line-clamp: 3;'] > span:contains('Expand your timeline with Topics')" ).parent().parent().parent().parent().parent().parent().hide().next().hide().next().hide().next().hide(); //"Expand your timeline with Topics" - at the newsfeed
  132. //$( "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
  133. $( "div[aria-label='開啟應用程式']" ).parent().hide(); //"Open app" - at any tweet on mobile browser
  134. //$( "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
  135. //$( "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
  136. $( "div[style='-webkit-line-clamp: 3;'] > span:contains('推廣推文')" ).parent().parent().parent().parent().parent().parent().parent().hide(); //"Promoted Tweet" - at anybody's profile, active for some regions only
  137. $( "div[data-testid='placementTracking'] > div > article > div > div > div > div > div > div > div > div > span:contains('推廣')" ).parent().parent().parent().parent().parent().parent().parent().parent().parent().parent().parent().parent().parent().parent().hide(); //"Promoted" - at the newsfeed, active for some regions only
  138.  
  139. //==== SPANISH INTERFACE
  140. //Show more
  141. $( "div[role='button'][tabindex='0'] > div > div > div > span:contains('Mostrar respuestas')" ).click(); //"Show replies" button
  142. $( "div[role='button'][tabindex='0'] > div > div > span:contains('Mostrar más respuestas')" ).click(); //"Show more replies" button
  143. $( "div[role='button'][tabindex='0']:not([style^='backdrop-filter: blur']) > div > span > span:contains('Mostrar')" ).click(); //"Show additional replies, including those that may contain offensive content" button
  144.  
  145. //Hide useless sections
  146. $( "aside[aria-label='A quién seguir']" ).parent().hide(); //"Who to follow" - at the newsfeed (right column)
  147. $( "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
  148. $( "section[role='region'] > div[aria-label='Cronología: Tendencias del momento']" ).parent().parent().hide(); //"Trends for you" - at the newsfeed (right column)
  149. $( "div > div > h2 > div[style='-webkit-line-clamp: 3;'] > span:contains('Qué está pasando')" ).parent().parent().parent().parent().parent().parent().parent().parent().parent().parent().hide(); //"What's happening" - at the newsfeed (right column)
  150. $( "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
  151. $( "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
  152. $( "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
  153. $( "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
  154. $( "div[style='-webkit-line-clamp: 3;'] > span:contains('Descubre Listas nuevas')" ).parent().parent().parent().parent().parent().parent().hide().next().hide().next().hide().next().hide().next().hide().next().hide(); //"Discover new Lists" - at 'Lists' page
  155. $( "div[style='-webkit-line-clamp: 3;'] > span:contains('Amplía tu cronología con Temas')" ).parent().parent().parent().parent().parent().hide().next().hide().next().hide().next().hide().next().hide().next().hide(); //At the newsfeed
  156. //$( "div[style='-webkit-line-clamp: 3;'] > span:contains('Amplía tu cronología con Temas')" ).parent().parent().parent().parent().parent().parent().hide().next().hide().next().hide().next().hide(); //"Expand your timeline with Topics" - at the newsfeed
  157. //$( "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
  158. $( "div[aria-label='Abrir aplicación']" ).parent().hide(); //"Open app" - at any tweet on mobile browser
  159. //$( "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
  160. //$( "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
  161. $( "article span:contains('Promocionado')" ).parent().parent().parent().parent().parent().hide().next().hide().next().hide(); //"Promoted" - at ?, active for some regions only
  162. //$( "span:contains('Promoted by')" ).parent().parent().parent().parent().hide().next().hide().next().hide(); //"Promoted by" - at ?, active for some regions only
  163. //$( "span:contains('Tweet promocionado')" ).parent().parent().parent().hide(); //"Promoted Tweet" - at ?, active for some regions only
  164. $( "div[style='-webkit-line-clamp: 3;'] > span:contains('Tweet promocionado')" ).parent().parent().parent().parent().parent().parent().parent().hide(); //"Promoted Tweet" - at anybody's profile, active for some regions only
  165. $( "span:contains('Promocionado')" ).parent().parent().parent().parent().hide(); //"Promoted" - at anybody's profile, active for some regions only
  166. //$( "div[aria-label='Set as not interested']" ).parent().parent().parent().parent().parent().parent().parent().hide(); //"Set as non-interested" - at ?, active for some regions only
  167.  
  168. //==== FRENCH INTERFACE
  169. //Show more
  170. $( "div[role='button'][tabindex='0'] > div > div > div > span:contains('Voir les réponses')" ).click(); //"Show replies" button
  171. $( "div[role='button'][tabindex='0'] > div > div > span:contains('Voir plus de réponses')" ).click(); //"Show more replies" button
  172. $( "div[role='button'][tabindex='0']:not([style^='backdrop-filter: blur']) > div > span > span:contains('Voir')" ).click(); //"Show additional replies, including those that may contain offensive content" button
  173.  
  174. //Hide useless sections
  175. $( "aside[aria-label='Suggestions']" ).parent().hide(); //"Who to follow" - at the newsfeed (right column)
  176. $( "div > div > h2 > div[style='-webkit-line-clamp: 3;'] > span:contains('Qui suivre')" ).parent().parent().parent().parent().parent().parent().hide().next().hide().next().hide().next().hide().next().hide().next().hide(); //"Who to follow" - at anybody's profile
  177. $( "section[role='region'] > div[aria-label='Fil d\'actualités : Tendance actuellement']" ).parent().parent().hide(); //"Trends for you" - at the newsfeed (right column)
  178. // $( "div > div > h2 > div[style='-webkit-line-clamp: 3;'] > span:contains('What's happening')" ).parent().parent().parent().parent().parent().parent().parent().parent().parent().parent().hide(); //"What's happening" - at the newsfeed (right column)
  179. $( "div > h2 > div[style='-webkit-line-clamp: 3;'] > span:contains('Tendances pour vous')" ).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
  180. $( "div > div > div > div > div > h1 > span:contains('Vous semblez vous trouver dans un nouveau lieu')" ).parent().parent().parent().parent().parent().parent().hide(); //"You seem to be in a new location" - at 'Explore' page
  181. $( "div > div > h2 > div[style='-webkit-line-clamp: 3;'] > span:contains('Sujets à suivre')" ).parent().parent().parent().parent().parent().parent().hide().next().hide().next().hide().next().hide(); //"Topics to follow" - at anybody's profile
  182. $( "div[style='-webkit-line-clamp: 3;'] > span:contains('Sujets suggérés')" ).parent().parent().parent().parent().parent().parent().hide().next().hide().next().hide().next().hide(); //"Suggested topics" - at 'More > Topics' page
  183. // $( "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
  184. // $( "div[style='-webkit-line-clamp: 3;'] > span:contains('Expand your timeline with Topics')" ).parent().parent().parent().parent().parent().parent().hide().next().hide().next().hide().next().hide(); //"Expand your timeline with Topics" - at the newsfeed
  185. //$( "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
  186. $( "div[aria-label='Ouvrir l\'application']" ).parent().hide(); //"Open app" - at any tweet on mobile browser
  187. // $( "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
  188. // $( "div[data-testid='inlinePrompt'] > h1[role='heading'] > span > span > span:contains('Ouvrir l\'application')" ).parent().parent().parent().parent().parent().parent().parent().hide().next().hide(); //"Get the app" - at the newsfeed
  189. // $( "article span:contains('Promoted')" ).parent().parent().parent().parent().parent().hide().next().hide().next().hide(); //"Promoted" - at ?, active for some regions only
  190. // $( "span:contains('Promoted by')" ).parent().parent().parent().parent().hide().next().hide().next().hide(); //"Promoted by" - at ?, active for some regions only
  191. // $( "div[style='-webkit-line-clamp: 3;'] > span:contains('Promoted Tweet')" ).parent().parent().parent().parent().parent().parent().parent().hide(); //"Promoted Tweet" - at anybody's profile, active for some regions only
  192. // $( "div[data-testid='placementTracking'] > div > article > div > div > div > div > div > div > div > div > span:contains('Promoted')" ).parent().parent().parent().parent().parent().parent().parent().parent().parent().parent().parent().parent().parent().parent().hide(); //"Promoted" - at the newsfeed, active for some regions only
  193. // $( "div[aria-label='Set as not interested']" ).parent().parent().parent().parent().parent().parent().parent().hide(); //"Set as non-interested" - at ?, active for some regions only
  194.  
  195. //==== JAPANESE INTERFACE
  196. //Show more
  197. $( "div[role='button'][tabindex='0'] > div > div > div > span:contains('返信を表示')" ).click(); //"Show replies" button
  198. $( "div[role='button'][tabindex='0'] > div > div > span:contains('返信をさらに表示')" ).click(); //"Show more replies" button
  199. $( "div[role='button'][tabindex='0']:not([style^='backdrop-filter: blur']) > div > span > span:contains('表示')" ).click(); //"Show additional replies, including those that may contain offensive content" button
  200.  
  201. //Hide useless sections
  202. $( "aside[aria-label='おすすめユーザー']" ).parent().hide(); //"Who to follow" - at the newsfeed (right column)
  203. $( "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
  204. $( "section[role='region'] > div[aria-label='タイムライン: トレンド']" ).parent().parent().hide(); //"Trends for you" - at the newsfeed (right column)
  205. $( "div > div > h2 > div[style='-webkit-line-clamp: 3;'] > span:contains('いまどうしてる?')" ).parent().parent().parent().parent().parent().parent().parent().parent().parent().parent().hide(); //"What's happening" - at the newsfeed (right column)
  206. // $( "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
  207. // $( "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
  208. $( "div > div > h2 > div[style='-webkit-line-clamp: 3;'] > span:contains('おすすめトピック')" ).parent().parent().parent().parent().parent().parent().hide().next().hide().next().hide().next().hide(); //"Topics to follow" - at anybody's profile
  209. $( "div[style='-webkit-line-clamp: 3;'] > span:contains('おすすめトピック')" ).parent().parent().parent().parent().parent().parent().hide().next().hide().next().hide().next().hide(); //"Suggested topics" - at 'More > Topics' page
  210. $( "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(); //"Discover new Lists" - at 'Lists' page
  211. // $( "div[style='-webkit-line-clamp: 3;'] > span:contains('Expand your timeline with Topics')" ).parent().parent().parent().parent().parent().parent().hide().next().hide().next().hide().next().hide(); //"Expand your timeline with Topics" - at the newsfeed
  212. //$( "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
  213. $( "div[aria-label='Open app']" ).parent().hide(); //"Open app" - at any tweet on mobile browser
  214. // $( "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
  215. $( "div[data-testid='inlinePrompt'] > h1[role='heading'] > span > span > span:contains('アプリを開く')" ).parent().parent().parent().parent().parent().parent().parent().hide().next().hide(); //"Get the app" - at the newsfeed
  216. $( "div > div > div[aria-label='アプリを開く'][role='button']" ).parent().parent().hide(); //"Get the app" - at any twit
  217. // $( "article span:contains('Promoted')" ).parent().parent().parent().parent().parent().hide().next().hide().next().hide(); //"Promoted" - at ?, active for some regions only
  218. // $( "span:contains('Promoted by')" ).parent().parent().parent().parent().hide().next().hide().next().hide(); //"Promoted by" - at ?, active for some regions only
  219. // $( "div[style='-webkit-line-clamp: 3;'] > span:contains('Promoted Tweet')" ).parent().parent().parent().parent().parent().parent().parent().hide(); //"Promoted Tweet" - at anybody's profile, active for some regions only
  220. // $( "div[data-testid='placementTracking'] > div > article > div > div > div > div > div > div > div > div > span:contains('Promoted')" ).parent().parent().parent().parent().parent().parent().parent().parent().parent().parent().parent().parent().parent().parent().hide(); //"Promoted" - at the newsfeed, active for some regions only
  221. // $( "div[aria-label='Set as not interested']" ).parent().parent().parent().parent().parent().parent().parent().hide(); //"Set as non-interested" - at ?, active for some regions only
  222.  
  223. // }, 100); //Interval to check page content
  224. };
  225.  
  226. const rootNode = document.querySelector("#react-root");
  227. if (rootNode != null) {
  228. const rootObserver = new MutationObserver(rootCallback);
  229. rootObserver.observe(rootNode, config);
  230. }
  231.  
  232. })();