Bypass Question Crypt

Make text readable to AI and search engines

当前为 2024-06-05 提交的版本,查看 最新版本

// ==UserScript==
// @name         Bypass Question Crypt
// @namespace    http://tampermonkey.net/
// @version      1.2.1
// @description  Make text readable to AI and search engines
// @author       @dsvl0
// @match        https://docs.google.com/forms/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=google.com
// @grant        none
// @license MIT
// ==/UserScript==

var TotalAwnsers=[];
var CurerntAwnser=-1;
var Awnsers=[];
var Descriptions=[];
let canAutoFill = true;


let library = {
    'з0': '30',
    'з1': '31',
    'з2': '32',
    'з3': '33',
    'з4': '34',
    'з5': '35',
    'з6': '36',
    'з7': '37',
    'з8': '38',
    'з9': '39',
    'вIоS': 'BIOS'
}



function WordsLibrary(sentense){
    let words = sentense.split(' ')
    let new_sentense = '';
    let allKeys = Object.keys(library);
    for (let i=0; i<words.length; i++){
        let word = words[i]

        let worldInLibrary = library[word];
        if (worldInLibrary === undefined){worldInLibrary=word}

        //console.log('before cleaning: ',worldInLibrary)
        //for (let key=0; key<allKeys.length; key++){
        //    console.log(worldInLibrary+'.replaceAll('+allKeys[key]+','+library[key]+')')
        //    worldInLibrary=worldInLibrary.replaceAll(allKeys[key], library[key])
        //}
        //console.log('after cleaning: ',worldInLibrary)


        new_sentense += worldInLibrary + ' '
    }
    console.log(new_sentense)
    return new_sentense

}




function CreateSettingsIfNotCreated(){
    if (document.querySelector('.md0UAd') !== null){
        if (document.getElementById('ByPassAutoText') === null){
            //Автоматически заполнять эту страницу
            let set = document.createElement('input');
            set.type='checkbox'
            set.id='ByPassAutoText'
            let text = document.createElement('label')
            text.textContent = 'Автоматически заполнять эту страницу (Bypass Tsoi Crypt)'
            text.setAttribute("for", "ByPassAutoText");
            document.querySelector('.md0UAd').after(set)
            set.checked = localStorage.getItem('BTSCByPassAutoText') !== null

            let ClearData = document.createElement('button')
            ClearData.textContent = 'Очистить записанные данные входа Bypass Tsoi Crypt'
            ClearData.style='background: #009100; color: #fff; border-radius: 5px; margin-top: 3px; padding: 8px; cursor: pointer; border: solid 2px green';

            set.after(text)
            text.after(ClearData)

            set.addEventListener('change', function() {
                if (this.checked) {
                    localStorage.setItem('BTSCByPassAutoText', 1)
                } else {
                    localStorage.removeItem('BTSCByPassAutoText', 1)
                }
            })

            ClearData.addEventListener('click', function() {
                let conftxt = 'Очистить данные для авто-заполнения? Страница будет перезагружена';
                if (confirm(conftxt)){
                    localStorage.removeItem("BPSForEmail")
                    localStorage.removeItem("BPSName")
                    localStorage.removeItem("BPSGroup");
                    canAutoFill = false;
                    location.reload();
                }
            })
        }
    }
}


function setUserInput(inputElement, value) {
    inputElement.value = value;
    var inputEvent = new Event('input', { bubbles: true });
    inputElement.dispatchEvent(inputEvent);
}


let WaitingTimes = 8;
let previos_checkbox = null;
function SaveAccount(){
    CreateSettingsIfNotCreated()
    if (document.querySelector('span.EbMsme') !== null && document.querySelector('.md0UAd') !== null && canAutoFill && localStorage.getItem('BTSCByPassAutoText') !== null){
        let settings = {
            forEmail: localStorage.getItem("BPSForEmail"),
            name: localStorage.getItem("BPSName"),
            group: localStorage.getItem("BPSGroup")
        }
        let group = document.querySelectorAll('.d7L4fc');
        let v = 0;
        let group_position = null;
        group.forEach(i => {
            if (i.childNodes[0].getAttribute('aria-checked') === 'true'){
                group_position = v
            }
            v++;
        })


        if (document.querySelector('input.whsOnd.zHQkBf').value === '' && settings.name !== null && WaitingTimes > 10){
            setUserInput(document.querySelector('input.whsOnd.zHQkBf'), settings.name);
            WaitingTimes = 0;
        } else if (document.querySelector('input.whsOnd.zHQkBf').value === '') {WaitingTimes++}
        if (group_position===null && settings.group !== null){
            if (group[Number(settings.group)].children[0].getAttribute('aria-checked') === 'false'){
                group[Number(settings.group)].click()
            }
        }

        if (document.querySelector('.rq8Mwb').parentElement.getAttribute('aria-checked') !== 'true'){
            document.querySelector('.rq8Mwb').click()
        }


        localStorage.setItem("BPSForEmail", document.querySelector('span.EbMsme').textContent)
        if (document.querySelector('input.whsOnd.zHQkBf').value !== ''){localStorage.setItem("BPSName", document.querySelector('input.whsOnd.zHQkBf').value)}
        if (group_position !== null){localStorage.setItem("BPSGroup", group_position)}
    }
}


function Low(txt){
    txt=txt.replaceAll("А","а").replaceAll("А","а");
    txt=txt.replaceAll("Б","б").replaceAll("Б","б");
    txt=txt.replaceAll("В","в").replaceAll("В","в");
    txt=txt.replaceAll("Г","г").replaceAll("Γ","г");
    txt=txt.replaceAll("Д","д");
    txt=txt.replaceAll("Е","е").replaceAll("E","е");
    txt=txt.replaceAll("Ё","ё");
    txt=txt.replaceAll("Ж","ж");
    txt=txt.replaceAll("З","з").replaceAll("З","з");
    txt=txt.replaceAll("И","и").replaceAll("И","и");
    txt=txt.replaceAll("Й","й").replaceAll("Й","й");
    txt=txt.replaceAll("К","к").replaceAll("К","к");
    txt=txt.replaceAll("Л","л");
    txt=txt.replaceAll("М","м");
    txt=txt.replaceAll("Н","н").replaceAll("Н","н");
    txt=txt.replaceAll("О","о").replaceAll("О","о");
    txt=txt.replaceAll("П","п").replaceAll("Π","п");
    txt=txt.replaceAll("Р","р");
    txt=txt.replaceAll("С","с");
    txt=txt.replaceAll("Т","т").replaceAll("Т","т");
    txt=txt.replaceAll("У","у");
    txt=txt.replaceAll("Ф","ф");
    txt=txt.replaceAll("Х","х");
    txt=txt.replaceAll("Ц","ц");
    txt=txt.replaceAll("Ч","ч");
    txt=txt.replaceAll("Ш","ш");
    txt=txt.replaceAll("Щ","щ");
    txt=txt.replaceAll("Ъ","ъ");
    txt=txt.replaceAll("Ы","ы").replaceAll("Ы","ы");
    txt=txt.replaceAll("Ь","ь");
    txt=txt.replaceAll("Э","э");
    txt=txt.replaceAll("Ю","ю");
    txt=txt.replaceAll("Я","я");

    return txt;

}




function AnalyzeText(){

    console.clear()
    const PointsCount = document.querySelectorAll('.nUvMO.FUQCPb')
    for (const item of PointsCount){
        item.style.display="none";
    }


    const span = [...document.querySelectorAll('.M7eMe'), ...document.querySelectorAll('span.aDTYNe.snByac.OvPDhc.OIC90c'), ...document.querySelectorAll(".ulDsOb"), ...document.querySelectorAll(".F9yp7e.ikZYwf.LgNcQe")];


    for (const element of span){
        let res = element.textContent;

        res = res.replaceAll("A", "А");
        res = res.replaceAll("a", "а");
        res = res.replaceAll("B", "В");
        res = res.replaceAll("C", "С");
        res = res.replaceAll("c", "с");
        res = res.replaceAll("K", "К");
        res = res.replaceAll("k", "к");
        res = res.replaceAll("Λ", "Л");
        res = res.replaceAll("M", "М");
        res = res.replaceAll("m", "м");
        res = res.replaceAll("H", "Н");
        res = res.replaceAll("h", "н");
        res = res.replaceAll("P", "Р");
        res = res.replaceAll("p", "р");

        res = res.replaceAll("3", "З");
        res = res.replaceAll("O", "О");
        res = res.replaceAll("X", "Х");
        res = res.replaceAll("T", "Т");


        res = res.replaceAll("∅", "0");
        res = res.replaceAll("ᛐ", "1");

        res=res[0]+(Low(res.slice(1,res.length)));
        //element.textContent=WordsLibrary(res);
        element.textContent = res
    }

    //ReshTheAwnsers()

    //setTimeout(AnalyzeText, 2000);


}



(function() {

    window.reanalyze = function(){
        AnalyzeText()
    }
    setInterval(SaveAccount, 200)
    setTimeout(function () { AnalyzeText(); }, 1000);

})();