Ein kleines Update zum aktuellen Stand der Lage.
Es gab ein paar Verbesserungen, die sogar erwähnenswert sind. So wurde die Twitter Funktionalität weiter verbessert. Um doppelte identische Tweets zu vermeiden, lädt Bot_Omb beim Start den letzten Tweet von Twitter und speichert diesen zwischen. Kommt es dann zu einem Tweet, wird einfach gegen den "letzten Tweet" geprüft und bei Bedarf ein neuer gewählt.
Natürlich wird dadurch der gespeicherte "letzte Tweet" durch den Neuen ersetzt.
Auch die Problematik mit den Umlauten wurde beseitigt. Das Wirrwarr von encode/decode was es vormals gab, wurde entfernt und damit auch die Fehlerquelle!
Die Prüfung der "watch time" hat auch Verbesserungen erfahren, so sollte es nun nicht mehr zu Zeitresets kommen, da ein Nutzer aus der Twitch API nicht gefunden werden konnte.
Ein Fehler im Umfragesystem wurde beseitigt. Es wurden vorher "negative" Votes akzeptiert, z.B. Testumfrage 0. Ja 1. Nein ---> #-1. Dies klappt jetzt nicht mehr. Dafür werden bei den Hashtag Votes neben bspw. #OptX auch #id akzeptiert.
Für die Ankündigungen wurde noch eine Beschränkung eingerichtet und zwar kann man nun maximal drei Ankündigungen haben und diese mit einer minimalen Verzögerung von einer Minute ausgeben.
Ansonsten wurden nun auch alle Änderungen auf GitHub zur Verfügung gestellt!
Folgende Probleme gibt es:
- Whitelist: Hier ist der Wurm drin, aber finden konnte ich ihn bisher leider nicht. Ursache dafür, dass fremde "Bots" teilweise in der Whitelist nicht akzeptiert werden, liegt scheinbar daran, wie diese ihre Befehle an Twitch übermitteln.
Folgende Neuerungen gibt es:
- Mit dem Befehl !clam question könnt ihr die magische Miesmuschel nach den wichtigen Dingen des Lebens befragen.
- Mit dem Befehl !roulette startet ihr das bekannte Spiel, aber gebt Acht! Nicht das es euer letzter Versuch war...
- Mit dem Befehl !hug random zeigt ihr einer zufälligen Person im Chat, wie gern ihr sie habt!
- Mit dem Befehl !hug person zeigt ihr einer bestimmten Person im Chat, wie gern ihr sie habt!
Dann bleibt mir nur noch viel Spaß zu wünschen, beim austesten der Funktionen!
Es gab so viele Änderungen und trotzdem sieht es so aus, als hätte sich nichts geändert. Wie kann das sein?
Grundsätzlich habe ich mich daran gemacht, die internen Strukturen (ein wenig) zu säubern. Es gab viel zu viele Redundanzen bei Funktionen, die mehrfach Verwendung fanden. Ich weiß nicht genau warum ich diese nicht gleich in einer externen Klasse ausgelagert habe, aber jetzt ist es ordentlicher. Betroffen waren davon folgende Funktionen:
- save(file_path, data)
- load(file_path)
- update(key, data, frm)
- get_element(key, frm)
- create(files)
- show(elements)
- has(arr, element)
- string_to_bool(message)
- isNumber(value)
Allein schon an den Bezeichnungen sollte es deutlich werden, wofür diese Funktionen Verwendung finden und warum man nicht überall eine eigene "Funktion" benötigt. Durch diese Verallgemeinerung wurden auch einige Zeilen Code angepasst um auch die weitere Funktionalität zu gewährleisten.
Neben diesen Anpassungen waren die Anfragen an die API von Twitch auch nicht sehr schön. Daher gibt es hierfür nun einen festen Thread der alle X Minuten eine Anfrage schickt um die Datenbestände zu aktualisieren. So umgeht man das Problem, wenn mal eine Anfrage verloren geht, endet es nicht in einem Fehler sondern man greift auf die Daten zurück, die noch vorhanden sind.
Die Änderungen sind bereits auf GitHub veröffentlicht und können sich dort gerne angesehen werden, falls daran Interesse besteht.
Keine Sorge, nur weil man seit längerem nichts vom Bot gehört hat heißt es nicht, dass es nicht voran geht. Meist laufen die ungehörten Dinge am Besten
Ich wollte hier auch nur kurz anmerken, dass der Bot nun die Voraussetzungen der Kraken API Anfragen, die ab 08.08.2016 in Kraft treten werden, erfüllt.
Falls es jemand nicht mitbekommen hat, ab kommenden Montag (08.08.2016) muss für eine Anfrage an die Kraken API die Client-ID mitgeschickt werden. Diese Voraussetzung gab es schon "immer" nur war Twitch nicht so dahinter her, diese Anforderung auch einzufordern. Dies ändert sich nun allerdings!
Weitere Informationen hierzu finden sich unter:
- Client-ID Requirement FAQs - API - Twitch Developer Forums
- Client-ID required for Kraken API calls — Twitch Blog
Damals auf der Suche nach einer einfachen Lösung um das Folgedatum eines Followers herauszufinden, habe ich auf die "NewTimeNow"-API gesetzt. Leider hat diese allerdings die Arbeit eingestellt, auch wenn die dazugehörige Seite noch erreichbar ist.
Grund dafür dürften wohl die neuen Anforderungen an die Twitch-Api Anfragen sein.
Somit war es eine Zeit lang nicht möglich, mit dem Bot den entsprechenden Befehl zu verwenden. Dies wurde nun dahingehend geändert, dass ich nun eine Abfrage an die gute alte Twitch-Krake stelle und mir über diese die notwendigen Informationen hole. Warum ich das nicht schon früher gemacht habe? Ich weiß es ehrlich gesagt nicht...
Wer es selbst einmal ausprobieren möchte, der findet hier die jeweils notwendigen Abfragen:
NewTimeNow-Api (defekt) : http://api.newtimenow.com/follow-length/?channel=EIGENERNAME&user=ANDERERNAME
Twitch-Api : https://api.twitch.tv/kraken/users/ANDERERNAME/follows/channels/EIGENERNAME
Mit diesen Abfragen prüft ihr, seit wann und ob ein bestimmter Nutzer (ANDERERNAME) eurem Channel (EIGENERNAME) folgt.