ChatAnalytics Dev-Blog #2

Da ich jetzt schon öfter von Redis gehört und gelesen habe, habe ich es mal angeschaut. Die Kommunikation zwischen Bot und Webseite lief bisher über das Node.js net Modul, die Lösung gefiel mir allerdings nicht so wirklich und war nur temporär gedacht. Redis ist, einfach gesagt, eine In-Memory-Datenbank mit einer Schlüssel-Wert-Struktur (key - value). Durch den Umbau auf Redis werden für API-Requests nun alle benötigten Daten aus der MySQL Datenbank geholt und für eine bestimmte Zeit in die Redis Datenbank gehauen, so sind weitere Requests schneller und müssen nicht extra noch mal aus der Datenbank geholt werden, vorher mit einem selbst gebauten Runtime-Cache. Redis bietet auch die Möglichkeit, ein Wert nach einer bestimmten Zeit automatisch zu löschen ohne eine extra Abfrage ob die Zeit schon vorbei ist. Zusätzlich nutze ich jetzt für die Kommunikation zwischen Bot und Webseite, jetzt auch dem Discord-Bot, nun die Pub/Sub Funktionalität von Redis. Einfach gesagt abonniert ein Client ein Event (Subscribe) und ein anderer sendet an das Event die Daten (Publish), die Clients die das Event abonniert haben erhalten dann die Daten und können diese verarbeiten.


Zusätzlich zu dieser Änderung sind nun auch die ersten Einstellungen für die Streamer sichtbar. Streamer können nun folgende Einstellungen vornehmen:

  • Auf der Streamer-Seite verstecken: Wenn aktiviert wird der Stream nicht auf der ChatAnalytics Webseite unter "Streamer" angezeigt.
  • Auf der Startseite anzeigen: Wenn aktiviert kann der Kanal auf der Startseite landen (die Startseite rotiert regelmäßig die Streamer).
  • Chat-Nachricht bei Aktualisierung: Der Bot schreibt in den jeweiligen Kanal eine Chat-Nachricht, wenn sich die Statistiken aktualisieren, optional auch mit oder ohne Link zu den Statistiken.
  • Generierungsintervall der Statistiken (in Minuten): Mit dieser Einstellung lässt sich der Generierungsintervall umstellen, zwischen 15 Minuten und 24 Stunden ist jede Einstellung erlaubt. Mit ChatAnalytics 1 war wegen der geringen Performance von PISG mindestens jede Stunde eine Aktualisierung möglich.


Es gab noch zwei weitere kleine Änderungen. Die erste, welche auch normale Nutzer betrifft, ist die Anzeige von den eingestellten Twitch Anzeige-Namen, diese werden nun problemlos auf der ChatAnalytics Seite dargestellt, sowohl Kanal-Name als auch die Namen in den Statistiken. Die zweite ist eine kleine Optimierung an der Nutzung der Twitch-API, wo bei der Helix-API für die Authentifizierung nun ein Bearer Token verwendet wird, womit bis zu 800 Requests pro Minute möglich sind.