forked from theno/haw2iCalendar
Parse haw calendar text files (www.informatik.haw-hamburg.de/veranstaltungsplaene.html, http://www.etech.haw-hamburg.de/Stundenplan), select events and export them into iCalendar format.
repat/haw2iCalendar
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
haw2iCalendar Termine der HAW-Veranstaltungen individuell zusammenstellen und im eigenen Kalenderprogramm (z.B. Google Calendar) verwenden. Features: - für Department Informatik (Inf) sowie Informatik und Elektrotechnick (EuI) - für Studenten und Dozenten - ausführliche Veranstaltungsnamen - zwei Guis: + haw2iCalendar.py + klickiBunti.py - {Uni,Linu}x, Windows - OpenSource Download: <https://github.com/theno/haw2iCalendar> --- Anleitung zur 'haw2iCalendar-klickiBunti.py': * Screenshots: http://www.flickr.com/photos/62642553@N06/sets/72157627606253923/ Studentensicht: http://www.flickr.com/photos/62642553@N06/6173044417/in/set-72157627606253923/ Dozentensicht: http://www.flickr.com/photos/62642553@N06/8572120989/in/set-72157627606253923/ Google Calendar Import (Foto-Story): http://www.flickr.com/photos/62642553@N06/8573215362/in/set-72157627606253923/ Android: http://www.flickr.com/photos/62642553@N06/8572121329/in/set-72157627606253923/ * haw2iCalendar: HAW-Kalender Textdatei einlesen, Termine auswählen und diese als iCalendar-Datei (*.ics) speichern. Das Department Informations- und Elektrotechnik sowie das Department Informatik der Hochschule für Angewandte Wissenschaften Hamburg (HAW) veröffentlicht neben den PDFs die Termine aller Veranstaltungen (Vorlesungen, Praktika, Übungen, etc.) auch in einer einzelnen Textdatei. Solch eine (für Menschen nur mühsam lesbare) Textdatei hat eine strukturierte Form, jedoch folgt sie keinem Standard. DER Standard für Kalenderdateien ist im RFC5545 definiert und heißt iCalendar. Eine HAW-Kalender Textdatei wird von haw2iCalendar geladen und anschließend geparst. Nun sind alle Veranstaltungen in einem aufklappbaren Menü aufgelistet. Dieses Menü kann nach den Semestern gruppiert werden (Studentensicht) oder nach den Dozenten gruppiert werden (Dozentensicht). Nun können dort Veranstaltungen per Doppelklick ausgewählt werden. Anschließend wird diese Auswahl per Knopfdruck als iCalendar-Datei (*.ics) gespeichert. Das Besondere an haw2iCalender ist, daß aus einer Abkürzung der volle Name einer Veranstaltung abgeleitet wird. So mußt Du nicht diese ganzen komischen Abkürzungen auswendig lernen. Jedoch geht keine Info verloren: In der Beschreibung zu einem Termin wird sowohl die eigentliche Abkürzung, das Kürzel des Dozenten als auch die Version des HAW-Kalender aufgeführt. Weiterhin gibt es auch die Möglichkeit, in einem Rutsch iCalendar-Dateien jeweils für alle Semestergruppen und Dozenten zu erzeugen ('Batch'-Menü). * Installation haw2iCalendar ist in Python geschrieben. Neben einer Standard Python-Installation (2.7.x) benötigt es noch: - SimpleParse: <http://simpleparse.sourceforge.net/> - wxglade (nur für klickiBunti.py): <http://wxglade.sourceforge.net/> + Unter Ubuntu 10.10 (x86_64) wird dies mit einem 'aptitude install python python-simpleparse python-wxglade' erledigt. + Unter Windows 7 (x86_64) ist es mir gelungen, haw2iCalendar zu verwenden, sofern ich immer die 32-bit Versionen installiert habe. + Einen Mac hatte ich bisher nicht zur Verfügung gehabt. Wenn jemand hier haw2iCalendar erfolgreich zum Laufen bekommt, bitte ich um Info der notwendigen Schritte. haw2iCalendar selber wird 'installiert', indem es in einen Ordner Deiner Wahl abgelegt wird: 'git clone https://github.com/theno/haw2iCalendar.git' Im Root-Dir liegen die zwei GUIs: - haw2iCalendar.py: startet die commandGui.py die Referenz-GUI (läuft in einem Terminal) - haw2iCalendar-klickiBunti.py: für Mausschubser ;-) * haw2iCalendar mit Google Calendar verwenden Wenn Du kein Problem damit hast, daß USA-Behörden wahrscheinlich Zugriff auf Deine Termine erhalten, kannst Du die mit haw2iCalendar erzeugten iCalendar-Dateien in den Google Kalender importieren. Diese hast Du dann auf deinem (Android-) Smartphone immer dabei. Am besten erstellst Du in Google Kalender unter 'Meine Kalender -> Hinzufügen' zunächst einen separaten Kalender für die HAW-Veranstaltungen (z.B. "WiSe2011/12"). Anschließend auf 'Weitere Kalender -> Hinzufügen -> Kalender importieren' drücken. Dort die mit haw2iCalendar erzeugte iCalendar-Datei auswählen und als Ziel den soeben erstellten Kalender festlegen. Wenn nun eine neue Version der HAW-Kalender Textdatei veröffentlicht wird, kannst Du einfach einen neuen Kalender mit den geänderten Terminen anlegen und den alten Kalender wegschmeißen. Praktisch. Im Gegensatz zu einem abonnierten Kalender kannst Du bei einem 'eigenen' Kalender auch selber Termine verändern, etwa weil ein Prof krank geworden ist oder so. * Andere Kalender-Programme Alle ernstzunehmenden Kalender-Programme können Termine im iCalender-Format importieren. Auch hier empfiehlt es sich, die HAW-Termine in einem separaten Kalender zu führen, damit diese bei Terminänderungen durch einen neuen Kalender ersetzt werden könnnen. Unter anderem können folgende Anwendungen oder Umgebungen mit iCalender- Dateien umgehen: - Google Calendar - Android - I-Phone - Evolution - Kalendar * Es gibt doch schon Programme, um eine Kalender-Datei zu erstellen, wieso nun haw2iCalendar? Fun. Python-Programmierübung. Keine Lust mehr, den Kram von Hand zu machen. Etwas, was unter Linux läuft und volle Veranstaltungsnamen erzeugt. Außerdem wird das Parsen nicht durch Regexe erledigt, sondern durch das Python-Modul 'SimpleParse'. Regexe sind, finde ich, schwer zu lesen und führen somit zu schwer wartbaren Code ('Read-only' Code). Mit SimpleParse wird die Struktur der Haw-Kalender Textdateien und der Veranstaltungskürzel jeweils durch eine verständlichere EBNF beschrieben. Dank einer Testumgebung in haw2iCalendar können die EBNFs zukünftig an neue Formulierungen zuverlässig angepasst werden (Ziel: wartbarer Code). * Welche anderen Programme gibt es noch, die sich mit diesen HAW-Kalender Textdateien herumschlagen? - HAW Stundenplan Tool: <http://blog.seveq.de/haw-stundenplan-tool/> - HAWPlantool * zu finden im pub: userName@shell:/home/pub> ls **/* | grep -C 5 -i plantool) * hexren hat das HAWPlantool von Arvid auf github 'gelagert': https://github.com/Hexren/HAWPlantool - HAWapp: <http://www.myhaw.de/board/index.php?showtopic=9080&st=0&#entry68128> * Wieso kein Webdienst? Ein Webdienst macht nur Sinn, wenn er auch durchgehend erreichbar ist. Ein Webdienst muss gepflegt werden; ein Programm kannst Du immer verwenden. Die Erfahrung hat mich gelehrt, daß der ein- oder andere Web-Dienst der HAW "gerne mal ausfällt". haw2iCalendar soll nicht dazu gehören. Die Idee eines per URL abbonierten Kalenders ist zwar reizvoll wegen der Möglichkeit automatischer Updates, andererseits können dort keine individuellen Terminänderungen vorgenommen werden. * Wieso keine Android-App? Mit einer Android-App wäre man an nur ein System gebunden. haw2iCalendar läuft auf GNU-Linux, Mac-OS und Windows, und mit den erzeugten iCalendar- Dateien können viele Anwendungen und Umgebungen etwas anfangen. --- 'haw2iCalendar.py' user@host:~/haw2iCalendar$ ./haw2iCalendar.py --help Usage: haw2iCalendar.py [-o ICS-FILE] INFILE Parse a haw calendar text file (Sem_I.txt or Sem_IuE.txt), select dates, convert the dates to the iCalendar format (rfc5545) and write them to stdout. Options: -h, --help show this help message and exit -p, --prof group by lecturers -i, --informatik alternative grouping (by semestergruppe from header) -o ICS-FILE write iCalendar-output to file instead stdout --- 'src/allgroups2icalendar.py' zeigt, wie haw2icalendar automatisiert (z.b. in einer webanwendung -- spontan fällt mir django ein) verwendet werden kann, etwa um von vorne herein ein standardisiertes format der veröffentlichten veranstaltungspläne zu verwenden (wink-mit-dem-zaunpfahl). --- contact: theodor.nolte@{,www.informatik.}haw-hamburg.de
About
Parse haw calendar text files (www.informatik.haw-hamburg.de/veranstaltungsplaene.html, http://www.etech.haw-hamburg.de/Stundenplan), select events and export them into iCalendar format.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published