Skip to content

Instantly share code, notes, and snippets.

@yuidvg
Forked from RandyMcMillan/twitter-mute
Last active March 12, 2024 00:18
Show Gist options
  • Save yuidvg/9456af0404905e20562af205e4b7d1f5 to your computer and use it in GitHub Desktop.
Save yuidvg/9456af0404905e20562af205e4b7d1f5 to your computer and use it in GitHub Desktop.
makes your ๐Ÿ•Š tl cleaner. thx: ๐Ÿ•Š@nobuaki2711 ๐Ÿ•Š@tokumewi
//navigate to https://twitter.com/settings/muted_keywords
//paste this into the web browser console
const delayMs = 900; // change this if you feel like its running too fast
const keywords = `ใƒ—ใƒญใƒ•ใฎๆœ€ๅพŒ
ใƒ—ใƒญใƒ•ๆœ€ๅพŒ
้ฉšใใ‹ใ‚‚ใ—ใ‚Œใพใ›ใ‚“ใŒ
ๅคšใใฎไบบใŒๅ‹˜้•ใ„ใ—ใฆใ‚‹ใ‚“ใงใ™ใŒ
ๆ€’ใฃใฆใพใ™
ใ“ใ“ใ ใ‘ใฎ่ฉฑใงใ™ใŒ
ใ“ใฎ้š›ใƒใƒƒใ‚ญใƒช่จ€ใ„ใพใ™ใŒ
ใ“ใ‚Œใ€่ถ…ๅคงไบ‹
ใ“ใ‚Œใ‹ใ‚‰ๅคงๅˆ‡ใชใ“ใจใ‚’่จ€ใ„ใพใ™
ใ“ใ‚Œใ‚นใ‚ดใ„๏ผ
ใ“ใ‚Œใ ใ‘ใฏไฝ•ๅ›žใ‚‚่จ€ใ„ใพใ™ใŒ
ใ“ใ‚Œใ ใ‘ใฏ่จ€ใฃใฆใŠใใŸใ„ใ‚“ใงใ™ใ‘ใฉ
ใ“ใ‚Œใ ใ‘ใฏ็ŸฅใฃใฆใŠใ„ใฆๆฌฒใ—ใ„
ใ“ใ‚Œใ ใ‘ใฏ่žใ„ใฆๆฌฒใ—ใ„
ใ“ใ‚Œใซใฏใƒžใ‚ธใง้ฉšใ„ใŸ
ใ“ใ‚Œใฏใ‚ใ‚Šใจ็œŸๅฎŸใ ใจๆ€ใ†ใ‚“ใงใ™ใŒ
ใ“ใ‚Œใฏใ‚ใ‚Šใจ็œŸ้ข็›ฎใชใ‚ขใƒ‰ใƒใ‚คใ‚นใชใ‚“ใงใ™ใŒ
ใ“ใ‚Œใฏใ‚ใ‚Šใจ็›ฒ็‚นใชใ‚“ใงใ™ใŒ
ใ“ใ‚Œใฏๆฐธไน…ไฟๅญ˜็‰ˆใงใ™
ใ“ใ‚ŒใฏๆŽงใˆใ‚ใซ่จ€ใฃใฆๆœ‰็›Šใงใ™
ใ“ใ‚ŒใฏๆŒ่ซ–ใงใ™ใŒ
ใ“ใ‚Œ่ชญใพใชใ„ใจๆใ—ใพใ™
ใ“ใ‚Œใฏๅ†…็ท’ใชใ‚“ใงใ™ใŒ
ใ“ใ‚Œใพใงใฎไบบ็”Ÿใงๅญฆใ‚“ใ ใ“ใจ
ใ“ใ‚Œใ‚‰ใฏ็ตๆง‹ใ‚ฆใ‚ฝใชใ‚“ใงใ™ใŒ
ใ“ใ‚Œ่จ€ใฃใŸใ‚‰็‚ŽไธŠใ™ใ‚‹ใ‹ใ‚‚ใ—ใ‚Œใชใ„ใ‘ใฉ
ใ“ใ‚Œไฟกใ˜ใ‚‰ใ‚Œใพใ™๏ผŸ
ใ“ใ‚Œๅคงไบ‹ใ€‚ใƒ†ใ‚นใƒˆใซๅ‡บใ‚‹ใ‚ˆ
ใ“ใ‚Œ็Ÿฅใฃใฆใพใ™ใ‹๏ผŸ
ใ”ๅญ˜ใ˜ใ‹ใจๆ€ใ„ใพใ™ใŒ
้š ใ—ใฆใŠใ“ใ†ใจๆ€ใฃใŸใฎใงใ™ใŒ
ๅ‹˜้•ใ„ใ—ใฆใ‚‹ไบบใŒๅคšใ„ใงใ™ใŒ
ไปŠๆ—ฅใฏ่จ€ใ‚ใ›ใฆใใ ใ•ใ„
ๅซŒใ‚ใ‚Œใ‚‹่ฆšๆ‚Ÿใง่จ€ใ†ใ‘ใฉ
่‚ใซ้Š˜ใ˜ใฆๆฌฒใ—ใ„ใฎใงใ™ใŒ
ๅŽณใ—ใ„ใ“ใจใ‚’่จ€ใ†ใ‘ใฉ
ๅ‘Š็™ฝใ—ใพใ™
ๅฃฐใ‚’ๅคงใซใ—ใฆ่จ€ใ„ใพใ™
ๆ‚ฒใ—ใ„ใ“ใจใซ
ใ—ใคใ“ใ่จ€ใฃใฆใ‚‹ใ‘ใฉ
ใ‚บใƒใƒช่จ€ใ„ใพใ™ใŒ
ใใ‚Œ้–“้•ใฃใฆใพใ™
ๆฎ‹้…ทใ‹ใ‚‚ใ—ใ‚Œใพใ›ใ‚“ใŒ
ๅฎŸใฏโ€ฆ
้‡่ฆใชใ“ใจ่จ€ใ„ใพใ™
่กๆ’ƒ็š„ใชไบ‹ๅฎŸ
ไฟกใ˜ใ‚‰ใ‚Œใ‚‹๏ผŸ
ๆญฃ็›ดใƒ ใ‚ซใคใ„ใŸ
็ตถๅฏพใซๅฟ˜ใ‚Œใชใ„ใงๆฌฒใ—ใ„
็ตถๅฏพใซ็ŸฅใฃใฆใŠใ„ใฆ
ๆใ—ใฆใพใ›ใ‚“ใ‹๏ผŸ
็Ÿฅใ‚‰ใชใ„ใจๆ
็Ÿฅใ‚ŠใŸใใชใ„็พๅฎŸใ‚’่จ€ใ„ใพใ™
้ป™ใฃใฆใพใ—ใŸใŒ
ๅคงไบ‹ใ ใ‹ใ‚‰ไฝ•ๅบฆใ‚‚่จ€ใ„ใพใ™
ๅคงๅˆ‡ใชใ“ใจใ‚’ไผใˆใพใ™
ๅ˜ๅˆ€็›ดๅ…ฅใซ่จ€ใ„ใพใ™
่ถ…้‡่ฆใชใ“ใจใชใ‚“ใงใ™ใŒ
่ถ…ๆœ‰ๆ–™็ดšใงใ™
ใถใฃใกใ‚ƒใ‘ใพใ™
ๅƒ•ใ‚’ใƒ•ใ‚ฉใƒญใƒผใ™ใ‚‹ใƒกใƒชใƒƒใƒˆใฏ
ๆœฌๆฐ—ใง่žใ„ใฆๆฌฒใ—ใ„
ๆœ‰็›Šใชใ“ใจใ‚’่จ€ใ„ใพใ™
ๆœ—ๅ ฑใงใ™`.split("\n");
const nativeInputValueSetter = Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype, "value").set;
const addMutedKeyword = keyword => {
const input = document.querySelector("[name='keyword']");
nativeInputValueSetter.call(input, keyword);
input.dispatchEvent(new Event('input', { bubbles: true }));
document.querySelector("[data-testid='settingsDetailSave']").click();
}
const delay = () => {
return new Promise(res => setTimeout(res, delayMs));
};
keywords.reduce(async (prev, keyword) => {
await prev;
document.querySelector("a[href='/settings/add_muted_keyword']").click();
await delay();
addMutedKeyword(keyword);
return delay();
}, Promise.resolve());
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment