// ==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 });
})();