local dkjson = require("lain.util").dkjson local math = require("math") local awful = require("awful") local beautiful = require("beautiful") local widgets = {} 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 = math.floor(val*10^prec+0.5)/10^prec return (not err and val) or "n/a" end widgets.eth_widget = awful.widget.watch( "curl -m5 -s 'https://poloniex.com/public?command=returnTicker'", 600, function(widget, output) widget:set_text(poloniex_price(output, 'BTC_ETH') .. " Ƀ/Ξ") 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 widgets.btc_widget = awful.widget.watch( "curl -m5 -Ls 'https://api.coindesk.com/v1/bpi/currentprice/EUR.json'", 600, function(widget, output) widget:set_text(coindesk_price(output, "EUR", 2) .. " €/Ƀ") end ) return widgets