subDesTagesMitExtraKaese / sinusbot-channel-statistics

log number of clients per channel to mysql
3 stars 0 forks source link

Bekomme ich nicht ans laufen #1

Closed LordRofl closed 3 years ago

LordRofl commented 3 years ago

Hi,

ich habe jetzt eine connection.php erstellt und auch die flot/js scripte mit in das Verzeichnis gepackt. Jedoch bekomme ich nur eine schlichte Seite mit ein paar Channeln ohne Formatierung und keinem Graphen.

Ist das so wie du es gepushed hast lauffähig? Die .js fehlen ja z.B komplett

subDesTagesMitExtraKaese commented 3 years ago

Ich hab jetzt die benötigte jquery.flot Library mit rein gepackt. Ansonsten ist das eigentlich eine lauffähige Version ^^

subDesTagesMitExtraKaese commented 3 years ago

Ich habe das Projekt noch ein mal frisch aufgespielt und habe jetzt den bug, dass keine Werte aus der Datenbank gelesen werden können. Zum Beispiel: PLUGIN [channel-statistics:60:14] serverId: <nil> hier, aber wenn ich res[0] anzeigen lasse, dann ist es korrekterweise {"id":2,"name":...}. Beim auslesen mit engine.log(res[0].id) gibt es wieder nur <nil> zurück.

LordRofl commented 3 years ago

Ja bei mir verhält es sich auch komisch. Die Graphen sind gleichbleibend auch wenn keiner mehr im Channel war. Dazu wird es im Firefox echt komisch angezeigt.

subDesTagesMitExtraKaese commented 3 years ago

ok, das problem war engine.log('serverId:', serverId); engine.log kann nur strings anzeigen, keine Number :-1: fix: engine.log('serverId: ' + serverId);

subDesTagesMitExtraKaese commented 3 years ago

dann kann dbc.query keine null Werte mehr in die Tabelle einfügen. Es scheint nur mit NaN zu funktionieren

subDesTagesMitExtraKaese commented 3 years ago

Und einen Bug hab ich noch gefunden: channel.description() kann invalide UTF8 Codes enthalten, wodurch dann die query fehlschlägt

subDesTagesMitExtraKaese commented 3 years ago

Ja bei mir verhält es sich auch komisch. Die Graphen sind gleichbleibend auch wenn keiner mehr im Channel war. Dazu wird es im Firefox echt komisch angezeigt.

Ich hab auch Firefox. Kannst du ein Screenshot machen?

LordRofl commented 3 years ago

Auf dem Handy sah es jetzt ok aus, ich binde erstmal alle Änderungen von dir ein und schaue mal wie es aussieht. Ich konnte gestern deine bereitgestellten js files nicht nutzen da gab's irgendwie Probleme. Mit den von mir zusammen getragen ging es dann.

LordRofl commented 3 years ago

Du kannst hier nachschauen wie es bei mir läuft:

Link

Das scheint jetzt bis auf die Formatierung zu laufen. Sehr cool! Kannst du auch PNG aus den Charts erzeugen? Dann kann man die vielleicht sogar in einer Channel Description einbinden. So könnte man vielleicht mit linkzurinstallation&channelid=12 ein Bild des Charts mit der Channel-ID 12 abrufen.

Achja und Kommastellen im Graphen brauchts ja nicht bei der Y-Achse, da könnte die Skalierung noch angepasst werden.

Edit: PLUGIN error: Error 1062: Duplicate entry '467-1' for key 'channelId' kommt manchmal im Log des Sinusbots

subDesTagesMitExtraKaese commented 3 years ago

Die Fehlermeldung kommt, wenn diese Zeile nix zurückgibt, obwohl eigentlich schon ein channel angelegt wurde. https://github.com/subDesTagesMitExtraKaese/sinusbot-channel-statistics/blob/1ab2f5536c43ff4c7d427f64f9ad9da88622c01c/channel-statistics.js#L132 Channeldescriptions sind schon als Tooltip drin, die würden denke ich nur reinpassen, wenn man nur einen Graphen auf einer Seite anzeigt. Statische PNGs müsste man serverseitig rendern, ansonsten wäre nur sowas wie ein screenshot-button mit `canvas.toDataURL("image/png");``möglich.

Das mit der URL ?channelID=123 ist eine coole Idee, ich setze mich mal dran :)

LordRofl commented 3 years ago

Ich nutze ein kleines PHP Skript was mir meinen Banner mit der Spielerzahl und Datum versieht. Gibt dazu ne Funktion in PHP. Sieht zumindest nicht all zu wild aus. Glaube es ist das https://www.php.net/manual/en/function.imagecreate.php

subDesTagesMitExtraKaese commented 3 years ago

also brauchst du eigentlich keine png sondern nur eine anzeige für die channelauslastung?

LordRofl commented 3 years ago

Naja schöne Tabellen als PNG irgendwo einbinden zu können wo man halt [img] nutzen kann hat doch was :)

subDesTagesMitExtraKaese commented 3 years ago

Ich hab mal was für clientside /channel-plot.html?channelId=9&width=800px&height=300px und serverside /chart.php?channelId=9 zusammengeworfen. Es ist nicht perfekt und du musst zusehen, dass dir TS3 das Bild nicht einfach nur einmalig abruft und dann cached.

Wenn du eine bessere PNG-render-lib findest, dann kannst du es gerne weiter verbessern :+1:

LordRofl commented 3 years ago

channelcharts

Uii Memo guck mal :D

Das ja voll Nice, da sind wir etwas auf der Spur! Hoffentlich holt sich der TS-Client das Bild bei jedem Start, dann wäre für mich eigentlich alles save von der usability. Wenn er es cached dann rip^^