bitcoincuba.net Faucet Rotator

Earn Free Coins Instantly

当前为 2023-11-18 提交的版本,查看 最新版本

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