From 26b0395ba988948a7cc8b79d08faf6a57058886a Mon Sep 17 00:00:00 2001 From: "Adrian C. (anrxc)" Date: Sun, 29 Aug 2010 00:49:57 +0200 Subject: contrib: imported contrib widgets --- contrib/mpc.lua | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 contrib/mpc.lua (limited to 'contrib/mpc.lua') diff --git a/contrib/mpc.lua b/contrib/mpc.lua new file mode 100644 index 0000000..8f1f0a9 --- /dev/null +++ b/contrib/mpc.lua @@ -0,0 +1,47 @@ +--------------------------------------------------- +-- Licensed under the GNU General Public License v2 +-- * (c) 2010, Adrian C. +-- * (c) 2009, Lucas de Vries +--------------------------------------------------- + +-- {{{ Grab environment +local type = type +local io = { popen = io.popen } +local setmetatable = setmetatable +local string = { find = string.find } +local helpers = require("vicious.helpers") +-- }}} + + +-- Mpc: provides the currently playing song in MPD +module("vicious.contrib.mpc") + + +-- {{{ MPC widget type +local function worker(format, warg) + -- Get data from mpd + local f = io.popen("mpc") + local np = f:read("*line") + f:close() + + -- Not installed, + if np == nil or -- off or stoppped. + (string.find(np, "MPD_HOST") or string.find(np, "volume:")) + then + return {"Stopped"} + end + + -- Check if we should scroll, or maybe truncate + if warg then + if type(warg) == "table" then + np = helpers.scroll(np, warg[1], warg[2]) + else + np = helpers.truncate(np, warg) + end + end + + return {helpers.escape(np)} +end +-- }}} + +setmetatable(_M, { __call = function(_, ...) return worker(...) end }) -- cgit v1.2.3