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();
})();