Aufgeräumtes Blackboard!

Aufgeräumtes BlackboardIch hätte es nicht geglaubt, dass ich das nochmal sehe: Mein Blackboard ist angenehm aufgeräumt. Leider kam das nicht von Seiten der Professoren1 sondern ist in Eigenregie entstanden.

Seit einiger Zeit existiert ein Firefox-Plugin namens „Greasemonkey“. Damit kann man eigene Javascripts schreiben, die auf bestimmten Websites ablaufen. Ich schrieb mir Kurzerhand einen Filter für die „Courses Quick View“. Ihr könnt das Script gerne nach eigenem Belieben verändern. Ich werde es eventuell in Zukunft noch für die anderen Views (My Announcements und My Courses) anpassen.

Blackboard-Cleaner Greasemonkey-Script hier herunterladen (zip) (Zum anwenden wird noch Greasemonkey benötigt)

An die eigenen Kurse anpassen ist sehr einfach: Ihr seht direkt am Anfang das Array „DontBugMeWith“ – Dort könnt ihr einfach die Namen der Kurse eintragen, die ihr nicht mehr sehen könnt wollt.

// ==UserScript==
// @name           Blackboard Cleaner
// @namespace      bbc
// @description    This Script shall reduce your information-overload induced by the blackboard
// @include        http://bb2.sdi.h-da.de/webapps/portal/tab/_1_1/index.jsp
// ==/UserScript==

// This array contains the names of the courses you don't want anymore:
DontBugMeWith = ['Business Management',
				 'MD-BPS-IP-Begleitseminar',
				 'MSD-AVT/Audiovisual Technology',
				 'MSD-GS2/Management and Labour',
				 'MSD-GS3/Legal Aspects of Multimedia',
				 'MSD-GS4/Assessment of Information and Communication Technology',
				 'MSD-I5/Media System Engineering 1',
				 'MSD-TP: Textproduktion'];

// this calls the main working function.
bbc();

// The following functions are used in this script. If you wish to do something else,
// the easiest thing to do would be to edit "hideEntry()"-Function to your liking.
// I removed the whole line including the leading "coursebook".

function bbc() {
	var allLinks = document.getElementsByTagName('a');
	for (var i = 0;i < allLinks.length;i++){
		if (isBlacklisted(allLinks[i].text)) {
			hideEntry(allLinks[i]);
		}
	}
}
function isBlacklisted(needle) {
	for (var i=0;i < DontBugMeWith.length;i++)
		if (DontBugMeWith[i] == needle) {
			return true;
		}
	}
	return false;
}
function hideEntry(node) {
	// Example 0: Shouting out the names of the courses:
	// alert(node.text + " nervt wie sau!");

	// Example 1: Make those courses less visible:
	// node.setAttribute('style','color:#ddeeff;');

	// Example 2: Making the row invisible (removing lead to strange results.
	// The HTML-Structure is: tbody -> tr -> td -> font -> our anchor node. so we need 3x parentNode.
	node.parentNode.parentNode.parentNode.setAttribute('style','display:none;');
}
  1. Ja, Herr J. Fischer, die Professoren sind dafür zuständig, die Studierenden nach dem Kurs aus dem Blackboard Course wieder zu entfernen! [zurück]

4 Gedanken zu „Aufgeräumtes Blackboard!“

  1. Also das eine Semester halt ich die „Unordnung“ nun noch durch – Soooooo oft schau ich da eh nicht rein 😉

  2. interessanter Ansatz! Aber es gibt doch soweit ich mich entsinnen kann, schwere Sicherheitsprobleme mit Greasemonkey. Hat sich das geändert?

  3. Greasemonkey hatte bis rund 2005 ein großes Sicherheitsproblem wenn man
    a) der Seite auf der man war nicht vertrauen konnte oder
    b) dem Script, dass man einsetzte nicht vertrauen konnte.

    Ersteres wäre nur dann gegeben, wenn jemand mit dem Blackboard eine Man in the middle Attacke ausführen würde (bei der er oder sie sowieso schon an das Passwort und ähnliches gelangt wäre).
    Letzteres kann man bei dem kurzen Code und etwas JS-Kenntnis noch recht gut überschauen.

    Durch gewissen Änderungen an der Art, wie Greasemonkey arbeitet (bei O’Reilly sehr gut beschrieben) kann ein sicheres User-Script auf einer unsicheren Seite keinen Schaden mehr anrichten. (Womit a) schonmal gekontert wäre)

    Ein Restrisiko bleibt natürlich immer – aber da kann auch eine Browser-eigene Sicherheitslücke kommen oder etwas wie die ungeprüften URL-Lücken in den letzten Monaten.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.