The most important screen this month.
parent
bf68bc224d
commit
e72e1a1852
|
@ -0,0 +1,55 @@
|
|||
local node = ThreadNode:extend('node.currency', {
|
||||
threadFile = 'nodes/currency_thread.lua',
|
||||
threadChannel = 'currency',
|
||||
|
||||
updateInterval = 10,
|
||||
state = {
|
||||
values = {},
|
||||
changes = {},
|
||||
},
|
||||
})
|
||||
|
||||
local inspect = require('vendor.inspect')
|
||||
|
||||
local textFont = love.graphics.newFont('fonts/Lato-Light.ttf', 90)
|
||||
local headFont = love.graphics.newFont('fonts/Lato-Regular.ttf', 90)
|
||||
local smallFont = love.graphics.newFont('fonts/Lato-Light.ttf', 30)
|
||||
|
||||
function node:render()
|
||||
love.graphics.setColor( 0, 0, 0 )
|
||||
love.graphics.rectangle("fill", 0, 0, love.graphics.getWidth(), love.graphics.getHeight())
|
||||
|
||||
if self.state.values and self.state.values[2] then
|
||||
local pad = 20
|
||||
love.graphics.setColor( 255, 255, 255 )
|
||||
love.graphics.setFont(headFont)
|
||||
love.graphics.printf("BTCPLN", 0, 180, love.graphics.getWidth()/2, 'right')
|
||||
love.graphics.printf("TRYIDR", 0, 350, love.graphics.getWidth()/2, 'right')
|
||||
love.graphics.setFont(textFont)
|
||||
|
||||
love.graphics.setColor( 0, 255, 0 )
|
||||
love.graphics.printf(self.state.values[1], love.graphics.getWidth()/2 + 2*pad, 180, love.graphics.getWidth()/2 - 2*pad, 'left')
|
||||
love.graphics.printf(self.state.values[2], love.graphics.getWidth()/2 + 2*pad, 350, love.graphics.getWidth()/2 - 2*pad, 'left')
|
||||
else
|
||||
love.graphics.setColor( 255, 255, 255, 80 )
|
||||
|
||||
love.graphics.setFont(smallFont)
|
||||
love.graphics.printf("Loading currency...", 0, love.graphics.getHeight() - 200, love.graphics.getWidth(), 'center')
|
||||
end
|
||||
end
|
||||
|
||||
function node:onUpdate(v)
|
||||
for n in ipairs(v.values) do
|
||||
if self.state.values[n] then
|
||||
if self.state.values[n] ~= v.values[n] then
|
||||
self.state.changes[n] = self.state.values[n] > v.values[n]
|
||||
end
|
||||
else
|
||||
self.state.changes[n] = true
|
||||
end
|
||||
end
|
||||
|
||||
self.state.values = v.values
|
||||
end
|
||||
|
||||
return node
|
|
@ -0,0 +1,22 @@
|
|||
local socket = require("socket")
|
||||
local http = require("socket.http")
|
||||
local json = require("vendor.json")
|
||||
local lume = require("vendor.lume")
|
||||
|
||||
local btcURL = 'http://www.bitmarket.pl/json/BTCPLN/ticker.json'
|
||||
local tryURL = 'http://api.fixer.io/latest?base=TRY'
|
||||
|
||||
local r, c, h = http.request(btcURL)
|
||||
if c == 200 then
|
||||
btcpln = json.decode(r)['last']
|
||||
local r, c, h = http.request(tryURL)
|
||||
if c == 200 then
|
||||
tryidr = json.decode(r)['rates']['IDR']
|
||||
end
|
||||
love.thread.getChannel('currency'):push({
|
||||
values = {math.floor(btcpln), math.floor(tryidr)},
|
||||
})
|
||||
print("Update finished")
|
||||
else
|
||||
print("Update failed")
|
||||
end
|
Loading…
Reference in New Issue