From 04a974edf28b4a61889ef44791d9d425f268e27d Mon Sep 17 00:00:00 2001 From: "martin f. krafft" Date: Wed, 18 Jan 2017 10:46:28 +1100 Subject: [PATCH] Fix up BTC/ETH widget --- .config/awesome/rc.lua | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/.config/awesome/rc.lua b/.config/awesome/rc.lua index ac0676b..478f3f7 100644 --- a/.config/awesome/rc.lua +++ b/.config/awesome/rc.lua @@ -12,6 +12,7 @@ local naughty = require("naughty") 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") -- }}} @@ -127,20 +128,20 @@ local lain_bat = lain.widgets.bat({ batteries = {"BAT0", "BAT1"}, settings = function() local delim = "↓" - if bat_now.status == "1" then delim = "↑" end + if bat_now.status == "Charging" then delim = "↑" end widget:set_text(bat_now.perc .. "% " .. delim .. " " .. bat_now.time) end, }) local function poloniex_price(output, pair, prec) - local xc, pos, err = require("lain.util").dkjson.decode(output, 1, nil) + 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 = 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() @@ -148,6 +149,23 @@ local xc_widget = lain.widgets.abase({ end }) +local function coindesk_price(output, base, prec) + print(output) + 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 @@ -317,7 +335,9 @@ awful.screen.connect_for_each_screen(function(s) layout = wibox.layout.fixed.horizontal, mykeyboardlayout, wibox.widget.systray(), - xc_widget, + btc_widget, + spacer, + eth_widget, spacer, lain_bat.widget, spacer, -- 2.39.5