[Premium] Freebitco.in

Faucet Roll/1000% BTC Bonus/WoF Spin with Overlay for settings

目前为 2024-08-20 提交的版本。查看 最新版本

  1. // ==UserScript==
  2. // @name [Premium] Freebitco.in
  3. // @namespace https://gf.qytechs.cn/users/1162863
  4. // @version 3.5.1
  5. // @description Faucet Roll/1000% BTC Bonus/WoF Spin with Overlay for settings
  6. // @author Andrewblood
  7. // @icon https://www.google.com/s2/favicons?sz=64&domain=freebitco.in
  8. // @match *://*.freebitco.in/*
  9. // @grant GM_addStyle
  10. // @grant GM_setValue
  11. // @grant GM_getValue
  12. // @grant window.close
  13. // @antifeature referral-link Referral-Link is in this Script integrated.
  14. // @license Copyright Andrewblood
  15. // ==/UserScript==
  16.  
  17. (async function() {
  18. 'use strict';
  19.  
  20. var overlayStyle = `
  21. #overlay {
  22. position: fixed !important;
  23. left: 10px !important;
  24. bottom: 10px !important;
  25. width: 300px !important;
  26. height: 290px !important;
  27. background-color: rgba(0, 0, 0, 0.8) !important;
  28. color: white !important;
  29. padding: 10px !important;
  30. z-index: 9999 !important;
  31. font-size: 16px !important;
  32. display: flex;
  33. flex-direction: column;
  34. }
  35.  
  36. #overlay h2 {
  37. font-size: 20px;
  38. text-align: center;
  39. color: white;
  40. }
  41.  
  42. .checkbox-container {
  43. display: flex;
  44. align-items: center;
  45. margin-left: 40px;
  46. margin-bottom: 5px;
  47. }
  48.  
  49. .checkbox-container label {
  50. color: white;
  51. margin-left: 5px;
  52. }
  53.  
  54. #overlay button {
  55. margin-top: auto;
  56. align-self: center;
  57. }
  58.  
  59. #info-overlay {
  60. position: fixed;
  61. top: 50%;
  62. left: 50%;
  63. transform: translate(-50%, -50%);
  64. width: 80%;
  65. height: 80%;
  66. background-color: rgba(0, 0, 0, 0.8);
  67. color: white;
  68. z-index: 99999;
  69. padding: 20px;
  70. display: none;
  71. overflow-y: auto;
  72. }
  73.  
  74. #info-overlay h2 {
  75. text-align: center;
  76. color: white;
  77. }
  78.  
  79. #info-overlay ul {
  80. text-align: center;
  81. item-algin: center;
  82. color: white;
  83. }
  84.  
  85. #info-overlay a {
  86. color: red;
  87. }
  88. `;
  89.  
  90. GM_addStyle(overlayStyle);
  91.  
  92. var overlay = document.createElement('div');
  93. overlay.id = 'overlay';
  94.  
  95. overlay.innerHTML = '<h2>Freebitco.in Script</h2>';
  96.  
  97. var Status = document.createElement('div');
  98. Status.id = 'status';
  99. function setStatus(html) {
  100. Status.innerHTML = html;
  101. }
  102. overlay.appendChild(Status);
  103.  
  104. var wofCheckboxContainer = document.createElement('div');
  105. wofCheckboxContainer.classList.add('checkbox-container');
  106. wofCheckboxContainer.innerHTML = `
  107. <input type="checkbox" id="wof-checkbox">
  108. <label for="wof-checkbox">WoF</label>
  109. `;
  110.  
  111. overlay.appendChild(wofCheckboxContainer);
  112.  
  113. var bonusCheckboxContainer = document.createElement('div');
  114. bonusCheckboxContainer.classList.add('checkbox-container');
  115. bonusCheckboxContainer.innerHTML = `
  116. <input type="checkbox" id="bonus-checkbox">
  117. <label for="bonus-checkbox">1000% BTC Bonus</label>
  118. `;
  119.  
  120. overlay.appendChild(bonusCheckboxContainer);
  121.  
  122. var rollCheckboxContainer = document.createElement('div');
  123. rollCheckboxContainer.classList.add('checkbox-container');
  124. rollCheckboxContainer.innerHTML = `
  125. <input type="checkbox" id="roll-checkbox">
  126. <label for="roll-checkbox">Roll</label>
  127. `;
  128.  
  129. overlay.appendChild(rollCheckboxContainer);
  130.  
  131. var closeCheckboxContainer = document.createElement('div');
  132. closeCheckboxContainer.classList.add('checkbox-container');
  133. closeCheckboxContainer.innerHTML = `
  134. <input type="checkbox" id="close-checkbox">
  135. <label for="close-checkbox">Close after work</label>
  136. `;
  137. overlay.appendChild(closeCheckboxContainer);
  138.  
  139. var moreInfoButton = document.createElement('button');
  140. moreInfoButton.textContent = 'More Info';
  141. moreInfoButton.addEventListener('click', openInfoOverlay);
  142.  
  143. overlay.appendChild(moreInfoButton);
  144.  
  145. document.body.appendChild(overlay);
  146.  
  147. function openInfoOverlay() {
  148. var infoOverlay = document.getElementById('info-overlay');
  149. if (!infoOverlay) {
  150. infoOverlay = document.createElement('div');
  151. infoOverlay.id = 'info-overlay';
  152. infoOverlay.innerHTML = `
  153. <h2>Additional Information</h2>
  154. <p>
  155. The script looks at first for a message if you have any WoF aviable, if yes it opens a new page and makes the WoF and close the Wof page.<br>
  156. Then it goes to the Reward page and looks how many Reward points you have if you have much enough for 1000% BTC bonus it buy that.<br>
  157. After that it make the Roll with or without Captcha. (Captcha Solving not included)<br>
  158. Then it close the page 10 seconds later or reload after 60 minutes.<br>
  159. You can activate and deactivate the functions in the Overlay as desired.<br>
  160. </p>
  161. <br>
  162.  
  163. <h2>Download Captcha Solver</h2>
  164. <p>
  165. <b>HCaptcha + ReCaptcha:</b> NoCoding Data Scraper and CAPTCHA Solver - <a href="https://chromewebstore.google.com/search/minirpa" target="_blank">Install Here</a><br>
  166. <b>Antibot Words:</b> AB Links Solver - <a href="https://gf.qytechs.cn/de/scripts/459453-ab-links-solver" target="_blank">Install Here</a><br>
  167. <b>Cf-Turnstile:</b> Autopass Cloudflare CAPTCHA - <a href="https://gf.qytechs.cn/de/scripts/464785-autopass-cloudflare-captcha" target="_blank">Install Here</a><br>
  168. </p>
  169. <br>
  170.  
  171. <h2>Support</h2>
  172. <p>
  173. If you have any questions or need assistance, don't hesitate to reach out the creator and supporter, <a href="https://gf.qytechs.cn/users/1162863" target="_blank">Andrewblood</a>.<br>
  174. </p>
  175. <br>
  176.  
  177. <h2>Privacy Policy</h2>
  178. <p>
  179. This script stores user data locally within TamperMonkey and is exclusively used for script functionality.<br>
  180. It is not shared with the script creator or third parties.<br>
  181. </p>
  182. <br>
  183.  
  184. <h2>Changelog</h2>
  185. <p>
  186. <b>Version v.3.4</b><br>
  187. New Status showing<br>
  188. <br>
  189. <b>Version v.3.3</b><br>
  190. New waiting for ending of last activated Status before start the next<br>
  191. <br>
  192. <b>Version v.3.2</b><br>
  193. Improved Infos<br>
  194. Improved close function<br>
  195. <br>
  196. <b>Version v.3.1</b><br>
  197. New setting to let the site open<br>
  198. New Button/Overlay with more Infos<br>
  199. Deleted comments<br>
  200. <br>
  201. <b>Version v.3.0</b><br>
  202. New Overlay to chance the functions<br>
  203. </p>
  204. `;
  205. document.body.appendChild(infoOverlay);
  206. }
  207. infoOverlay.style.display = 'block';
  208.  
  209. document.addEventListener('click', function(event) {
  210. if (!infoOverlay.contains(event.target) && event.target !== moreInfoButton) {
  211. closeInfoOverlay();
  212. }
  213. });
  214. }
  215.  
  216. function closeInfoOverlay() {
  217. var infoOverlay = document.getElementById('info-overlay');
  218. if (infoOverlay) {
  219. infoOverlay.style.display = 'none';
  220. }
  221. }
  222.  
  223. var wofCheckbox = document.getElementById('wof-checkbox');
  224. wofCheckbox.addEventListener('change', function() {
  225. GM_setValue('wofStatus', wofCheckbox.checked);
  226. });
  227.  
  228. var savedWofStatus = GM_getValue('wofStatus');
  229. if (savedWofStatus !== undefined) {
  230. wofCheckbox.checked = savedWofStatus;
  231. }
  232.  
  233. var bonusCheckbox = document.getElementById('bonus-checkbox');
  234. bonusCheckbox.addEventListener('change', function() {
  235. GM_setValue('bonusStatus', bonusCheckbox.checked);
  236. });
  237.  
  238. var savedBonusStatus = GM_getValue('bonusStatus');
  239. if (savedBonusStatus !== undefined) {
  240. bonusCheckbox.checked = savedBonusStatus;
  241. }
  242.  
  243. var rollCheckbox = document.getElementById('roll-checkbox');
  244. rollCheckbox.addEventListener('change', function() {
  245. GM_setValue('rollStatus', rollCheckbox.checked);
  246. });
  247.  
  248. var savedRollStatus = GM_getValue('rollStatus');
  249. if (savedRollStatus !== undefined) {
  250. rollCheckbox.checked = savedRollStatus;
  251. }
  252.  
  253. var closeCheckbox = document.getElementById('close-checkbox');
  254. closeCheckbox.addEventListener('change', function() {
  255. GM_setValue('closeStatus', closeCheckbox.checked);
  256. });
  257.  
  258. var savedCloseStatus = GM_getValue('closeStatus');
  259. if (savedCloseStatus !== undefined) {
  260. closeCheckbox.checked = savedCloseStatus;
  261. }
  262.  
  263. function checkReferalCode() {
  264. var url = window.location.href;
  265. var targetURL = "https://freebitco.in/signup/?op=s&r=3595810";
  266.  
  267. if (url.includes("signup") && url !== targetURL) {
  268. window.location.href = targetURL;
  269. }
  270. }
  271.  
  272. // Funktion zur Ausführung der WoF-Aktion
  273. async function performWoFAction() {
  274. if (savedWofStatus) {
  275. setStatus('<p><b>Status: </b>Looking for WoF and spin.</p>');
  276. if (window.location.href.includes("wof")) {
  277. await new Promise(resolve => {
  278. setTimeout(function() {
  279. document.querySelector("#wofc-section > div > div.wofc-spins > p > button:nth-child(2)").click();
  280. resolve();
  281. }, 1000 * 5);
  282. });
  283. await new Promise(resolve => {
  284. setTimeout(function() {
  285. window.close();
  286. resolve();
  287. }, 1000 * 10);
  288. });
  289. }
  290. await new Promise(resolve => {
  291. setTimeout(function() {
  292. if (document.querySelector("#free_wof_spins_msg")) {
  293. window.open('https://freebitco.in/static/html/wof/wof-premium.html', '_blank');
  294. }
  295. resolve();
  296. }, 1000 * 3);
  297. });
  298. }
  299. }
  300.  
  301. // Funktion zur Ausführung der Bonus-Aktion
  302. async function performBonusAction() {
  303. if (savedBonusStatus) {
  304. setStatus('<p><b>Status: </b>Looking for Bonus.</p>');
  305. document.querySelector("body > div.large-12.fixed > div > nav > section > ul > li:nth-child(8) > a").click();
  306. document.querySelector("#rewards_tab > div.row.reward_category_container_main_div > div > div:nth-child(4) > div.reward_category_name").click();
  307. await new Promise(resolve => {
  308. setTimeout(function() {
  309. var yourrwp = parseFloat(document.querySelector("#rewards_tab > div:nth-child(2) > div > div.reward_table_box.br_0_0_5_5.user_reward_points.font_bold").innerText.replace(/,/, ''));
  310. var bonuscost = parseFloat(document.querySelector("#fp_bonus_rewards > div:nth-child(2) > div:nth-child(2) > div.large-6.small-12.columns > div").innerText.replace(/,/, ''));
  311. console.log("Current Reward Points:", yourrwp);
  312. console.log("Price for bonus:", bonuscost);
  313. if (yourrwp > bonuscost) {
  314. document.querySelector("#fp_bonus_rewards > div:nth-child(2) > div:nth-child(2) > div:nth-child(3) > button").click();
  315. }
  316. resolve();
  317. }, 1000 * 1);
  318. });
  319. document.querySelector("#free_play_link_li > a").click();
  320. }
  321. }
  322.  
  323. // Funktion zur Ausführung der Roll-Aktion
  324. async function performRollAction() {
  325. if (savedRollStatus) {
  326. setStatus('<p><b>Status: </b>Make the Roll</p>');
  327. await new Promise(resolve => {
  328. setTimeout(function() {
  329. if (document.querySelector("#free_play_form_button").style.display == "none") {
  330. resolve();
  331. } else {
  332. var captchaResponse = document.querySelector('input[name="cf-turnstile-response"]');
  333. if (captchaResponse) {
  334. var interval = setInterval(function() {
  335. if (captchaResponse.value.length > 1) {
  336. clearInterval(interval);
  337. document.querySelector("#free_play_form_button").click();
  338. resolve();
  339. }
  340. }, 1000);
  341. } else {
  342. document.querySelector("#free_play_form_button").click();
  343. resolve();
  344. }
  345. }
  346. }, 1000 * 3);
  347. });
  348. }
  349. }
  350.  
  351. // Funktion zur Ausführung der Schließ-Aktion
  352. async function performCloseAction() {
  353. if (savedCloseStatus) {
  354. await new Promise(resolve => {
  355. setStatus('<p><b>Status: </b>Close the site in 10 seconds.</p>');
  356. setTimeout(function() {
  357. window.close();
  358. resolve();
  359. }, 1000 * 10);
  360. });
  361. } else {
  362. await new Promise(resolve => {
  363. setStatus('<p><b>Status: </b>Wait 60 min. for reload.</p>');
  364. setTimeout(function() {
  365. window.location.reload();
  366. resolve();
  367. }, 1000 * 60 * 60);
  368. });
  369. }
  370. }
  371.  
  372. // Die Aktionen werden nacheinander ausgeführt
  373. checkReferalCode();
  374. setStatus('<p><b>Status: </b>Started.</p>');
  375. await performWoFAction();
  376. await performBonusAction();
  377. await performRollAction();
  378. await performCloseAction();
  379.  
  380. })();

QingJ © 2025

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