Linksfly- Autoclaim Faucet

Autoclaim faucet, login manual

// ==UserScript==
// @name         Linksfly- Autoclaim Faucet
// @namespace    http://tampermonkey.net/
// @version      1.0.0
// @description  Autoclaim faucet, login manual
// @author       iewilmaestro
// @license      Copyright iewilmaestro
// @match        *://linksfly.link/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=linksfly.link
// @grant        none
// ==/UserScript==
 
(function() {
    'use strict';
 
    // Array dengan elemen-elemen yang ingin dihapus berdasarkan class, id, name, atau href
    const selectors = [
        '.link',              // class
        '.advertisement',   // class
        '.ads',
        '.block',
        '.link-image',
        '#popup-ad',        // id
        '#popup-content',
        '#cryptocoinsad',
        '[name="ad-banner"]', // name
        'a[href*="advertisement"]', // href
        'a[href*="click.php"]',
    ];
 
    // Menghapus semua elemen yang sesuai dengan selector
    selectors.forEach(selector => {
        const elements = document.querySelectorAll(selector);
        elements.forEach(element => {
            console.log(`Menghapus elemen: ${selector}`);
            element.remove();
        });
    });
 
    // Apapun dengan element src
    const allElementsWithSrc = document.querySelectorAll('[src]');
    allElementsWithSrc.forEach(element => {
        if (element.src && element.src.includes('ads_banner') || element.src.includes('fpadserver')) {
            console.log('Menghapus elemen dengan src yang mengandung ads_banner');
            element.remove();
        }
    });
 
    // Mengambil semua tautan (anchor tags) dengan kelas 'collapse-item'
    const links = document.querySelectorAll('a.collapse-item');
 
    // Filter URL yang mengandung path 'faucet'
    const faucetLinks = Array.from(links)
                              .map(link => link.href)
                              .filter(href => href.includes('/faucet/'));
 
    // Mengecek jika ada URL yang ditemukan
    if (faucetLinks.length > 0) {
        // Mengambil currentIndex dari localStorage jika ada, atau set ke 0 jika tidak ada
        let currentIndex = localStorage.getItem('currentIndex') ? parseInt(localStorage.getItem('currentIndex')) : 0;
 
        // Fungsi untuk berpindah ke URL berikutnya setelah captcha diselesaikan
        function navigateToNextLink() {
 
            checkForFirewall();
 
            if (document.location.pathname.includes('dashboard')) {
                window.location.href = faucetLinks[currentIndex];
            }
 
            // Cek jika faucet memiliki batas klaim harian yang tercapai
            const Daily = document.body.outerText.includes('Daily claim limit');
            const Bankrut = document.body.outerText.includes("The faucet does not have");
            const Please = document.body.outerText.includes("Please wait");
 
            if (Daily || Bankrut || Please) {
                console.log('Batas klaim harian tercapai, menghapus URL faucet ini dari array dan melanjutkan ke URL berikutnya');
 
                // Pindah ke URL faucet berikutnya jika ada
                if (faucetLinks.length > 0) {
                    currentIndex = (currentIndex + 1) % faucetLinks.length;  // Naikkan currentIndex
                    localStorage.setItem('currentIndex', currentIndex);  // Simpan currentIndex ke localStorage
 
                    console.log(`Menavigasi ke: ${faucetLinks[currentIndex]}`);
                    window.location.href = faucetLinks[currentIndex];
                }
                return; // Jangan lanjutkan lebih jauh jika faucet ini sudah diblokir
            }
 
            // Mengecek apakah faucet saat ini sudah selesai CAPTCHA-nya
            const turnstile = document.querySelector('input[name="cf-turnstile-response"]')?.value;
            const antibotlinks = document.querySelector('input[name="antibotlinks"]')?.value;
 
            // Cek jika kedua captcha sudah terisi dengan kondisi:
            if (!turnstile || !antibotlinks || turnstile.length === "" || antibotlinks.length < 12) {
                console.log('Captcha belum diselesaikan. Tunggu...');
                return; // Tunggu tanpa reload halaman
            }
 
            // Tunggu sedikit waktu setelah berpindah halaman untuk memastikan halaman dimuat sepenuhnya
            setTimeout(() => {
                // Mencari tombol dengan ID 'subbutt'
                const claimButton = document.querySelector('#subbutt');
 
                if (claimButton && claimButton.innerText.includes('Claim Now')) {
                    console.log('Captcha selesai, mengklik tombol Claim Now');
                    claimButton.click(); // Klik tombol Claim Now
                } else {
                    console.log('Tombol Claim Now tidak ditemukan');
                }
            }, 2000); // Tunggu 2 detik setelah halaman dimuat
        }
 
        // Fungsi untuk mengecek adanya firewall atau proteksi berdasarkan pathname URL
        function checkForFirewall() {
            setTimeout(() => {
                // Mengecek apakah pathname URL mengandung 'firewall'
                if (document.location.pathname.includes('firewall')) {
                    console.log('Firewall atau proteksi terdeteksi berdasarkan pathname URL.');
 
                    // Mengambil nilai dari input captcha berdasarkan 'name'
                    const turnstile = document.querySelector('input[name="cf-turnstile-response"]')?.value;
 
                    // Cek apakah captcha sudah terisi
                    if (!turnstile || turnstile.trim() === "") {
                        console.log('Captcha firewall belum diselesaikan. Tunggu...');
                        return; // Tunggu tanpa reload halaman
                    }
 
                    // Cari tombol 'Unlock' dan klik
                    const unlockButton = document.querySelector('button.btn.btn-primary.w-md');
                    if (unlockButton && unlockButton.innerText.includes('Unlock')) {
                        console.log('Captcha firewall selesai, mengklik tombol Unlock');
                        unlockButton.click(); // Klik tombol Unlock
                    }
                } else {
                    console.log('Tidak ada indikasi firewall pada pathname URL.');
                    // Lanjutkan dengan alur berikutnya
                }
            }, 3000); // Tunggu 3 detik setelah tombol diklik untuk memeriksa firewall
        }
 
        // Menjalankan fungsi navigateToNextLink setiap 5 detik
        setInterval(navigateToNextLink, 3000);
    } else {
        console.log('Tidak ditemukan URL faucet!');
    }
})();