Add README.md
This commit is contained in:
parent
ae10cdae12
commit
c74b819bff
1 changed files with 83 additions and 0 deletions
83
README.md
Normal file
83
README.md
Normal file
|
@ -0,0 +1,83 @@
|
|||
Bei diesem Projekt handelt es sich um einen Telegram-Bot, der täglich (und auf
|
||||
Anfrage) den Speiseplan der Mensa Mittweida abruft und an registrierte Chats
|
||||
versendet. Der Bot wurde in Python geschrieben und nutzt die
|
||||
[Telepot](https://github.com/nickoala/telepot)-Bibliothek zur Kommunikation
|
||||
mit der Telegram-API.
|
||||
|
||||
## Was kann der Bot
|
||||
### alle Nutzer
|
||||
- Registrierung und Entfernen von Chats (`/start` bzw. `/stop`)
|
||||
- schnelles Abrufen des Plans (`/essen`, ggf. mit *en* oder *de* dahinter)
|
||||
- Ändern der Sprache (`/settings` (damit kann dieser Befehl automatisch über
|
||||
die Optionen aufgerufen werden))
|
||||
- Anzeige von Informationen/Befehlen (`/help`; gleicher Grund wie oben)
|
||||
### nur für in der Konfigurationsdatei festgelegte Admins
|
||||
- Anzeige des aktuellen Status (`/status`)
|
||||
- einfache Logging-Funktion (`/logging [on/off]`, ohne Parameter für aktuellen Status)
|
||||
|
||||
## Vorraussetzungen
|
||||
### Hardware
|
||||
Der Bot sollte möglichst immer aktiv sein. Dafür eignet sich z. B. ein
|
||||
Raspberry Pi gut. Eine Installation auf einem Cloudcomputer ist vermutlich auch
|
||||
möglich, allerdings ist der Bot nicht darauf ausgelegt und könnte so evtl. zu
|
||||
hohen Kosten führen, da er immer aktiv auf Nachrichten lauscht (ich weiß nicht,
|
||||
wie genau das umgesetzt wurde, vielleicht ist es auch nicht so). Auf einem
|
||||
"normalen" Rechner läuft der Bot auch, allerdings naatürlich nur, solange auch
|
||||
der Rechner an ist.
|
||||
|
||||
### Sonstiges
|
||||
Für einen Bot wird ein Bot-Token benötigt. Dieser kann über den
|
||||
[BotFather](https://t.me/botfather) angefordert werden. Darüber können auch
|
||||
Bild, Name (momentan "*HSMensaW*"), Beschreibung (wird im Bot-Chat oben
|
||||
angezeigt; momentan "*Dieser Bot versendet täglich um 10 Uhr den aktuellen
|
||||
Mensaplan der Hochschule Mittweida (wenn sie geöffnet hat). Außerdem kann der
|
||||
aktuelle Plan abgerufen werden. Mit dem Befehl /info werden alle anderen
|
||||
Befehle angezeigt.*") und Über-Text (wird im "Profil" des Bots angezeigt;
|
||||
momentan "*Versendet täglich um 10 Uhr den aktuellen Mensaplan der Hochschule
|
||||
Mittweida.*") angepasst werden.
|
||||
|
||||
## Installation
|
||||
### Abhängigkeiten
|
||||
Der Bot läuft mit Python 3. Die benötigten Bibliotheken (*telepot*, *babel* und
|
||||
*googletrans*) können (normalerweise, evtl. auch ohne die "3"; ggf anpassen)
|
||||
über folgenden Befehl installiert werden:
|
||||
|
||||
pip3 install telepot babel googletrans
|
||||
|
||||
### Minimalkonfiguration
|
||||
Der Bot liest beim Start die Konfiguration aus einer Konfigurationsdatei
|
||||
(*config.json*) ein (und schreibt ggf. eine geänderte Konfiguration dorthin).
|
||||
Auch beim ersten Start muss diese Datei existieren und mindestens folgenden
|
||||
Inhalt haben:
|
||||
|
||||
{
|
||||
"telegram_bot_token": "123456789:ABC-t3l36RaM_t0K3n",
|
||||
"url": "https://app.hs-mittweida.de/speiseplan/all",
|
||||
"ids": {},
|
||||
"config_ids": [],
|
||||
"logging_enabled": false
|
||||
}
|
||||
|
||||
Sinnvollerweise sollte auch mindestens eine Config-ID gesetzt sein
|
||||
([Chat-ID](https://stackoverflow.com/q/31078710) des Besitzers). Eine echte
|
||||
Konfigurationsdatei könnte so aussehen:
|
||||
|
||||
{
|
||||
"telegram_bot_token": "123456789:ABC-t3l36RaM_t0K3n",
|
||||
"url": "https://app.hs-mittweida.de/speiseplan/all",
|
||||
"ids": {
|
||||
"12345678": "GERMAN"
|
||||
"11235813": "ENGLISH"
|
||||
"-98765432": "GERMAN_ENGLISH"
|
||||
},
|
||||
"config_ids": [
|
||||
12345678
|
||||
],
|
||||
"logging_enabled": false
|
||||
}
|
||||
|
||||
### Start
|
||||
Der Bot kann über `python3 <Bot.py>` gestartet werden (die aktuelle Version
|
||||
heißt *HSMensaW_botA.py*). Danach sollte er problemlos laufen. *stdout* und
|
||||
*stderr* werden jeweils in eine Datei (*out.log* bzw. *err.log*) umgeleitet,
|
||||
wobei es dort u. U. erst nach dem Beenden des Bots auftaucht.
|
Loading…
Reference in a new issue