Facebook Fuck-Off Pseudoanonymní Mrdky.

Skrývá anonymní čuráky, které si nelze jinak zablokovat díky incestnímu správci.

当前为 2025-02-07 提交的版本,查看 最新版本

// ==UserScript==
// @name         Facebook Fuck-Off Pseudoanonymní Mrdky.
// @namespace    http://tampermonkey.net/
// @version      6.6.7
// @description  Skrývá anonymní čuráky, které si nelze jinak zablokovat díky incestnímu správci.
// @description:en  Hides anonymous members that cannot be blocked due to the incestuous admin.
// @author       Projekt Darkside - DevIT Brno - EU
// @license      Darkside;
// @match        *://*.facebook.com/*
// @grant        none
// @run-at       document-idle
// @require      https://code.jquery.com/jquery-3.7.1.min.js
// ==/UserScript==

/* global $ */

(function() {
    'use strict';

    // Texty, které hledáme
    const Wlang = [
        "Anonymous member", // Angličtina
        "Anonymní člen",     // Čeština
        "Anonymný člen",     // Slovenština
        "Membre anonyme",    // Francouzština
        "Miembro anónimo",   // Španělština
        "Anonymer Mitglied", // Němčina
        "Membro anonimo",    // Italština
        "Membro anônimo",    // Portugalština
        "Анонимный участник",// Ruština
        "匿名メンバー",        // Japonština
    ];

    let removedCount = 0; // Proměnná pro uchování počtu odstraněných prvků

    // Funkce pro skrytí anonymních členů podle textu začínajícího na "Anonymní člen" a následovaného číslem
    function hideAnonymousMembers() {
        // Regulární výraz pro hledání "Anonymní člen" následovaného číslem
        const anonPattern = new RegExp('^' + Wlang.join('|') + '\\s+\\d+$'); // Například: Anonymní člen 868

        // Pro každý text, který hledáme
        $.each(Wlang, function(index, ExistedWords) {
            document.querySelectorAll('div[role="button"]').forEach(button => {
                if (anonPattern.test(button.innerText.trim())) {
                    let parentDiv = button.closest('div'); // Změněno na closest()

                    // Pokud chceš jít výš, změníš číslo v nth-of-type
                    // Tato část ladí dynamiku webu
                    for (let i = 0; i < 15; i++) {
                        if (parentDiv && parentDiv.parentElement) {
                            parentDiv = parentDiv.parentElement;
                        }
                    }

                    // Skrytí divu
                    if (parentDiv) {
                        parentDiv.style.display = 'none';
                        console.log('Skryta sekce anonymního člena:', parentDiv);
                        removedCount++;
                    }
                }
            });
        });
    }

    // Funkce pro skrytí komentářů s atributy aria-hidden a role="link" obsahujících anonymní text
    function hideAnonymousComments() {
        const anonPattern = new RegExp('^' + Wlang.join('|') + '\\s+\\d+$'); // Regulární výraz pro text s číslem za "Anonymní člen"

        $.each(Wlang, function(index, ExistedWords) {
            document.querySelectorAll('a[aria-hidden="false"][role="link"]').forEach(link => {
                if (anonPattern.test(link.innerText.trim())) {
                    let parentDiv = link.closest('div'); // Změněno na closest()

                    // Pokud chceš jít výš, změníš číslo v nth-of-type
                    // Tato část ladí dynamiku webu
                    for (let i = 0; i < 6; i++) {
                        if (parentDiv && parentDiv.parentElement) {
                            parentDiv = parentDiv.parentElement;
                        }
                    }

                    // Skrytí divu
                    if (parentDiv) {
                        parentDiv.style.display = 'none';
                        console.log('Skryta sekce anonymního člena v komentářích:', parentDiv);
                        removedCount++;
                    }
                }
            });
        });
    }

    // Spustí skenování každé 2 sekundy pro dynamické změny
    setInterval(() => {
        hideAnonymousMembers(); // Skrytí anonymních členů
        hideAnonymousComments(); // Skrytí anonymních komentářů
    }, 1500);

    // První skrytí při načtení
    hideAnonymousMembers();
    hideAnonymousComments();

})();