您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Automatically logs in and claims DGB, LTC and others on LinksFly faucet.
// ==UserScript== // @name LinksFly Auto Claim DGB, LTC, FEY and others. // @namespace http://tampermonkey.net/ // @version 1.1 // @description Automatically logs in and claims DGB, LTC and others on LinksFly faucet. // @author Rubystance // @license MIT // @match https://linksfly.link/* // @grant none // ==/UserScript== (function() { 'use strict'; function tryClick(element) { try { element.click(); console.log("[AutoClaim] Clicked with element.click()"); } catch (e) { console.warn("[AutoClaim] element.click() failed", e); } try { HTMLElement.prototype.click.call(element); console.log("[AutoClaim] Clicked with HTMLElement.prototype.click.call"); } catch (e) { console.warn("[AutoClaim] HTMLElement.prototype.click.call failed", e); } ['mouseover', 'mousedown', 'mouseup', 'click'].forEach(type => { try { const event = new MouseEvent(type, { bubbles: true, cancelable: true, view: window }); element.dispatchEvent(event); console.log("[AutoClaim] Dispatched mouse event:", type); } catch (e) { console.warn("[AutoClaim] Dispatch event failed:", type, e); } }); } async function waitForButton() { return new Promise((resolve, reject) => { const timeout = 30000; const startTime = Date.now(); const interval = setInterval(() => { const btn = document.querySelector('button.claim-button.step4'); const captchaOK = document.querySelector('.iconCaptcha.success'); const btnReady = btn && !btn.disabled && btn.offsetParent !== null; const captchaReady = !!captchaOK; if (btnReady || captchaReady) { clearInterval(interval); resolve(btn); } if (Date.now() - startTime > timeout) { clearInterval(interval); reject("Timeout waiting for button or captcha success."); } }, 5000); }); } async function main() { try { console.log("[AutoClaim] Waiting for button or captcha success..."); const btn = await waitForButton(); console.log("[AutoClaim] Condition met, waiting 5 seconds before clicking..."); await new Promise(r => setTimeout(r, 5000)); if (btn) { tryClick(btn); } else { console.warn("[AutoClaim] Button not found at click time."); } } catch (e) { console.error("[AutoClaim] Error:", e); } } if (window.location.pathname === '/app/faucet' && window.location.search.includes('currency=DGB')) { main(); } })();