Only Faucet

Auto-claim

Tendrás que instalar una extensión para tu navegador como Tampermonkey, Greasemonkey o Violentmonkey si quieres utilizar este script.

Necesitarás instalar una extensión como Tampermonkey o Violentmonkey para instalar este script.

Necesitarás instalar una extensión como Tampermonkey o Violentmonkey para instalar este script.

Necesitarás instalar una extensión como Tampermonkey o Userscripts para instalar este script.

Necesitará instalar una extensión como Tampermonkey para instalar este script.

Necesitarás instalar una extensión para administrar scripts de usuario si quieres instalar este script.

(Ya tengo un administrador de scripts de usuario, déjame instalarlo)

Necesitará instalar una extensión como Stylus para instalar este estilo.

Necesitará instalar una extensión como Stylus para instalar este estilo.

Necesitará instalar una extensión como Stylus para instalar este estilo.

Necesitará instalar una extensión del gestor de estilos de usuario para instalar este estilo.

Necesitará instalar una extensión del gestor de estilos de usuario para instalar este estilo.

Necesitará instalar una extensión del gestor de estilos de usuario para instalar este estilo.

(Ya tengo un administrador de estilos de usuario, déjame instalarlo)

// ==UserScript==
// @name         Only Faucet
// @namespace    http://tampermonkey.net/
// @version      4.20
// @description  Auto-claim
// @author       KukuModZ
// @match        https://onlyfaucet.com/faucet/*
// @license      MIT
// @grant        none
// ==/UserScript==

(function() {
'use strict';

let claimInProgress = false;
let suspiciousActive = false;

// ===== TIME UTILITY =====
function getGreeceTime() {
    const now = new Date();
    const greeceOffset = 3 * 60;
    const localOffset = now.getTimezoneOffset();
    return new Date(now.getTime() + (greeceOffset + localOffset) * 60000);
}

// ===== BANNER =====
const banner = document.createElement('div');
banner.style.cssText = `
    position: fixed; bottom: 15px; left: 50%;
    transform: translateX(-50%);
    border-radius: 12px; padding: 8px 20px;
    text-align: center; color: black; z-index: 999999;
    display: flex; flex-direction: column; align-items: center; gap: 3px;
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    box-shadow: 0 0 14px rgba(0,0,0,0.5);
    backdrop-filter: blur(6px); background: silver;
    border: 1px solid rgba(200,200,200,0.6); text-shadow: 0 0 2px #fff;
    font-size: 12px; animation: psychedelic 8s infinite linear;
`;
document.body.appendChild(banner);

// ===== GLYPH (TOP SYMBOL) =====
const glyphLabel = document.createElement('div');
glyphLabel.textContent = '𓉴';
glyphLabel.style.cssText = `
    font-size: 22px; font-weight: bold;
    position: absolute; bottom: calc(80% + 5px);
    left: 49%; transform: translateX(-50%);
    z-index: 999999;
    text-shadow: 0 0 8px rgba(0,0,0,0.7), 0 0 12px rgba(255,255,255,0.5);
`;
banner.appendChild(glyphLabel);

// ===== LABELS =====
const nameLabel = document.createElement('div');
nameLabel.style.cssText = "font-size:12px; font-weight:bold; text-align:center;";
nameLabel.textContent = " Kuku👽Modz ";

const freeLtcLabel = document.createElement('div');
freeLtcLabel.style.cssText = `
    font-size:11px; font-weight:bold; letter-spacing:1px;
    color:#111; display:flex; align-items:center; justify-content:center; gap:3px;
`;
const prefixSpan = document.createElement('span');
prefixSpan.textContent = '</>';
prefixSpan.style.animation = "pulseFloat 1s ease-in-out infinite";
freeLtcLabel.appendChild(prefixSpan);
const freeText = document.createElement('span');
freeText.textContent = '0nlyFaucet';
freeLtcLabel.appendChild(freeText);

// ===== DATE/TIME =====
const dateWrapper = document.createElement('div');
const timeEmoji = document.createElement('span');
timeEmoji.textContent = '💻';
timeEmoji.style.marginRight = '3px';
const dateText = document.createElement('span');
dateWrapper.appendChild(timeEmoji);
dateWrapper.appendChild(dateText);

// ===== TELEGRAM BUTTON (2 LOGOS) =====
const telegramLink = document.createElement('a');
telegramLink.href = 'https://t.me/+CKt0ZiZ-3GEwZTA0';
telegramLink.target = '_blank';
telegramLink.style.cssText = `
    display: flex; align-items: center; justify-content: center;
    gap: 8px; margin-top: 8px;
    font-size: 13px; font-weight: bold;
    color: white; text-decoration: none;
    background: linear-gradient(90deg, #0088cc, #00c6ff);
    padding: 6px 16px;
    border-radius: 10px;
    box-shadow: 0 0 15px rgba(0,255,255,0.5);
    transition: all 0.3s ease;
`;

const telegramLogoLeft = document.createElement('img');
telegramLogoLeft.src = 'https://upload.wikimedia.org/wikipedia/commons/8/82/Telegram_logo.svg';
telegramLogoLeft.alt = 'Telegram';
telegramLogoLeft.style.cssText = `
    width: 20px; height: 20px;
    filter: drop-shadow(0 0 6px rgba(0,200,255,0.7));
`;

const telegramText = document.createElement('span');
telegramText.textContent = 'Join Telegram';

const telegramLogoRight = telegramLogoLeft.cloneNode(true);

telegramLink.appendChild(telegramLogoLeft);
telegramLink.appendChild(telegramText);
telegramLink.appendChild(telegramLogoRight);

telegramLink.onmouseover = () => {
    telegramLink.style.transform = 'scale(1.1)';
    telegramLink.style.boxShadow = '0 0 20px rgba(0,255,255,0.8)';
};
telegramLink.onmouseout = () => {
    telegramLink.style.transform = 'scale(1)';
    telegramLink.style.boxShadow = '0 0 15px rgba(0,255,255,0.5)';
};

// ===== ADD ELEMENTS TO BANNER =====
banner.appendChild(nameLabel);
banner.appendChild(freeLtcLabel);
banner.appendChild(dateWrapper);
banner.appendChild(telegramLink);

// ===== ANIMATIONS =====
const style = document.createElement('style');
style.innerHTML = `
@keyframes pulseFloat {
    0% { transform: translateY(0px) scale(1); }
    50% { transform: translateY(-3px) scale(1.2); }
    100% { transform: translateY(0px) scale(1); }
}
@keyframes psychedelic {
    0% { background: #ff4d4d; }
    16% { background: #ffb84d; }
    33% { background: #ffff4d; }
    50% { background: #4dff4d; }
    66% { background: #4dffff; }
    83% { background: #4d4dff; }
    100% { background: #ff4dff; }
}
@keyframes clickBubble {
    0% {opacity:1; transform:scale(0.5);}
    100% {opacity:0; transform:scale(2);}
}`;
document.head.appendChild(style);

// ===== UPDATE TIME =====
function updateTime() {
    const now = getGreeceTime();
    dateText.textContent = now.toLocaleString('el-GR', {hour12:false});
}
setInterval(updateTime, 1000);
updateTime();

// ===== EFFECTS =====
function bubbleClickEffect(x, y) {
    const b = document.createElement('span');
    b.style.cssText = `
        position: fixed;
        left: ${x - 10}px; top: ${y - 10}px;
        width: 20px; height: 20px;
        border-radius: 50%;
        background: rgba(150,150,150,0.6);
        box-shadow: 0 0 10px rgba(150,150,150,0.8);
        pointer-events: none;
        animation: clickBubble 0.6s ease-out forwards;
        z-index: 999999;
    `;
    document.body.appendChild(b);
    setTimeout(() => b.remove(), 600);
}

// ===== CLAIM LOGIC =====
function simulateClick(el) {
    if (!el) return;
    ['mouseover','mousemove','mousedown','mouseup','click'].forEach(evt => {
        el.dispatchEvent(new MouseEvent(evt, {bubbles:true, cancelable:true, view:window}));
    });
}
function claimButtonSafe() {
    if (claimInProgress) return false;
    const btn = document.querySelector('#subbutt');
    if (!btn) return false;
    claimInProgress = true;
    setTimeout(() => {
        btn.scrollIntoView({behavior: "smooth", block: "center"});
        const rect = btn.getBoundingClientRect();
        bubbleClickEffect(rect.left + rect.width / 2, rect.top + rect.height / 2);
        simulateClick(btn);
        console.log("👆 Claim button clicked safely!");
        claimInProgress = false;
    }, 1000);
    return true;
}

// ===== CAPTCHA LOGIC =====
function handleCaptcha() {
    const checkbox = document.querySelector('#captcha-checkbox');
    if (checkbox) {
        console.log("🧩 Checkbox found, clicking...");
        checkbox.click();
        const observer = new MutationObserver(() => {
            const passed = document.querySelector('.captcha-result.success.show');
            if (passed) {
                console.log("✅ Captcha passed — clicking claim button");
                claimButtonSafe();
                observer.disconnect();
            }
        });
        observer.observe(document.body, {childList: true, subtree: true});
    } else {
        claimButtonSafe();
    }
}

// ===== ALERT HANDLERS =====
function handleSuspicious() {
    const alertDiv = document.querySelector('.captcha-blocked');
    if (alertDiv) {
        console.log("⚠️ Suspicious activity detected — countdown 5 min");
        suspiciousActive = true;
        const countdownDiv = document.createElement('div');
        countdownDiv.style.cssText = `
            position: fixed; top: 10px; right: 10px; z-index: 999999;
            background: silver; color: black; padding: 6px 12px;
            font-weight: bold; border-radius: 6px; font-family: sans-serif;
        `;
        document.body.appendChild(countdownDiv);
        let timeLeft = 5 * 60;
        const interval = setInterval(() => {
            const m = Math.floor(timeLeft / 60);
            const s = timeLeft % 60;
            countdownDiv.textContent = `⏱ Suspicious countdown ${m}:${s < 10 ? '0' + s : s}`;
            if (timeLeft <= 0) {
                clearInterval(interval);
                location.reload();
            }
            timeLeft--;
        }, 1000);
        return true;
    } else {
        suspiciousActive = false;
        return false;
    }
}

function handleShortlink() {
    const msg = document.querySelector('#swal2-html-container');
    if (msg && msg.innerText.includes('Shortlink')) {
        console.log("🚫 Shortlink alert — freezing page permanently");
        banner.textContent = "SC 🚫 by KukuModZ";
        banner.style.background = "linear-gradient(45deg, #ff4d4d, #ffb84d, #ffff4d, #4dff4d, #4dffff, #4d4dff, #ff4dff)";
        document.body.style.pointerEvents = "none";
        let id = window.setTimeout(() => {}, 0);
        while (id--) { window.clearTimeout(id); }
        return true;
    }
    return false;
}

// ===== MAIN LOOP =====
window.addEventListener('load', () => {
    setTimeout(() => {
        if (handleShortlink()) return;
        if (handleSuspicious()) return;
        handleCaptcha();
    }, 3000);

    setInterval(() => {
        if (!handleShortlink() && !suspiciousActive) {
            console.log("🔄 Refreshing page every 15s");
            location.reload();
        }
    }, 15000);
});

})();