// ========================================================================================== // This script was designed to run on the console internet browsers that support javascript. // He was thought of as a way of helping people to gain satochis faster without having to // spend hours turning manually with the mouse. // Your task is to automatically rotate the spinner of btcspinner website.io. // The script does not block the reCaptcha and not a scam site. // The reCaptcha appears when the script is paused. // Solve the reCaptcha and then click on the spinner that he will return to rotate normally. // --- // ========================================================================================== function mouseEvent(type, sx, sy, cx, cy) {   var evt;   var e = {     bubbles: true,     cancelable: (type != "mousemove"),     view: window,     detail: 0,     screenX: sx,     screenY: sy,     clientX: cx,     clientY: cy,     ctrlKey: false,     altKey: false,     shiftKey: false,     metaKey: false,     button: 0,     relatedTarget: undefined   };   if (typeof( document.createEvent ) == "function") {     evt = document.createEvent("MouseEvents");     evt.initMouseEvent(type,       e.bubbles, e.cancelable, e.view, e.detail,       e.screenX, e.screenY, e.clientX, e.clientY,       e.ctrlKey, e.altKey, e.shiftKey, e.metaKey,       e.button, document.body.parentNode);   } else if (document.createEventObject) {     evt = document.createEventObject();     for (prop in e) {     evt[prop] = e[prop];   }     evt.button = { 0:1, 1:4, 2:2 }[evt.button] || evt.button;   }   return evt; } var a = document.getElementsByClassName("spinner")[0], b = document.getElementById("speed"); a.addEventListener("mousemove", function(e){console.log("clientX:" + e.clientX +", clientY:" + e.clientY +", screenX:" + e.screenX +", screenY:" + e.screenY +", movementX:" + e.movementX);}); function bootRot(x, y){ a.dispatchEvent(mouseEvent("mousemove", x, y, x, y)); } function bootStart(){ if ((b.innerHTML != "Dragging") && parseInt(b.innerHTML) < 500){ var xInicial = 0, yInicial = 0; // "parseInt(b.innerHTML) < 500": 500 is the minimum value in RPMs from which the spinner rotates again. // This value can be edited! for(var ofParent = a; ofParent; ofParent = ofParent.offsetParent){ xInicial += ofParent.offsetLeft; yInicial += ofParent.offsetTop; } var bootWidth = xInicial + a.offsetWidth, bootHeight = xInicial + a.offsetHeight; var Xs = [xInicial, (bootWidth)/2, bootHeight, (bootWidth)/2], /*[462, 591, 729, 869],*/ Ys = [(bootHeight)/2, yInicial, (bootHeight)/2, bootHeight], /*[77, 77, 77, 77],*/ count = 0, speedBoot = 20; // speedBoot = 20: Time in milliseconds that the mouse pointer would by points (Xs,Ys) forming a perfect circle. // This value can also be edited. a.dispatchEvent(mouseEvent("mousedown", Xs[0], Ys[0], Xs[0], Ys[0])); bootRot(Xs[0], Ys[0]); setTimeout(function(){ bootRot(Xs[1], Ys[1]); }, (count++)*speedBoot); setTimeout(function(){ bootRot(Xs[2], Ys[2]); }, (count++)*speedBoot); setTimeout(function(){ bootRot(Xs[3], Ys[3]); a.dispatchEvent(mouseEvent("mouseup", Xs[3], Ys[3], Xs[3], Ys[3])); }, (count++)*speedBoot); } } var bootIntervalId = setInterval(bootStart, 20); // bootStart, 20: Time in milliseconds to swing reset after reaching the minimum RPM value. // This value can also be edited. // It is recommended that greater values for computers that do not have advanced hardware configuration! function bootStop(){ // bootStop(): Command stops the execution of the script. clearInterval(bootIntervalId); }