Skip to content
fake666 edited this page Jul 11, 2012 · 5 revisions

NamNamist ein Parser fuer die Speiseplaene von Mensen/Studentenwerken. Im Moment ist einer fuer alle Mensen des Studentenwerks Erlangen-Nuernberg implementiert. NamNam ist Open Source, und jeder, der mag, kann seine Informationen verwenden, um eigene Applikationen zu schreiben. Die aufbereiteten Files findest du stets aktuell hier.

Damit deine Applikation nicht den Dienst versagt, sollte sich ein Studentenwerk/eine Mensa dazu entscheiden das Format ihrer Webseite zu ändern, beziehst du die Daten einfach von diesem Server, wo sie stets richtig geparst bereitstehen, das erspart dir das pushen von Updates an deine User. Und sollte der Parser auf diesem Server mal nicht funktionieren, ist es wenigstens nicht deine Schuld, dass deine Anwendung nicht mehr geht ;-)

Fuer Java-Projekte haben wir ein besonderes Schmankerl: eine fixfertige Library namens NamNamModel, die du nur in's Eclipse/NetBeans/whatever schubsen musst, und dann mit diesen einfachen Schritten z.B. alle bekannten Menues auf dem Terminal ausgeben kannst (mindestens Java 1.5 noetig!):

import org.bytewerk.namnam.importer.NamNamImporter;
import org.bytewerk.namnam.importer.jxml.NamNamJXMLImporter;
import org.bytewerk.namnam.model.*;
import java.net.URL;

public class Main {

    public static final String theUrl =
     "http://namnam.bytewerk.org/files/Studiwerk-Erlangen-Nuernberg-Mensa-IN.jxml";

    public static void main(String[] args) {
        NamNamImporter jxmlImporter = new NamNamJXMLImporter();

        Mensa m;
        try {
            m = jxmlImporter.loadFromURL(new URL(theUrl));
        } catch(Exception ex) {
            System.err.println("autsch, da klappt was nicht!");
            ex.printStackTrace(); return;
        }

        for(Tagesmenue tm : m.getDayMenues()) {
            for(Mensaessen me : tm.getMenues()) {
                System.out.println(tm.getTag() + ": " + me.getBeschreibung());
            }
        }
    }
}

Das schoene Ausgeben des Datums bleibt dem geneigten Coder ueberlassen ;-)

Alle Infos zu dieser Library findest du hier: NamNamModel.

Clone this wiki locally