Thomas makes, writes

2006-06-18

DenAgenda: De Nayer Timetables

pictogram

DenAgenda is a python program that ran as a CGI on my webserver. It converted my college's online timetable from HTML to the iCalendar format, a standardized calendar file format.

Sourcecode is available under GPL 2 license and can be found in a git repository:

git clone http://denagenda.thouters.be/denagenda.git

DenAgenda has been made possible by using BeautifulSoup, a Python HTML/XML parser designed for quick turnaround projects like screen-scraping.

Here is the old information page I used to host at denagenda.thouters.be:

Even voorstellen

De Uurrooster to iCalendar software 'DenAgenda' maakt het mogelijk de lessenroosters van het De Nayer Instituut in een agendaprogramma zoals Google Agenda, Outlook, Evolution, Kontact, Sunbird en iCal te laden. De enige vereiste is een kalenderprogramma naar keuze. Het is mogelijk dat bij je GSM software zit waarmee je het kalenderprogramma kan synchroniseren met GSM!

DenAgenda hoeft niet op je pc geïnstalleerd te worden!

Je kalenderprogramma zal steeds de recentste lessenrooster weergeven, DenAgenda haalt de uurrooster namelijk af van http://sws.wenk.be/.

Wie en waarom

Thomas (SPE) heeft DenAgenda gemaakt omdat hij het beu was om steeds naar de uurrooster site te surfen na vele leswijzigingen.

Na de overschakeling van de uurroosters naar http://sws.wenk.be/ heeft een update die overweg kon met de nieuwe lestabellen op zich laten wachten. De auteur had het jaar van de overschakeling geen uitgebreide lessenrooster (2007, laatste jaar Prof. Bachelor, met vele project- en stageweken).

In de zomer van 2007 is het er toch van gekomen. Het gemak dat de vorige incarnatie van DenAgenda bood deed een gemis ervaren bij de ondertussen verstokte gebruikers, wat zich dan weer vertaalde in herhaalde verzoeken.

Verder is DenAgenda een mooie praktische toepassing van de gebruikte programmeertalen, en de programmeertaal Python een plezier om met te werken.

Gebruik

Identificeer jou klas of naam, zoals hij op http://sws.wenk.be/ in het keuzevenster te lezen is, maar laat spaties en slashes (/) vallen. Hoofdletters zijn onbelangrijk. Enkele voorbeelden:

  • Studentenrooster: MaEMEM2, maei1, SPEMETI1, ...
  • Docent: pelgrimspatrick, desamblanxgorik,...
  • Lokaal: k113, a116,...

Vul de volgende URL aan met de identificatie, en geef die in in het kalenderprogramma.

http://denagenda.thouters.be/get/

Note

  • Door '?@' toe te voegen aan de URL wordt het lokaal in de 'summary' gezet. Dit is handig bij sommige telefoons die het 'locatie'-veld van een afspraak niet weergegeven.
  • Je organizer geeft de docent en het lokaal weer.
  • Lokaalroosters geven alle aanwezigen weer.

Caution!

DUBBELCHECK de resultaten van DenAgenda!!! Omdat ik geen verantwoordelijkheid aanvaard voor de gevolgen van het gebruik, garandeer ik de correctheid van de roosters niet. Persoonlijk acht ik DenAgenda zeer betrouwbaar, je kan de broncode van de software zelf downloaden en bekijken, aan u om een oordeel te vellen.

Screenshots

thumb
Evolution - Agenda
evolution2.png
thumb
iCal op MacOSX Tiger
ical.png
thumb
Kontact onder kde 3.4
kontact.jpg
thumb
Sunbird - 1 dag
sunbird1.png
thumb
Sunbird - Week
sunbird2.png
thumb
Outlook - "Vandaag"
winxp-outlook-vandaag.jpg
thumb
Outlook - weekoverzicht
winxp-outlook-week.jpg

Hoe je organizer configureren

Outlook (vanaf 2000)

Omdat Outlook niet kan abonneren op dynamische iCalendar bestanden (Microsoft software werkt zelden goed samen met open standaarden), moet een momentopname gedownload worden.

  1. Open de URL voor je klas in je webbrowser, deze zal vragen om een bestand op te slagen. Doe dit en onthoud de lokatie.
  2. Klik in Outlook op "Bestand->Importeren en exporteren-> iCalender bestand", en selecteer het bestand dat je juist met je webbrowser hebt opgeslagen.

Note

Wijzigingen in de uurrooster zullen niet automatisch in Outlook verschijnen. Je zal steeds een momentopname in Outlook zien! Het is aangeraden om Outlook enkel te gebruiken om te synchroniseren met een GSM. Voor dagelijks gebruik en opzoeken raad ik het gratis programma Mozilla Sunbird aan.

Om je Outlook agenda te updaten dien je alle afspraken/lessen manueel te verwijderen, en de procedure te herhalen.

Caution!

In de praktijk blijkt dat MS Outlook 2003 de output van DenAgenda niet kan begrijpen. De fout is niet op te sporen aangezien Outlook geen verklaring geeft. Ik heb de validiteit van DenAgenda geverifieerd met iCal Validator (door Ben Fortuna). Deze validator bewijst dat dit gebrek niet mijn fout is, ik maak er dus ook niet mijn probleem van.

Mozilla Sunbird gebruiken

Mozilla Sunbird kan je gratis downloaden van de Sunbird website. Het is een open source agendaprogramma, en draait op Windows, MacOSX en Linux.

  1. Start Sunbird
  2. Klik (links in het venster) op het tabblad "kalenders".
  3. Rechterklik in de lijst van kalenders, kies "New Calendar".
  4. Vul een de kalendernaam in (naar keuze, vb: "lessenrooster", "lessen 1ge2",...)
  5. Vul in het vak "Remote server URL" de URL in.
  6. Klik op voltooien.

Evolution gebruiken

Evolution is het standaard emailprogramma en organiser van Ubuntu- en Suse Linux.

  1. Ga naar Agenda's.
  2. Rechterklik in de lijst van agenda's en kies "nieuwe agenda".
  3. Selecteer als kalendertype "Op het web"
  4. Vul in het vak naam een naam in.
  5. Vul in het vak URL de URL in.
  6. Klik op "kalender toevoegen".

Apple iCal

iCal is het standaard kalenderprogramma van Apple. Apple iSync maakt het mogelijk om je kalender te synchroniseren naar GSM's via Bluetooth.

  1. Open iCal
  2. Kies "Subscribe to online calendar".
  3. Voer de URL in.
  4. Stel in dat iCal de kalender ververst om het uur, zo blijf je up-to-date.

Apple iPod

Onder MacOSX kan je iCal synchroniseren met je iPod, onder Windows kan je het volgende doen:

  1. Geef de URL in in je browser.
  2. Slaag de file op in de map Calendars op je iPod.

Korganiser/Kontact in KDE

  1. Linksonder vind je een venster met hulpbronnen (normaal staat daar al "Default Korganiser Resource").
  2. Klik op Toevoegen (Als toevoegen niet beschikbaar is klik dan onder Instellingen "hulpbronnen weergeven" aan)
  3. Geef een naam in (vb: "uurrooster op het web").
  4. Geef bij "downloaden van" de URL in.
  5. Vink "Aleen lezen" aan.
  6. Kies "Automatisch laden bij opstarten".
  7. Zet automatisch opslaan op "Nooit".
  8. Vink nu je pas gemaakte kalender aan, en geniet van de automatisch geupdate uurrooster.

Werking

principe

Nieuwsgierigen kunnen aan de slag met de broncode, te vinden in de git repository op:

git clone http://denagenda.thouters.be/denagenda.git

Als je niet weet wat git is, is Google (uw vriend) dan op "git scm".

TODO

Op de docentenroosters zijn de aanwezige klasgroepen van een les gescheiden door spaties in plaats van komma's. Aangezien er klassen zijn met een spatie in de klasnaam zou een regex nodig zijn om dat soort lijst in stukken te kappen. Momenteel geeft dit dus geen gewenst resultaat.

  • Caching van de id's (javascripts) van sws.wenk.be)
  • Caching van alle data in een database.
  • De website afwerken.
  • Tarball/zip releasen.

Mogelijke uitbreidingen

Is het de moeite om dit alles te gaan implementeren? Hoe lang zal sws.wenk.be blijven bestaan in zijn huidige vorm. Zullen de lessenroosters steeds publiek aangeboden worden via een (html-)website?

  • /vandaagmorgen/KLAS, een pagina die een lijst weergeeft van de lessen vandaag en morgen -- voor gebruik als startpagina van je webbrowser bijvoorbeeld.
  • /pendel/KLAS,pendel=1:30. Geeft een lijst met pendel-periodes van een semester.
  • een /get/KLAS?pendel=1:30&periode=les , die per dag de periode geeft dat je van huis bent (om aan uw bazin te geven, dan weet ze hoe laat ze de viskes in de pan moet gooien, en hoe laat ze je moet wakker maken)
  • het pendelperiodesysteem zou kunnen cross-referencen met andere roosters, zodat je kan zien of je met vrienden uit andere klassen op de trein zit.
  • Een 'Changelog' van de roosters. Gesyndiceerd via rss-feeds.

Licentie

De software zelf is beschikbaar onder de GPL-2 licentie.

De diensten aangeboden door http://denagenda.thouters.be/get/ kosten de gebruiker geen geld zolang er geen sprake is van misbruik en de gebruiker de volgende stellingen erkent:

  • De werking (uptime) van de website is door niemand gegarandeerd
  • De correctheid van de gegevens die de website voortbrengt is niet gegarandeerd.

Als je het de moeite vind, mag je me altijd een pintje trakteren als je me tegenkomt ( ook wel bekend als BEER-WARE).

Credit Given Where Credit Is Due

  • Verschillende studenten hebben geholpen met Beta-testen.
  • Bart Helsen, Bart Cerneels: Kontact screenshots.
  • De Nayer instituut: Bedankt om de lessenroosters NIET via Toledo aan te bieden. Dat zou namelijk het einde van een dienst als deze betekenen.

Feedback

Je kan je opmerkingen of ervaringen met DenAgenda delen op de desbetreffene discusiepagina.