From 4420f49366eb71214de63b04a78a378f78f8cc0e Mon Sep 17 00:00:00 2001 From: "martin f. krafft" Date: Thu, 15 Aug 2019 14:26:59 +1200 Subject: [PATCH 1/1] add forex widgets --- .config/awesome/forex_widgets.lua | 27 +++++++++++++++++++++++++++ .config/awesome/rc.lua | 3 +++ 2 files changed, 30 insertions(+) create mode 100644 .config/awesome/forex_widgets.lua diff --git a/.config/awesome/forex_widgets.lua b/.config/awesome/forex_widgets.lua new file mode 100644 index 0000000..c1a1ee1 --- /dev/null +++ b/.config/awesome/forex_widgets.lua @@ -0,0 +1,27 @@ +local dkjson = require("lain.util").dkjson +local math = require("math") +local lain = require("lain") +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 + print (xc["rates"]["NZD"]) + val = (xc 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 = lain.widget.watch({ + cmd = "curl -m5 -s 'https://api.exchangeratesapi.io/latest?base=EUR'", + timeout = 600, + settings = function() + widget:set_text(parse_ecb_rates(output, 'NZD') .. " NZD = " + .. parse_ecb_rates(output, 'CHF') .. " CHF") + end, +}) + +return widgets diff --git a/.config/awesome/rc.lua b/.config/awesome/rc.lua index 8c71e1c..c3a89c8 100644 --- a/.config/awesome/rc.lua +++ b/.config/awesome/rc.lua @@ -24,6 +24,7 @@ local has_fdo, freedesktop = pcall(require, "freedesktop") -- Other libraries local lain = require("lain") local ccwidgets = require("cryptocoin_widgets") +local fxwidgets = require("forex_widgets") local clocksarray = require("clocksarray") local dbg = require("debugfunc") local th = require("taghelpers") @@ -306,6 +307,8 @@ awful.screen.connect_for_each_screen(function(s) make_spacer(), ccwidgets.eth_widget, make_spacer(), + fxwidgets.ecb_widget, + make_spacer(), lain_bat.widget, make_spacer(), }, right_widgets) -- 2.39.5