From e2bb051bd352bfae50f0ddcbcef844e62fa146fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C5=99emysl=20Janouch?= Date: Fri, 4 Nov 2016 21:50:46 +0100 Subject: degesch: replace degesch.connect with async.dial Halfway there, looks much saner. --- plugins/degesch/last-fm.lua | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) (limited to 'plugins') diff --git a/plugins/degesch/last-fm.lua b/plugins/degesch/last-fm.lua index 5c836ca..8f6902d 100644 --- a/plugins/degesch/last-fm.lua +++ b/plugins/degesch/last-fm.lua @@ -118,24 +118,23 @@ end local running -- Initiate a connection to last.fm servers +async, await = degesch.async, coroutine.yield local make_request = function (buffer, action) if not user or not api_key then report_error (buffer, "configuration is incomplete") return end - if running then running.abort () end - - running = degesch.connect ("ws.audioscrobbler.com", 80, { - on_success = function (c, host) - on_connected (buffer, c, host, action) - running = nil - end, - on_error = function (e) + if running then running:cancel () end + running = async.go (function () + local c, host, e = await (async.dial ("ws.audioscrobbler.com", 80)) + if e then report_error (buffer, e) - running = nil + else + on_connected (buffer, c, host, action) end - }) + running = nil + end) end -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -- cgit v1.2.3