local dkjson = require("lain.util").dkjson local math = require("math") local awful = require("awful") local beautiful = require("beautiful") local widgets = {} local function parse_ecb_rates(output, symbol, prec) local xc, pos, err = dkjson.decode(output, 1, nil) if not prec then prec = 2 end val = (xc and xc["rates"] and xc["rates"][symbol]) or 0 print (val) val = math.floor(val*10^prec+0.5)/10^prec return (not err and val) or "n/a" end widgets.ecb_widget = awful.widget.watch( "curl -m5 -s 'http://api.exchangeratesapi.io/v1/latest?base=EUR&access_key=28639a585f6b46bbddd41d3ffe337fc5&symbols=NZD,USD,CHF'", 10800, function(widget, output) widget:set_text(parse_ecb_rates(output, 'NZD') .. " NZD = " .. parse_ecb_rates(output, 'CHF') .. " CHF") end ) return widgets