X-Git-Url: https://git.madduck.net/etc/awesome.git/blobdiff_plain/0279482eeb5867f49b4efc83d591393f9c3d0adb..5d7c6078d11a697c4ea2a72300355d18ffd47d84:/widgets/contrib/gpmdp.lua diff --git a/widgets/contrib/gpmdp.lua b/widgets/contrib/gpmdp.lua index de82b1e..37da43d 100644 --- a/widgets/contrib/gpmdp.lua +++ b/widgets/contrib/gpmdp.lua @@ -8,20 +8,18 @@ local helpers = require("lain.helpers") local json = require("lain.util.dkjson") - local focused = require("awful.screen").focused local pread = require("awful.util").pread local naughty = require("naughty") local wibox = require("wibox") - local next = next local os = { getenv = os.getenv } -local setmetatable = setmetatable local table = table +local setmetatable = setmetatable -- Google Play Music Desktop infos -- lain.widget.contrib.gpmdp -local gpmdp = {} +local gpmdp = helpers.make_widget_textbox() local function worker(args) local args = args or {} @@ -32,8 +30,6 @@ local function worker(args) os.getenv("HOME") .. "/.config/Google Play Music Desktop Player/json_store/playback.json" local settings = args.settings or function() end - gpmdp.widget = wibox.widget.textbox('') - gpmdp_notification_preset = { title = "Now playing", timeout = 6 @@ -69,25 +65,26 @@ local function worker(args) if gpm_now.playing then if notify == "on" and gpm_now.title ~= helpers.get_map("gpmdp_current") then helpers.set_map("gpmdp_current", gpm_now.title) - os.execute(string.format("curl %d -o /tmp/gpmcover.png", gpm_now.cover_url)) if followtag then gpmdp_notification_preset.screen = focused() end - gpmdp.id = naughty.notify({ - preset = gpmdp_notification_preset, - icon = "/tmp/gpmcover.png", - replaces_id = gpmdp.id, - }).id + helpers.async(string.format("curl %d -o /tmp/gpmcover.png", gpm_now.cover_url), + function(f) + gpmdp.id = naughty.notify({ + preset = gpmdp_notification_preset, + icon = "/tmp/gpmcover.png", + replaces_id = gpmdp.id + }).id + end) end - elseif not gpm_now.running - then + elseif not gpm_now.running then helpers.set_map("gpmdp_current", nil) end end - helpers.newtimer("gpmdp", timeout, gpmdp.update) + gpmdp.timer = helpers.newtimer("gpmdp", timeout, gpmdp.update, true, true) - return setmetatable(gpmdp, { __index = gpmdp.widget }) + return gpmdp end return setmetatable(gpmdp, { __call = function(_, ...) return worker(...) end })