Camp-planner

From NoName e.V.
Revision as of 12:39, 7 September 2007 by Botty (talk | contribs) (Robot: Cosmetic changes)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Mich hat eigentlich schon immer genervt, dass die Congress/Camp Fahrplanseiten statisch sind. Den Import des Fahrplans in iCals finde ich auch völlig unpraktikabel (unübersichtlich), deshalb dieses Greasemonkey Skript. Voträge, die man besuchen will bookmarkt man bei del.icio.us und taggt sie mit camp-planner:goto. Das Skript lädt alle Bookmarks mit diesem Tag beim besuchen der Fahrplanseite und markiert die Vorträge :). --PhilFry 01:42, 13 July 2007 (UTC)

Camp Planner Installieren

// author: phil_fry (dada.asdf AT gmail DOT com)
//

// ==UserScript==
// @name           camp-planner
// @namespace      urn:camp-planner
// @include        http://events.ccc.de/camp/2007/Fahrplan/day*
// ==/UserScript==

GM_xmlhttpRequest({
    method: 'GET',
    url: 'https://api.del.icio.us/v1/posts/all?tag=camp-planner:goto',
    headers: {
        'User-agent': 'camp-planner (Greasemonkey)',
        'Accept': 'application/atom+xml,application/xml,text/xml',
    },
    onload: function(responseDetails) {
    		var mark = function(urls) {
			cells = document.getElementsByTagName("td");
			for (var cell = null, i=0; cell = cells.item(i); i++) {
				if (cell.getElementsByTagName("p").length==0)
					continue;
				titlep = cell.getElementsByTagName("p").item(0);
				if (titlep.getAttribute("class")!="title")
					continue;
				event_url = titlep.getElementsByTagName("a").item(0).href;
				if (urls[event_url])
					cell.setAttribute("style", "background: #f88");
			}
		}
   
        var parser = new DOMParser();
        var dom = parser.parseFromString(responseDetails.responseText, "application/xml");
        var posts = dom.getElementsByTagName("post");

       	var event_urls = new Array();
       	for (var post = null, i = 0; post = posts.item(i); i++) 
       		event_urls[post.getAttribute('href')] = true;
         	
       	mark(event_urls);
    },
});