Greasy Fork 支持简体中文。

Bluesky Search External Link Filter

Hides Bluesky Search posts containing external links.

// ==UserScript==
// @name         Bluesky Search External Link Filter
// @namespace    https://bsky.app/
// @version      1.5
// @description  Hides Bluesky Search posts containing external links.
// @match        https://bsky.app/*
// @grant        none
// ==/UserScript==
 
(function () {
    function getElementsByXPath(xpath, context = document) {
        let nodes = document.evaluate(xpath, context, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
        return Array.from({ length: nodes.snapshotLength }, (_, i) => nodes.snapshotItem(i));
    }
 
    function isExternalLink(link) {
        return link && !link.href.includes("bsky.app");
    }
 
    function checkAndHidePosts() {
        getElementsByXPath("//div[@id='root']/div/div/div/div/main/div/div/div/div/div/div[2]/div[3]/div/div/div/div/div[2]/div/div")
            .forEach(post => {
                if ([...post.getElementsByTagName("a")].some(isExternalLink)) {
                    if (post.parentElement) post.style.display = "none"; // Hide instead of removing
                }
            });
    }
 
    function observeContainer() {
        let container = document.querySelector("main div div div div div div:nth-child(3)");
        if (container) {
            new MutationObserver(checkAndHidePosts).observe(container, { childList: true, subtree: true });
            checkAndHidePosts();
        }
    }
 
    new MutationObserver(observeContainer).observe(document.body, { childList: true, subtree: true });
    observeContainer();
})();