summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--config.lua1
-rw-r--r--nodes/weather.lua52
-rw-r--r--nodes/weather_thread.lua2
3 files changed, 47 insertions, 8 deletions
diff --git a/config.lua b/config.lua
index a491b3e..b8ce6ba 100644
--- a/config.lua
+++ b/config.lua
@@ -3,6 +3,7 @@ return {
transitionTime = 0.5,
showProgress = true,
nodes = {
+ {'nodes.weather'},
{'nodes.newdash', displayTime=10},
{'nodes.misery', displayTime = 7},
{'nodes.slideshow', files={'images/pig.png'}, displayTime=5},
diff --git a/nodes/weather.lua b/nodes/weather.lua
index fa3bf98..f5bf82c 100644
--- a/nodes/weather.lua
+++ b/nodes/weather.lua
@@ -9,15 +9,51 @@ local weatherFont = love.graphics.newFont('fonts/weathericons-regular-webfont.tt
local textFont = love.graphics.newFont('fonts/Lato-Thin.ttf', 300)
local smallFont = love.graphics.newFont('fonts/Lato-Light.ttf', 30)
-local weatherGlyphs = {
- snow = "",
- mist = "",
- clear = "",
- -- clouds = "",
- clouds = "", -- x---DDD
- drizzle = "",
+local weatherGlyphs = {}
+
+local weatherGlyphsSet = {
+ day = {
+ snow = "",
+ mist = "",
+ clear = "",
+ -- clouds = "",
+ clouds = "", -- x---DDD
+ drizzle = "",
+ },
+ night = {
+ snow = "",
+ mist = "",
+ clear = "",
+ clouds = "",
+ drizzle = "",
+
+ }
}
+function node:timeOfDay()
+ local sunRise = tonumber(os.date("%H%M", self.state.sunRise))
+ local sunSet = tonumber(os.date("%H%M", self.state.sunSet))
+ local now = tonumber(os.date("%H%M"))
+ if sunRise == nil or sunSet == nil then
+ return weatherGlyphsSet["day"] -- smth gone wrong. assume daylight
+ end
+ if now < sunSet and now > sunRise then
+ print('day')
+ return weatherGlyphsSet["day"]
+ else
+ print('night')
+ return weatherGlyphsSet["night"]
+ end
+end
+
+function node:beforeEnter()
+ if self.state then
+ weatherGlyphs = self:timeOfDay()
+ else
+ weatherGlyphs = weatherGlyphsSet["day"] -- do not know sunraise and sunset yet. assume daylight
+ end
+end
+
function node:render()
love.graphics.setColor( 0, 0, 0 )
love.graphics.rectangle("fill", 0, 0, love.graphics.getWidth(), love.graphics.getHeight())
@@ -34,7 +70,7 @@ function node:render()
end
love.graphics.setFont(textFont)
- love.graphics.printf(tostring(self.state.temperature) .. "°", 600, 150, 650, 'center')
+ love.graphics.printf(tostring(math.floor(self.state.temperature + 0.5)) .. "°", 600, 150, 650, 'center')
love.graphics.setFont(smallFont)
love.graphics.printf(os.date("Last update: %Y/%m/%d %H:%M", self.state.lastUpdate), 0, love.graphics.getHeight() - 60, love.graphics.getWidth(), 'center')
diff --git a/nodes/weather_thread.lua b/nodes/weather_thread.lua
index 4a627be..ebf0400 100644
--- a/nodes/weather_thread.lua
+++ b/nodes/weather_thread.lua
@@ -21,6 +21,8 @@ if c == 200 then
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],
})