love2d-signage/nodes/weather_thread.lua

33 lines
936 B
Lua

local socket = require("socket")
local http = require("socket.http")
local json = require("vendor.json")
local weatherURL = 'https://openweathermap.org/data/2.5/weather?id=6695624&units=metric&appid=b1b15e88fa797225412429c1c50c122a1'
local insideURL = 'http://dht01.waw.hackerspace.pl/'
local insideData = {}
local r, c, h = http.request(weatherURL)
if c == 200 then
local data = json.decode(r)
local r, c, h = http.request(insideURL)
if c == 200 then
for n in string.gmatch(string.gsub(r, ",", "."), ":%s*(%S+)[*%%]") do
insideData[#insideData+1] = n
end
end
love.thread.getChannel('weather'):push({
weather = data.weather[1].main:lower(),
temperature = data.main.temp,
lastUpdate = data.dt,
sunRise = data.sys.sunrise,
sunSet = data.sys.sunset,
insideTemperature = insideData[1],
insideHumidity = insideData[2],
})
print("Update finished")
else
print("Update failed")
end