#author("2024-12-03T19:01:53+09:00","","") #author("2024-12-07T18:40:50+09:00","","") * Twitterの検索結果から表示名にキーワードを含んでくる奴と違う結果を除外するやつ [#FuckElon0001] <pre> // ==UserScript== // @name Twitter Search Query Filter // @namespace https://junkyard.shirotsume.ch/ // @version 1.0.0 // @description Twitter検索結果からユーザーの表示名に検索ワードを含んでくる馬鹿を除外します。 // @author shirotsume // @match https://x.com/search* // @grant none // ==/UserScript== (function() { 'use strict'; // 検索ワードを取得する関数 function getSearchQuery() { const urlParams = new URLSearchParams(window.location.search); const query = urlParams.get("q") || ""; return query; } // 検索結果を監視し、条件を満たす要素を非表示にする function filterSearchResults() { const query = getSearchQuery(); if (!query) return; const searchWords = query.split(/\s+/); // スペースで区切る(複数ワード対応) // 検索結果のリストを取得 const results = document.querySelectorAll("article"); results.forEach(result => { const displayNameElement = result.querySelector("div[data-testid='User-Name'] > div"); if (displayNameElement) { const displayName = displayNameElement.textContent; // 表示名に検索ワードが含まれているかチェック if (searchWords.some(word => displayName.includes(word))) { // result.style.display = "none"; // 該当結果を非表示 result.remove(); } } }); } // DOM変更を監視 const observer = new MutationObserver(() => { filterSearchResults(); }); observer.observe(document.body, { childList: true, subtree: true }); // 初期実行 filterSearchResults(); })(); </pre> <pre> // ==UserScript== // @name Twitter Search Query Filter // @namespace https://junkyard.shirotsume.ch/ // @version 1.0.0a // @version 1.0.0c // @description Twitter検索結果からユーザーの表示名に検索ワードを含んでくる馬鹿を除外します。また、イーロン便器マスクの改悪による違う検索結果も除外します。 // @author shirotsume // @match https://x.com/search* // @grant none // ==/UserScript== (function() { 'use strict'; // 検索ワードを取得する関数 function getSearchQuery() { const urlParams = new URLSearchParams(window.location.search); const query = urlParams.get("q") || ""; return query; } // 検索結果を監視し、条件を満たす要素を非表示にする function filterSearchResults() { const query = getSearchQuery(); if (!query) return; const searchWords = query.split(/\s+/); // スペースで区切る(複数ワード対応) // 検索結果のリストを取得 const results = document.querySelectorAll("article"); results.forEach(result => { const displayNameElement = result.querySelector("div[data-testid='User-Name'] > div"); const tweetTextElement = result.querySelector("div[data-testid='tweetText']"); if (displayNameElement) { const displayName = displayNameElement.textContent; // 表示名に検索ワードが含まれているかチェック if (searchWords.some(word => displayName.includes(word))) { // result.style.display = "none"; // 該当結果を非表示 result.remove(); } } if (tweetTextElement) { const tweetText = tweetTextElement.textContent; // ツイート本文に検索ワードが含まれているかチェック if (!searchWords.some(word => tweetText.includes(word))) { // result.style.display = "none"; // 該当結果を非表示 result.remove(); } } }); } // DOM変更を監視 const observer = new MutationObserver(() => { filterSearchResults(); }); observer.observe(document.body, { childList: true, subtree: true }); // 初期実行 filterSearchResults(); })(); </pre> <pre> // ==UserScript== // @name Twitter Search Query Filter // @namespace https://junkyard.shirotsume.ch/ // @version 1.0.0b // @description Twitter検索結果からユーザーの表示名に検索ワードを含んでくる馬鹿を除外します。また、イーロン便器マスクの改悪による違う検索結果も除外します。 // @author shirotsume // @match https://x.com/search* // @grant none // ==/UserScript== (function() { 'use strict'; // 検索ワードを取得する関数 function getSearchQuery() { const urlParams = new URLSearchParams(window.location.search); const query = urlParams.get("q") || ""; return query; } // 検索結果を監視し、条件を満たす要素を非表示にする function filterSearchResults() { const query = getSearchQuery(); if (!query) return; const searchWords = query.split(/\s+/); // スペースで区切る(複数ワード対応) // 検索結果のリストを取得 const results = document.querySelectorAll("article"); results.forEach(result => { const displayNameElement = result.querySelector("div[data-testid='User-Name'] > div:nth-of-type(1)"); const screenNameElement = result.querySelector("div[data-testid='User-Name'] > div:nth-of-type(2) > div > div"); const tweetTextElement = result.querySelector("div[data-testid='tweetText']"); if (displayNameElement) { const displayName = displayNameElement.textContent; // 表示名に検索ワードが含まれているかチェック if (searchWords.some(word => displayName.toLowerCase().includes(word.toLowerCase()))) { // result.style.display = "none"; // 該当結果を非表示 result.remove(); } } if (screenNameElement) { const screenName = screenNameElement.textContent; // ユーザー名に検索ワードが含まれているかチェック if (searchWords.some(word => screenName.toLowerCase().includes(word.toLowerCase()))) { // result.style.display = "none"; // 該当結果を非表示 result.remove(); } } if (tweetTextElement) { const tweetText = tweetTextElement.textContent; // ツイート本文に検索ワードが含まれているかチェック if (!searchWords.some(word => tweetText.toLowerCase().includes(word.toLowerCase()))) { // result.style.display = "none"; // 該当結果を非表示 result.remove(); } } }); } // DOM変更を監視 const observer = new MutationObserver(() => { filterSearchResults(); }); observer.observe(document.body, { childList: true, subtree: true }); // 初期実行 filterSearchResults(); })(); </pre>