QuasselBot Großes Logo

Fahrdienst-Assistenz via Telegram

Sicher verschlüsselte Minutenverwaltung, Fahrdienst-Dokumentation und Schicht-Parsing direkt auf deinem Smartphone.

DP

Dienstplan (DP) – Setup & Betrieb

Stand: 28.05.2026 ---

Überblick

Das Dienstplan-Modul verarbeitet Dienstplan-PDFs im Privat-Chat und stellt die Daten als:
  • iCal-Datei (ICS) für Kalenderimport
  • persistenten Datenbankeintrag pro Nutzer
  • optionale Auto-Werte für Kurzbefehle in KK, TB und LF
  • zur Verfügung. ---

    Nutzer-Flow

    1. Dienstplan-PDF im Privat-Chat an den Bot senden. 2. Bot parst die Datei und erkennt:
  • Datum, Dienstnummer, Linie/Kurs, Start/Ende, Orte
  • Pausen-/Zeitwerte für KK-Hilfslogik
  • Abwesenheiten (z. B. FRM) als ganztägige Termine
  • 3. Bot sendet:
  • ICS-Datei als Anhang
  • optionalen Kalender-Link (wenn Web-Export aktiv)
  • ---

    Kommandos

    Nutzer

  • /dp
  • /dp info
  • /dp heute (Alias: /dp today)
  • /dp morgen (Alias: /dp tomorrow)
  • /dp datum DD.MM.YYYY (Alias: /dp date DD.MM.YYYY)
  • /dp help
  • /dp und /dp info zeigen den letzten Import sowie abgeleitete Auto-Werte. /dp heute, /dp morgen und /dp datum ... geben die kalendernahe Ansicht des passenden Dienstes aus:
  • Datumsformate fuer datum/date: DD.MM.YYYY oder YYYY-MM-DD
  • Titel (wie im ICS-Summary)
  • Zeitraum
  • Ort
  • Navi-Link
  • Notizen (wie im ICS-Description-Feld)
  • Bot-Admin

  • /dpdel [user_id]
  • /dpdelete [user_id]
  • Löscht den jeweils letzten Dienstplan-Datenbankeintrag für den Zielnutzer. Ohne user_id wird der Admin-Nutzer selbst verwendet. ---

    DP-gestützte Kurzsyntax

    KK

  • /kk [Ist-Zeit]
  • Verwendet Dienstplanwerte für Soll/Pause/Dienstnummer und erzeugt den gleichen Quittungstext wie der klassische KK-Eintrag.

    Tagebuch

  • /tb [Zeit] [Wagennummer(optional)] [Eintrag]
  • Verwendet Datum und Linie/Kurs aus dem letzten passenden Dienstplan. Der Quittungstext ist identisch zum klassischen /tb add-Flow.

    Lehrfahrer

  • /lf [Zeit] [Wagennummer(optional)] [Eintrag]
  • Verwendet Datum und Linie/Kurs aus dem Dienstplan plus aktiven LF-Zeitraum. Der Quittungstext ist identisch zum klassischen /lf add-Flow. ---

    Kalender-Details

  • LOCATION wird primär aus der Übernahme-Zeile extrahiert.
  • Der Ort wird vor ", von Dienst ..." abgeschnitten.
  • Richtungspfeile bleiben erhalten (z. B. "S Friedrichsfelde Ost > Hsh").
  • URL und X-APPLE-STRUCTURED-LOCATION nutzen dieselbe Richtungsangabe.
  • Für bekannte L/K-Richtungsfälle können feste Koordinaten-Overrides genutzt werden (präziser und schneller als Live-Geocoding).
  • Falls keine Übernahme-Zeile vorhanden ist, wird ein Fallback aus VbH/NbH-Zeilen genutzt.
  • Abwesenheiten enthalten explizite Notizzeilen:
  • Art: ...
  • Datum: TT.MM.JJJJ
  • ---

    DSGVO

    DP ist vollständig im DSGVO-Modul enthalten:
  • Auskunft: Export als DP_IMPORT-Zeilen
  • Löschung: eigener Scope Dienstplandaten
  • Scope Alles: schließt DP mit ein
  • Pending-Deletion-Job: löscht auch DP-Daten nach Ablauf
  • ---

    Konfiguration

    Optionale Umgebungsvariablen:
  • ICS_EXPORT_DIR: Verzeichnis für gespeicherte ICS-Dateien
  • ICS_PUBLIC_BASE_URL: Öffentliche Basis-URL für Download/Open-Links
  • Beispiel: ICS_EXPORT_DIR=/tmp/quassel_bot_ics ICS_PUBLIC_BASE_URL=https://cal.example.org ---

    Datenbank

    Primäre Tabelle:
  • dp_imports
  • Enthält u. a.:
  • user_id, dienst_date, dienst_nr, lk_label
  • start_dt, end_dt, start_stop, end_stop, ort
  • kk_pause_minutes, kk_soll_bezpau, kk_soll_lkr_ende
  • header_json, details_json
  • ---

    Verwandte Dateien

  • handlers_dp.py
  • database.py
  • handlers_kk.py
  • handlers_tb.py
  • handlers_lf.py
  • handlers_dsgvo.py
  • test_handlers_dp.py
  • 🔒 Speicher-Verschlüsselung: AES-256 + bcrypt aktiv
    Modul-Umfang: ~39.668 Zeilen Python-Core