Statistikscript

Begonnen von Voltan, 23. April 2017, 23:48:26

« vorheriges - nächstes »

Voltan

Ein regelkonformes Script für Grease-/Tampermonkey und Opera12, das Ereignisse aus verschiedenen Bereichen (Kräutersammeln, Beten, Reiten, ...) sammeln und aufbereiten kann.
Zu finden ist das Ganze über ein schnuckeliges Icon in der Chatleiste, linksseitig des Uhrzeit-Ein-/Ausblendknopfes.
Das Ding speichert alle Daten lokal bei euch aufm Rechner, lediglich der (hoffentlich mittlerweile korrekt funktionierende) Versionsabgleich ist die einzige Kommunikation des Scripts nach außen.
JavaScript und das Setzen von temporären Daten (bzw. eigentlich von Einträgen im localStorage, aber das geht ja bei den Browsern Hand in Hand) müssen erlaubt sein.
Ob das Script mit Scripts von anderen Leuten funktioniert, kann ich nicht sagen.

Download (aktuell: v1.5)


Ihr habt einen Bug gefunden?
Um ein möglichst schnelles Lösen des Problemes zu ermöglichen, wäre es schön, wenn ihr mir auch möglichst viel zu dem Problem schildern könnt.
Zitat- Wann ist das Problem aufgetreten?
- Was funktioniert nicht bzw. wie sieht der Fehler auch (gerne via Screenshots)?
- Ist der Fehler reproduzierbar? Wenn ja, wie?
- Browser + Scriptumgebung (Greasemonkey, Tampermonkey,...)?
- Welche anderen Scripts & Addons sind aktiv?
- Kannst du deine Daten bereitstellen (am besten per pastebin)?*

*Falls der Export der Daten über das Tool nicht funktioniert, dann über die Browserkonsole mit console.log(localStorage.getItem(charID))

Sanglant

#1
Sowas ähnliches wünsche ich mir schon ewig. *freu* =) Also vor allem den Parser.
Ich würde allerdings die Daten lieber zu einem Server übertragen, anstatt sie lokal auszuwerten. Entsprechend fehlt mir auch eine Exportmöglichkeit (die automatisch, manuell oder eben nicht ausgeführt wird).

Warum das Script die Werte nicht von vornherein selbst ermittelt, ist mir nicht klar. Laut Auto-Update bin ich auch nur Stufe 1.

EDIT Wenn man die entsprechenden Seiten besucht (Anwesen, Status), werden auch die Werte eingetragen.

EDIT2 Hab grad die Exportmöglichkeit gefunden. Vorschlag: Reset beim Export durch Checkbox ein-/ausschaltbar machen? Würde btw auch die Checkboxen auf der Überwachungskonfiguration per Default setzen oder ganz weglassen. Kampfergebnisse werden nicht erfasst?

Ansonsten tolles Tool.

Voltan

Ich sollte vielleicht beim uneingerichteten Tool einen Hinweis einbauen, dass man vor dem Bedienen nochmal kurz die Hilfeseite besuchen sollte *g*

Zitat von: Sanglant am 24. April 2017, 16:29:17Vorschlag: Reset beim Export durch Checkbox ein-/ausschaltbar machen?
Kann ich machen.
Der automatische Reset war eine Folge der Bequemlichkeit für den additiven Import, da ansonsten jedes mal der komplette Datensatz mit rübergenommen wird. Muss da aber eh nochmal was ändern. In der Zwischenzeit einfach wieder importieren, wenn es nur dem Backup dient.

Zitat von: Sanglant am 24. April 2017, 16:29:17Würde btw auch die Checkboxen auf der Überwachungskonfiguration per Default setzen oder ganz weglassen.
Werde ich nicht machen. Der User soll von Anfang an selbst entscheiden, was er mitloggen will, ohne von mir durch default-Werte bevormundet zu werden (außer bei der Preisliste - da stieg man mir schon aufs Dach, ich solle gefällst gängige defaults anbieten *g*).
Ich könnte ein "(un)check all"-Knöpfchen hinzupacken.

Zitat von: Sanglant am 24. April 2017, 16:29:17Kampfergebnisse werden nicht erfasst?
Nein. Das steht zwar auf der Agenda, aber nicht auf der Prioritätenliste.


Zu der Serverthematik: Je nach Interesse ist es durchaus drin, da nochmal auf einem Server eine kleine Plattform zum gemeinsamen Sammeln von Daten anzulegen.
Oder erst einmal nur eine "Lite"-Version, bei der die strings hochgeladen werden können und so ein externes Backup darstellen.
Hängt natürlich in jedem Falle mehr oder weniger eine Datenschutzkomponente mit dran, die man nicht wegreden sollte.
Time will tell...

Sanglant

ZitatIch sollte vielleicht beim uneingerichteten Tool einen Hinweis einbauen, dass man vor dem Bedienen nochmal kurz die Hilfeseite besuchen sollte *g*

Ja, bzw einfach nen Link dahin setzen. Und sagen, dass man ein bisschen über die Seiten wuseln sollte.

ZitatZu der Serverthematik: Je nach Interesse ist es durchaus drin, da nochmal auf einem Server eine kleine Plattform zum gemeinsamen Sammeln von Daten anzulegen.
Oder erst einmal nur eine "Lite"-Version, bei der die strings hochgeladen werden können und so ein externes Backup darstellen.
Hängt natürlich in jedem Falle mehr oder weniger eine Datenschutzkomponente mit dran, die man nicht wegreden sollte.

Was ich mir wünschen würde: eine konfigurierbare URL, zu der jedes Ergebnis übertragen wird, das zu den Statistiken hinzugefügt wird. Ich kann auch vorerst mit den Aggregaten leben, aber für Tendenzen etc. sind Einzelwerte schöner.

Voltan

Ich merks mir mal vor...

Ich habe einige Sachen aus deinem Feedback von gestern mal mehr oder weniger umgesetzt.
Habe außerdem das Intervall des Versionsabgleiches reduziert. Mir wurde ein Fehler bzgl. des Goldrausches gemeldet, also gibts in der neuen Version den provisorischen Fix dafür. Ein täglicher Abgleich ist für sowas dann doch besser als nur alle zwei Tage.

Galar

Gibt es vielleicht eine Anleitung wie ich das Skript zum Laufen bekomme?
Passiert leider gar nichts. Temporäre Daten sind erlaubt. JavaSkript läuft auch automatisch. Skript funktioniert auch nicht, wenn ich andere Tools deaktiviere.

Habe Google Chrome.
(Oder läuft es sogar schon, sehe aber nur nichts? :D)

Danke im Voraus! :)

Voltan

Mh, gerade nochmal frisch mit Chrome probiert. Da sollte ein neues Symbol aufgetaucht sein - im unkonfigurierten Zustand in rötlichen Tönen.

Galar

Ah vielen Dank! Hab ich gar nicht gesehen.
Da wundert man sich, dass man auch keine Hilfe-Seite findet und dabei ist das wirklich direkt vor einem ...

Qwertz

Sehr schönes Script :-) vielen dank

Frage:
Ist es nur bei mir so oder gewollt das der die Nullrunden beim beten nicht mitzuhalten?

Voltan

#9
Zitat von: Qwertz am 27. April 2017, 09:14:42
Frage:
Ist es nur bei mir so oder gewollt das der die Nullrunden beim beten nicht mitzuhalten?

Huch. Da ist mir wohl irgendwann ein Leerzeichen reingerutscht.  :|
Danke für den Hinweis!
Heute Abend kommt nochmal eine neue Version, die das Verhalten bei Lederbeuteln abändert. Da ist das dann auch korrigiert.

Sanglant

Zitatdet 1x Tairanblatt     det 1x Erzklumpen     det 1x alte Silbermünze     det 1x Kurelblüte

...sieht so aus, als  ob die Regex da noch etwas haken würde. Das "det" ist jedenfalls Teil von "Der zur Unterstützung beschworene Begleiter findet ..."

Hab die Daten exportiert und gesehen, dass es nur Aggregate sind. Die müsste ich regelmässig manuell exportieren, um Zeitreihen zu bekommen. Denke, das ist nicht convenient.

Habe ich grundsätzlich die Erlaubnis, Deinen Code zu modifizieren, damit ich meine Goals implementieren kann? (Die Source ist eh über Greasemonkey einsehbar, aber ich frage trotzdem lieber nach.) Wir können das nachher auch mergen, es würden eh nur ein paar Kleinigkeiten dazu kommen:

  • eine Eingabezeile in den Einstellungen, um eine Ziel-URL zu konfigurieren
  • einen Request auf diese URL nach jedem erfolgreichen Parser-Event

Das JSON, das da dann ankommt, tüftel ich mir dann schon auseinander. Meine Erfahrungen mit Front-End-Programmierung sind zwar eine Weile her, aber seh da trotzdem keine grossen Schwierigkeiten.

Voltan

#11
Ich habe von 0.98 auf 1.00 den Fehler beseitigt, dass das Script "indet eine Eisblume" speichert, da das nicht dem Standard des "findet 1x [Item]" entspricht (die vorher richtig gespeichert wurden). Und dabei ein ">-1" vergessen.
Grandios. Einmal faul gewesen, nur den target case getestet und nicht mehr reingeguckt... Einfach mal alles mitm Arsch umgerissen.  lol

Ich werfe heute Abend einen Fix dafür raus, der die DBs bereinigt und den entstandenen Schaden behebt.
Nein, es wir keine Trostkekse geben.


Dass es Aggregate sind, hattest du ja schon zu Beginn bemerkt.
Hatte anfangs versucht, die Daten anders zu speichern und deutlich detailreicher aufzubereiten (um z.B. gewichtete Mittel oder Zugriffe auf Einzel-/Wochen/Monatsstatistiken zu ermöglichen), aber ich habe damit den localstorage (das sind nur 5MB...) einfach zu schnell geflutet und es deshalb nach einem Minimaltest mit generierten Kräuterergebnissen wieder verworfen. Sicher, mit einem externen Backup hätte man das eindämmen können, aber das war dann auch nicht mehr das Ziel (zumal ich nicht die Ressourcen dafür habe).

Meinetwegen kannst du den Code verändern. Da hindere ich dich nicht dran.
Jedoch bezweifle ich, dass es sinnvoll ist, die entsprechend modifizierte Version (schon) als public-Release zu verteilen.


// fixed version up.

Sanglant

Naja, so ein Drama ist das jetzt auch nicht. =) Aber cool, dass es trotz der Komplikationen so schnell gefixt wurde.

Mein Bereich ist derzeit job-bedingt die Serversoftware und das Back-End. Und das bietet mächtige Funktionen im Bereich Datenanalyse und Statistik, zum Beispiel Zeitreihen (für Grafiken) und Fallstudien (wie "Wie verändern sich die Einnahmen pro Monat, wenn ich 5 Gold mehr für meine seltenen Kräuter bekomme?"). Ein anderer Vorteil ist, dass ich auch von mehreren Rechnern spielen kann, ohne hin und her zu transferieren.

Ich würde das vorläufig auch nur bei einem Freehoster laufen lassen. MongoDB wär interessant auszuprobieren, aber das spielts dort leider nicht. Geht aber auch easy mit MySQL, sind nur Name(+Kategorie)-Zeitpunkt-Wert-Tupel.

Wenn die Strings (Kräuternamen zB) indiziert werden (geht mit einer einfachen Funktion, die einen Hash über die Strings vorhält und einen numerischen Wert zurückliefert), lässt sich sicher auch mit den 5 MB einiges anfangen. Hast Du schon mal mitzählen lassen, wie viele Parser-Events Du erzeugst?

Verteilen will ich eh noch nix, erstmal will ich das ausprobieren. (= Ausserdem muss das in dem Fall noch abgesichert werden, sonst lässt sich da viel Unfug mit den Daten anderer Menschen anstellen.

Mobby

Vermutlich seit dem Update zu FF 53 geht das Script nicht mehr. Besser gesagt das Icon wird nicht mehr angezeigt. In der Liste der aktiven Addons und Scripte ist es drin. Cache und Cookies löschen hat nicht geholfen. Hat noch jemand Probleme damit oder eine Idee?

Sparta

Ich habe das Script gestern auch mal ausprobiert. Musste es am Ende leider wieder deaktivieren, da die Einstellungen zum Überwachen nicht aktiviert wurde und nicht mitgezählt wurde. Zudem konnte ich die Einstellungen im nachgang nicht wieder ändern, da sie nicht mehr angezeigt wurden.

Werde nun einfach einige Zet abwarten bis es vielleicht wieder ein Update gibt und einige Fehler behoben werden. Der Aufbau des Scripts und die Funktionen dahinter finde ich aber sehr interessant :)