jsTree e jQuery

Pesquisar este blog

Contribua

Te ajudei? Quer retribuir? PIX de qualquer quantia.

JavaScript para Tampermonkey - Revelador de texto rot13

// -----------------------------------------------------------------------
// ==UserScript==
// @name        Revelador de texto rot13
// @description Decodifica texto que está entre rot13-start e rot13-end
// @version     0.6
// @author      Wellington Gomes dos Santos
// @match       *://*/*
// @grant       none
// @run-at document-end
// ==/UserScript==
(function() {
    const NAO = -1;
    const tokenInicio = "rot13-start";
    const tokenFim = "rot13-end";

    // Obtém todo o conteúdo HTML da página
    let html = document.body.innerHTML;

    let existeTextoParaDecodificar = html.indexOf(tokenInicio);
    if(existeTextoParaDecodificar === NAO){
        return;
    }

    // Procura texto entre "rot13-start" e "rot13-end"
    let start = html.indexOf(tokenInicio);
    let end = html.indexOf(tokenFim);

    // Cria um array para armazenar os elementos img
    const textoArray = [];

    while (start >= 0 && end >= 0) {
        // Obtém o texto codificado entre os pontos de início e fim
        let textoCodificado = html.substring(start, end);

        // Remove o token a esquerda
        textoCodificado = textoCodificado.slice(tokenInicio.length);

        // Decodifica
        let texto = rot13(textoCodificado)

        // Remove espaços
        texto = texto.trim();

        // Adiciona o texto ao array
        textoArray.push(texto);

        // Encontra o próximo ponto de início e término
        start = html.indexOf(tokenInicio, end);
        end = html.indexOf(tokenFim, start);
    }

    //for (var i = 0; i < textoArray.length; i++) {
    for (var i = textoArray.length - 1; i >= 0; i--) {

        // ---------------
        // DIV
        // ---------------
        var div = document.createElement("div");
        //Bordas
        div.style.border = "1px solid black";
        div.style.borderLeft = "1px solid white";
        //Margens
        div.style.marginTop = "20px";
        div.style.marginBottom = "20px";
        //Centraliza
        div.style.width = "50%";
        div.style.marginLeft = "25%";
        div.style.marginRight = "25%";

        //Texto decodificado
        var texto = document.createTextNode(textoArray[i]);
        div.appendChild(texto);

        const body = document.getElementsByTagName('body')[0];
        body.insertBefore(div, body.firstChild);

    }

    // Função para decodificar a mensagem usando rot13
    function rot13(str) {
        var result = "";
        for (var i = 0; i < str.length; i++) {
            var charCode = str.charCodeAt(i);
            if (charCode >= 65 && charCode <= 90) {
                // Caracter maiúsculo
                result += String.fromCharCode(((charCode - 65 + 13) % 26) + 65);
            } else if (charCode >= 97 && charCode <= 122) {
                // Caracter minúsculo
                result += String.fromCharCode(((charCode - 97 + 13) % 26) + 97);
            } else {
                // Outros caracteres permanecem inalterados
                result += str.charAt(i);
            }
        }
        return result;
    }

})();

Nenhum comentário:

Postar um comentário