TBM API improvement

10/06/2014 22:50 IchVerabschiedeMich#1
Hallo Leute,

ich hab mich grade mit [Only registered and activated users can see links. Click Here To Register...] Unterhalten. Es ging um eine Erweiterung der TBM API. Und zwar würde es mir als Entwickler und Epvp enorm helfen wenn man noch als Zusätzlichen (eventuell Optionalen) Parameter noch eine Zeitspanne übergeben könnte um die Transaktionen einzugrenzen.

Das ganze vorhaben sollte in der Theorie einfach umsetzbar sein und würde einigen mir Persönlich, und allen anderen Entwicklern welche die API Nutzen, sowie auch Elitepvpers das Leben erleichtern.

Wieso das ganze?
Hat man viele Transaktionen braucht es viel Rechenleistung den JSON-String zu generieren und diesen auch wieder zu dekodieren was auch wiederum etwas Zeit in Anspruch nimmt.

Wem würde das ganze nutzen?
Elitepvpers, da weniger Rechenleistung zum erstellen des JSON-Strings benötigt wird.
Den Entwicklern, da weniger Rechenleistung zum dekodieren des JSON-Strings benötigt wird.

Ich hoffe das viele mir zustimmen und das ganze eventuell irgendwann umgesetzt wird.

Gruß,
Padrio
10/07/2014 02:28 MrSm!th#2
#moved
10/07/2014 14:52 Javasova#3
Die API von Epvp zu erweitern ist ja schon seit Ewigkeiten im Gespräch.

Siehe:
[Only registered and activated users can see links. Click Here To Register...]
Quote:
Originally Posted by Lowfyr
Sofern unsere API aktiv benutzt wird werden wir diese natürlich erweitern.
Suggestions zur Erweiterung gab es auch schon:
[Only registered and activated users can see links. Click Here To Register...]
10/07/2014 21:29 aj1987#4
Und was unbedingt dazu gehören muss zur Ausgabe ist die TreasureID und nicht nur die TransaktionsID! Und die Funktion auch bei Treasures eine Notiz anzuheften, nicht nur bei gesendetem e*gold. Das würde einiges erleichtern und auch neues ermöglichen!

Auch könnte ich mir gut vorstellen das Ausgabe limitiert auf Username, UserID, Betrag, TreasureID, TransaktionsID oder Zeitstempel, sehr hilfreich und sinnvoll wäre...
So könnte man gezielt nach einer Transaktion suchen.

Diese Sachen vermisse ich jetzt gerade sehr wo ich an meinem Tool arbeite.
10/07/2014 23:22 Serraniel#5
[Only registered and activated users can see links. Click Here To Register...]

Kann man eventuell damit kombinieren xD
10/08/2014 17:54 MrDami123#6
WTF!?

Du bekommst eine Textdatei, die du direkt als dict einlesen kannst und ein Zeitformat, welches sich ohne weitere Verarbeitung sortieren und entschlüsseln lässt.
Quote:
dateline":"1412624275"
Weder vom Internetvolumen noch vom RAM verbrauch würde es einen Sinn ergeben dies einzuführen. Die paar Bytes pro Transaktion...

Wobei ich natürlich keine Einsicht hab auf ein Konto mit 250+ abgeschlossenen Trades. Da könnte sich die Sache Menge der Masse, zumindest beim Traffic, bemerkbar machen.
Von der Verarbeitung, außer man programmiert wirklich schlampig, sollte man keinen unterschied merken.
10/08/2014 18:02 IchVerabschiedeMich#7
Dir ist schon klar das der JSON-String trotzdem erst in ein Format gebracht werden sollten mit dem man ordentlich arbeiten kann?

Nett finde ich auch das man eine "Textdatei" bekommt - natürlich.

Zurück zum Thema:
Wie ich sagte musst du, damit du ordentlich mit JSON Arbeiten kannst es erstmal in ein anderes Format bringen, in meinem Fall meist einen Array - und alleine das Umrechnen kostet eben nicht nur Leistung, sondern dauert eben eine gewisse Zeit.

Es wäre ziemlich sinnfrei danach die ganzen Sachen nach dem Datum auszusortieren.

Vorher ist es eher umständlich da man mit einem einfachen String Arbeiten muss.
10/09/2014 00:08 MrDami123#8
Man bekommt es im Textformat sprich als einen string in diesem Fall wie du sagtest im JSON Format. Und ja man muss es einlesen, doch dies kostet kaum Rechenleistung oder um wie viel Zeit reden wie hier?

Code:
import json

transactions = {}
with open('ba.txt', 'r') as txt:
    raw_transactions = txt.read()[1:-1].replace('},','}  ').split('  ')
    for num, trans in enumerate(raw_transactions):
        transactions['transaction{}'.format(num)] = json.loads(trans)


"""
for transaction in transactions.values():
    print(transaction['dateline'])
"""
Etwas dirty aber die einlese Geschwindigkeit ist bei mir beim Knopfdruck schon durchgeführt. Auch die Ausgabe des Transaktionsdatums ist ohne Verzögerung.
Hab zu Testzwecken den Inhalt vervielfacht und auf 100Mb gebracht. Auch da braucht es nicht länger als 13 Sekunden.

D.h. meine Frage bleibt wie folgt: Wie viel Zeit würdest du damit sparen? Oder geht es doch um den Traffic?
10/09/2014 00:10 IchVerabschiedeMich#9
Der traffic ist scheiß egal - es geht rein um die Zeit bei de- und encoden
10/09/2014 12:17 Obilee#10
Um was für Zeiten reden wir hier ? Wenn es sich um paar 100ms handelt sehe ich nicht wirklich eine Dringlichkeit dies zu ändern.
Am Ende verschiebt sich die Arbeit vom einschränken der Datensätze von dir auf uns, ob wir die mehr Rechenzeit bei uns haben wollen ist auch Fraglich.
10/09/2014 12:19 IchVerabschiedeMich#11
Quote:
Originally Posted by Obilee View Post
Um was für Zeiten reden wir hier ? Wenn es sich um paar 100ms handelt sehe ich nicht wirklich eine Dringlichkeit dies zu ändern.
Am Ende verschiebt sich die Arbeit vom einschränken der Datensätze von dir auf uns, ob wir die mehr Rechenzeit bei uns haben wollen ist auch Fraglich.
Die Zeiten kann ich gerne mal am Wochenende messen.
Ich stelle mir den Aufwand des ganzen auch nicht wirklich schwer vor da man das ganze auch schon beim rausziehen aus der Datenbank aussortieren kann.
10/09/2014 12:19 MrSm!th#12
Wenn es nicht gerade um Millionen von Trades geht, kann das bisschen Textverarbeitung gar nicht so viel Zeit in Anspruch nehmen. Da sehe ich noch eher den Traffic als Argument, wenn auch als schwaches.
10/09/2014 13:25 aj1987#13
Ihr hab den eigentlichen Sinn der Sache jetzt an die Effizienz abgegeben...

Es geht hier immernoch um das erweitern der API um Funktionen und Informationen, wie von mir schon weiter oben erwähnt. Die Informationen wären mir wichtiger als die Möglichkeit die Ausgabe zu limitieren. Ich wünsche mir lieber die schon vorher angegebenen informationen über die API abfragen zu können.
10/09/2014 16:04 MrDami123#14
Möchte mich hier auch nicht gegen eine Erweiterung der TBM API Funktionen aussprechen. Wollte nur meine Meinung über die Begründung der Einfuhr dieser Funktion aussprechen.

Bin auch dafür diese gewünschte Funktion einzuführen, sprich das man sich die Trades vom jeweiligen Tag ausgeben lassen kann. Mein Argument mit dem Traffic ist bei so niedrigen Datenvolumen auch nicht treffend, wobei die Rechenkraft weder auf dem Users- noch auf dem Hosterserver von starker Belastung betroffen sein sollte.
Das einzige was bleibst ist die Umsetzung des Epvp Informatikers. :D

Bin mir nicht sicher ob auf der ersten Seite ein Sammelbeitrag für neue TBM API funktionen verlinkt wurde, aber bin dafür diesen dort hinzuzufügen.
10/09/2014 16:06 IchVerabschiedeMich#15
Quote:
Originally Posted by MrDami123 View Post
Bin auch dafür diese gewünschte Funktion einzuführen, sprich das man sich die Trades vom jeweiligen Tag ausgeben lassen kann.
Es gibt nicht darum Trades von einem beliebigen Tag anzeigen lassen kann sondern der letzten X Tage.