Created
December 30, 2018 07:28
-
-
Save renjikun/0158d917455233395eb67de58eedd02a to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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) < 1600){ | |
var xInicial = 0, yInicial = 0; | |
// "parseInt(b.innerHTML) < 1600": 1600 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, 1800); | |
// 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); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment