NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name Games.cz: Antitroll // @description Skryje vlákna založená lidmi s určitými jmény (v poli trolove, obalené apostrofy nebo uvozovkami a oddělené čárkami) - TŘEBA UPRAVIT PODLE CHUTI! // @include http://diskuse.tiscali.cz/games/* // @downloadURL https://openuserjs.org/install/id_doom/gamescz/Games.cz_Antitroll.user.js // @updateURL https://openuserjs.org/install/id_doom/gamescz/Games.cz_Antitroll.user.js // @icon http://games.tiscali.cz/img/logo-games.png // @namespace gamescz // @version 1.7 // @grant none // ==/UserScript== var skrytAnonymy = false; //Pro skrytí všech anonymů a odpovědí na ně změnit false na true var skrytInkognita = false; //Pro skrytí všech (inkognito) a a odpovědí na ně změnit false na true var prispevky = []; //Pole příspěků (globální) function skryj(i) { prispevky[i].style.display = 'none'; } if (document.getElementsByClassName('box-std box-comments') != null){ //Zkontroluje, jestli se na stránce nachází diskuze v očekávané formě //ZDE MŮŽETE PŘIDÁVAT TROLLY; Pro skrytí nepřihlášených slouží proměnné nahoře var trolove = new Array('veskoslav', 'Jack1947', 'TheGGG'); var D = document.getElementsByClassName('box-std box-comments')[0]; //Element obalující celou diskuzi - jako první člen pole var jmena = []; //Deklarace pole obsahující jména prispevky = D.getElementsByTagName('li'); //Pole příspěků (globální) for (var i = 0; i < prispevky.length; i++){ jmena[i] = prispevky[i].getElementsByTagName('strong')[0].innerHTML; //Jméno diskutéra je někde v tagu STRONG var stopka = document.createElement('a'); stopka.href = 'javascript:void(0)'; //Aby to byl odkaz-neodkaz stopka.innerHTML = " Skrýt"; stopka.cislo = i; //Číslo elementu li, který se bude skrývat stopka.onclick = function(){skryj(this.cislo)}; prispevky[i].getElementsByClassName('hd')[0].appendChild(stopka); } for (var i = 0; i < prispevky.length; i++) { // pro všechny příspěvky if(prispevky[i].getElementsByClassName('hd')[0].getElementsByClassName('role').length > 0){ //pokud má anonyma nebo inkognito if(skrytAnonymy || skrytInkognita){ //Pokud se filtrují i role if(skrytAnonymy && skrytInkognita){ //Pokud obě regExpRole = new RegExp('\\s*\\((anonym|inkognito)\\)\\s*', 'i'); } else{ //A když ne obě if (skrytAnonymy){ //Jen anonym regExpRole = new RegExp('\\s*\\(anonym\\)\\s*', 'i'); } if (skrytInkognita){ // Jen iknognito regExpRole = new RegExp('\\s*\\(inkognito\\)\\s*', 'i'); } } if(regExpRole.test(prispevky[i].getElementsByClassName('role')[0].innerHTML)){ skryj(i); //Pokud odpovídá reg. výrazu, skryje } } } else{ //Pokud se anon a inko nefiltrují, nebo nejsou nalezeny, tak se hledá troll for (var j = 0; j < trolove.length; j++) { //pro všechny jména v poli trolove var regExp = new RegExp('\\s+'+trolove[j]+'\\s+', 'i'); //Regulární výraz pro "vyseknutí jména z innerHTML" if (regExp.test(jmena[i])){ //Otestuje shodu jména s troly skryj(i) //Pokud je shoda, skryje část diskuze break; //přeruší cyklus, pokud je příspěvek skryt } } } } }