Greasy Fork is available in English.

Edna.cz Cenzura Pohádkářů

Skryje komentáře pohádkářů

Verze ze dne 14. 02. 2016. Zobrazit nejnovější verzi.

// ==UserScript==
// @name        Edna.cz Fabricators Censorship
// @name:cs     Edna.cz Cenzura Pohádkářů
// @namespace   edna.cenzura.pohadkaru
// @description Skryje komentáře pohádkářů
// @description:cs Skryje komentáře pohádkářů
// @include     http://*edna.cz/*
// @version     1.0.0
// @grant       GM_getValue
// @grant       GM_setValue
// ==/UserScript==

var pohadkari = /(Locker|Sc.narista.s.velk.m.s)/gi;
var censoreEnabled = false;
var deleteEntireBox = false;

loadSettings();

var box = document.getElementsByClassName('comment');
var parent = document.getElementById("comments");

// Include settings
var sNode       = document.createElement ('div');
sNode.setAttribute ('style', 'display: block; margin: 20px 0; text-align: center;');
sNode.setAttribute ('id', 'cp_form');
sNode.setAttribute ('class', 'cp_form');
var name = document.createElement ('h2');
name.innerHTML = "Edna.cz Cenzura Pohádkářů";
var form = document.createElement ('form');
var hidelabel = document.createElement('label');
hidelabel.innerHTML = "Skrýt komentáře";
var hide = document.createElement ('input');
var censlabel = document.createElement('label');
censlabel.innerHTML = "Cenzurovat komentáře";
var censore = document.createElement ('input');
var save = document.createElement ('input');
censore.setAttribute("type", "checkbox");
censore.setAttribute("name", "censoreposts");
censore.checked = censoreEnabled;
censore.addEventListener("click", setHideEnabled, false);

hide.setAttribute("type", "checkbox");
hide.setAttribute("name", "hideposts");
hide.checked = deleteEntireBox;
hide.disabled = !censoreEnabled;

save.setAttribute("type", "submit");
save.setAttribute("name", "Uložit");
//save.setAttribute("onClick", "javascript: saveSettings();");
save.addEventListener("click", saveSettings, false);
form.appendChild(censlabel);
form.appendChild(censore);
form.appendChild(document.createElement('br'));
form.appendChild(hidelabel);
form.appendChild(hide);
form.appendChild(document.createElement('br'));
form.appendChild(save);
sNode.appendChild(name);
sNode.appendChild(form);

parent.parentNode.insertBefore(sNode, parent);

// Process comments
if (censoreEnabled && box.length > 0) {
    var counter = 0;
    for (i = 0; i < box.length; i++) {
        var title = box[i].getElementsByClassName('img-box')[0].innerHTML;
        var comment = box[i].getElementsByClassName('text-box')[0];
        if (title.match(pohadkari) !== null) {
          var text = stripTags(comment.innerHTML);
          counter++;
          comment.innerHTML = "<span title=\""+text+"\"><font color=\"red\">POHÁDKÁŘŮV KOMENTÁŘ VYMAZÁN ("+text.length+" znaků)</font></span>";
          if (deleteEntireBox) {
              var parentNode = box[i].parentNode;
              parentNode.removeChild(box[i]);
          }
        }
    }
    // add notification
    if (counter > 0) {
        var zNode       = document.createElement ('div');
        zNode.setAttribute ('style', 'display: block; margin: 20px 0; text-align: center;');
        zNode.setAttribute ('id', 'notification');
        zNode.setAttribute ('class', 'comment');
        var notif = document.createElement ('p');
        notif.innerHTML = deleteEntireBox ? 'Odstraněno' : 'Skryto';
        notif.innerHTML += ' '+counter+' komentářů od pohádkářů.';
        notif.setAttribute ('style', 'color: red; text-align:center');
        zNode.innerHTML += notif.outerHTML;
        parent.insertBefore(zNode, box[box.length-1].nextSibling);
    }
}

function stripTags(text) {
    return text.replace(/<[^>]+>/gi, "");
}

function saveSettings() {
    console.log ("Saving..");
    GM_setValue("censoreEnabled", censore.checked);
    GM_setValue("deleteEntireBox", hide.checked);
}

function loadSettings() {
    console.log("Loading..");
    censoreEnabled = GM_getValue("censoreEnabled", false);
    deleteEntireBox = GM_getValue("deleteEntireBox", false);
}

function setHideEnabled() {
    hide.disabled = !censore.checked;
    if (!censore.checked) hide.checked = false;
}