This commit is contained in:
Kaaninchen
2026-07-18 17:38:12 +02:00
parent 5bde41eb0e
commit 16da2826bd
6 changed files with 73 additions and 2 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

+37 -1
View File
@@ -1,3 +1,39 @@
# Trainstalk
# Gleiswechsel
Gleiswechel ist ein Discord Bot, welcher einen Sprachkanal zu einer real-existierenden, aktuell befahrenden Zugverbindung umbenennt. Diesen Namen behält der Kanal so lange, wie die Verbindung in echt dauert.
![Beispiel Kanal](.github/preview_kanal.png)
![Beispiel info](.github/preview_info.png)
## Setup
```sh
git clone https://github.com/kaaninchen/Gleiswechsel.git
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
```
### Config
`$ mv config.json.example`
Aktuell gibt es kein error handling für die config (kommt bald!!), also BITTE stell sicher dass du keine unerwarteten Daten eingegeben hast
```
{
"token": "", // Discord Token
"stations": [ "Berlin Hbf", "Hamburg Hbf", "München Hbf", "Amsterdam Centraal"], // Stationen deiner Wahl. Im Zweifel auf https://dbf.finalrewind.org/ Namen raussuchen
"server": , // Discord Server ID
"vc": , // Discord VC ID
"formatting": "🚅┇", // Name des Kanals
"random": false // Random Züge aussuchen (true) oder immer die erste Station der Anzeigetafel (false)
}
```
#### Erklärung bezüglich random:
Bei kleineren Bahnhöfen stehen an den Anzeigetafeln die Namen Züge öfters Stunden vor Abfahrt, da das Gleis sonst frei ist. Dadurch wird auch der Name des VC sehr lange gleich bleiben. Sollte man random ausmachen, würde immer der erste Zug an der Anzeigetafel genommen werden, welcher auch der erst der am frühesten losfährt. Wenn man aber wenige Bahnhöfen zur Auswahl hat könnte es repetitiv werden, da die Züge ja oft hin und her fahren.
## Metadaten
Es kann vorkommen, dass während dem `/info` Befehl das Logo und die Farbe des Bahnuntermehns fehlt.
![Beispiel für fehlende Daten](.github/info_fehlende_daten.png)
Die zugehörigen Daten lassen sich innerhalb [operators.py](src/data/operators.py) ergänzen. Der Aufbau dabei sollte selbsterklärend sein, dennoch habe ich eine kleine Beschreibung in die Datei hinzugefügt. Bei Änderungen sind PR's willkommen, ebenso wie Issues falls man das nicht selber ändern will da das ja eigentlich mein Job sein sollte.
Die Statuseinträge, von welchen der Bot alle 5 Minuten einen aussucht, kann mn in [status.py](src/data/operators.py) anpassen
+19
View File
@@ -0,0 +1,19 @@
aiohappyeyeballs==2.7.1
aiohttp==3.14.1
aiosignal==1.4.0
attrs==26.1.0
certifi==2026.6.17
charset-normalizer==3.4.9
frozenlist==1.8.0
idna==3.18
multidict==6.7.1
numpy==2.5.1
pandas==3.0.3
propcache==0.5.2
py-cord==2.8.0
python-dateutil==2.9.0.post0
requests==2.34.2
six==1.17.0
typing-extensions==4.16.0
urllib3==2.7.0
yarl==1.24.2
+17 -1
View File
@@ -1,3 +1,19 @@
''''
Die Datei gibt dem Embed zugehörige Metadaten der Zugbetreiber. Identifiziert wird dabei durch die genauen Namen der Unternehmen.
Diese werden sowohl im /info Embed als auch in der Konsole angezeigt. Dabei beinhaltet jeder folgende Felder:
und beinhaltet 2-3 Felder:
| Feld | Optional | Wert | Beschreibung |
|---------|----------|-------|-----------------------------------------------------------------------|
| Unknown | Ja | Bool | Eigentlich nur für fallback relevant, sollte man weglassen |
| Logo | Nein | URL | Das Logo in der Ecke des Embeds. Am besten PNG, SVG geht leider nicht |
| Color | Nein | HEX | HEX Color Code des Streifen vom Embed, muss mit 0x anfangen |
| Slogan | Ja | Liste | Zufälliger Text aus der Liste im Footer |
Sollte es dazu kommen, dass mehrere Anbieter die selben Metadaten nutzen sollen, kann man einen Eintrag für alle in OPERATORS setzen und
die zugehörigen Anbieternamen in OPERATOR_ALIASES auf den Eintrag lenken lassen. db_bawü ist dafür ein gutes Beispiel.
Nachdem diese Datei editiert wurde muss der Bot nicht neugestartet werden.
'''
OPERATORS = {
"fallback": {
"unknown": True,
@@ -15,7 +31,7 @@ OPERATORS = {
"slogan": ["Nett hier", "Aber waren Sie schon mal in Baden-Württemberg?", "Bwegt euch!"]
},
"Ostdeutsche Eisenbahn GmbH": {
"logo": "https://www.odeg.de/fileadmin/user_upload/Unternehmensseite/presse/pressebilder/ODEG_Pressebilder_Logo-CMYK-JPG.jpg",
"logo": "https://upload.wikimedia.org/wikipedia/commons/thumb/f/f3/ODEG-Logo_Neu.svg/960px-ODEG-Logo_Neu.svg.png",
"color": 0x00745C
},
"Nederlandse Spoorwegen": {