cberlanga / RePePe Block

// ==UserScript==
// @name         RePePe Block
// @license MIT
// @namespace    http://tampermonkey.net/
// @version      1.0.0.3
// @description  bloquea usuarios del foro de Ogame
// @author       Pepe Bono
// @match        https://board.es.ogame.gameforge.com/index.php/Thread/*
// @grant        GM.setValue
// @grant        GM.getValue
// @updateURL https://openuserjs.org/meta/cberlanga/RePePe_Block.meta.js
// @downloadURL https://openuserjs.org/src/scripts/cberlanga/RePePe_Block.user.js
// ==/UserScript==

(function() {
    'use strict';
    var style=document.createElement("link");
    style.rel="stylesheet";
    style.type="text/css";
    style.href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css";
    document.head.appendChild(style);
    var bloqueados = [];
    if (!localStorage.getItem('RPPB_bloqueados')){
        localStorage.setItem('RPPB_bloqueados',JSON.stringify(bloqueados));
    }else{
        bloqueados = JSON.parse(localStorage.getItem('RPPB_bloqueados'));
    }
    var botonListaBloqueados = '<li id="btnListaBloqueados" data-count="'+bloqueados.length+'"><a><span class="icon"><i class="fa fa-ban"> </i></span><span> Bloqueados (<span id="RPPB_bloqueados_numBloqueados">'+bloqueados.length+'</span>)</span></a></li>';
    $('ul.userPanelItems').append(botonListaBloqueados);
    $('#btnListaBloqueados').click(function(){
        crearMenuConf();
    });
    $('article').each(function(){
        var idUsuario = $(this).find('.username').find('a').attr('data-user-id');
        var nickUsuario = $(this).find('.username').find('a').find('span').text();
        var botonBloquear = '<i class="fa fa-ban rppblock" nick="'+nickUsuario+'" idUsuario="'+idUsuario+'"></i>';
        $(this).find('.username').append(botonBloquear);
        /*if (bloqueados.filter(unBloqueado => unBloqueado.id === idUsuario).length > 0){$(this).html('POST BANEADO');}*/
    });
    limpiarPosts();
    $('.rppblock').click(function(){
        var nick = $(this).attr('nick');
        var id = $(this).attr('idUsuario');
        var usuarioBloqueado = {
            id:id,
            nick:nick
        };
        agregarBloqueado(usuarioBloqueado);
        limpiarPosts();
    });
})();
function agregarBloqueado (usuarioBloqueado){
    var bloqueados = JSON.parse(localStorage.getItem('RPPB_bloqueados'));
    bloqueados.push(usuarioBloqueado);
    localStorage.setItem('RPPB_bloqueados',JSON.stringify(bloqueados));
    actualizarNumBloqueados();
}
function limpiarPosts(){
    var bloqueados = JSON.parse(localStorage.getItem('RPPB_bloqueados'));
    $(bloqueados).each(function(indice,unBloqueado){
        console.log($(".quoteBoxAuthor [data-user-id="+unBloqueado.id+"]").attr('data-user-id'));
        //$(".quoteBoxAuthor [data-user-id="+unBloqueado.id+"]").attr('data-user-id','r')
        console.log($(".quoteBoxAuthor [data-user-id="+unBloqueado.id+"]").parents('.quoteBoxAuthor').remove());
        $("li [data-user-id='"+unBloqueado.id+"']").remove();
    });
}
function crearMenuConf(){
    var bloqueados = JSON.parse(localStorage.getItem('RPPB_bloqueados'));
    console.log('desplegable bloqueados');
    var coordenadas = $('#btnListaBloqueados').offset();
    console.log(coordenadas);
    var menuBloqueados = '<div class="dropdownMenuContainer"><div class="interactiveDropdown interactiveDropdownStatic interactiveDropdownUserMenu open" style="left: '+coordenadas.left+'px; top: 40px;">';
    menuBloqueados += '<div class="interactiveDropdownHeader"><span class="interactiveDropdownTitle">Panel de control</span></div>';
    menuBloqueados += '<div class="interactiveDropdownItemsContainer">';
    menuBloqueados += '<ul class="interactiveDropdownItems interactiveDropdownItemsUserMenu">';
    if(bloqueados.length >0){
        $(bloqueados).each(function(indice,unUsuario){
            menuBloqueados += '<li class="interactiveDropdownUserMenuItem">';
            menuBloqueados += '<div class="box32">';
            menuBloqueados += '<div>';
            menuBloqueados += '<span class="icon icon32 fa-user"></span>';
            menuBloqueados += '</div>';
            menuBloqueados += '<div class="containerHeadline">';
            menuBloqueados += '<h3>'+unUsuario.nick+'</h3>';
            menuBloqueados += '<ul class="interactiveDropdownUserMenuLinkList">';
            menuBloqueados += '<li><a name="desbloquearUsuario" idUsuario="'+unUsuario.nick+'" indice="'+indice+'">Desbloquear<a></li>';
            menuBloqueados += '</ul>';
            menuBloqueados += '</div>';
            menuBloqueados += '</div>';
            menuBloqueados += '</li>';
        });}else{
            menuBloqueados += '<li class="interactiveDropdownUserMenuItem">';
            menuBloqueados += '<div class="box32">';
            menuBloqueados += '<div>';
            menuBloqueados += '<span class="icon icon32 fa-user"></span>';
            menuBloqueados += '</div>';
            menuBloqueados += '<div class="containerHeadline">';
            menuBloqueados += '<h3>No tienes usuarios Bloqueados</h3>';
            menuBloqueados += '<ul class="interactiveDropdownUserMenuLinkList">';
            menuBloqueados += '<li><a><a></li>';
            menuBloqueados += '</ul>';
            menuBloqueados += '</div>';
            menuBloqueados += '</div>';
            menuBloqueados += '</li>';
        }
    menuBloqueados += '</ul>';
    menuBloqueados += '</div>';
    menuBloqueados += '</div></div>';
    $('body').append(menuBloqueados);
    $('[name=desbloquearUsuario]').click(function(){
        bloqueados.splice($(this).attr('indice'),1);
        localStorage.setItem('RPPB_bloqueados',JSON.stringify(bloqueados));
        window.location.reload();
    });
}
function actualizarNumBloqueados(){
    var bloqueados = JSON.parse(localStorage.getItem('RPPB_bloqueados'));
    $("#RPPB_bloqueados_numBloqueados").text($(bloqueados).length)
};