Přidat debatu mezi oblíbenéZasílat nové příspěvky e-mailemDůležité Detrollizer na debaty.net

Tady je jednoduchý skriptík pro Greasemonkey. Vymaže thready specifikovaných userů (v proměnné blockedUsers) a jejich posty, reakce na ně jsem zatím nechal, ale daly by se taky hajdnout.


// ==UserScript==
// @name        debaty.net
// @namespace   debaty
// @description Skryti prispevku vybranych uzivatelu na debaty.net
// @include     http://debaty.net/*
// @version     1
// @grant       none
// ==/UserScript==

// type usernames to hide 
var blockedUsers = ["MaSo" , "šamponek"];

$( document ).ready(function() {
    hideBlockedUsers();
});


function hideBlockedUsers() {
    
    // hide posts
    $('.details small:first-child').each(function(i, obj) {
        var nickElement = $ (this).find('a:first');
        var nick = nickElement.html();
        
        if (isBlocked(nick)){
            nickElement.parent().parent().parent().parent().css('display', 'none');
        }
    });
    
    //hide threads
    $('.text-overflow').each(function(i, obj) {
       var nickElement = $(this).find('a:first');
       var nick = nickElement.html();
      
         if (isBlocked(nick)){
            nickElement.parent().parent().css('display', 'none');
        }
    });
}

function isBlocked(login) {
    for (var i = 0 ; i < blockedUsers.length; i++){
        if (blockedUsers[i] === login) {
            return true;
        }
    } 
    return false;
}

Enjoy! :-)

Pripadne bugy/zdokonaleni opravim/zapracuji...

Dovolil jsem si připíchnout pro slabší kusy, aby je z toho nepiclo, až se budou brodit Debatami. ;-)(touchwood)

Předmět Autor Datum
Jen doplním. Úprava se samozřejmě týká prohlížeče uživatele, na samotnou funkci stránek debaty.net n…
Zarniwúp 13.10.2014 14:10
Zarniwúp
Díky za doplnění návodu. :-) Jinak GreaseMonkey je doplněk pro FF, pro Chrome by měl fungovat Tampe…
MaSo 13.10.2014 14:22
MaSo
Funguje. :-) Dík! :beer:
Kurt 13.10.2014 14:23
Kurt
Paradička! (na Greasemonkey som uz uplne zabudol, kedysi som to pouzival) :beer: Len si nie som ist…
blue5 13.10.2014 14:32
blue5
Vynikající! 1. Pokud by se do include dala pc.poradna.net, tak by to fungovalo i tam? 2. Pokud někdo…
Moas 13.10.2014 14:36
Moas
1. Je to vázané na strukturu HTML na debaty.net, takže asi ne. Netestoval jsem to. 2. Pokud autorem…
MaSo 13.10.2014 14:49
MaSo
Ještě mě napadlo, že by se dalo využít zdejšího tagu spoiler. A to tak, že bych posty blockedUsers z…
MaSo 13.10.2014 15:03
MaSo
Jo, to by možná bylo ještě lepší řešení. Kdo bude mít potřebu si zablokovance přečíst, učiní jeden k…
Kurt 13.10.2014 15:07
Kurt
Jo, to by bylo lepší. Matně si vzpomínám na doby Živě, nefungoval tam podobně "Trotlík"?
L-Core 13.10.2014 18:23
L-Core
Paráda! To snad už zavře hubu nenávistným štváčům :-)
Chocholoušek 13.10.2014 15:16
Chocholoušek
Už si tě přidávám! :-)
IQ37 13.10.2014 15:17
IQ37
Dík, já zatím nemám potřebu, jelikož co člověk, to názor :-)
Chocholoušek 13.10.2014 15:20
Chocholoušek
Chválím, přestože tě momentálně nevidím! :-) Ale ještě poznámečka. Tohle je samozřejmě výborné řeše…
IQ37 13.10.2014 15:16
IQ37
Ale to jeho trolení už nepadne na (tak) úrodnou půdu.. :-) Troll potřebuje odezvu..
Niko Bellic 13.10.2014 15:23
Niko Bellic
Troll přestane trolit, když zjistí, že to nikoho nezajímá.
JR_Ewing 13.10.2014 15:26
JR_Ewing
Test spoileru.
MaSo 13.10.2014 15:26
MaSo
Super prace diky moc :-)
Roker 13.10.2014 15:57
Roker
Díky moc, ještě že tu máme fungující komunitu. Takhle se debaty budou zas dát číst bez zbytečného zv…
Redsnake 13.10.2014 17:03
Redsnake
Pro začátek určitě dobré, ale schválně jsem si otevřel pár delších diskuzí a tento způsob, kdy se ig…
Niko Bellic 13.10.2014 17:37
Niko Bellic
Čili tebe to spíš svádí k tomu číst "závadné" příspěvky, nežli je prostě a jednoduše ignorovat.
Chocholoušek 13.10.2014 17:54
Chocholoušek
Přečti si to ještě jednou. Upozorňuji na to, že když se nezobrazí celý příspěvek, tak dojde ke ztrát…
Niko Bellic 13.10.2014 18:05
Niko Bellic
Takže první reklamace, ale MaSo už prý pracuje na spoileru ;-)
Chocholoušek 13.10.2014 18:10
Chocholoušek
Reklamace je škaredé slovo. Je to konstruktivní kritika. :-)
Niko Bellic 13.10.2014 18:16
Niko Bellic
// ==UserScript== // @name debaty.net // @namespace debaty // @description Skryti prispevku vybranyc…
MaSo 13.10.2014 20:30
MaSo
Velice výborná práce. Jsem tu první den, ale už dnes jsem narazil na blbce, který sem chodí jen prov…
Mnauik 13.10.2014 20:47
Mnauik
You da real MVP. Je to zvláštní, ale zatím jsem si tam přidal jen jedno jméno. Nesouhlasím tu s cel…
Moas 13.10.2014 20:53
Moas
Super :beer::beer:
Niko Bellic 13.10.2014 21:00
Niko Bellic
Detrollizer 1.2 :-) changelog: + opravena funkčnost detrollizace při stránkování v debatách + oprav…
MaSo 14.10.2014 15:21
MaSo
Hele, když přidám více jak jednoho uživatele, nefunguje. Řádek vypadá takto: var blockedUsers = ["M…
Zarniwúp 14.10.2014 16:19
Zarniwúp
Jestlipak nebudeš muset mít v uvozovkách každého zvlášť...
Chocholoušek 14.10.2014 16:22
Chocholoušek
Každé jméno dej do uvozovek. var blockedUsers = ["MaSo" , "fleg"];
Niko Bellic 14.10.2014 16:23
Niko Bellic
Ano, takto je to správně.
MaSo 14.10.2014 16:26
MaSo
Aha, no jo. :-)
Zarniwúp 14.10.2014 16:28
Zarniwúp
Možná jsem to rozbil já, ale v Chrome, v Tampermonkey nefunguje ta fce spoileru. Příspěvky detrolliz…
Redsnake 17.10.2014 22:14
Redsnake
Taky jsi to mohl rovnou napsat jako článek ;-)
touchwood 16.10.2014 19:01
touchwood
Pěkné, ale já bych měl z postu krotitele divé zvěře sledovat vše a používat only mentální detrollizé…
mif 18.10.2014 00:35
mif
dříve to bejvalo lehčí... !lunarize /all:-p
kmochna 19.10.2014 20:12
kmochna
:-D
mif 20.10.2014 06:52
mif
http://extension.maxthon.com/detail/index.php?view_id=1680 max funkční.
kmochna 20.10.2014 07:26
kmochna
Tak místo aby jste trola odstranili administrátoři jedním klikem, tak se mají všichni srát s nějakým…
Mojmír 20.10.2014 17:11
Mojmír
demokracie je těžká věc. vůbec jim to nezávidím, ale rozhodnutí mají správné.
kmochna 20.10.2014 17:14
kmochna
A kto urcit kto je trol a kto nie? Zopar jednicov sme tu uz idstranili, ale vo vseobecnosti by vlast… poslední
fleg 24.10.2014 10:06
fleg

Jen doplním. Úprava se samozřejmě týká prohlížeče uživatele, na samotnou funkci stránek debaty.net nemá vliv. Nejde tedy o to, že by blokovaní uživatelé nemohli přispívat na stránky a jich se script nijak nedotýká. Je na rozhodnutí uživatele, jestli script bude používat.
Defaultně je v postovaném scriptu zneviditelněn uživatel MaSo a šamponek. Jde o vzorové vyplnění scriptu, pokud tyto uživatele blokovat nechcete, jejich nicky ze scriptu v řádku:

var blockedUsers = ["MaSo" , "šamponek"];

smažte.
Stejně tak můžete v tomto řádku uživatele podle vzoru pro zneviditelnění doplnit.

Paradička! (na Greasemonkey som uz uplne zabudol, kedysi som to pouzival) :beer:

Len si nie som isty, ci vlozenie skriptu zvladnu aj netechnicke typy bez navodu.

// Trochu som si to upravil a nechal skryte iba vlakna - pride mi to tak lepsie (snad som tym neporusil autorske prava :-p )

Vynikající!
1. Pokud by se do include dala pc.poradna.net, tak by to fungovalo i tam?
2. Pokud někdo z blockedUsers založí fungl novou debatu a v ní budou krom něj debatovat i další, tak jak se to bude chovat?

Ještě mě napadlo, že by se dalo využít zdejšího tagu spoiler. A to tak, že bych posty blockedUsers zaspoileroval (aby se neničila struktura vlákna), thready bych pak nechal vyřazené úplně...

Pro začátek určitě dobré, ale schválně jsem si otevřel pár delších diskuzí a tento způsob, kdy se ignoruje celý příspěvek blokované osoby udělá z diskuze pořádný guláš. Např. si tam uživatelé odpovídají sami sobě, nebo někomu, komu původně neodpovídali - je sice vidět 2x větší odsazení příspěvků, ale dá se v tom pořádně ztratit i tak. Já myslím, že by měl příspěvek zůstat tak jak byl, ale jeho obsah skrýt.

// ==UserScript==
// @name        debaty.net
// @namespace   debaty
// @description Skryti prispevku vybranych uzivatelu na debaty.net
// @include     http://debaty.net/*
// @version     1
// @grant       none
// ==/UserScript==

// type usernames to hide 
var blockedUsers = ["MaSo" , "šamponek"];

$( document ).ready(function() {
    hideBlockedUsers();
});


function hideBlockedUsers() {       
    //hide threads
    $('.text-overflow').each(function(i, obj) {
       var nickElement = $(this).find('a:first');
       var nick = nickElement.html();
      
         if (isBlocked(nick)){
            nickElement.parent().parent().css('display', 'none');
        }
    }); 
    
    // hide posts
    $('.details small:first-child').each(function(i, obj) {
        var nickElement = $(this).find('a:first');
        var nick = nickElement.html();
        if (isBlocked(nick)){
            var postElement = nickElement.parent().parent().parent().find('div:first');
            var postContent = postElement.html();
            postElement.empty();
            postElement.append(detrollizePostContent(postContent))            
        }	
    });
    
     $('div.detrollizer').detrollize();   
}

function isBlocked(login) {
    for (var i = 0 ; i < blockedUsers.length; i++){
        if (blockedUsers[i] === login) {
            return true;
        }
    } 
    return false;
}

function detrollizePostContent(content) {
  return '<div class="detrollizer" style="display : none">' + content + '</div>'
}

(function($) {
	$.fn.detrollize = function(settings) {
		settings = jQuery.extend({
			text: 'Detrollized!'
		},settings);
		this
			.wrap('<div class="spoiler-wrapper" />')
			.parent()
			.prepend(
				$('<div class="spoiler_title">')
					.click(function() {
						$(this).parent().toggleClass('spoiler-expanded');
						$(this).next('.detrollizer').slideToggle();
					})
					.text(settings.text)
				)
		return this;
	};
})(jQuery);

Nový skriptík, který používá upravený tag spoiler místo skrývání celých příspěvků...

You da real MVP.

Je to zvláštní, ale zatím jsem si tam přidal jen jedno jméno. Nesouhlasím tu s celou řadou názorů ale opravdu sejří mě jen jeden člověk. Koneckonců od debaty člověk očekává, že se budou střetávat protichůdné názory a nebude se jen souhlasně mručet, žeáno. Od toho je Ulhánův blog a jemu podobné.

Detrollizer 1.2 :-)

changelog:
+ opravena funkčnost detrollizace při stránkování v debatách
+ opravena funkčnost detrollizovaní příspěvku, který už obsahoval tag spoiler


// ==UserScript==
// @name        debaty.net
// @namespace   debaty
// @description Skryti prispevku vybranych uzivatelu na debaty.net
// @include     http://debaty.net/*
// @version     1.2
// @grant       none
// ==/UserScript==

// type usernames to hide 
var blockedUsers = ["MaSo"];

$(document).ready(function() {
    hideBlockedUsers();
});

$(document).ajaxComplete(function() {
    hideBlockedUsers();
});

function hideBlockedUsers() {       
    //hide threads
    $('.text-overflow').each(function(i, obj) {
       var nickElement = $(this).find('a:first');
       var nick = nickElement.html();
        if (isBlocked(nick)) {
          nickElement.parent().parent().css('display', 'none');
        }
    }); 
    
    // hide posts
    $('.details small:first-child').each(function(i, obj) {
        var nickElement = $(this).find('a:first');
        var nick = nickElement.html();
        if (isBlocked(nick)){
            var postElement = nickElement.parent().parent().parent().find('div:first');
            var postContent = postElement.html();
            
            // post has spoiler
            if(postElement.find('div.spoiler').length != 0) {
                postContent = postElement.find('div.spoiler').html();
            }
            postElement.html(detrollizePostContent(postContent))            
        }	
    });
    
    $('div.detrollizer').detrollize();   
}

function isBlocked(login) {
    for (var i = 0 ; i < blockedUsers.length; i++){
        if (blockedUsers[i] === login) {
            return true;
        }
    } 
    return false;
}

function detrollizePostContent(content) {
  return '<div class="detrollizer" style="display : none">' + content + '</div>'
}

(function($) {
	$.fn.detrollize = function(settings) {
		settings = jQuery.extend({
			text: 'Detrollized!'
		},settings);
		this
			.wrap('<div class="spoiler-wrapper" />')
			.parent()
			.prepend(
				$('<div class="spoiler_title">')
					.click(function() {
						$(this).parent().toggleClass('spoiler-expanded');
						$(this).next('.detrollizer').slideToggle();
					})
					.text(settings.text)
				)
		return this;
	};
})(jQuery);

Možná jsem to rozbil já, ale v Chrome, v Tampermonkey nefunguje ta fce spoileru. Příspěvky detrollizovaných tro(t)llů jsou prázdné. Ne, že by mě nakonec zajímalo, co píšou, já jen že hlásit se to musí, když to nefunguje.

Každopádně dík. Sbohem některým jedincům.
EDIT: A kdyby šlo doladit, aby po detrollených jedincích nezůstávala +1 pokud napíšou příserek...bylo by to báječné.

A kto urcit kto je trol a kto nie? Zopar jednicov sme tu uz idstranili, ale vo vseobecnosti by vlastnost debat mala byt hlavne volnost konfrontacie.
Idealna moznost ako znicit trola je nereagovat nanho, oni v drvivej vacsine potrebuju konfrontaciu a reakcie, inak stracaju zaujem.
Preto sme tu mali pekny obrazok, ze nekrmte trolla a toho sa treba drzat.

Zpět do debat Přispět do debaty Nahoru