Show random verification time

show random verification time

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey, Greasemonkey of Violentmonkey.

Voor het installeren van scripts heb je een extensie nodig, zoals {tampermonkey_link:Tampermonkey}.

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey of Violentmonkey.

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey of Userscripts.

Voor het installeren van scripts heb je een extensie nodig, zoals {tampermonkey_link:Tampermonkey}.

Voor het installeren van scripts heb je een gebruikersscriptbeheerder nodig.

(Ik heb al een user script manager, laat me het downloaden!)

Voor het installeren van gebruikersstijlen heb je een extensie nodig, zoals {stylus_link:Stylus}.

Voor het installeren van gebruikersstijlen heb je een extensie nodig, zoals {stylus_link:Stylus}.

Voor het installeren van gebruikersstijlen heb je een extensie nodig, zoals {stylus_link:Stylus}.

Voor het installeren van gebruikersstijlen heb je een gebruikersstijlbeheerder nodig.

Voor het installeren van gebruikersstijlen heb je een gebruikersstijlbeheerder nodig.

Voor het installeren van gebruikersstijlen heb je een gebruikersstijlbeheerder nodig.

(Ik heb al een beheerder - laat me doorgaan met de installatie!)

// ==UserScript==
// @name                Show random verification time
// @namespace           https://greatest.deepsurf.us/users/821661
// @match               https://*.superau.la/*
// @grant               none
// @version             1.0
// @require             https://update.greatest.deepsurf.us/scripts/526417/1540623/USToolkit.js
// @author              hdyzen
// @description         show random verification time
// @license             GPL-3.0-only
// ==/UserScript==

function waitElement(selector) {
    return new Promise((resolve, reject) => {
        const callback = () => {
            const target = document.querySelector(selector);
            if (target) resolve(target);
        };

        const observer = new MutationObserver(callback);

        observer.observe(document.body, {
            childList: true,
            subtree: true,
        });
    });
}

async function init() {
    try {
        const dataFutura = new Date(JSON.parse(localStorage.getItem("db-v6")).CurrentSession.AulaEmAndamento.ValidacaoAleatoria.CandidatoConvocacoes[0].HoraConvocacaoAleatoria);
        const restante = await waitElement(".chat__header__title:has(> :nth-child(2))");
        const aleatoria = document.createElement("span");
        aleatoria.style.marginLeft = "6px";
        restante.appendChild(aleatoria);

        const intervalo = setInterval(() => {
            const agora = new Date();
            const tempoRestante = dataFutura - agora;

            if (tempoRestante <= 0) {
                clearInterval(intervalo);
                console.log("A data futura foi alcançada!");
            } else {
                const segundos = Math.floor((tempoRestante / 1000) % 60);
                const minutos = Math.floor((tempoRestante / (1000 * 60)) % 60);
                const horas = Math.floor((tempoRestante / (1000 * 60 * 60)) % 24);

                aleatoria.textContent = `• ${horas}h${minutos}m${segundos}s`;
                // console.log(`${horas}h${minutos}m${segundos}s`);
            }
        }, 1000);
    } catch (error) {
        console.error("Error: ", error);
    }
}
init();