local menubar = require("menubar")
local hotkeys_popup = require("awful.hotkeys_popup").widget
local lain = require("lain")
+local dkjson = require("lain.util").dkjson
+local math = require("math")
-- }}}
-- {{{ Error handling
batteries = {"BAT0", "BAT1"},
settings = function()
local delim = "↓"
- if bat_now.status == "1" then delim = "↑" end
+ if bat_now.status == "Charging" then delim = "↑"
+ elseif bat_now.status == "Unknown" then delim = "٭" end
widget:set_text(bat_now.perc .. "% " .. delim .. " " .. bat_now.time)
end,
})
-local function poloniex_price(output, pair, accuracy)
- local xc, pos, err = require("lain.util").dkjson.decode(output, 1, nil)
- if not accuracy then accuracy = 4 end
+local function poloniex_price(output, pair, prec)
+ local xc, pos, err = dkjson.decode(output, 1, nil)
+ if not prec then prec = 4 end
val = (xc and xc[pair]["last"]) or 0
- val = val - val % (1/(10^accuracy))
+ val = math.floor(val*10^prec+0.5)/10^prec
return (not err and val) or "n/a"
end
-local xc_widget = lain.widgets.abase({
+local eth_widget = lain.widgets.abase({
cmd = "curl -m5 -s 'https://poloniex.com/public?command=returnTicker'",
timeout = 600,
settings = function()
end
})
+local function coindesk_price(output, base, prec)
+ local xc, pos, err = dkjson.decode(output, 1, nil)
+ if not prec then prec = 4 end
+ val = (xc and xc["bpi"][base]["rate_float"]) or 0
+ val = math.floor(val*10^prec+0.5)/10^prec
+ return (not err and val) or "n/a"
+end
+
+local btc_widget = lain.widgets.abase({
+ cmd = "curl -m5 -Ls 'https://api.coindesk.com/v1/bpi/currentprice/EUR.json'",
+ timeout = 600,
+ settings = function()
+ widget:set_text(coindesk_price(output, "EUR", 2) .. " €/Ƀ")
+ end
+})
+
-- }}}
-- {{{ Menu
layout = wibox.layout.fixed.horizontal,
mykeyboardlayout,
wibox.widget.systray(),
- xc_widget,
+ btc_widget,
+ spacer,
+ eth_widget,
spacer,
lain_bat.widget,
spacer,