Twitterの検索結果から表示名にキーワードを含んでくる奴と違う結果を除外するやつ[edit]

// ==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();
})();
// ==UserScript==
// @name         Twitter Search Query Filter
// @namespace    https://junkyard.shirotsume.ch/
// @version      1.0.0a
// @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();
})();
// ==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();
})();

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
This site is protected by Turnstile and the Cloudflare Privacy Policy and Terms of Service apply.