Claim.ourCoinCash.xyz AutoClaim Faucet

Automatically Login and Click Faucet

// ==UserScript==
// @name         Claim.ourCoinCash.xyz AutoClaim Faucet
// @namespace    bekerja pada tampermonkey maupun violentmonkey
// @version      0.6
// @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        *://claim.ourcoincash.xyz/*
// @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;
    }

    function enforceReferralUrl() {
        if (window.location.href.startsWith("https://claim.ourcoincash.xyz") && !window.location.href.includes("?r=5848")) {
            if (!isLoggedIn()) {
                window.location.replace("https://claim.ourcoincash.xyz/?r=5848");
            }
        }
    }

    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://claim.ourcoincash.xyz/auth/logout"]');
        if (logoutButton) {
            logoutButton.click();
        }
    }

    const urls = [
        "https://claim.ourcoincash.xyz/faucet/currency/doge",
        "https://claim.ourcoincash.xyz/faucet/currency/ltc"
    ];

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

    const rotateUrls = () => {
        const loggedIn = document.querySelector('#logoutModal') || document.querySelector('a[href*="logout"]');
        if (loggedIn && window.location.href === "https://claim.ourcoincash.xyz/") {
            window.location.href = urls[currentIndex];
            currentIndex = (currentIndex + 1) % urls.length;
            localStorage.setItem('currentIndex', currentIndex);
        }
    };

    function clickClaimButton() {
        var claimButton = document.querySelector('#subbutt');
        if (claimButton) {
            setTimeout(() => {
                claimButton.click();
            }, 500);
        }
    }

    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 = "has been sent to your FaucetPay account!";
                const claimSuccessIndicator = "Success!";
                const insufficientFundsMessage = "The faucet does not have sufficient funds for this transaction.";
                const invalidCaptchaMessage = "Invalid Captcha";
                if (successMessage.includes(successIndicator) || successMessage.includes(claimSuccessIndicator)) {
                    window.location.href = "https://claim.ourcoincash.xyz";
                } else if (successMessage.includes(insufficientFundsMessage)) {
                    window.location.href = "https://claim.ourcoincash.xyz";
                } else if (successMessage.includes(invalidCaptchaMessage)) {
                    window.location.href = "https://claim.ourcoincash.xyz";
                }
            }
        }

        const goClaimButton = document.querySelector('h4.next-button a.btn.btn-primary');
        if (goClaimButton && goClaimButton.innerText.includes('Go Claim')) {
            goClaimButton.click();
        }
    }

    setInterval(checkForMessage, 1000);

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

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