// ==UserScript==
// @name         Dexujizer - diskusia
// @namespace    https://gulas.sme.sk
// @version      1.7
// @description  Skryje komentáre podľa mena účtu, rev_u ID, cesty k avataru alebo anonymné komentáre na gulas.sme.sk
// @match        https://*.gulas.sme.sk/*
// @grant        none
// ==/UserScript==

(function () {
    'use strict';

    const blockedUsernames = [
        'kolotociaredo',
        'abortmachtfrei',
        'tatok',
        'tatokr',
        'tato',
        'nepochop',
        'jojko',
        'chronozom',
        'chromozon',
        'bratkur',
        'kolt2',
        'franta-vana',
        'blakkota',
        'toto-vam-nezabudnem',
        'blakckota',
        'kukik',
        'blackockockota'
    ];

    const blockedRevU = [
        '1747824411'
    ];

    const blockedAvatarPaths = [
        '/upload/users/6/87/8746/' // ← nová možnosť blokovania
    ];

    const hideAnonymousPosts = true;

    function extractUsernameFromUrl(url) {
        const match = url.match(/^https:\/\/([^.]+)\.gulas\.sme\.sk\/?/);
        return match ? match[1] : null;
    }

    function extractRevUFromSrc(src) {
        const match = src.match(/[?&]rev_u=(\d+)/);
        return match ? match[1] : null;
    }

    function avatarPathMatches(src) {
        return blockedAvatarPaths.some(path => src.includes(path));
    }

    function hideBlockedComments() {
        document.querySelectorAll('.post_discusion_row').forEach(post => {
            const nickAnchor = post.querySelector('.disc_nick a[href]');
            const avatarImg = post.querySelector('.disc_nick img');

            const profileUrl = nickAnchor?.getAttribute('href')?.trim();
            const username = profileUrl ? extractUsernameFromUrl(profileUrl) : null;

            const imgSrc = avatarImg?.getAttribute('src') || '';
            const revU = extractRevUFromSrc(imgSrc);

            const isBlockedByUsername = username && blockedUsernames.includes(username);
            const isBlockedByRevU = revU && blockedRevU.includes(revU);
            const isBlockedByAvatarPath = imgSrc && avatarPathMatches(imgSrc);

            if (isBlockedByUsername || isBlockedByRevU || isBlockedByAvatarPath) {
                post.style.display = 'none';
            } else if (!username && hideAnonymousPosts) {
                post.style.display = 'none';
            }
        });
    }

    hideBlockedComments();
    const observer = new MutationObserver(hideBlockedComments);
    observer.observe(document.body, { childList: true, subtree: true });
})();