Seitenhistorie
Inhalt
| Auszug |
|---|
Hier stellen wir die in den User-Scripts verfügbaren Lua-Bibliotheken vor. Alle Bibliotheken können über |
| Inhalt |
|---|
Luau Standard-Bibliotheken
Die Runtime stellt die Standard Bibliotheken (https://luau.org/library) der Luau Runtime (zur Verfügung, mit folgenden Ausnahmen:
...
Zusätzlich zu den Standard-Bibliotheken werden nachfolgende Bibliotheken in der runtime bereitgestellt.
Zusätzliche Bibliotheken
fetch
Fetch erlaubt die Ausführung von http(s) Requests.
fetch(request: RequestOptions|string): Response
fetch ist ein Alias auf fetch.fetch(...)
fetch.fetch(request: RequestOptions|string): Response
RequestOptions ist entweder
...
Die URL ist das einzige Pflichtfeld.
| Codeblock | ||||||
|---|---|---|---|---|---|---|
| ||||||
local fetch = require("fetch")
local response = fetch({
url = "https://webhook.site/", -- TODO: 'ne URL mit ID einfügen oder noch besser: Als Formular Feld konfigurierbar machen.
method = "POST",
headers = {
["content-type"] = "text/plain"
},
body = "Test eines POST Requests im User-Script mit fetch.fetch"
}) |
fetch.get(url: string, options: RequestOptions | nil): Response
Shortcut für GET-Requests. options ist eine optionale Tabelle mit den möglichen Eigenschaften headers, follow_redirects, timeout und disable_certificate_validation. Die Bedeutung der Eigenschaften ist im Abschnitt fetch.fetch erklärt.
| Codeblock | ||||||
|---|---|---|---|---|---|---|
| ||||||
local fetch = require("fetch")
local response = fetch.get("https://v2.jokeapi.dev/joke/Any?lang=de&format=txt&type=single&safe-mode")
print(response.body) |
fetch.post(url: string, payload: { data: string, contentType: string }, options: RequestOptions)
Das Argument payload enthält die Eigenschaften
...
Das Argument options ist im Abschnitt fetch.get erklärt.
| Codeblock | ||||||
|---|---|---|---|---|---|---|
| ||||||
local fetch = require("fetch")
local response = fetch.post(
"https://webhook.site/...", -- TODO: URL mit ID einfügen oder besser: Im Formular als Feld einfügen
{
contentType = "application/json",
data = "Test eines POST Request im User-Script mit fetch.post"
}
) |
fetch.put(url: string, payload: { data: string, contentType: string }, options: RequestOptions)
Die Argumente sind die selben wie bei fetch.post und dort erklärt.
fetch.patch(url: string, payload: { data: string, contentType: string }, options: RequestOptions)
Die Argumente sind die selben wie bei fetch.post und dort erklärt.
fetch.delete(url: string, payload: { data: string, contentType: string }, options: RequestOptions)
Die Argumente sind die selben wie bei fetch.post und dort erklärt.
json
Eine für unsere Runtime modifizierte Version von json.lua. Die im Repository erwähnten "opional advanced features" sind nicht in unserer Version vorhanden.
json.encode(value: any): string
Kodiert eine Lua Tabelle oder Wert als json-string. Hinweis: Funktionen werden nicht unterstützt und lösen einen Fehler aus.
json.decode(value: string): Any
Dekodiert einen json string in eine Lua Tabelle (oder anderweitigen Wert). JSON nullwird nicht als nil dekodiert, sondern als json.null.
json.createEmptyObject()
Normalerweise wird eine leere Tabelle ({}) als leeres JSON-array ([]) kodiert, mit json.createEmptyObject() wird eine leere Tabelle mit Meta-Informationen erzeugt, wodurch sie als leeres JSON Objekt ({}) serialisiert wird.
json.isObject(value: Table)
Gibt zurück, ob eine Tabelle entweder eine leere Tabelle erzeugt mit json.createEmptyObject ist oder eine Tabelle mit nicht-numerischen Schlüsseln.
xml
Hierbei handelt es sich um das Lua Modul xml2lua, was vollständig zur Verfügung steht.
...
Zur Verarbeitung von XML werden folgende Lua-Bibliotheken aus dem Modul xml2lua bereitgestellt:
- xml2lua
- xmlhandler.tree
- xmlhandler.dom
- XmlParser
XML-String in eine Lua-Table konvertieren
| Codeblock | ||||||
|---|---|---|---|---|---|---|
| ||||||
local xml2lua = require("xml2lua")
local handler = require("xmlhandler.tree")
local xml = [[
<?xml version="1.0" encoding="UTF-8"?>
<Table name="Einsatzdaten">
<Data type="STRING" header="Einsatznummer"/>
<Data type="STRING" header="Einsatzstichwort"/>
<Data type="STRING" header="Meldebild"/>
<Row>
<Column value="1234567890"/>
<Column value="B2.5"/>
<Column value="Rauchentwicklung in / aus Gebäude unklar"/>
</Row>
</Table>
]]
local parser = xml2lua.parser(handler)
parser:parse(xml) |
Lua-Table in einen XML-String konvertieren
| Codeblock | ||||||
|---|---|---|---|---|---|---|
| ||||||
local xml2lua = require("xml2lua")
local incidents = {
Table = {
_attr = { name='Einsatzdaten' },
Data = {
{ _attr={ type='STRING', header='Einsatznummer' } },
{ _attr={ type='STRING', header='Einsatzstichwort' } },
{ _attr={ type='STRING', header='Meldebild' } }
},
Row = {
Column = {
{ _attr={ value='1234567890' } },
{ _attr={ value='B2.5' } },
{ _attr={ value='Rauchentwicklung in / aus Gebäude unklar' } }
}
}
}
}
print("Einsätze als XML Repräsentation\n")
print(xml2lua.toXml(incidents)) |
Verwandte Artikel
| Inhalt nach Stichwort | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
...
| Seiteneigenschaften | ||
|---|---|---|
| ||
|