Faucet Rotator - bitcoincuba.net

Earn Free Coins Instantly

当前为 2024-01-14 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name Faucet Rotator - bitcoincuba.net
  3. // @namespace High Paying Faucet, NO SHORTLINK
  4. // @version 1.3
  5. // @description Earn Free Coins Instantly
  6. // @author BleemV
  7. // @match https://bitcoincuba.net/*
  8. // @connect bitcoincuba.net
  9. // @icon https://www.google.com/s2/favicons?sz=64&domain=bitcoincuba.net
  10. // @grant GM_setValue
  11. // @grant GM_getValue
  12. // @grant GM_xmlhttpRequest
  13. // @antifeature referral-link
  14. // ==/UserScript==
  15.  
  16. unsafeWindow.open = function() { };
  17.  
  18. (function() {
  19. 'use strict';
  20.  
  21. var trx = "ENTER_YOUR_FAUCETPAY_TRON_DEPOSIT_ADDRESS"
  22. var doge = "ENTER_YOUR_FAUCETPAY_DOGE_DEPOSIT_ADDRESS"
  23. var usdt = "ENTER_YOUR_FAUCETPAY_TETHER_DEPOSIT_ADDRESS"
  24. // var ltc = "ENTER_YOUR_FAUCETPAY_LITECOIN_DEPOSIT_ADDRESS"
  25.  
  26. var websiteData = [
  27. { url: "https://bitcoincuba.net/freetrx/?r=TM1Aht45p5EhStpzaifYUbKGv5Z8SoV16E", coin: "freetrx", address: trx },
  28. { url: "https://bitcoincuba.net/freedoge/?r=DTWuDSaTHEo7RTBtBTH942sH7SHRbvDxe9", coin: "freedoge", address: doge },
  29. { url: "https://bitcoincuba.net/freeusdt/?r=TM1Aht45p5EhStpzaifYUbKGv5Z8SoV16E", coin: "freeusdt", address: usdt },
  30. // { url: "https://bitcoincuba.net/freeltc/?r=M8DD8ct56BvkjpLcoR3B6c8oQG5jssU5kc", coin: "freeltc", address: ltc},
  31. ];
  32.  
  33. var websiteMap = [
  34.  
  35. {
  36. website: ["bitcoincuba.net"],
  37. inputTextSelector: "#claim-address",
  38. inputTextSelectorButton: ["#sign"],
  39. defaultButtonSelectors: "button.btn.btn-primary.my-2.claim-button",
  40. captchaButtonSubmitSelector: "#login",
  41. allMessageSelectors: [".alert.alert-success", ".alert.alert-warning", ".alert.alert-success", ".alert.alert-danger", "#cf-error-details"],
  42. successMessageSelectors: [".alert.alert-success"],
  43. messagesToCheckBeforeMovingToNextUrl: ["IP Limit reached", "The send limit set", "sufficient", "insufficient", "you have reached", "tomorrow", "wrong order", "locked", "was sent to your", "You have to wait", "Login not valid", "You have already claimed", "claimed successfully", "Claim not Valid", "rate limited"],
  44. ablinks: true
  45. },
  46. ];
  47.  
  48.  
  49. var ablinksSolved = false;
  50.  
  51. function triggerEvent(el, type) {
  52. try {
  53. var e = document.createEvent('HTMLEvents');
  54. e.initEvent(type, false, true);
  55. el.dispatchEvent(e);
  56. } catch (exception) {
  57. console.log(exception);
  58. }
  59. }
  60.  
  61. String.prototype.includesOneOf = function(arrayOfStrings) {
  62.  
  63.  
  64. if (!Array.isArray(arrayOfStrings)) {
  65. return this.toLowerCase().includes(arrayOfStrings.toLowerCase());
  66. }
  67.  
  68. for (var i = 0; i < arrayOfStrings.length; i++) {
  69. if (this.toLowerCase().includes(arrayOfStrings[i].toLowerCase())) {
  70. return true;
  71. }
  72. }
  73. return false;
  74. }
  75.  
  76. var websiteDataValues = {};
  77.  
  78.  
  79. for (let value of Object.values(websiteMap)) {
  80. if (window.location.href.includesOneOf(value.website)) {
  81. websiteDataValues.inputTextSelector = value.inputTextSelector;
  82. websiteDataValues.inputTextSelectorButton = value.inputTextSelectorButton;
  83. websiteDataValues.defaultButtonSelectors = value.defaultButtonSelectors;
  84. websiteDataValues.claimButtonSelectors = value.claimButtonSelectors;
  85. websiteDataValues.captchaButtonSubmitSelector = value.captchaButtonSubmitSelector;
  86. websiteDataValues.allMessageSelectors = value.allMessageSelectors;
  87. websiteDataValues.messagesToCheckBeforeMovingToNextUrl = value.messagesToCheckBeforeMovingToNextUrl;
  88. websiteDataValues.withdrawPageUrl = value.withdrawPageUrl;
  89. websiteDataValues.withdrawEnabled = value.withdrawEnabled;
  90. websiteDataValues.balanceSelector = value.balanceSelector;
  91. websiteDataValues.withdrawMinAmount = value.withdrawMinAmount;
  92. websiteDataValues.successMessageSelectors = value.successMessageSelectors;
  93. websiteDataValues.additionalFunctions = value.additionalFunctions;
  94. websiteDataValues.timeoutbeforeMovingToNextUrl = value.timeoutbeforeMovingToNextUrl;
  95. websiteDataValues.formSubmit = value.formSubmit;
  96. websiteDataValues.ablinks = value.ablinks;
  97. break;
  98. }
  99. }
  100.  
  101. var count = 0;
  102. var addressAssigned = false;
  103. for (let value of Object.values(websiteData)) {
  104. count = count + 1;
  105. if (value.url.includes(window.location.hostname) && (window.location.href.includes("/" + value.coin + "/") ||
  106. window.location.href.includes("/" + value.coin + "-") ||
  107. window.location.href.endsWith("/" + value.coin))) {
  108. websiteDataValues.address = value.address;
  109. addressAssigned = true;
  110. break;
  111. }
  112. }
  113.  
  114.  
  115. if (!addressAssigned) {
  116. count = 0;
  117. for (let value of Object.values(websiteData)) {
  118. count = count + 1;
  119.  
  120. if (value.url.includes(window.location.hostname)) {
  121. if (value.regex) {
  122. if (GM_getValue("UrlRegex")) {
  123. if (GM_getValue("UrlRegex") == value.regex) {
  124. websiteDataValues.address = value.address;
  125. break;
  126. }
  127. } else {
  128. GM_setValue("UrlRegex", value.regex);
  129. websiteDataValues.address = value.address;
  130. break;
  131. }
  132. } else {
  133. websiteDataValues.address = value.address;
  134. break;
  135. }
  136. }
  137. }
  138. }
  139.  
  140. async function getNextUrl() {
  141.  
  142. if (count >= websiteData.length) {
  143. count = 0;
  144. }
  145.  
  146. websiteDataValues.nextUrl = websiteData[count].url;
  147. websiteDataValues.regex = websiteData[count].regex;
  148.  
  149.  
  150. pingTest(websiteDataValues.nextUrl);
  151. }
  152. //////////////////
  153. var isNextUrlReachable = true;
  154.  
  155. function pingTest(websiteUrl) {
  156. console.log(websiteUrl);
  157. GM_xmlhttpRequest({
  158. method: "GET",
  159. url: websiteUrl,
  160. headers: {
  161. "Content-Type": "application/x-www-form-urlencoded"
  162. },
  163. timeout: 2000,
  164. onload: function(response) {
  165.  
  166. if (response && response.status == 200) {
  167. isNextUrlReachable = true;
  168. } else {
  169. count = count + 1;
  170. getNextUrl();
  171. }
  172. },
  173. onerror: function(e) {
  174. count = count + 1;
  175. getNextUrl();
  176. },
  177. ontimeout: function() {
  178. count = count + 1;
  179. getNextUrl();
  180. },
  181. });
  182.  
  183. }
  184.  
  185.  
  186. async function delay(ms) {
  187. return new Promise(resolve => setTimeout(resolve, ms))
  188. }
  189.  
  190.  
  191. var movingToNextUrl = false;
  192. async function goToNextUrl() {
  193. if (!movingToNextUrl) {
  194. movingToNextUrl = true;
  195. getNextUrl();
  196. while (!isNextUrlReachable) {
  197. await delay(2000);
  198. }
  199.  
  200. if (websiteDataValues.regex) {
  201. GM_setValue("UrlRegex", websiteDataValues.regex);
  202. }
  203. window.location.href = websiteDataValues.nextUrl;
  204. movingToNextUrl = true;
  205. }
  206. }
  207.  
  208. async function goToWithdrawPage() {
  209. if (!movingToNextUrl) {
  210. movingToNextUrl = true;
  211. window.location.href = websiteDataValues.withdrawPageUrl;
  212. }
  213.  
  214. }
  215.  
  216. var delayBeforeMovingToNextUrl = 60000;
  217. if (websiteDataValues.timeoutbeforeMovingToNextUrl) {
  218. delayBeforeMovingToNextUrl = websiteDataValues.timeoutbeforeMovingToNextUrl;
  219. }
  220.  
  221.  
  222. setTimeout(function() {
  223. movingToNextUrl = false;
  224. goToNextUrl();
  225. }, delayBeforeMovingToNextUrl);
  226.  
  227.  
  228. if (window.location.href.includes("to=FaucetPay") || (websiteDataValues.address) && (websiteDataValues.address.length < 5 || websiteDataValues.address.includes("YOUR_"))) {
  229. goToNextUrl();
  230. }
  231.  
  232.  
  233. function messageSelectorsPresent() {
  234. if (websiteDataValues.allMessageSelectors) {
  235. for (var j = 0; j < websiteDataValues.allMessageSelectors.length; j++) {
  236. for (var k = 0; k < document.querySelectorAll(websiteDataValues.allMessageSelectors[j]).length; k++) {
  237. if (document.querySelectorAll(websiteDataValues.allMessageSelectors[j])[k] &&
  238. (document.querySelectorAll(websiteDataValues.allMessageSelectors[j])[k].innerText.includesOneOf(websiteDataValues.messagesToCheckBeforeMovingToNextUrl) ||
  239. (document.querySelectorAll(websiteDataValues.allMessageSelectors[j])[k].value &&
  240. document.querySelectorAll(websiteDataValues.allMessageSelectors[j])[k].value.includesOneOf(websiteDataValues.messagesToCheckBeforeMovingToNextUrl)))) {
  241. return true;
  242. }
  243. }
  244. }
  245. }
  246. return false;
  247. }
  248.  
  249.  
  250. function checkMessageSelectorsLength() {
  251. if (websiteDataValues.allMessageSelectors) {
  252. for (var j = 0; j < websiteDataValues.allMessageSelectors.length; j++) {
  253. for (var k = 0; k < document.querySelectorAll(websiteDataValues.allMessageSelectors[j]).length; k++) {
  254. if (document.querySelectorAll(websiteDataValues.allMessageSelectors[j])[k] &&
  255. (document.querySelectorAll(websiteDataValues.allMessageSelectors[j])[k].innerText.length > 0) ||
  256. (document.querySelectorAll(websiteDataValues.allMessageSelectors[j])[k].value &&
  257. document.querySelectorAll(websiteDataValues.allMessageSelectors[j])[k].value.length > 0)) {
  258. return true;
  259. }
  260. }
  261. }
  262. }
  263. return false;
  264. }
  265.  
  266.  
  267. function successMessageSelectorsPresent() {
  268. if (websiteDataValues.successMessageSelectors) {
  269. for (var j = 0; j < websiteDataValues.successMessageSelectors.length; j++) {
  270. for (var k = 0; k < document.querySelectorAll(websiteDataValues.successMessageSelectors[j]).length; k++) {
  271. if (document.querySelectorAll(websiteDataValues.successMessageSelectors[j])[k] && document.querySelectorAll(websiteDataValues.successMessageSelectors[j])[k].innerText.includesOneOf(websiteDataValues.messagesToCheckBeforeMovingToNextUrl)) {
  272. return true;
  273. }
  274. }
  275. }
  276. }
  277. return false;
  278. }
  279.  
  280.  
  281. function ablinksCaptcha() {
  282.  
  283. setInterval(function() {
  284.  
  285. if (document.querySelector("#switch") && document.querySelector("#switch").innerText.toLowerCase().includes("hcaptcha")) {
  286. document.querySelector("#switch").click();
  287. } else if (document.querySelector("#switch") && document.querySelector("#switch").innerText.toLowerCase().includes("recaptcha")) {
  288. document.querySelector("#switch").click();
  289. }
  290. var count = 0;
  291.  
  292. var abModels = [".modal-content [href='/']", ".modal-body [href='/']", ".antibotlinks [href='/']"];
  293. var abModelsImg = [".modal-content [href='/'] img", ".modal-body [href='/'] img", ".antibotlinks [href='/'] img"];
  294. for (let j = 0; j < abModelsImg.length; j++) {
  295. if (document.querySelector(abModelsImg[j]) &&
  296. document.querySelector(abModelsImg[j]).value == "####") {
  297. goToNextUrl();
  298. break;
  299. }
  300. }
  301.  
  302. for (let i = 0; i < 4; i++) {
  303. for (let j = 0; j < abModels.length; j++) {
  304. if (document.querySelectorAll(abModelsImg[j]).length == 4 &&
  305. document.querySelectorAll(abModels[j])[i] &&
  306. document.querySelectorAll(abModels[j])[i].style &&
  307. document.querySelectorAll(abModels[j])[i].style.display == 'none') {
  308. count++;
  309. break;
  310. }
  311. }
  312. }
  313. if (count == 4) {
  314. ablinksSolved = true;
  315. }
  316. }, 2000);
  317.  
  318. }
  319.  
  320.  
  321. setTimeout(function() {
  322.  
  323. ablinksCaptcha();
  324.  
  325.  
  326. if (window.name == "nextWindowUrl") {
  327. window.name = "";
  328. goToNextUrl();
  329. return;
  330. } else {
  331. window.name = window.location.href;
  332. }
  333.  
  334.  
  335. if (websiteDataValues.additionalFunctions) {
  336. websiteDataValues.additionalFunctions();
  337. }
  338.  
  339. if (websiteDataValues.withdrawEnabled) {
  340. if (websiteDataValues.balanceSelector && document.querySelector(websiteDataValues.balanceSelector)) {
  341. var currentBalance = document.querySelector(websiteDataValues.balanceSelector).innerText;
  342. if (currentBalance > websiteDataValues.withdrawMinAmount && !window.location.href.includes(websiteDataValues.withdrawPageUrl)) {
  343. goToWithdrawPage();
  344. }
  345.  
  346. } else {
  347. if (successMessageSelectorsPresent()) {
  348. goToWithdrawPage();
  349. }
  350. }
  351. }
  352.  
  353.  
  354. if (!movingToNextUrl && messageSelectorsPresent()) {
  355. goToNextUrl();
  356. }
  357.  
  358.  
  359.  
  360. if (!movingToNextUrl && document.querySelector(websiteDataValues.inputTextSelector)) {
  361. document.querySelector(websiteDataValues.inputTextSelector).value = websiteDataValues.address;
  362. triggerEvent(document.querySelector(websiteDataValues.inputTextSelector), 'keypress');
  363. triggerEvent(document.querySelector(websiteDataValues.inputTextSelector), 'change');
  364. setTimeout(function() {
  365. if (websiteDataValues.inputTextSelectorButton && document.querySelector(websiteDataValues.inputTextSelectorButton)) {
  366. document.querySelector(websiteDataValues.inputTextSelectorButton).click();
  367. }
  368.  
  369. }, 2000);
  370. }
  371.  
  372.  
  373. if (!movingToNextUrl && websiteDataValues.defaultButtonSelectors) {
  374. for (let i = 0; i < websiteDataValues.defaultButtonSelectors.length; i++) {
  375. if (document.querySelector(websiteDataValues.defaultButtonSelectors[i])) {
  376. triggerEvent(document.querySelector(websiteDataValues.defaultButtonSelectors[i]), 'mousedown');
  377. triggerEvent(document.querySelector(websiteDataValues.defaultButtonSelectors[i]), 'mouseup');
  378. document.querySelector(websiteDataValues.defaultButtonSelectors[i]).click();
  379. break;
  380. }
  381. }
  382. }
  383.  
  384. setTimeout(function() {
  385. if (!movingToNextUrl && websiteDataValues.claimButtonSelectors) {
  386. for (let i = 0; i < websiteDataValues.claimButtonSelectors.length; i++) {
  387. if (document.querySelector(websiteDataValues.claimButtonSelectors[i])) {
  388. triggerEvent(document.querySelector(websiteDataValues.claimButtonSelectors[i]), 'mousedown');
  389. triggerEvent(document.querySelector(websiteDataValues.claimButtonSelectors[i]), 'mouseup');
  390. document.querySelector(websiteDataValues.claimButtonSelectors[i]).click();
  391. break;
  392. }
  393. }
  394. }
  395. }, 2000);
  396.  
  397.  
  398.  
  399.  
  400. var clicked = false;
  401. var captchaInterval = setInterval(function() {
  402.  
  403. if (websiteDataValues.ablinks && !ablinksSolved) {
  404. return;
  405. }
  406.  
  407. try {
  408. if (!clicked && unsafeWindow.grecaptcha && unsafeWindow.grecaptcha.getResponse().length > 0 &&
  409. websiteDataValues.captchaButtonSubmitSelector && document.querySelector(websiteDataValues.captchaButtonSubmitSelector) &&
  410. document.querySelector(websiteDataValues.captchaButtonSubmitSelector).style.display != 'none' &&
  411.  
  412. !document.querySelector(websiteDataValues.captchaButtonSubmitSelector).disabled) {
  413. if (websiteDataValues.formSubmit) {
  414. document.querySelector(websiteDataValues.captchaButtonSubmitSelector).submit();
  415. } else {
  416. document.querySelector(websiteDataValues.captchaButtonSubmitSelector).click();
  417. }
  418. clicked = true;
  419.  
  420. clearInterval(captchaInterval);
  421. setTimeout(function() {
  422. if (messageSelectorsPresent()) {
  423. goToNextUrl();
  424. }
  425. }, 2000);
  426. }
  427. } catch (e) {
  428.  
  429. }
  430.  
  431. for (var hc = 0; hc < document.querySelectorAll("iframe").length; hc++) {
  432. if (!clicked && document.querySelectorAll("iframe")[hc] &&
  433. document.querySelectorAll("iframe")[hc].hasAttribute("data-hcaptcha-response") &&
  434. document.querySelectorAll("iframe")[hc].getAttribute("data-hcaptcha-response").length > 0 &&
  435. websiteDataValues.captchaButtonSubmitSelector && document.querySelector(websiteDataValues.captchaButtonSubmitSelector) &&
  436. document.querySelector(websiteDataValues.captchaButtonSubmitSelector).style.display != 'none' &&
  437. !document.querySelector(websiteDataValues.captchaButtonSubmitSelector).disabled) {
  438. if (websiteDataValues.formSubmit) {
  439. document.querySelector(websiteDataValues.captchaButtonSubmitSelector).submit();
  440. } else {
  441. document.querySelector(websiteDataValues.captchaButtonSubmitSelector).click();
  442. }
  443. clicked = true;
  444. clearInterval(captchaInterval);
  445. setTimeout ( function() {
  446. if (messageSelectorsPresent()) {
  447. goToNextUrl();
  448. }
  449. }, 2000);
  450. }
  451. }
  452. }, 2000);
  453. }, 2000);
  454.  
  455. })();