Greasy Fork

Greasy Fork is available in English.

Resaltador

Resalta los mensajes que contengan ciertas palabras en el chat de kongregate.com.

目前为 2016-06-18 提交的版本,查看 最新版本

// ==UserScript==
// @name         Resaltador
// @namespace    Klatu
// @version      5
// @description  Resalta los mensajes que contengan ciertas palabras en el chat de kongregate.com.
// @author       Klatu
// @match        http://www.kongregate.com/games/*/*
// @grant        none
// ==/UserScript==

//a menos que se especifique lo contrario, podés editar de acá...
var COLOR_FONDO='purple',  //el script acepta los colores que acepta CSS, es decir, colores en los siguientes formatos: 'color' siendo color el nombre de un color en inglés,
    COLOR_TEXTO='white',   //'#RGB' o '#RRGGBB' siendo R, G y B números del 0 al 9 o letras de la a a la f, 'rgb(R, G, B)' siendo R, G y B números del 0 al 255 y
    COLOR_USUARIO='white', //'rgba(R, G, B, A)' siendo R, G y B números del 0 al 255 y A siendo un número del 0 al 1
    COLOR_TIMESTAMP='white',
    COLOR_REPLY='#DDD';

window.klatu=window.klatu||{}; //no editar
klatu.VACIAR_COMPLETAMENTE=false;
//hasta acá

klatu.style=klatu.style||document.createElement('style');
klatu.style.innerHTML+=
    '.resaltado{'+
    '    color:'+COLOR_TEXTO+' !important;'+
    '    background-color:'+COLOR_FONDO+' !important;'+
    '}'+
    '.resaltado .chat_message_window_username{'+
    '    color:'+COLOR_USUARIO+' !important;'+
    '}'+
    '.resaltado .reply_link{'+
    '    color:'+COLOR_REPLY+' !important;'+
    '}'+
    '.resaltado .timestamp {'+
    '    color:'+COLOR_TIMESTAMP+' !important;'+
    '}';

ChatDialogue.prototype.displayUnsanitizedMessageAntesDeResaltador=ChatDialogue.prototype.displayUnsanitizedMessage;
ChatDialogue.prototype.displayUnsanitizedMessage=function(a,b,c,d){
    var resaltar=false, i, mensajeEnMinusculas=b.toLowerCase();
    for(i=0; i<klatu.palabrasAResaltar.length; i++){
        if(a!=active_user.username()&&!d.private&&mensajeEnMinusculas.indexOf(klatu.palabrasAResaltar[i])!=-1){
            if(c.class) c.class+=' resaltado';
            else c.class='resaltado';
            break;
        }
    }
    this.displayUnsanitizedMessageAntesDeResaltador(a,b,c,d);
};

addEventListener('load', function(){
    klatu.PALABRAS_INICIALES_A_RESALTAR=active_user.username(); //separar por ', '

    klatu.palabrasAResaltar=(localStorage.klatuPalabrasAResaltar||klatu.PALABRAS_INICIALES_A_RESALTAR).toLowerCase().split(', ');
    localStorage.klatuPalabrasAResaltar=klatu.palabrasAResaltar.join(', ');
    document.head.appendChild(klatu.style);
    holodeck.addChatCommand('agregarapodos', function(a, b){
        var apodos=b.substring(('/agregarapodos ').length).split(', ');
        klatu.palabrasAResaltar=Array.prototype.concat(klatu.palabrasAResaltar, apodos);
        localStorage.klatuPalabrasAResaltar=klatu.palabrasAResaltar.join(', ');
        return!1;
    });
    holodeck.addChatCommand('quitarapodos', function(a, b){
        var i, apodos=b.substring(('/quitarapodos ').length).split(', ');
        for(i=0; i<apodos.length; i++) klatu.palabrasAResaltar.splice(klatu.palabrasAResaltar.indexOf(apodos[i]), 1);
        localStorage.klatuPalabrasAResaltar=klatu.palabrasAResaltar.join(', ');
        return!1;
    });
    holodeck.addChatCommand('sacarapodos', function(a, b){
        var i, apodos=b.substring(('/sacarapodos ').length).split(', ');
        for(i=0; i<apodos.length; i++) klatu.palabrasAResaltar.splice(klatu.palabrasAResaltar.indexOf(apodos[i]), 1);
        localStorage.klatuPalabrasAResaltar=klatu.palabrasAResaltar.join(', ');
        return!1;
    });
    holodeck.addChatCommand('vaciarapodos', function(a, b){
        klatu.palabrasAResaltar=klatu.VACIAR_COMPLETAMENTE?[]:klatu.PALABRAS_INICIALES_A_RESALTAR.split(', ');
        localStorage.klatuPalabrasAResaltar=klatu.VACIAR_COMPLETAMENTE?undefined:klatu.PALABRAS_INICIALES_A_RESALTAR;
        return!1;
    });
});