Skip to content

Instantly share code, notes, and snippets.

@F43nd1r
Forked from phiresky/compiled
Last active October 22, 2017 10:13
Show Gist options
  • Star 4 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save F43nd1r/adb382fcaa29538c32932bf1337530ad to your computer and use it in GitHub Desktop.
Save F43nd1r/adb382fcaa29538c32932bf1337530ad to your computer and use it in GitHub Desktop.
Export ICS file from KIT Webinscribe. Paste into web console
var today = new Date();
var date = prompt("Datum des Montags in der ersten Tutorienwoche (Format TT.MM.JJJJ)",('0' + today.getDate()).slice(-2)+"."+('0' + (today.getMonth()+1)).slice(-2)+"."+today.getFullYear());
var count = prompt("Anzahl der Wiederholungen","13");
if(date != null && count != null) {
var temp = date.split(".");
var year = temp[2];
var month = temp[1];
var day = parseInt(temp[0]);
var out = "BEGIN:VCALENDAR\nVERSION:2.0\nPRODID:-//phiresky.de//tools\n";
var t = $("table.piTable>tbody").children;
var m = year+month;
for (i = 0; i < t.length; i++) {
var e = t[i].children,
name = e[0].textContent.trim(),
tutor = e[1].textContent,
regex = /Tutorium (..) ([-0-9:]+) (.*)/.exec(e[2].textContent.trim()),
wd = regex[1],
zeit = regex[2],
raum = regex[3],
wd = ["Mo", "Di", "Mi", "Do", "Fr"].indexOf(wd),
zeit = /(..):(..)-(..):(..)/.exec(zeit),
start = m + (day + wd) + "T" + zeit[1] + zeit[2] + "00",
end = m + (day + wd) + "T" + zeit[3] + zeit[4] + "00";
out += "BEGIN:VEVENT"+
"\nLOCATION:" + raum +
"\nSUMMARY:Tutorium für " + name.replace(/,/g, "\\,") +
"\nDESCRIPTION:" + tutor +
"\nDTSTART:" + start +
"\nDTEND:" + end +
"\nRRULE:FREQ=WEEKLY;COUNT="+count+"\nEND:VEVENT\n";
};
out += "END:VCALENDAR\n";
var a = document.body.appendChild(document.createElement("a"));
a.href = URL.createObjectURL(new Blob([out], {type: "text/calendar"}));
a.download = "Tutorien "+(month>6?"WS":"SS")+" "+year+" " + $("h3").textContent.match(/.{6}(.*)/)[1] + ".ics";
a.click();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment