Last active
August 28, 2016 21:04
-
-
Save fabiomadge/57bca97dd5f13b2db590 to your computer and use it in GitHub Desktop.
Automatically sign up for a TUMonline course. There is another version, but this seams to be the good one. I don't remember.
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 startSignup(){ | |
//extract necessary data from dom | |
if(document.getElementById("autoSignupFrame") != null){ | |
alert("The script is already running. Please reload and try again to change something."); | |
return; | |
} | |
var firstGroup = document.getElementsByClassName("list")[0].getElementsByClassName("z1")[0].getElementsByTagName("td")[0].getElementsByTagName("a")[0].innerHTML; | |
var gruppe = window.prompt("Gruppe", firstGroup); | |
function sameName(elem){ | |
return elem.innerHTML.toLowerCase().trim() == gruppe.toLowerCase().trim(); | |
} | |
var gTag = Array.prototype.slice.call(document.getElementsByTagName("a")).filter(sameName)[0]; | |
if (gTag == undefined){ | |
alert("This doesn't look like a vaild name"); | |
return; | |
} | |
var tr = gTag.parentNode.parentNode; | |
//later needed to fill out the form | |
function isGrpNr(elem){ | |
return elem.name == "cststudnr"; | |
} | |
var pLVGrpNr = Array.prototype.slice.call(tr.getElementsByTagName("input")).filter(isGrpNr)[0].value.split("/")[0]; | |
function isStartingTime(elem){ | |
return (elem.getAttribute("headers") == "hdrANM hdrANMVON"); | |
} | |
var startingString = Array.prototype.slice.call(tr.getElementsByClassName("C")).filter(isStartingTime)[0].innerHTML; | |
var splitString = startingString.split(','); | |
var timeFragments = splitString[1].split(':').map(function(a){return parseInt(a);}); | |
var dateFragments = splitString[0].split('.').map(function(a){return parseInt(a);}); | |
var startingTime = new Date(2000 + dateFragments[2], dateFragments[1] - 1, dateFragments[0], timeFragments[0], timeFragments[1]); | |
//draw time ui | |
if(startingTime < new Date()){ | |
alert("Sorry, but this script can't make you travel back in time. Yet..."); | |
return; | |
} | |
var div = document.createElement('div'); | |
document.body.appendChild(div); | |
div.id = "autoSignupFrame"; | |
div.style.width = "240px"; | |
div.style.height = "78px"; | |
div.style.padding = "30px"; | |
div.style.border = "2px solid #a1a1a1"; | |
div.style.borderRadius = "20px"; | |
div.style.backgroundColor = "white"; | |
div.style.fontSize = "20px"; | |
div.style.color = "black"; | |
div.style.top = "0"; | |
div.style.bottom = "0"; | |
div.style.left = "0"; | |
div.style.right = "0"; | |
div.style.margin = "auto"; | |
div.style.position = "absolute"; | |
div.style.textAlign = "center" | |
div.style.fontFamily = ["Helvetica Neue", "Helvetica", "Arial"]; | |
div.innerText = "Milliseconds to start time:"; | |
var timeleft = document.createElement('div'); | |
div.appendChild(timeleft); | |
timeleft.style.marginTop = "10px" | |
timeleft.style.fontSize = "40px"; | |
timeleft.style.color = "#a1a1a1"; | |
timeleft.innerText = "4000"; | |
timeLoop(); | |
//actual form sending | |
function done(){ | |
with (document.forms[0]){ | |
//?? | |
pLVGrpProfNr.value = ""; | |
pPHOrgNr.value = ""; | |
pPHOrgName.value = ""; | |
pPHOrgKennung.value = ""; | |
cgrpnr.value=pLVGrpNr; | |
csave.value="J"; | |
submit(); | |
}; | |
} | |
function timeLoop(){ | |
var now = new Date(); | |
if (now > startingTime) return done(); | |
timeleft.innerText = (startingTime - now).toString(); | |
now = new Date(); | |
window.setTimeout(timeLoop, 1000 - now.getMilliseconds()); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment