Diese Software trackt die Zeiten, in denen der Brötchenmann erschienen ist und berechnet daraus die Zeit, zu der er am Wahrscheinlichsten nächstes Mal erscheinen könnte.
Es handelt sich hierbei um einen Telegram-Bot + REST API. Die API ist für Anfragen via iOS Shortcuts ausgelegt.
Der Bot basiert auf Node.js mit npm und PostgreSQL, die API baut auf Express auf. Er ist dazu designed, damit er nahtlos mit Yunis' iOS Shortcut zusammenarbeitet (https://www.icloud.com/shortcuts/c47edd1ea7be4340bb5a6e7f01fbd94d).
Der Original-Bot von Ecki ist hier zu finden: https://t.me/broetchen_bot
Der Original-Bot und die API werden hier gehostet: https://broetchen-bot.herokuapp.com/
Der Code enthält keine sensiblen Daten, wie den Bot-Token. Du musst dir deinen eigenen Telegram-Bot erstellen und deine eigenen Daten eintragen.
Wie du einen Telegram-Bot erstellen kannst: https://core.telegram.org/bots#6-botfather
Desweiteren muss npm auf deinem Rechner installiert sein: https://docs.npmjs.com/cli/v7/configuring-npm/install, sowie PostgreSQL: https://www.postgresql.org/download/
Nachdem du die Repo geklont hast, musst du nur noch die folgenden Schritte ausführen, und schon läuft dein Bot auf deiner Maschine:
- Benenne die example.env in .env um und fülle die entsprechenden Felder aus
- Führe "npm i" aus
- Führe "npm start" aus
Zum aktuellen Zeitpunkt sind keine automatisierten Tests implementiert. Du kannst aber die API per HTTP Requests und den Bot per Telegram testen. Alle HTTP Requests findest du in local.requests.http.
Mit VS Code und dem Plugin "REST Client" (https://marketplace.visualstudio.com/items?itemName=humao.rest-client) kannst du diese auch direkt in der IDE ausführen.
Diese Commands unterstütz der Bot von Haus aus, und kann so auch ohne den iOS Shortcut verwendet werden.
Begrüßung, wenn der Bot das erste Mal gestartet wird.
Gibt die Durchschnittliche Uhrzeit des Erscheinens des Brötchenmannes aus.
Speichert einen neuen Erscheinungszeitpunkt in der Datenbank, der für zukünftige Berechnungen genutzt wird.
Healthcheck.
API Endpoint für iOS Shortcut. Macht das gleiche wie /warda in Telegram.
API Endpoint für iOS Shortcut. Macht das gleiche wie /hunger in Telegram.