From e2bb051bd352bfae50f0ddcbcef844e62fa146fc Mon Sep 17 00:00:00 2001
From: Přemysl Janouch
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-70-g09d2