Crypto Faucets

Free bitcoin faucet

  1. // ==UserScript==
  2. // @name Crypto Faucets
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.3
  5. // @description Free bitcoin faucet
  6. // @author vikiweb
  7. // @match https://claimtrx.com/*
  8. // @match https://cryptoearnfaucet.com/offer/*
  9. // @match https://feyorra.top/*
  10. // @icon https://www.google.com/s2/favicons?sz=64&domain=cryptoearnfaucet.com
  11. // @grant none
  12. // @license MIT
  13. // ==/UserScript==
  14.  
  15. (function() {
  16. 'use strict';
  17.  
  18. // Register via https://claimtrx.com/?r=561532 and enter your email addreass and password on line no 25
  19. // Register via https://feyorra.top/faucet and enter your email address and password onl line no 26
  20. // Enter your email address on line 27 and Go to https://cryptoearnfaucet.com/offer/?r=93
  21.  
  22. let sites = [
  23. {faucetUrl: "https://claimtrx.com/faucet", email: "", password: "", },
  24. {faucetUrl: "https://feyorra.top/faucet", email: "", password:"",},
  25. {faucetUrl: "https://cryptoearnfaucet.com/offer/faucet", email: "", password:"",},
  26. ];
  27.  
  28. let autoRotateTimerinMin = 1;
  29.  
  30. let sitesMap = [
  31. {
  32. websiteUrl:"https://claimtrx.com",
  33. homePageCheck : ".container .herotext",
  34. loginSelectors :["#email", "#password"],
  35. //submitFormSelectors : ["form[action*='/verify'] button[type=submit]", "form[action*='/verify'] input.form-control"],
  36. submitFormSelectors : ["form[action*='/verify'] button[type=submit]"],
  37. claimCaptchaSelector : [".rscapimg", "selectedOption"],
  38. hasLimit : false,
  39. },
  40. {
  41. websiteUrl:"https://cryptoearnfaucet.com/offer",
  42. homePageCheck : "#hero h1",
  43. loginSelectors :["#InputEmail"],
  44. submitFormSelectors : ["#fauform button[type='submit']", "#fauform input[type='text'].form-control.mb-3"],
  45. hasLimit : true,
  46. },
  47. {
  48. websiteUrl:"https://feyorra.top",
  49. homePageCheck : ".container .hero",
  50. loginSelectors :["#email", "#password"],
  51. submitFormSelectors : ["form[action*='/verify'] button[type=submit]"],
  52. claimCaptchaSelector : [".rscapimg", "selectedOption"],
  53. hasLimit : false,
  54. },
  55. ]
  56.  
  57. function movetonext() {
  58. if (currentIndex === sites.length - 1) {
  59. currentIndex = 0;
  60. console.log("All sites visited. Starting from 0 again.");
  61. } else {
  62. currentIndex++;
  63. }
  64. window.location.href = sites[currentIndex].faucetUrl;
  65. }
  66.  
  67. // Check if captcha is checked
  68. function isCaptchaChecked() {
  69. return grecaptcha && grecaptcha.getResponse().length !== 0;
  70. }
  71.  
  72. function visibleCheck(elm) {
  73. if(!elm.offsetHeight && !elm.offsetWidth) { return false; }
  74. if(getComputedStyle(elm).visibility === 'hidden') { return false; }
  75. return true;
  76. }
  77.  
  78. let check_address = window.location.origin;
  79. let currentFaucetUrl = new URL(window.location.href);
  80. let currentOrigin = currentFaucetUrl.origin;
  81. let currentIndex = sites.findIndex(site => site.faucetUrl.includes(currentOrigin));
  82. let websiteIndex = sitesMap.findIndex(website => website.websiteUrl.includes(currentOrigin));
  83.  
  84. function processSite(site) {
  85.  
  86. if(window.location.href.includes(check_address) && document.querySelector(sitesMap[websiteIndex].homePageCheck)){
  87. window.location.replace(sitesMap[websiteIndex].websiteUrl +'/login');
  88. }
  89.  
  90. if (window.location.href.includes(sitesMap[websiteIndex].websiteUrl +'/login')) {
  91. setInterval(function() {
  92. if (document.querySelector(sitesMap[websiteIndex].loginSelectors[0])) {
  93. document.querySelector(sitesMap[websiteIndex].loginSelectors[0]).value = site.email;
  94. }
  95. if (document.querySelector(sitesMap[websiteIndex].loginSelectors[1])) {
  96. document.querySelector(sitesMap[websiteIndex].loginSelectors[1]).value = site.password;
  97. }
  98.  
  99. if(!sitesMap[websiteIndex].loginImageCapatha){
  100. if (document.querySelector("button[type='submit']")) {
  101. document.querySelector("button[type='submit']").click();
  102. }
  103. }else{
  104. document.querySelectorAll(sitesMap[websiteIndex].claimCaptchaSelector[0]).forEach(function(img) {
  105. if (img.classList.contains(sitesMap[websiteIndex].claimCaptchaSelector[1])) {
  106. // Do something if the element has the selectedOption class
  107. console.log("Image is selected!");
  108. document.querySelector("button[type='submit']").click();
  109. } else {
  110. // Do something if the element does not have the selectedOption class
  111. console.log("Image is not selected!");
  112. }
  113. });
  114. }
  115.  
  116. }, 6000);
  117. }
  118.  
  119. if (window.location.href.includes(sitesMap[websiteIndex].websiteUrl +'/dashboard')) {
  120. window.location.replace(sitesMap[websiteIndex].websiteUrl +'/faucet');
  121. }
  122.  
  123. if(window.location.href.includes(sitesMap[websiteIndex].websiteUrl +'/faucet')){
  124.  
  125. setInterval(function(){
  126. if(!sitesMap[websiteIndex].claimCaptchaSelector){
  127. if(document.querySelector(sitesMap[websiteIndex].submitFormSelectors[0]) && document.querySelector(sitesMap[websiteIndex].submitFormSelectors[1]).value != ""){
  128. document.querySelector(sitesMap[websiteIndex].submitFormSelectors[0]).click();
  129. }
  130. }else{
  131. document.querySelectorAll(sitesMap[websiteIndex].claimCaptchaSelector[0]).forEach(function(img) {
  132. if (img.classList.contains(sitesMap[websiteIndex].claimCaptchaSelector[1])) {
  133. // Do something if the element has the selectedOption class
  134. console.log("Image is selected!");
  135. if(document.querySelectorAll(sitesMap[websiteIndex].submitFormSelectors[2]) && document.querySelectorAll(sitesMap[websiteIndex].submitFormSelectors[2]).value != ""){
  136. document.querySelector(sitesMap[websiteIndex].submitFormSelectors[0]).click();
  137. }else{
  138. document.querySelector(sitesMap[websiteIndex].submitFormSelectors[0]).click();
  139. }
  140. } else {
  141. // Do something if the element does not have the selectedOption class
  142. console.log("Image is not selected!");
  143. }
  144. });
  145. }
  146.  
  147. if(document.querySelector(".swal2-shown .swal2-popup .swal2-confirm")){
  148. document.querySelector(".swal2-shown .swal2-popup .swal2-confirm").click();
  149. }
  150.  
  151. if(document.querySelector(".next-button .btn.btn-primary") && visibleCheck(document.querySelector(".next-button .btn.btn-primary"))){
  152. document.querySelector(".next-button .btn.btn-primary").click();
  153. }
  154.  
  155. let string = document.querySelector("#Claim > div.text-center.mb-3 > div.row > div.text-primary.col > p:nth-child(1)");
  156. if(string){
  157. let parts = string.innerText.split("/");
  158. if (parts[0] === "0") {
  159. console.log("The first value is 0.");
  160. movetonext()
  161. } else {
  162. console.log("The first value is not 0.");
  163. }
  164. }
  165.  
  166. }, 10000)
  167.  
  168. setInterval(function(){
  169.  
  170. if(!document.querySelector(sitesMap[websiteIndex].submitFormSelectors[0])){
  171. movetonext()
  172. }
  173.  
  174. }, autoRotateTimerinMin * 60000)
  175. }
  176. }
  177.  
  178. // Start processing the first site
  179. processSite(sites[currentIndex]);
  180.  
  181. })();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址