HAW Hamburg Kalender Bot

Ein Telegram Bot, der persönliche Veranstaltungskalender für die HAW Hamburg erzeugt.

Veranstaltungsplan
Du kommst von der HAW Hamburg und studierst im Department Informatik oder Elektrotechnik? Dieser Veranstaltungsplan kommt dir bekannt vor und er ist dir zu unübersichtlich? Zu viele Veranstaltungen die du nicht belegst? Du bist in mehreren Semestern und musst mehrere Pläne angucken?
Vielleicht hilft dir ja mein Kalender Bot @HAWHHCalendarBot.

Der Telegram Bot

Wenn du Telegram benutzt, dann sind dir sicher schon einmal die Bots aufgefallen. Mit Hilfe so eines Telegram Bots kannst du dir deine Veranstaltungen zusammenstellen. Damit wird dann automatisch ein abonnierbarer Kalender für dich erstellt. Diesen kannst du dann in jedem guten Kalenderprogramm hinzufügen.

Hier geht es zum Telegram Bot @HAWHHCalendarBot. Calendar Bot am Desktop

iOS/ macOS/ Desktop Browser

Sobald du eine Veranstaltung hinzugefügt hast, benutze /start und wähle dann Kalender abonnieren. Klicke/ tippe in der sich öffnenden Website auf Subscribe Calendar. Calendar Bot auf iOS

Android/ Google Kalender

Android bezieht seine Informationen aus dem Google Kalender. Um den Kalender hinzufügen gehst du auf calendar.google.com (meldest dich an) und fügst dann auf der linken Seite unter Other calendars -> Add by URL den Kalender Link hinzu, den du im Bot unter /start erhältst.

Behind the Scenes

Der Telegram Bot

Wenn du den Telegram Bot benutzt, legt dieser eine Config Datei an. In dieser stehen Informationen wie deine öffentlichen Telegram Informationen, die der Bot aber erst erhält, sobald du ihn das erste mal anschreibst. Fügst du Veranstaltungen hinzu oder entfernst diese, werden sie in die Config Datei übertragen. Außerdem speichert der Bot deine Einstellungen, wie das StISys Update Feature.

{
  "chat": {
    "id": 2956631,
    "first_name": "Edgar",
    "username": "EdJoPaTo"
  },
  "config": {
    "events": [
      "MINF-SS-MD [MT]",
      "MINF-SS-MDP/03 [MTP]",
      "MINF-SS-TTI [TT2]",
      "MINF-SS-TTIP/03 (TTP2)",
      "MINF1-GSM [AW1 AW2]"
    ],
    "settings": {
      "stisysUpdate": true
    }
  }
}
      
Der Inhalt einer Config Datei

Das Backend

Im Hintergrund läuft auf einem vServer das Backend. Dieses tut im wesentlichen zwei Dinge: Die aktuellen ICS Dateien vom HAW-Server laden und aus den Veranstaltungskalendern und den Config Dateien die Kalender generieren. Diese aus den Configs der Nutzer generierten Kalender werden dann zum Abonnieren bereitgestellt.

Dein Endgerät

Je nach dem wie dein Endgerät eingestellt ist, wird es die ICS Datei von meinem Server alle paar Stunden laden. Apple Geräte wie iOS oder macOS laden als häufigste Einstellmöglichkeit alle 15 Minuten eine neue Version. Google macht das etwas anders: Ein Google Server lädt alle paar Stunden (teilweise auch >24h) alle bei Google eingetragenen Kalender von meinem Server. Die Android Geräte bekommen dann, wenn sich etwas geändert hat, diese Änderung sofort auf das Gerät gepusht.

Das StISys Update

Alle 15 Minuten lädt der Bot die Einstiegsseite vom StISys herunter und vergleicht die Dateigröße mit der von vor 15 Minuten. Unterscheidet sich diese, weil zum Beispiel eine neue Mitteilung hinzu gekommen ist, werden alle Nutzer, die dies aktiviert haben, benachrichtigt.

GitHub

Neugierig auf den Quellcode des Telegram Bots? Du willst Helfen oder etwas Ähnliches entwickeln? Dann schau dir gern mal meinen Quellcode auf GitHub an.

Fehler oder Verbesserungsvorschlag?

Schreib mich einfach bei Telegram an: @EdJoPaTo oder erstelle ein Issue im dazu passenden Repo in der GitHub Organisation des Kalender Bots.