Greasy Fork 支持简体中文。

Void Coin (autof)

https://autofaucet.org/earn/faucet

// ==UserScript==
// @version      2.0
// @match        https://*/recaptcha/*
// @match        https://*.hcaptcha.com/*hcaptcha-challenge*
// @match        https://*.hcaptcha.com/*checkbox*
// @match        https://*.hcaptcha.com/*captcha*
// @grant        none
// @license MIT
// @name         Void Coin (autof)
// @namespace    https://greasyfork.org/en/users/1295753-sr-fox
// @description  https://autofaucet.org/earn/faucet
// @description  https://voidkiller1.github.io/CriptoVoid/
// @author       Sr.Fox
// @match       https://autofaucet.org/earn/faucet*
// ==/UserScript==

// Função para clicar no botão usando XPath
function clicarBotaoPorXPath(xpath) {
    var elemento = document.evaluate(xpath, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
    if (elemento) {
        elemento.click();
        console.log("Clique realizado no botão usando XPath: " + xpath);
    } else {
        console.log("Botão não encontrado usando XPath: " + xpath);
    }
}

// Função para criar o cronômetro
function criarCronometro() {
    var cronometro = document.createElement('div');
    cronometro.id = 'cronometro';
    cronometro.style.position = 'fixed';
    cronometro.style.top = '10px';
    cronometro.style.left = '50%';
    cronometro.style.transform = 'translateX(-50%)';
    cronometro.style.padding = '10px';
    cronometro.style.backgroundColor = '#222';
    cronometro.style.color = '#fff';
    cronometro.style.fontSize = '20px';
    cronometro.style.borderRadius = '5px';
    cronometro.style.zIndex = '9999';
    document.body.appendChild(cronometro); // Adicionar ao corpo da página
    console.log("Cronômetro criado e adicionado à página.");
    return cronometro;
}

// Função para atualizar o cronômetro
function atualizarCronometro(tempoRestante) {
    var cronometro = document.getElementById('cronometro');
    if (cronometro) {
        var minutos = Math.floor(tempoRestante / 60000);
        var segundos = Math.floor((tempoRestante % 60000) / 1000);
        cronometro.textContent = `Recarregando em: ${minutos}m ${segundos}s`;
    }
}

// Função para forçar o recarregamento da página
function recarregarPagina() {
    console.log("Recarregando a página...");
    window.location.reload();
}

// Função para verificar se o botão já está disponível e clicar nele
function verificarBotaoEClicar(xpath) {
    var tentativas = 0;
    var intervaloVerificacao = setInterval(function() {
        var botao = document.evaluate(xpath, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
        if (botao) {
            clearInterval(intervaloVerificacao); // Parar a verificação quando o botão for encontrado
            botao.click();
            console.log("Botão encontrado e clicado após a recarga.");
        } else if (tentativas >= 30) {
            clearInterval(intervaloVerificacao); // Parar após 30 tentativas
            console.log("Botão não encontrado após 30 tentativas.");
        }
        tentativas++;
    }, 1000); // Verificar a cada 1 segundo
}

// Função principal com lógica refinada
(function() {
    'use strict';

    // Definir o XPath do botão
    const XPATH_BOTAO = '/html/body/div[1]/div[9]/div[3]/div[2]/div[3]/div[3]/form/button';
    const INTERVALO_RECARREGAMENTO = 300000; // 5 minutos em milissegundos
    const TEMPO_CLICAR_APOS_RECARREGAMENTO = 10000; // 10 segundos após a página ser recarregada
    const TEMPO_CLICAR_EM_4_49 = 289000; // 4 minutos e 49 segundos em milissegundos

    // Criar o cronômetro na página
    var cronometro = criarCronometro();
    var tempoRestante = INTERVALO_RECARREGAMENTO; // Tempo inicial de 5 minutos

    // Função para realizar a operação de recarregar e clicar no botão
    function operacao() {
        console.log("Iniciando nova operação...");

        // Atualizar o cronômetro a cada segundo
        var intervaloCronometro = setInterval(function() {
            tempoRestante -= 1000;
            atualizarCronometro(tempoRestante);

            // Clicar no botão quando o cronômetro atingir 4:49 (289 segundos restantes)
            if (tempoRestante <= TEMPO_CLICAR_EM_4_49 && tempoRestante > (TEMPO_CLICAR_EM_4_49 - 1000)) {
                clicarBotaoPorXPath(XPATH_BOTAO);
                console.log("Botão clicado porque o cronômetro chegou a 4:49.");
            }

            if (tempoRestante <= 0) {
                clearInterval(intervaloCronometro);

                // Recarregar a página
                recarregarPagina();

                // Após a recarga, esperar 10 segundos e verificar se o botão está presente
                setTimeout(function() {
                    verificarBotaoEClicar(XPATH_BOTAO);
                }, TEMPO_CLICAR_APOS_RECARREGAMENTO);
            }
        }, 1000);
    }

    // Iniciar o ciclo de operação a cada 5 minutos
    operacao(); // Executar imediatamente a primeira vez
    setInterval(operacao, INTERVALO_RECARREGAMENTO);

})();