Mute these words in your settings here: https://twitter.com/settings/muted_keywords | |
ActivityTweet | |
generic_activity_highlights | |
generic_activity_momentsbreaking | |
RankedOrganicTweet | |
suggest_activity | |
suggest_activity_feed | |
suggest_activity_highlights | |
suggest_activity_tweet | |
suggest_grouped_tweet_hashtag | |
suggest_pyle_tweet | |
suggest_ranked_organic_tweet | |
suggest_ranked_timeline_tweet | |
suggest_recap | |
suggest_recycled_tweet | |
suggest_recycled_tweet_inline | |
suggest_sc_tweet | |
suggest_timeline_tweet | |
suggest_who_to_follow | |
suggestactivitytweet | |
suggestpyletweet | |
suggestrecycledtweet_inline |
Perhaps it is time to add
Id like to know what some of these do before I copy paste them
Perhaps it is time to add
🧵 - these threads are out of control!
it's so sad, but you don't want to throw the baby out with the bathwater. There's a good thread for every 10 trash threads
Here is a minor update to this https://gist.github.com/IanColdwater/88b3341a7c4c0cf71c73ac56f9bd36ec?permalink_comment_id=3969640#gistcomment-3969640 solution. It adds a check for an already muted word
location.assign("https://twitter.com/settings/muted_keywords");
// wait...
// https://github.com/facebook/react/issues/10135#issuecomment-401496776
function setNativeValue(element, value) {
const valueSetter = Object.getOwnPropertyDescriptor(element, "value").set;
const prototypeValueSetter = Object.getOwnPropertyDescriptor(
Object.getPrototypeOf(element),
"value"
).set;
if (valueSetter && valueSetter !== prototypeValueSetter) {
prototypeValueSetter.call(element, value);
} else {
valueSetter.call(element, value);
}
}
function delay(f = 1) {
return new Promise((res) => setTimeout(res, f * 1000));
}
`ActivityTweet
generic_activity_highlights
generic_activity_momentsbreaking
RankedOrganicTweet
suggest_activity
suggest_activity_feed
suggest_activity_highlights
suggest_activity_tweet
suggest_grouped_tweet_hashtag
suggest_pyle_tweet
suggest_ranked_organic_tweet
suggest_ranked_timeline_tweet
suggest_recap
suggest_recycled_tweet
suggest_recycled_tweet_inline
suggest_sc_tweet
suggest_timeline_tweet
suggest_who_to_follow
suggestactivitytweet
suggestpyletweet
suggestrecycledtweet_inline`
.split(/\W+/)
.reduce(async function go(prev, keyword) {
await prev;
document.querySelector('[aria-label="Add muted word or phrase"]').click();
await delay();
const el = document.querySelector("input[name=keyword]");
setNativeValue(el, keyword);
el.dispatchEvent(new Event("input", { bubbles: true }));
await delay();
const saveButton = document
.evaluate(
'//*[contains(text(), "Save")]/ancestor::*[@role = "button"]',
document,
null,
XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,
null
)
saveButton.snapshotItem(0).click()
await delay()
// If the word has already been muted, click the back button
if (document.querySelector('[aria-live="assertive"]')) {
document.querySelector('[aria-label="Back"]').click();
}
return delay();
}, Promise.resolve());
Here is a minor update to this https://gist.github.com/IanColdwater/88b3341a7c4c0cf71c73ac56f9bd36ec?permalink_comment_id=3969640#gistcomment-3969640 solution. It adds a check for an already muted word
location.assign("https://twitter.com/settings/muted_keywords"); // wait... // https://github.com/facebook/react/issues/10135#issuecomment-401496776 function setNativeValue(element, value) { const valueSetter = Object.getOwnPropertyDescriptor(element, "value").set; const prototypeValueSetter = Object.getOwnPropertyDescriptor( Object.getPrototypeOf(element), "value" ).set; if (valueSetter && valueSetter !== prototypeValueSetter) { prototypeValueSetter.call(element, value); } else { valueSetter.call(element, value); } } function delay(f = 1) { return new Promise((res) => setTimeout(res, f * 1000)); } `ActivityTweet generic_activity_highlights generic_activity_momentsbreaking RankedOrganicTweet suggest_activity suggest_activity_feed suggest_activity_highlights suggest_activity_tweet suggest_grouped_tweet_hashtag suggest_pyle_tweet suggest_ranked_organic_tweet suggest_ranked_timeline_tweet suggest_recap suggest_recycled_tweet suggest_recycled_tweet_inline suggest_sc_tweet suggest_timeline_tweet suggest_who_to_follow suggestactivitytweet suggestpyletweet suggestrecycledtweet_inline` .split(/\W+/) .reduce(async function go(prev, keyword) { await prev; document.querySelector('[aria-label="Add muted word or phrase"]').click(); await delay(); const el = document.querySelector("input[name=keyword]"); setNativeValue(el, keyword); el.dispatchEvent(new Event("input", { bubbles: true })); await delay(); const saveButton = document .evaluate( '//*[contains(text(), "Save")]/ancestor::*[@role = "button"]', document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null ) saveButton.snapshotItem(0).click() await delay() // If the word has already been muted, click the back button if (document.querySelector('[aria-live="assertive"]')) { document.querySelector('[aria-label="Back"]').click(); } return delay(); }, Promise.resolve());
How tf you apply those, i'm no git or web console expert :(
Works like a charme:
Question. I still get "Related Tweets" at the end of a thread, if any. How do I silence those?