ChatAnalytics Dev-Blog

Hier berichte ich über die Entwicklung von ChatAnalytics.

    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

    Read More

    Das erste Layout vom Dashboard ist jetzt fertig. Aktuell kann eingesehen werden, wie viele Nachrichten, Timeouts, Banns und einzigartige Chat-Nutzer es gab. Dazu gibt es noch ein Diagramm für den belegten und freien Speicherplatz. Das Dashboard ist aktuell nur für Streamer zu sehen (welche auch den Bot im Channel haben). Später kommen noch weitere Funktionen hinzu um die Nachrichten, Timeouts und Banns auflisten zu können.


    Außerdem ist nun der Inkognito-Modus fertiggestellt. Mit diesem Modus können Twitch-Nutzer die Auswertung ihrer Nachrichten in bestimmten Channels erlauben oder auch verbieten. Es kann zwischen Whitelist und Blacklist gewählt werden. Die Änderungen werden erst zur nächsten Generierung der Statistiken übernommen.


    Ich habe auch ein webpack-Plugin für eine GZIP-Komprimierung aktiviert, wodurch die Javascript-Datei nun von 977 KiB auf 295 KiB komprimiert wurde. Die Seite sollte jetzt auch eine volle Unterstützung für Internet Explorer, Microsoft Edge, Chrome und Firefox haben (die anderen Browser sind mir egal 8o), sowohl für Desktop als auch für Mobile.

    Read More