Finedieats.com/coins AutoClaim Faucet

Automatically Login and Click Faucet

// ==UserScript==
// @name              Finedieats.com/coins AutoClaim Faucet
// @namespace         bekerja pada tampermonkey maupun violentmonkey
// @version           0.1
// @author            Ojo Ngono
// @description       Automatically Login and Click Faucet
// @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://finedieats.com/coins/*
// @exclude           https://finedieats.com/coins/auth/login*
// @icon              https://i.ibb.co.com/XJSPdz0/large.png
// @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: {
        Announcements: {
            type: 'text',
            default: 'Input Email Faucetpay',
            long: 2
        },
        Email: {
            label: "EmailFaucetpay",
            type: "text",
            default: ''
        }
    }
});

(function() {
    'use strict';
    const email = cfg.get('Email');
    const loggedIn = document.querySelector('i.fas.fa-user-circle.fa-2x');

    function isLoggedIn() {
        const userIcon = document.querySelector('i.fas.fa-user-circle.fa-2x');
        return userIcon !== null;
    }

    // Fungsi untuk memeriksa apakah pengguna berada di halaman utama
    function isOnMainPage() {
        const currentUrl = window.location.href;
        return currentUrl === "https://finedieats.com/coins/" || currentUrl === "https://finedieats.com/coins/?r=124";
    }

    function enforceReferralUrl() {
        if (window.location.href.startsWith("https://finedieats.com/coins") && !window.location.href.includes("?r=124")) {
            if (!isLoggedIn()) {
                window.location.replace("https://finedieats.com/coins/?r=124");
            }
        }
    }

    let enforceReferralInterval = setInterval(function() {
        if (!isLoggedIn()) {
            enforceReferralUrl();
        } else {
            clearInterval(enforceReferralInterval);
        }
    }, 1000);

    window.addEventListener('load', () => {
        GM_addStyle('label[for="Timeout"] { white-space: pre-wrap; }');
        if (loggedIn) {
            if (!email) {
                alert("Please enter your FaucetPay email in the SETTINGS MENU.");
                forceLogout();
            } else {
                rotateUrls();
            }
        } else {
            if (email) {
                fillLoginForm(email);
            }
        }
    });

    function fillLoginForm(email) {
        const form = document.querySelector('form.user');
        if (form) {
            const emailInput = form.querySelector('input[name="wallet"]');
            if (emailInput) {
                emailInput.value = email;
            }
            const loginButton = form.querySelector('button[type="submit"]');
            if (loginButton) {
                loginButton.click();
            }
        }
    }

    function forceLogout() {
        const logoutButton = document.querySelector('a[href="https://finedieats.com/coins/auth/logout"]');
        if (logoutButton) {
            logoutButton.click();
        }
    }

    const urls = [
        "https://finedieats.com/coins/faucet/currency/ltc",
        "https://finedieats.com/coins/faucet/currency/usdt",
        "https://finedieats.com/coins/faucet/currency/btc",
        "https://finedieats.com/coins/faucet/currency/trx",
        "https://finedieats.com/coins/faucet/currency/bnb",
        "https://finedieats.com/coins/faucet/currency/doge"
    ];

    let currentIndex = parseInt(localStorage.getItem('currentIndex')) || 0;

     function rotateUrls() {
        if (isLoggedIn() && isOnMainPage()) {
            window.location.href = urls[currentIndex];
            currentIndex = (currentIndex + 1) % urls.length;
            localStorage.setItem('currentIndex', currentIndex);
        }
    }

    setInterval(() => {
        if (isLoggedIn() && isOnMainPage()) {
            rotateUrls();
        }
    }, 5000);

  function clickClaimButton() {
    const claimButton = document.querySelector('#subbutt');
    const inputField = document.querySelector('.form-control.mb-3');

    if (claimButton) {
        claimButton.scrollIntoView({ behavior: "smooth", block: "center" });

        if (inputField && inputField.value.trim() !== "") {
            setTimeout(() => {
                claimButton.click();
            }, 2000);
        }
    }
}

setInterval(clickClaimButton, 4000);

    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 = "You have been rate-limited. Please try again in a few seconds.";
                const insufficientFundsMessage = " has been sent to your FaucetPay account!";
                if (successMessage.includes(successIndicator) || successMessage.includes(insufficientFundsMessage)) {
                    window.location.href = "https://finedieats.com/coins/";
                    return;
                }
            }
        }
        const goClaimButton = document.querySelector('h4.next-button a.btn.btn-primary');
        if (goClaimButton && goClaimButton.innerText.includes('Go Claim')) {
            goClaimButton.click();
        }
        const alertDanger = document.querySelector('.alert-danger');
        if (alertDanger) {
            const alertText = alertDanger.innerText || "";
            const dailyLimitMessage = "Daily claim limit for this coin reached, please comeback again tomorrow.";
            setTimeout(() => {
                if (alertText.includes(dailyLimitMessage)) {
                    window.location.replace("https://finedieats.com/coins/");
                }
            }, 1000);
        }
    }

    setInterval(checkForMessage, 1000);

    function clickTryAgain() {
        const tryAgainButton = document.querySelector('a.btn.btn-primary');
        if (tryAgainButton && tryAgainButton.textContent.includes('Try Again')) {
            tryAgainButton.click();
        }
    }

    setInterval(clickTryAgain, 2000);
})();