X-Git-Url: https://git.madduck.net/etc/awesome.git/blobdiff_plain/8d3868d7ce528cfc075e246c8935bae2724e0868..0f2cbcb56767d9944d80653ff67e6bdb617d3560:/widget/mpd.lua diff --git a/widget/mpd.lua b/widget/mpd.lua index b5281b0..d0b37d7 100644 --- a/widget/mpd.lua +++ b/widget/mpd.lua @@ -17,13 +17,12 @@ local os = { getenv = os.getenv } local string = { format = string.format, gmatch = string.gmatch, match = string.match } -local setmetatable = setmetatable -- MPD infos -- lain.widget.mpd -local mpd = {} -local function worker(args) +local function factory(args) + local mpd = { widget = wibox.widget.textbox() } local args = args or {} local timeout = args.timeout or 2 local password = (args.password and #args.password > 0 and string.format("password %s\\n", args.password)) or "" @@ -41,8 +40,6 @@ local function worker(args) local echo = string.format("printf \"%sstatus\\ncurrentsong\\nclose\\n\"", password) local cmd = string.format("%s | curl --connect-timeout 1 -fsm 3 %s", echo, mpdh) - mpd.widget = wibox.widget.textbox() - mpd_notification_preset = { title = "Now playing", timeout = 6 } helpers.set_map("current mpd track", nil) @@ -112,7 +109,8 @@ local function worker(args) if not string.match(mpd_now.file, "http.*://") then -- local file instead of http stream local path = string.format("%s/%s", music_dir, string.match(mpd_now.file, ".*/")) - local cover = string.format("find '%s' -maxdepth 1 -type f | egrep -i -m1 '%s'", path:gsub("'", "'\\''"), cover_pattern) + local cover = string.format("find '%s' -maxdepth 1 -type f | egrep -i -m1 '%s'", + path:gsub("'", "'\\''"), cover_pattern) helpers.async({ shell, "-c", cover }, function(current_icon) common.icon = current_icon:gsub("\n", "") if #common.icon == 0 then common.icon = nil end @@ -134,4 +132,4 @@ local function worker(args) return mpd end -return setmetatable(mpd, { __call = function(_, ...) return worker(...) end }) +return factory