X-Git-Url: https://git.madduck.net/etc/awesome.git/blobdiff_plain/b9f31a6c6237f326405d6530b34416f94250c475..ef6383061bbfefd09bbb28b8ce6e61e7074cce62:/widgets/contrib/gpmdp.lua diff --git a/widgets/contrib/gpmdp.lua b/widgets/contrib/gpmdp.lua index fa51440..de82b1e 100644 --- a/widgets/contrib/gpmdp.lua +++ b/widgets/contrib/gpmdp.lua @@ -6,15 +6,18 @@ --]] -local helpers = require("lain.helpers") -local json = require("lain.util.dkjson") -local pread = require("awful.util").pread -local naughty = require("naughty") -local wibox = require("wibox") -local mouse = mouse -local os = { getenv = os.getenv } +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 -- Google Play Music Desktop infos -- lain.widget.contrib.gpmdp @@ -24,7 +27,7 @@ local function worker(args) local args = args or {} local timeout = args.timeout or 2 local notify = args.notify or "off" - local followmouse = args.followmouse or false + local followtag = args.followtag or false local file_location = args.file_location or os.getenv("HOME") .. "/.config/Google Play Music Desktop Player/json_store/playback.json" local settings = args.settings or function() end @@ -39,14 +42,13 @@ local function worker(args) helpers.set_map("gpmdp_current", nil) function gpmdp.update() - file, err = io.open(file_location, "r") - if not file - then - gpm_now = { running = false, playing = false } + local filelines = helpers.lines_from(file_location) + + if not next(filelines) then + local gpm_now = { running = false, playing = false } else - dict, pos, err = json.decode(file:read "*a", 1, nil) - file:close() - gpm_now = {} + dict, pos, err = json.decode(table.concat(filelines), 1, nil) + local gpm_now = {} gpm_now.artist = dict.song.artist gpm_now.album = dict.song.album gpm_now.title = dict.song.title @@ -54,7 +56,7 @@ local function worker(args) gpm_now.playing = dict.playing end - if (pread("pidof 'Google Play Music Desktop Player'") ~= '') then + if pread("pidof 'Google Play Music Desktop Player'") ~= '' then gpm_now.running = true else gpm_now.running = false @@ -64,16 +66,12 @@ local function worker(args) widget = gpmdp.widget settings() - if gpm_now.playing - then - if notify == "on" and gpm_now.title ~= helpers.get_map("gpmdp_current") - then + 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("curl " .. gpm_now.cover_url .. " -o /tmp/gpmcover.png") + os.execute(string.format("curl %d -o /tmp/gpmcover.png", gpm_now.cover_url)) - if followmouse then - gpmdp_notification_preset.screen = mouse.screen - end + if followtag then gpmdp_notification_preset.screen = focused() end gpmdp.id = naughty.notify({ preset = gpmdp_notification_preset,