💡 So erkennt der DonationTrain deine Spende
Der DonationTrain erkennt Spenden ausschließlich anhand der **Chat-Nachrichten** deiner Bots/Plattformen.
Die Regeln dafür stehen in der Datei:
- `config/donationTrigger.json`
Jeder Eintrag beschreibt:
- **source** – Twitch-Name des Bots oder Accounts, der die Nachricht schreibt
- **example** – Beispielsatz, wie die Spendenmeldung im Chat aussieht
Beispiele:
- `"source": "streamelements", "example": "<user> spendet <currency><amount>"`
- `"source": "kofistreambot", "example": "Neue Spende von <user> mit <amount> €"`
Platzhalter
Im `example`-Text kannst du Platzhalter verwenden.
Wichtige Platzhalter (inkl. Synonyme):
- **user**
`<user>`, `<name>`, `<username>`, `<from_name>`
- **amount**
`<amount>`, `<value>`, `<donation>`
- **currency**
`<currency>`, `<curr>`
- **message**
`<message>`, `<text>`
Die Klammern sind flexibel – spitze `< >` oder geschweifte `{ }` funktionieren gleichermaßen.
Zwischen den Platzhaltern darf normaler Text, Emojis und zusätzliche Deko stehen; der Parser ist darauf ausgelegt, das zu tolerieren.
Es gelten hier die Platzhalter von der Spendenplattform, die du verwenden möchtest.
Beträge und Währungen
Der DonationTrain-Parser akzeptiert u. a.:
- `5`, `5.00`, `5,00`
- `1.234,56` oder `1,234.56` (Tausenderpunkt/-komma Varianten)
- Kürzel wie `€`, `EUR` oder kurze Währungsnamen
Der Betrag wird intern in eine Zahl umgerechnet; nur **positive, sinnvolle Beträge** werden akzeptiert.
Validierung des Spendernamens
Damit falsche oder unbrauchbare Namen nicht die Logik zerschießen, wird der erkannte Name bereinigt:
- Trimmen, Normalisieren, Entfernen unsichtbarer Zeichen
- Erkennung leerer oder offensichtlich ungültiger Namen
- Falls nötig, Fallback auf den eigentlichen Sendernamen (den Twitch-Account, von dem die Nachricht kam)
Ungültige Kombinationen aus Name/Betrag werden verworfen und nicht als Spende gezählt.
Ablauf der Erkennung
1. Die Quelle (Twitch-Name des Bots) wird mit `source` verglichen.
2. Für alle passenden Einträge wird ein Regex aus dem `example`-Text erzeugt.
3. Passt die Chat-Nachricht zu einem der Regex, werden Name, Betrag und Währung extrahiert.
4. Nach erfolgreicher Validierung wird die Spende an die Start-/Level-Logik übergeben.
So kannst du jede Plattform anbinden, die eine halbwegs konstante Nachricht im Chat ausgibt – indem du nur **`donationTrigger.json`** anpasst, ohne Scriptänderung.