Remove user and topics to follow suggestions from Twitter
当前为
// ==UserScript==
// @name Twitter cleanup
// @version 1.8.1
// @grant Sly_North
// @description Remove user and topics to follow suggestions from Twitter
// @author Sly_North
// @match https://twitter.com/*
// @namespace https://greasyfork.org/en/users/759669-sly-north
// @icon https://abs.twimg.com/responsive-web/client-web/icon-svg.168b89d8.svg
// @license MIT
// @grant none
// ==/UserScript==
function RemoveFollowingThinElements(e, removeWithoutFollowButton) {
console.log('- removing H=', e.getBoundingClientRect().height, ' ', e.innerText);
let next = e.nextSibling;
if (next) {
let nextH = next.getBoundingClientRect().height;
if (nextH < 200) {
if (removeWithoutFollowButton || next.innerText.match(/Follow/))
RemoveFollowingThinElements(next, removeWithoutFollowButton);
else {
// console.log('- TWcleanup stops at H=', nextH, ' "' + next.innerText + '"');
if (next.innerText === 'Show more') {
next.innerHTML = "";
}
}
}
}
e.innerHTML = "";
}
function RemoveSuggestions() {
// Needs to be in screen for nextSibling to be defined.
let elts = Array.from(document.getElementsByTagName('H2')).filter(
e => e.getBoundingClientRect().top < window.innerHeight &&
e.innerText === 'Who to follow');
if (elts.length > 0) {
console.log('Found "Who to follow"');
for (let e of elts) {
e = e.parentElement.parentElement.parentElement.parentElement;
RemoveFollowingThinElements(e, false);
}
}
elts = Array.from(document.getElementsByTagName('SPAN')).filter(
e => // e.getBoundingClientRect().top < window.innerHeight &&
(e.innerText === 'Topics to follow' || e.innerText === 'Expand your timeline with Topics'));
if (elts.length > 0) {
console.log('Found "', elts[0].innerText, '"');
for (let e of elts) {
e = e.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement;
// Remove topics and offset bar
RemoveFollowingThinElements(e.nextSibling, true);
// Remove title
e.innerHTML = "";
}
console.log('Removed "', title, '"');
}
setTimeout(RemoveSuggestions, 1000);
// Unfreeze scrolling
if (document.documentElement.style.overflow) document.documentElement.style.overflow = "scroll";
// If the window is very small (like when watching a video in a small secondary window),
// remove the Twitter left column and top banner.
{
let elts = document.getElementsByTagName('header');
if (elts.length > 0) {
elts[0].style.display = (window.innerWidth < 700) ? "none" : "";
}
var elt = document.querySelector('[aria-label="Home timeline"]');
if (elt) elt.firstChild.style.display = (window.innerHeight < 700) ? "none" : "";
}
}
let bottomBanners = Array.from(document.getElementsByTagName('div'))
.filter(e => e.dataset.testid === 'BottomBar' );
if (bottomBanners.length > 0) bottomBanners[0].innerHTML = '';
let elt = document.getElementById('credential_picker_container');
if (elt) elt.innerHTML = "";
setTimeout(RemoveSuggestions, 1000);