Twitter のTLをすっきりさせたい時によく使う ミュートキーワード 設定、仕様がいまいち曖昧で、単語単位じゃないとダメ、ハッシュタグは完全一致じゃないとダメ、と謎多いんですが、何やらシステムの 予約語 みたいなキーワードもあるようです。
そもそもの発端は、謎仕様が多くて効率的にキーワードヒットさせられないのなら、手当たり次第にミュートしよう、でも手作業は面倒だから自動化出来ないだろうか、とその手法を調べていたとき、見つけたのがこのページです。
Work と Doesn’t work なレスが入り乱れてはいますが、結構色々な内部変数っぽいキーワードを登録すると非表示になるんだそうです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
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 |
でも数が結構あるのでどうしようかと読み進んでゆくと、ブラウザの開発ツールによくあるコンソールで、まとめて登録してしまうプログラムを載せている方が。早速Firefoxで試してみました。まず、ミュートキーワードのページを開きます。
1 |
https://twitter.com/settings/muted_keywords |
次にFirefoxの、ウェブ開発→ウェブコンソールを開き、まずそこへ、
1 |
allow paste |
を唱えて、機能を有効にします。そして、以下のScriptをコピペすれば、じゃんじゃか登録されてゆきます(気持ちいい)。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
const delayMs = 500; // change this if you feel like its running too fast const 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`.split(/\W+/); 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()); |
keywords定数にキーワードを改行区切りで放り込めば良いので、今後もこのScriptが活躍してくれそうです。
Great Tnx!