Cryptofuture.co.in Auto faucet

Auto Login, Auto Claim, Auto Redirect, Anti-Batas Klaim

// ==UserScript==
// @name                Cryptofuture.co.in Auto faucet
// @namespace           bekerja pada Tampermonkey maupun Violentmonkey
// @version             0.8
// @description         Auto Login, Auto Claim, Auto Redirect, Anti-Batas Klaim
// @author              Ojo Ngono
// @grant               GM_getValue
// @grant               GM_setValue
// @grant               GM_addStyle
// @grant               GM_setClipboard
// @grant               GM_registerMenuCommand
// @require             https://cdn.jsdelivr.net/npm/sweetalert2@11
// @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
// @icon                https://i.ibb.co/XJSPdz0/large.png
// ==/UserScript==

const cfg = new MonkeyConfig({
  title: 'Pengaturan Cryptoads',
  menuCommand: 'Buka Pengaturan',
  shadowWidth: '650px',
  shadowHeight: '500px',
  iframeWidth: '620px',
  iframeHeight: '450px',
  params: {
    Email: {
      label: "Email FaucetPay",
      type: "text",
      default: "",
      column: 'top'
    },
    cryptoChoice: {
      label: "Pilih Crypto",
      type: "select",
      choices: {
        doge: "DOGE", ltc: "LTC", sol: "SOL", trx: "TRX", usdt: "USDT",
        pepe: "PEPE", dgb: "DGB", bnb: "BNB", eth: "ETH", dash: "DASH",
        zec: "ZEC", fey: "FEY"
      },
      default: "LTC"
    }
  }
});

(function () {
  'use strict';

  window.addEventListener('load', () => {
    const email = cfg.get('Email')?.trim();
    const crypto = cfg.get('cryptoChoice')?.toUpperCase() || 'LTC';

    const loginButton = document.querySelector('button[type="submit"].btn.btn-responsive');
    const isLoggedIn = !loginButton || loginButton.textContent.trim().toLowerCase() !== 'login';
    const hasReferral = location.search.includes('r=1857');
    const currentUrl = window.location.href;

    // 🔁 Redirect
    if (!isLoggedIn && !hasReferral) {
      location.href = 'https://cryptofuture.co.in/?r=1857';
      return;
    }

    // 🛑 Sudah
    if (isLoggedIn && (!email || email === '')) {
      Swal.fire({
        icon: 'warning',
        title: 'Email FaucetPay belum diisi!',
        text: 'Anda sudah login, tetapi belum mengisi Email FaucetPay di pengaturan.',
        confirmButtonText: 'Ya, logout',
        confirmButtonColor: '#d33',
        allowOutsideClick: false,
        allowEscapeKey: false,
        allowEnterKey: false
      }).then(() => {
        window.location.href = "https://cryptofuture.co.in/logout";
      });
      return;
    }

    // 🔔 Belum
    if (!isLoggedIn && (!email || email === '')) {
      Swal.fire({
        icon: 'info',
        title: 'Pengaturan Diperlukan',
        html: `Silakan buka menu <b>'Pengaturan Cryptoads'</b> dari ikon 🐵 userscript di browser Anda,<br>lalu isi Email FaucetPay.`,
        confirmButtonText: 'OK',
      });
      return;
    }

    // ➡️ Redirect
    if (isLoggedIn && currentUrl.includes('/dashboard')) {
      const faucetUrl = `https://cryptofuture.co.in/faucet/currency/${crypto.toLowerCase()}`;
      if (currentUrl !== faucetUrl) {
        window.location.href = faucetUrl;
        return;
      }
    }

    // ✅ Auto
    if (isLoggedIn && currentUrl.includes('/faucet')) {
    const claimChecker = setInterval(() => {
    const claimBtn = document.querySelector('button#subbutt, button.claim-button');
    const goClaimBtn = document.querySelector('a.btn.btn-primary[href*="/faucet/currency/"]');
    const captchaBox = document.querySelector('.iconcaptcha-widget');
    const captchaPassed = document.querySelector('.iconcaptcha-widget.iconcaptcha-success');
    const captchaNotFound = !captchaBox;

    // 🔽 Scroll
    if (captchaBox && !captchaPassed) {
      captchaBox.scrollIntoView({ behavior: "smooth", block: "center" });
    }

    // ✅ Jika
    if ((captchaPassed || captchaNotFound) && claimBtn && !claimBtn.disabled) {
      claimBtn.scrollIntoView({ behavior: "smooth", block: "center" });
      setTimeout(() => {
        claimBtn.click();
      }, 800);
      clearInterval(claimChecker);
      return;
    }

    // ✅ Jika
    if (goClaimBtn && goClaimBtn.offsetParent !== null) {
      goClaimBtn.scrollIntoView({ behavior: "smooth", block: "center" });
      setTimeout(() => {
        goClaimBtn.click();
      }, 800);
      clearInterval(claimChecker);
    }
  }, 1000);
}

    // ✅ Auto
    if (!isLoggedIn && email) {
      const waitForElm = (sel, timeout = 15000) =>
        new Promise((res, rej) => {
          const el = document.querySelector(sel);
          if (el) return res(el);
          const obs = new MutationObserver(() => {
            const found = document.querySelector(sel);
            if (found) {
              obs.disconnect();
              res(found);
            }
          });
          obs.observe(document.body, { childList: true, subtree: true });
          setTimeout(() => { obs.disconnect(); rej(); }, timeout);
        });

      (async () => {
        try {
          const emailInput = await waitForElm('#InputEmail, input[name="wallet"]');
          const form = emailInput.closest('form');
          const submitBtn = form?.querySelector('button[type="submit"]');

          emailInput.value = email;
          ['input', 'change'].forEach(ev =>
            emailInput.dispatchEvent(new Event(ev, { bubbles: true }))
          );

          const check = setInterval(() => {
            const captchaOK = document.querySelector('.iconcaptcha-widget.iconcaptcha-success');
            const noCaptcha = !document.querySelector('.iconcaptcha-widget');
            if ((captchaOK || noCaptcha) && submitBtn) {
              submitBtn.click();
              clearInterval(check);
            }
          }, 800);
        } catch (e) {
          console.warn('⏰ Input email tidak ditemukan!');
        }
      })();
    }

    // ✅ Deteksi
    function checkForMessage() {
      const messageSelectors = [
        '.swal2-html-container',
        '.swal-text',
        '.swal-title'
      ];

      const keywords = [
        "After every",
        "faucet claims",
        "Shortlink must be completed"
      ];

      for (const selector of messageSelectors) {
        const elements = document.querySelectorAll(selector);
        for (const el of elements) {
          const messageText = el.innerText?.replace(/\s+/g, " ").trim();
          if (!messageText) continue;

          const isTargetMessage = keywords.some(kw => messageText.toLowerCase().includes(kw.toLowerCase()));
          if (isTargetMessage) {
            console.log("✅ Deteksi pesan batas klaim:", messageText);
            const match = window.location.href.match(/(?:currency\/|currency=)([a-z]+)/i);
            const currency = match ? match[1].toLowerCase() : 'doge';
            setTimeout(() => {
            window.location.href = `https://cryptofuture.co.in/links/currency/${currency}`;
            }, 1500);
            return;
          }
        }
      }
    }

    setInterval(checkForMessage, 1000);
  });
})();
function removeAdblockOverlay() {
  const adblockDiv = document.getElementById('adblock-locker');
  if (adblockDiv) {
    adblockDiv.remove();
    console.log("🚫 Adblock overlay dihapus.");
  }
}

removeAdblockOverlay();
const adblockInterval = setInterval(removeAdblockOverlay, 1000);
setTimeout(() => clearInterval(adblockInterval), 10000);