🏠 返回首頁 

Greasy Fork is available in English.

TG WebA User Blocker

Block user in Telegram group


Installer dette script?
// ==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.greasyfork.org/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 });
});