Skip to content

AimPizza/uni_leipzig_calendar

 
 

Repository files navigation

Uni Leipzig Kalender

Dieses Projekt ermöglicht es, den Stundenplan an der Universität Leipzig über .ics abzurufen und so stets eine aktuelle Version zu synchronisieren.

Die Grundlage bildet das Projekt MrMxffin/uni_leipzig_scheduler, welches wöchentliche Benachrichtigung per Telegram Bot ermöglicht.

Inhaltsverzeichnis

  1. Einleitung
  2. Funktionsweise
  3. Konfiguration
  4. Installation
  5. Beitragen
  6. Lizenz

Einleitung

Niemand mag manuelles Eintragen und Bearbeiten von Kalendererignissen. Deshalb sollen die Dinge, so weit es geht, automatisiert werden.

Funktionsweise

Das Skript bietet eine API an, über die unter dem Endpunkt /calendar/<zahl> die iCalendar-Daten abgerufen werden können. Die Almaweb Login-Daten liegen dabei (noch?) in einer .env-Datei in der Wurzel des Projekts. Der Parameter <zahl> bestimmt die Menge an Wochen, die der Kalender ausgehend von heute aus beinhaltet.

Um das Scraping zu minimieren (und mögliches rate-limiting zu vermeiden) ist es empfehlenswert, den Parameter <zahl> gering zu halten, denn pro Woche wird eine Anfrage an das Portal gesendet. Auf Seiten des Skripts ist ein Cache implementiert, welcher die Antwort für 3 Tage zwischenspeichert.

Konfiguration

Die Konfiguration erfolgt über Umgebungsvariablen, die in einer .env-Datei bereitgestellt werden. Folgende Variablen müssen konfiguriert werden:

  • ALMAWEB_USERNAME: Benutzername für den Zugriff auf die AlmaWeb-Plattform.
  • ALMAWEB_PASSWORD: Passwort für den Zugriff auf die AlmaWeb-Plattform.

Installation

Deployment mit Docker (compose)

  1. Klone das Repository: git clone git@github.com:AimPizza/uni_leipzig_calendar.git
  2. Erstelle eine .env-Datei und konfiguriere die erforderlichen Umgebungsvariablen.
  3. Passe die Datei compose.yml an
  4. Führe docker compose up -d aus
  5. Profit B)

Lokale Entwicklungsumgebung

Um das Projekt lokal auszuführen, müssen Sie die folgenden Schritte ausführen:

  1. Klone das Repository: git clone git@github.com:AimPizza/uni_leipzig_calendar.git
  2. Wechsle in das Verzeichnis: cd uni_leipzig_calendar
  3. Installiere die Abhängigkeiten: pixi install
  4. Erstelle eine .env-Datei und konfiguriere die erforderlichen Umgebungsvariablen.
  5. Führe das Hauptskript aus: pixi run start

Hinweis: Hier wurde Pixi aus Gewohnheit genutzt. Alternativ funktioniert auch der klassische Weg über venv und pip:

  • python -m venv .venv
  • source .venv/bin/activate
  • pip install .

Beitragen

Beiträge sind immer willkommen! Bugfixes, Feature-Ideen oder anderweitige Kritik helfen, das Projekt in einen besseren Zustand zu bringen.

Als Einstieg ist unter Perspektivisch Verbesserungspotential aufgelistet.

Perspektivisch

offene TODOs:

  • nach anderen Endpunkten suchen, die ggf. sofort gewünschte Anzahl oder gar gesamten Kalender bereitstellt
  • Docker Pipeline und Containerisierung (wichtig)

Lizenz

Dieses Projekt ist unter der Unlicense lizenziert. Das bedeutet, dass es sich um freie und gemeinfreie Software handelt, die in die Public Domain entlassen wurde. Du bist frei, die Software zu kopieren, zu modifizieren, zu veröffentlichen, zu verwenden, zu kompilieren, zu verkaufen oder zu verteilen, sowohl in Quellcode-Form als auch als kompilierte Binärdatei, für jeden Zweck, kommerziell oder nicht kommerziell, und auf jede erdenkliche Weise.

Weitere Informationen findest du in der Lizenzdatei.

About

ICS feed for your Uni Leipzig schedule. Forked from MrMxffin/uni_leipzig_scheduler

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Python 92.7%
  • Dockerfile 7.3%