您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Script to claim faucets
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.gf.qytechs.cn/scripts/457181/1132094/FAUCET%202%202023.js
- // ==UserScript==
- // @name FAUCET 2 2023
- // @namespace AUTOROTATORFAUCET
- // @version 1.0
- // @description Script to claim faucets
- // @author Saputra
- // @match https://coinadster.com/*
- // @match https://faucetsfly.com/*
- // @match https://bitdaddy.cash/*
- // @match https://claimlite.club/*
- // @connect claimlite.club
- // @connect bitdaddy.cash
- // @connect faucetsfly.com
- // @connect coinadster.com
- // @grant GM_xmlhttpRequest
- // @license MIT
- // ==/UserScript==
- (function() {
- 'use strict';
- const valdelay = 5 ; // Change the number from 5 to 10 or 20 if you have issues like Your action marked Suspicious,Don't try to bypass ,Don't use Speedster, etc
- const valbwall = 5 ; // if you have any other problem apart from bitswall , please leave your feedback
- const RexBp = new RegExp(/^\?([^&]+)/);
- const bp = query => document.querySelector(query);
- const elementExists = query => bp(query) !== null;
- const domainCheck = domains => new RegExp(domains).test(location.host);
- function click(query) {bp(query).click();}
- function submit(query) {bp(query).submit();}
- function clickIfElementExists(query, timeInSec = 1, funcName = 'setTimeout') {if (elementExists(query)) {window[funcName](function() {click(query);}, timeInSec * 1000);}}
- function Captchasub(query, act = 'submit', timeInSec = 0.5) {if (elementExists(query)) {var timer = setInterval(function() {if (window.grecaptcha && !!window.grecaptcha.getResponse?.()) {bp(query)[act](); clearInterval(timer);}}, timeInSec * 1000);}}
- function Captchaklik(query, act = 'click', timeInSec = 1) {if (elementExists(query)) {var timer = setInterval(function() {if (window.grecaptcha && !!window.grecaptcha.getResponse?.()) {bp(query)[act](); clearInterval(timer);}}, timeInSec * 1000);}}
- //Block All Pop ups
- unsafeWindow.open = function(){};
- //List of the faucet websites
- //Comment the lines of url if you don't use them
- var websiteData = [
- {url : "https://coinadster.com/faucetz.html"},
- {url : "https://faucetsfly.com/roll.html"},
- {url : "https://bitdaddy.cash/"},
- {url : "https://claimlite.club/"},
- ];
- //Message selectors are for success or failure to move on to the next website
- //Add only domain name in website as mentioned below. Follow the same pattern.
- //Use arrays wherever it is required
- var websiteMap = [
- {website : ["faucetsfly.com","bitdaddy.cash"],
- defaultButtonSelectors: ["#claimFaucet > button"],
- toggleCaptchaSelector:[".form-control.form-control-sm.custom-select.mb-1"],
- toggleCaptchaSelectorIndex: 0,
- captchaButtonSubmitSelector: "#claimFaucet .btn.btn-danger.btn-md.w-100.mt-2",
- allMessageSelectors: [".alert.alert-success",".alert.alert-danger"],
- messagesToCheckBeforeMovingToNextUrl: ["can claim again","you won"],
- timeoutbeforeMovingToNextUrl: 140000},
- {website : ["coinadster.com"],
- defaultButtonSelectors: ["#claymFaucet > button"],
- toggleCaptchaSelector:["#toggle22Captcha"],
- toggleCaptchaSelectorIndex: 1,
- captchaButtonSubmitSelector: "#rollFaucet > button",
- allMessageSelectors: [".alert.alert-success",".alert.alert-danger"],
- messagesToCheckBeforeMovingToNextUrl: ["can claim again","you won"],
- timeoutbeforeMovingToNextUrl: 140000},
- {website : ["claimlite.club"],
- defaultButtonSelectors: [".card-body.py-3.px-1 .btn.btn-danger.btn-md.w-50.mt-2"],
- toggleCaptchaSelector:[".form-control.form-control-sm.custom-select.mb-1"],
- toggleCaptchaSelectorIndex: 0,
- captchaButtonSubmitSelector: "#claimFaucet .btn.btn-danger.btn-md.w-50.mt-2",
- allMessageSelectors: [".alert.alert-success",".alert.alert-danger"],
- messagesToCheckBeforeMovingToNextUrl: ["can claim again", "You can claim again in", "you won"],
- timeoutbeforeMovingToNextUrl: 140000},
- ];
- //HtmlEvents dispatcher
- function triggerEvent(el, type) {
- try{
- var e = document.createEvent('HTMLEvents');
- e.initEvent(type, false, true);
- el.dispatchEvent(e);
- }catch(exception){
- console.log(exception);
- }
- }
- function toggleCaptcha(selector, index){
- if( document.querySelector(selector)){
- document.querySelector(selector).selectedIndex = index;
- var targetNode = document.querySelector(selector);
- if (targetNode) {
- setTimeout(function() {
- triggerEvent(targetNode, 'change');
- }, 5000);
- }
- }
- }
- //Check if a string is present in Array
- String.prototype.includesOneOf = function(arrayOfStrings) {
- //If this is not an Array, compare it as a String
- if (!Array.isArray(arrayOfStrings)) {
- return this.toLowerCase().includes(arrayOfStrings.toLowerCase());
- }
- for (var i = 0; i < arrayOfStrings.length; i++) {
- if (this.toLowerCase().includes(arrayOfStrings[i].toLowerCase())) {
- return true;
- }
- }
- return false;
- }
- var websiteDataValues = {};
- var clicked = false;
- //Get selector details from the websiteMap
- for (let value of Object.values(websiteMap)) {
- if(window.location.href.includesOneOf(value.website)){
- websiteDataValues.inputTextSelector= value.inputTextSelector;
- websiteDataValues.inputTextSelectorButton = value.inputTextSelectorButton;
- websiteDataValues.defaultButtonSelectors = value.defaultButtonSelectors;
- websiteDataValues.claimButtonSelector = value.claimButtonSelector;
- websiteDataValues.captchaButtonSubmitSelector = value.captchaButtonSubmitSelector;
- websiteDataValues.loginSelectors = value.loginSelectors;
- websiteDataValues.allMessageSelectors = value.allMessageSelectors;
- websiteDataValues.messagesToCheckBeforeMovingToNextUrl = value.messagesToCheckBeforeMovingToNextUrl;
- websiteDataValues.withdrawPageUrl = value.withdrawPageUrl;
- websiteDataValues.withdrawEnabled = value.withdrawEnabled;
- websiteDataValues.balanceSelector = value.balanceSelector;
- websiteDataValues.withdrawMinAmount = value.withdrawMinAmount;
- websiteDataValues.successMessageSelectors = value.successMessageSelectors;
- websiteDataValues.toggleCaptchaSelector = value.toggleCaptchaSelector;
- websiteDataValues.toggleCaptchaSelectorIndex = value.toggleCaptchaSelectorIndex;
- websiteDataValues.timeoutbeforeMovingToNextUrl = value.timeoutbeforeMovingToNextUrl;
- websiteDataValues.additionalFunctions = value.additionalFunctions;
- break;
- }
- }
- //Identify which coin to input, based on the url input
- //If the URL does not contain the coin, then use the default from the domain name
- var count = 0;
- var addressAssigned = false;
- for (let value of Object.values(websiteData)) {
- count = count + 1;
- if(window.location.href.includes("/" + value.regex)){
- addressAssigned = true;
- break;
- }
- }
- //If URL does not have coin, check the default from the domain name
- if(!addressAssigned){
- count = 0;
- for (let value of Object.values(websiteData)) {
- count = count + 1;
- if(value.url.includes(window.location.hostname)){
- break;
- }
- }
- }
- //Get the next Url from the website data map
- async function getNextUrl(){
- //Go to the beginning if the end of the array is reached
- if(count >= websiteData.length){
- count = 0;
- websiteDataValues.nextUrl = websiteData[count].url;
- }else{
- websiteDataValues.nextUrl = websiteData[count].url;
- }
- //Ping Test to check if a website is up before proceeding to next url
- pingTest(websiteDataValues.nextUrl);
- }
- var isNextUrlReachable = false;
- //Get the next Url from the website
- function pingTest(websiteUrl) {
- console.log(websiteUrl);
- GM_xmlhttpRequest({
- method: "GET",
- url: websiteUrl,
- headers: {
- "Content-Type": "application/x-www-form-urlencoded"
- },
- timeout: 5000,
- onload: function(response) {
- //Website is reachable
- isNextUrlReachable = true;
- },
- onerror: function(e) {
- count=count+1;
- getNextUrl();
- },
- ontimeout: function() {
- count=count+1;
- getNextUrl();
- },
- });
- }
- async function delay(ms) {
- return new Promise(resolve => setTimeout(resolve, ms))
- }
- var movingToNextUrl = false;
- async function goToNextUrl() {
- console.log("Going to next Url");
- if(!movingToNextUrl){
- movingToNextUrl = true;
- getNextUrl();
- while (!isNextUrlReachable) {
- await delay(3000);
- }
- window.location.href = websiteDataValues.nextUrl;
- }
- }
- async function goToWithdrawPage() {
- if(!movingToNextUrl){
- movingToNextUrl = true;
- window.location.href = websiteDataValues.withdrawPageUrl;
- }
- }
- //Default Setting: After 180 seconds go to next Url
- var delayBeforeMovingToNextUrl = 180000;
- if(websiteDataValues.timeoutbeforeMovingToNextUrl){
- delayBeforeMovingToNextUrl = websiteDataValues.timeoutbeforeMovingToNextUrl;
- }
- setTimeout(function(){
- goToNextUrl();
- },delayBeforeMovingToNextUrl);
- //Returns true if message selectors are present
- function messageSelectorsPresent(){
- if(websiteDataValues.allMessageSelectors){
- for(var j=0;j<websiteDataValues.allMessageSelectors.length;j++){
- for(var k=0; k< document.querySelectorAll(websiteDataValues.allMessageSelectors[j]).length;k++){
- if(document.querySelectorAll(websiteDataValues.allMessageSelectors[j])[k] &&
- (document.querySelectorAll(websiteDataValues.allMessageSelectors[j])[k].innerText.includesOneOf(websiteDataValues.messagesToCheckBeforeMovingToNextUrl) ||
- (document.querySelectorAll(websiteDataValues.allMessageSelectors[j])[k].value &&
- document.querySelectorAll(websiteDataValues.allMessageSelectors[j])[k].value.includesOneOf(websiteDataValues.messagesToCheckBeforeMovingToNextUrl)))){
- return true;
- }
- }
- }
- }
- return false;
- }
- //Returns true if message selectors are present
- function successMessageSelectorsPresent(){
- if(websiteDataValues.successMessageSelectors){
- for(var j=0;j<websiteDataValues.successMessageSelectors.length;j++){
- for(var k=0; k< document.querySelectorAll(websiteDataValues.successMessageSelectors[j]).length;k++){
- if(document.querySelectorAll(websiteDataValues.successMessageSelectors[j])[k] && document.querySelectorAll(websiteDataValues.successMessageSelectors[j])[k].innerText.includesOneOf(websiteDataValues.messagesToCheckBeforeMovingToNextUrl)){
- return true;
- }
- }
- }
- }
- return false;
- }
- function minijobwork(){
- if( document.querySelector("#count") && document.querySelector("#count").style.display != 'none') {
- websiteDataValues.messagesToCheckBeforeMovingToNextUrl = [":"];
- }
- }
- function qashbit(){
- if(document.querySelector("#dropdownList")){
- document.querySelector("#dropdownList").click();
- }
- if(document.querySelector("#claim div.modal-body > div.ad_box center li > a") &&
- document.querySelector("#claim div.modal-body > div.ad_box center li > a").innerText == "reCAPTCHA"){
- document.querySelector("#claim div.modal-body > div.ad_box center li > a").click()
- }
- }
- setTimeout(function(){
- if( websiteDataValues.additionalFunctions){
- websiteDataValues.additionalFunctions();
- }
- if(websiteDataValues.withdrawEnabled){
- if(websiteDataValues.balanceSelector && document.querySelector(websiteDataValues.balanceSelector)){
- var currentBalance = document.querySelector(websiteDataValues.balanceSelector).innerText;
- if(currentBalance > websiteDataValues.withdrawMinAmount && !window.location.href.includes(websiteDataValues.withdrawPageUrl)) {
- goToWithdrawPage();
- }
- }else{
- if(successMessageSelectorsPresent()){
- goToWithdrawPage();
- }
- }
- }
- //Look for all the default messages or errors before proceeding to next url
- //For other languages difference in the length of the strings can be compared or visibility of the style element
- if(!movingToNextUrl && messageSelectorsPresent()){
- goToNextUrl();
- }
- //Check for all the default button selectors and click
- //This will only click the first selector found, so mention the selectors with parent element wherever required
- if(!movingToNextUrl && websiteDataValues.defaultButtonSelectors){
- for(var i=0;i<websiteDataValues.defaultButtonSelectors.length ;i++){
- if(document.querySelector(websiteDataValues.defaultButtonSelectors[i])){
- triggerEvent(document.querySelector(websiteDataValues.defaultButtonSelectors[i]), 'mousedown');
- triggerEvent(document.querySelector(websiteDataValues.defaultButtonSelectors[i]), 'mouseup');
- document.querySelector(websiteDataValues.defaultButtonSelectors[i]).click();
- break;
- }
- }
- }
- if(!movingToNextUrl && websiteDataValues.toggleCaptchaSelector && Number.isInteger(websiteDataValues.toggleCaptchaSelectorIndex)){
- toggleCaptcha(websiteDataValues.toggleCaptchaSelector,websiteDataValues.toggleCaptchaSelectorIndex);
- }
- //Input the address and click the login button
- if(!movingToNextUrl && document.querySelector(websiteDataValues.inputTextSelector)){
- document.querySelector(websiteDataValues.inputTextSelector).value = websiteDataValues.address;
- setTimeout(function(){
- if(websiteDataValues.inputTextSelectorButton && document.querySelector(websiteDataValues.inputTextSelectorButton)){
- document.querySelector(websiteDataValues.inputTextSelectorButton).click();
- }
- },5000);
- }
- // Captcha Mode
- // ============================================
- let captchaMode = ['#_mform', '#userForm', '#link-view', '#frmprotect', '#ShortLinkId', '#captcha', '#submit-form', '#lview > form', '#file-captcha', '#btget > form', 'div#login form', 'F1', '#short-captcha-form', '#wpsafelink-landing', '.col-12 > form:nth-child(1)', '.col-md-4 > form:nth-child(1)', '.col-md-6 > form:nth-child(4)', '.contenido > form:nth-child(2)', '#main > div:nth-child(4) > form:nth-child(1)', 'div.col-md-12:nth-child(3) > form:nth-child(1)', '.content > div:nth-child(4) > form:nth-child(1)', '#showMe > center:nth-child(4) > form:nth-child(1)', '.sect > div:nth-child(1) > center:nth-child(7) > form:nth-child(1)', '#showMe > center:nth-child(1) > center:nth-child(4) > form:nth-child(1)', '#adb-not-enabled > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > form:nth-child(1)', 'button#continue.btn.btn-primary.btn-captcha', '.m-2.btn-captcha.btn-outline-primary.btn', '#yuidea-btn-before.yu-btn.yu-blue', '#yuidea-btn-after.yu-blue.yu-btn', '#fauform'];
- for (let i = 0; i < captchaMode.length; i++) {Captchasub(captchaMode[i]);}
- let klikMode = ['button#continue.btn.btn-primary.btn-captcha', '.m-2.btn-captcha.btn-outline-primary.btn', '#yuidea-btn-before.yu-btn.yu-blue', '#yuidea-btn-after.yu-blue.yu-btn', '#submitBtn'];
- for (let i = 0; i < klikMode.length; i++) {Captchaklik(klikMode[i]);}
- //Click the form button after solving captcha
- //Works for both recaptcha and hcaptcha
- var captchaInterval = setInterval(function(){
- try{
- if(!clicked && unsafeWindow.grecaptcha && unsafeWindow.grecaptcha.getResponse().length > 0){
- document.querySelector(websiteDataValues.captchaButtonSubmitSelector).click();
- clicked = true;
- clearInterval(captchaInterval);
- setTimeout(function(){
- if(messageSelectorsPresent()){
- goToNextUrl();
- }
- },5000);
- }
- }catch(e){
- }
- for(var hc=0; hc < document.querySelectorAll("iframe").length; hc++){
- if(! clicked && document.querySelectorAll("iframe")[hc] &&
- document.querySelectorAll("iframe")[hc].hasAttribute("data-hcaptcha-response") &&
- document.querySelectorAll("iframe")[hc].getAttribute("data-hcaptcha-response").length > 0) {
- document.querySelector(websiteDataValues.captchaButtonSubmitSelector).click();
- clicked = true;
- clearInterval(captchaInterval);
- setTimeout(function(){
- if(messageSelectorsPresent()){
- goToNextUrl();
- }
- },5000);
- }
- }
- },5000);
- },7000);
- })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址