• If you need help or want to discuss things, you now can also join us on our Discord Server!
  • A first preview of the unlimited version of SinusBot can be found in the Upcoming Changes thread. A version for Windows will follow, but we don't have a release date, yet.

Script Webinterface: Server-Side Templating Language integration (e.g. FTL, VM, JSP)

Status
Not open for further replies.

vincolus

Donor
is awesome!
Contributor
Insider
Hallo zusammen!

Wie übertrage ich Werte aus den Script Settings (Configuration) an das Webinterface, ohne einen Token mit EDITBOT-Berechtigung an den Client übergeben zu müssen?
Gibt es überhaupt einen nativen Weg, dies zu tun?

Einen anderer Weg fällt mir noch ein: die Bot-Instanz selbst kann mittels Scripting API config-werte abfragen, die für den Client (dank server-seitiger Verarbeitung) nicht sichtbar sind. Man kann diese z.B. in eine URL integrieren, die der Client vom Bot generiert bekommt.
Das gefällt mir nur nicht so sehr, da das Webinterface dann nicht eigenständig verwendet werden kann und man immer einen "Umweg" über Teamspeak gehen muss.

Auch setze ich nur ungern einen extra Webserver wie apache, tomcat oder node auf, da der Sinusbot ja bereits einen (Java-)Webserver mitbringt.
Es bräuchte m.E. eine Art Server-Side-Templating-Engine-Integration oder die Möglichkeit, JSP zu nutzen.

Ist so etwas denkbar oder sogar schon angedacht worden? Ich sehe öfter mal PHP-Schnipsel und wundere mich...
Sorry, falls ich irgendwas übersehen habe.

LG Vincolus
 
Last edited:

flyth

is reticulating splines
Staff member
Developer
Contributor
Entschuldige bitte die späte Antwort, ich habe den Thread erst jetzt gesehen. Wenn es konkrete Fragen zur Scripting-Engine gibt, dann kannst du dich künftig auch gerne per PM an mich wenden.

Nichts desto Trotz hier die Antwort:
Es gibt öffentliche Endpunkte für die Scripting-API, mit der man direkt per HTTP auf Scripts zugreifen kann. Allerdings scheint die Schnittstelle mit der letzten Version deaktiviert worden zu sein - die nächste Version wird es wieder drin haben.

Das ganze funktioniert dann mit einem POST an /api/v1/b/:botID/i/:instanceID/event/:eventName :botID usw. entsprechen immer den Werten der BotID, InstanzID und dem Namen des aufzurufenden Events):
JavaScript:
event.on('public:eventName', function(data) {
    // data enthält ein objekt, welches den POST-body JSON-decoded enthält
    return { "foo": bar };
});

Der request body sollte vom Typ application/json sein, der response body enthält ein array mit den Rückgabewerten aller aufgerufenen Event-Callbacks.

Ich hoffe das war verständlich und ist für deine Zwecke ausreichend. :)
 

vincolus

Donor
is awesome!
Contributor
Insider
Sehr cool :cool:
Danke für die ausführliche Antwort!
Das sollte für meine Zwecke ausreichen ;)

Dann warte ich mal die nächste Version ab.
 

flyth

is reticulating splines
Staff member
Developer
Contributor
Noch nicht, ich habe aber vor, es noch in diesem Jahr zu releasen. :)
 

vincolus

Donor
is awesome!
Contributor
Insider
Hi Flyth. Meintest du damit 2017 oder schon 2018? ;)
Sorry, falls du es released hast, habe ich es nicht mitbekommen.

LG
 
Status
Not open for further replies.
Top