Zum Inhalt springen

Telegram-Bot

Der Telegram-Bot ist die zweite Zugriffs-Schicht — perfekt wenn du das Dashboard nicht öffnen willst, aber trotzdem live im Blick haben möchtest.

  1. Schreibe @BotFather auf Telegram an
  2. /newbot → Bot-Name wählen → Username wählen
  3. Du erhältst einen Token wie 123456:ABC-DEF...
  1. Schreibe @userinfobot an
  2. Er antwortet mit deiner User-ID (eine Zahl)
TELEGRAM_ENABLED=true
TELEGRAM_TOKEN=123456:ABC-DEF...
TELEGRAM_ALLOWED_USER_ID=123456789

Der Bot meldet sich beim Boot mit „🤖 Tocco-Mate bereit”. Dann /menu schreiben.

BefehlFunktion
/menuHauptmenü mit Inline-Buttons
/notenNotenübersicht (Modul-Klick → LB / ZP-Liste)
/durchschnittSchnitt gesamt + pro Semester
/heuteStundenplan heute
/morgenStundenplan morgen
/wocheStundenplan diese Woche
/stundenplanBis 1 Monat (Multi-Message für „Alle”)
/scrapeManueller Scrape mit Live-Phase-Anzeige
/statusServer-Status + Scheduler-Info

Wenn der Bot aktiv ist, kommen alle Push-Events (neue Note, Notenänderung, Raumwechsel) zusätzlich als Telegram-Message — keine Doppel-Notification, sondern parallel zur Web-Push.

Praktisch wenn du:

  • Auf dem PC arbeitest und das Handy nicht an hast
  • Telegram als zentrale Notification-Schiene nutzt
  • Die Mobile-PWA nicht installieren willst

TELEGRAM_ALLOWED_USER_ID schützt davor, dass fremde Telegram-Nutzer Zugriff auf deine Daten bekommen, falls jemand deinen Bot-Username findet. Nachrichten von anderen User-IDs werden ignoriert.

Mehrere User-IDs sind aktuell nicht unterstützt (per Design — der Bot ist Single-User).

Im /noten-Output sind die Module Inline-Buttons. Tap → ZP/LB-Liste mit Gewichtung und Trend.

Beispiel:

📚 M114 — Codeverwaltung
Note: 5.2 ↑ (+0.3)
LB1 (50%): 5.0
LB2 (50%): 5.4

/scrape zeigt den Scrape-Fortschritt in Echtzeit:

🔄 Login...
🔄 Noten laden...
🔄 Stundenplan laden...
✅ Fertig in 14.2 s
3 Module aktualisiert · 1 neue Note
ModulAufgabe
bot/index.jsTelegram-Long-Polling, Routing
bot/state.jsPer-User-State (Conversation, Wartezustände)
bot/keyboards.jsInline-Keyboards
bot/screens.jsAntwort-Templates
bot/handlers.jsCommand-Handler
bot/notify.jsPush-Bridge (Web-Push → Telegram)
bot/format.jsNoten- und Termin-Formatter
bot/telegram.jsTelegram-API-Wrapper