Cryptofuture auto faucet (not working)

Automatically Login and Click Faucet on Cryptofuture

このスクリプトの質問や評価の投稿はこちら通報はこちらへお寄せください。
// ==UserScript==
// @name         Cryptofuture auto faucet (not working)
// @namespace    bekerja pada tampermonkey maupun violentmonkey
// @version      0.7
// @description  Automatically Login and Click Faucet on Cryptofuture
// @author       Ojo Ngono
// @grant        GM_getValue
// @grant        GM_setValue
// @grant        GM_addStyle
// @grant        GM_registerMenuCommand
// @require      https://update.greasyfork.org/scripts/439099/1203718/MonkeyConfig%20Modern%20Reloaded.js
// @match        https://cryptofuture.co.in/*
// @license      Copyright OjoNgono
// @antifeature  referral-link Directs to a referral link when not logged in
// ==/UserScript==

const cfg = new MonkeyConfig({
    title: 'Input Email Faucetpay:',
    menuCommand: true,
    params: {
        Email: {
            label: "Email Faucetpay",
            type: "text",
            default: ''
        },
    }
});

(function() {
    'use strict';
    window.addEventListener('load', () => {
        startProcess();
    });

    function startProcess() {
        const email = cfg.get('Email');
        if (!email || email.trim() === '') {
            enforceLogoutWithWarning();
            return;
        } else {
            enforceReferralUrl();
            setTimeout(() => {
                if (!isLoggedIn()) {
                    clickLoginJoinButton();
                } else {
                    fillEmailField(email);
                    rotateUrls();
                    enforceReferralUrl();
                    observeTurnstileAndClaim();
                }
            }, 1000);
        }
    }

    function isLoggedIn() {
        const logoutMenuItem = document.querySelector('a[href="https://cryptofuture.co.in/auth/logout"]');
        const alertMessage = document.querySelector('.alert.alert-info.text-center');
        return logoutMenuItem !== null || alertMessage !== null;
    }

    function enforceLogoutWithWarning() {
        if (isLoggedIn()) {
            alert('Please enter your email in the settings menu before using MY SCRIPT.');
            const logoutButton = document.querySelector('a[href="https://cryptofuture.co.in/auth/logout"]');
            if (logoutButton) {
                logoutButton.click();
            } else {
                window.location.replace("https://cryptofuture.co.in/auth/logout");
            }
        }
    }

    function enforceReferralUrl() {
        const email = cfg.get('Email');
        if (!isLoggedIn() && email) {
            const currentUrl = window.location.href;
            const referralUrl = "https://cryptofuture.co.in/?r=43940";
            if (currentUrl === "https://cryptofuture.co.in/" && !currentUrl.includes("?r=43940")) {
                window.location.replace(referralUrl);
            }
        }
    }

    function clickLoginJoinButton() {
    const loginButton = document.querySelector('.btn.btn-success.btn-lg[data-bs-target="#claimModal"]');
    if (loginButton) {
        loginButton.click();
    }
    setTimeout(() => {
        const email = cfg.get('Email');
        fillEmailField(email);
        observeTurnstileAndClaim();
    }, 1000);
}


    function fillEmailField(email) {
        const emailInput = document.querySelector('#InputEmail');
        if (emailInput) {
            emailInput.value = email;
            emailInput.dispatchEvent(new Event('input', { bubbles: true }));
        }
    }

    function observeTurnstileAndClaim() {
    const turnstileObserver = new MutationObserver(() => {
        const turnstileResponse = document.querySelector('input[name="cf-turnstile-response"]');
        const claimNowButton = document.querySelector('#subbutt');
        const modalSubmitButton = document.querySelector('.btn.btn-primary.btn-user.btn-block');

        if (turnstileResponse && turnstileResponse.value !== "") {
            if (claimNowButton) {
                claimNowButton.scrollIntoView({ behavior: 'smooth', block: 'center' });
                claimNowButton.click();
            }
            if (modalSubmitButton) {
                modalSubmitButton.scrollIntoView({ behavior: 'smooth', block: 'center' });
                modalSubmitButton.click();
            }
            turnstileObserver.disconnect();
        }
    });

    const turnstileInput = document.querySelector('input[name="cf-turnstile-response"]');
    if (turnstileInput) {
        turnstileObserver.observe(turnstileInput, { attributes: true, attributeFilter: ['value'] });
    }

    setTimeout(() => {
        const turnstileResponse = document.querySelector('input[name="cf-turnstile-response"]');
        const claimNowButton = document.querySelector('#subbutt');
        const modalSubmitButton = document.querySelector('.btn.btn-primary.btn-user.btn-block');

        if (turnstileResponse && turnstileResponse.value === "" && claimNowButton && claimNowButton.innerText.includes('Claim Now')) {
            claimNowButton.click();
        }
        if (modalSubmitButton) {
            modalSubmitButton.click();
        }
    }, 30000);
}


    const urls = [
        "https://cryptofuture.co.in/faucet/currency/ltc",
        "https://cryptofuture.co.in/faucet/currency/doge",
        "https://cryptofuture.co.in/faucet/currency/usdt",
        "https://cryptofuture.co.in/faucet/currency/dgb",
        "https://cryptofuture.co.in/faucet/currency/sol",
        "https://cryptofuture.co.in/faucet/currency/trx",
        "https://cryptofuture.co.in/faucet/currency/bnb",
        "https://cryptofuture.co.in/faucet/currency/dash",
        "https://cryptofuture.co.in/faucet/currency/eth",
        "https://cryptofuture.co.in/faucet/currency/fey",
        "https://cryptofuture.co.in/faucet/currency/sol",
        "https://cryptofuture.co.in/faucet/currency/zec"
    ];
    let currentIndex = parseInt(localStorage.getItem('currentIndex')) || 0;

    const rotateUrls = () => {
        if (window.location.href === "https://cryptofuture.co.in/dashboard") {
            window.location.href = urls[currentIndex];
            currentIndex = (currentIndex + 1) % urls.length;
            localStorage.setItem('currentIndex', currentIndex);
        }
    };

    function checkForMessage() {
        const swalPopup = document.querySelector('.swal2-popup.swal2-show');
        if (swalPopup) {
            const successMessageContainer = swalPopup.querySelector('.swal2-html-container');
            if (successMessageContainer) {
                const successMessage = successMessageContainer.innerText || "";
                const successIndicator = "has been sent to your FaucetPay account!";
                const claimSuccessIndicator = "Success!";
                const insufficientFundsMessage = "The faucet does not have sufficient funds for this transaction.";
                if (successMessage.includes(successIndicator) || successMessage.includes(claimSuccessIndicator)) {
                    window.location.href = "https://cryptofuture.co.in/dashboard";
                } else if (successMessage.includes(insufficientFundsMessage)) {
                    window.location.href = "https://cryptofuture.co.in/dashboard";
                }
            }
        }
    }

    setInterval(checkForMessage, 1000);
})();