TG WebA User Blocker

Block user in Telegram group

// ==UserScript==
// @name         TG WebA User Blocker
// @namespace    https://github.com/scientificworld
// @version      2024-07-29
// @description  Block user in Telegram group
// @author       scientificworld
// @license      Unlicense
// @match        https://web.telegram.org/a/
// @icon         https://www.google.com/s2/favicons?sz=64&domain=telegram.org
// @require      https://cdn.jsdelivr.net/gh/CoeJoder/waitForKeyElements.js@a03933c5e42343b434c7800eb2777575342d8287/waitForKeyElements.js
// @require      https://update.gf.qytechs.cn/scripts/455875/1123973/AkiLib.js
// @grant        GM_setValue
// @grant        GM_getValue
// @grant        GM_registerMenuCommand
// ==/UserScript==

let blocked = aki.createNormalMenu("Blocked user IDs (comma-delimited)");

waitForKeyElements("#MiddleColumn", () => {
    const observer = new MutationObserver(mutations => {
        mutations.forEach(mutation => {
            if (mutation.addedNodes) {
                mutation.addedNodes.forEach(node => {
                    // if (["Message", "MessageList"].some(c => node.classList.contains(c)))
                    if (node.classList) {
                        let elements;
                        if (node.classList.contains("Message")) {
                            elements = [node];
                        } else if (node.classList.contains("MessageList")) {
                            if (node.classList.contains("no-avatars")) {
                                return;
                            }
                            elements = node.querySelectorAll(".Message");
                        }
                        if (elements) {
                            elements.forEach(element => {
                                if (!element.classList.contains("own")) {
                                    let peerId, sibling = element;
                                    while (!peerId && sibling) {
                                        try {
                                            peerId = sibling.querySelector(".Avatar.size-small").dataset.peerId;
                                        } catch (error) {
                                            sibling = sibling.nextElementSibling;
                                        }
                                    }
                                    if (aki.getMenuValue(blocked).split(",").includes(peerId)) {
                                        element.style.display = "none";
                                    }
                                    element.dataset.peerId = peerId;
                                    // console.log(element);
                                }
                            });
                        }
                    }
                });
            }
        });
    });
    observer.observe(document.querySelector("#MiddleColumn"), { subtree: true, childList: true });
});

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址