26.02.2024, 18:22
Thanks for your help admin. Below the complete script to get the Vestaboard message including the colors regarding their character codes
Code:
require('json')
require('ltn12')
require('socket.http')
token = 'YOUR TOKEN'
chars = {
[0] = "[ ]", [1] = "A", [2] = "B", [3] = "C", [4] = "D", [5] = "E",
[6] = "F", [7] = "G", [8] = "H", [9] = "I", [10] = "J", [11] = "K",
[12] = "L", [13] = "M", [14] = "N", [15] = "O", [16] = "P",
[17] = "Q", [18] = "R", [19] = "S", [20] = "T", [21] = "U",
[22] = "V", [23] = "W", [24] = "X", [25] = "Y", [26] = "Z",
[27] = "1", [28] = "2", [29] = "3", [30] = "4", [31] = "5",
[32] = "6", [33] = "7", [34] = "8", [35] = "9", [36] = "0",
[37] = "!", [38] = "@", [39] = "#", [40] = "$", [41] = "(",
[42] = ")", [44] = "-", [46] = "+", [47] = "&", [48] = "=",
[49] = ";", [50] = ":", [52] = "'", [53] = '"', [54] = "%",
[55] = ",", [56] = ".", [59] = "/", [60] = "?", [62] = "°",
[63] = "[R]", [64] = "[O]", [65] = "[Y]", [66] = "[G]",[67] = "[B]",
[68] = "[V]", [69] = "[W]", [70] = "[ ]",[71] = "[ ]"
}
function decode(input)
for i, code in ipairs(input) do
input[ i ] = chars[ code ] or ''
end
local res = table.concat(input)
return res:trim()
end
data = {}
res, code = socket.http.request({
url = 'https://rw.vestaboard.com/',
method = 'GET',
headers = {
['X-Vestaboard-Read-Write-Key'] = token,
['Content-Type'] = 'application/json',
},
sink = ltn12.sink.table(data),
})
if res and code == 200 then
data = table.concat(data)
data = json.pdecode(data)
messages = json.pdecode(data.currentMessage.layout)
--log(messages)
else
log('Vestaboard error', code, table.concat(data))
end
for i, message in ipairs(messages) do
messages[ i ] = decode(message)
end
log(messages)