Coinmedia.in/ auto faucet

Automatically Login and Handle Faucet Pages

  1. // ==UserScript==
  2. // @name Coinmedia.in/ auto faucet
  3. // @namespace bekerja pada tampermonkey maupun violentmonkey
  4. // @version 0.2
  5. // @description Automatically Login and Handle Faucet Pages
  6. // @author Ojo Ngono
  7. // @grant GM_getValue
  8. // @grant GM_setValue
  9. // @grant GM_addStyle
  10. // @grant GM_registerMenuCommand
  11. // @require https://update.gf.qytechs.cn/scripts/439099/1203718/MonkeyConfig%20Modern%20Reloaded.js
  12. // @match https://coinmedia.in/*
  13. // @license Copyright OjoNgono
  14. // @antifeature referral-link Directs to a referral link when not logged in
  15. // ==/UserScript==
  16.  
  17. const cfg = new MonkeyConfig({
  18. title: 'Input Email Faucetpay:',
  19. menuCommand: true,
  20. params: {
  21. Email: {
  22. label: "Email Faucetpay",
  23. type: "text",
  24. default: ''
  25. },
  26. }
  27. });
  28.  
  29. (function () {
  30. 'use strict';
  31.  
  32. const savedEmail = cfg.get('Email');
  33.  
  34. if (!savedEmail) {
  35. alert("Silakan masukkan Email Faucetpay di menu pengaturan untuk melanjutkan.");
  36. return;
  37. }
  38.  
  39. const fillEmail = () => {
  40. const emailInput = document.querySelector('input[placeholder="Connect Your FaucetPay Email"]');
  41. if (emailInput) {
  42. emailInput.value = savedEmail;
  43. }
  44. };
  45.  
  46. const waitAndClickButton = () => {
  47. const interval = setInterval(() => {
  48. const button = document.querySelector('button.btn.btn-danger');
  49. if (button) {
  50. if (!button.disabled) {
  51. button.click();
  52. clearInterval(interval);
  53. }
  54. }
  55. }, 500);
  56. };
  57.  
  58. const checkForMessageAndRedirect = () => {
  59. const swalTitle = document.querySelector('.swal2-title');
  60. const swalContent = document.querySelector('.swal2-html-container');
  61. const successMessage = "Your wallet was successfully linked";
  62. const insufficientFundsMessage1 = "The faucet does not have sufficient funds for this transaction.";
  63. const insufficientFundsMessage2 = "You are sending an invalid amount of payment to the user.";
  64. const insufficientFundsMessage3 = "You have been rate-limited. Please try again in a few seconds.";
  65.  
  66. const urls = [
  67. "https://coinmedia.in/auto/currency/ltc",
  68. "https://coinmedia.in/auto/currency/bnb",
  69. "https://coinmedia.in/auto/currency/bch",
  70. "https://coinmedia.in/auto/currency/dash",
  71. "https://coinmedia.in/auto/currency/doge",
  72. "https://coinmedia.in/auto/currency/dgb",
  73. "https://coinmedia.in/auto/currency/eth",
  74. "https://coinmedia.in/auto/currency/fey",
  75. "https://coinmedia.in/auto/currency/trx",
  76. "https://coinmedia.in/auto/currency/usdt",
  77. "https://coinmedia.in/auto/currency/sol",
  78. "https://coinmedia.in/auto/currency/xrp",
  79. "https://coinmedia.in/auto/currency/xlm",
  80. "https://coinmedia.in/auto/currency/ada",
  81. "https://coinmedia.in/auto/currency/usdc",
  82. "https://coinmedia.in/auto/currency/zec",
  83. "https://coinmedia.in/auto/currency/xmr"
  84. ];
  85.  
  86. if (swalTitle && swalTitle.innerText === "Success!" && swalContent && swalContent.innerText.includes(successMessage)) {
  87. window.location.href = urls[0];
  88. return;
  89. }
  90.  
  91. if (swalContent && (swalContent.innerText.includes(insufficientFundsMessage1) || swalContent.innerText.includes(insufficientFundsMessage2) || swalContent.innerText.includes(insufficientFundsMessage3))) {
  92. const currentPath = window.location.pathname;
  93. const currentIndex = urls.findIndex(url => url.includes(currentPath.split('/').pop()));
  94.  
  95. if (currentIndex >= 0 && currentIndex < urls.length - 1) {
  96. window.location.href = urls[currentIndex + 1];
  97. }
  98. }
  99. };
  100.  
  101. const checkTurnstile = () => {
  102. let turnstileResponse = document.querySelector('input[name="cf-turnstile-response"]');
  103. return turnstileResponse && turnstileResponse.value !== '';
  104. };
  105.  
  106. const checkTurnstileAndUnlock = () => {
  107. if (window.location.href === "https://coinmedia.in/firewall") {
  108. const turnstileResponse = document.querySelector('input[name="cf-turnstile-response"]');
  109. const unlockButton = document.querySelector('button[style*="background-color: #00008B"]');
  110.  
  111. if (turnstileResponse && turnstileResponse.value !== '' && unlockButton) {
  112. unlockButton.click();
  113. }
  114. }
  115. };
  116.  
  117. const handleDashboardRedirect = () => {
  118. if (window.location.href === "https://coinmedia.in/dashboard") {
  119. if (!window.localStorage.getItem("redirected")) {
  120. window.localStorage.setItem("redirected", "true");
  121. window.location.href = "https://coinmedia.in/?r=10245";
  122. }
  123. return;
  124. }
  125.  
  126. if (window.location.href === "https://coinmedia.in/?r=10245") {
  127. window.localStorage.removeItem("redirected");
  128. }
  129. };
  130.  
  131. setTimeout(() => {
  132. handleDashboardRedirect();
  133.  
  134. fillEmail();
  135.  
  136. waitAndClickButton();
  137.  
  138. setInterval(checkForMessageAndRedirect, 2000);
  139.  
  140. setInterval(checkTurnstileAndUnlock, 1000);
  141. }, 3000);
  142. })();

QingJ © 2025

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