From a4e5b806f176c8599c6423ebc2ceb3e6c1aa2be4 Mon Sep 17 00:00:00 2001 From: luke bonham Date: Sat, 2 Nov 2013 21:05:25 +0100 Subject: [PATCH 1/1] issue #9 fix --- scripts/mpdcover | 4 ++-- widgets/mpd.lua | 38 +++++++++++++++++++++++++------------- 2 files changed, 27 insertions(+), 15 deletions(-) diff --git a/scripts/mpdcover b/scripts/mpdcover index 20525fd..f6cf0d6 100755 --- a/scripts/mpdcover +++ b/scripts/mpdcover @@ -1,4 +1,4 @@ -!/bin/bash +#!/bin/bash # # A simple cover fetcher script for current playing song on mpd. # @@ -58,7 +58,7 @@ cover="${cover:=$DEFAULT_ART}" # check if art is available if [[ -n $cover ]]; then if [[ -n $COVER_RESIZE ]]; then - convert "$cover" -thumbnail $COVER_RESIZE -gravity center -background "$COVER_BACKGROUND" -extent $COVER_RESIZE "$TEMP_PATH" + convert "$cover" -thumbnail $COVER_RESIZE -gravity "center" -background "$COVER_BACKGROUND" -extent $COVER_RESIZE "$TEMP_PATH" cover="$TEMP_PATH" fi else diff --git a/widgets/mpd.lua b/widgets/mpd.lua index 4ee922f..36c3ed7 100644 --- a/widgets/mpd.lua +++ b/widgets/mpd.lua @@ -16,7 +16,7 @@ local wibox = require("wibox") local io = { popen = io.popen } local os = { execute = os.execute, getenv = os.getenv } -local string = { format = string.format, +local string = { format = string.format, gmatch = string.gmatch } local setmetatable = setmetatable @@ -28,7 +28,7 @@ local mpd = {} local function worker(args) local args = args or {} local timeout = args.timeout or 2 - local password = args.password or "\"\"" + local password = args.password or "" local host = args.host or "127.0.0.1" local port = args.port or "6600" local music_dir = args.music_dir or os.getenv("HOME") .. "/Music" @@ -38,18 +38,21 @@ local function worker(args) local mpdcover = helpers.scripts_dir .. "mpdcover" local mpdh = "telnet://" .. host .. ":" .. port - local echo = "echo 'password " .. password .. "\nstatus\ncurrentsong\nclose'" - mpd.widget = wibox.widget.textbox('') + local echo = nil + + if password == "" then + echo = "(echo -e 'status'; sleep 0.1;" .. + "echo -e 'currentsong'; sleep 0.1;" .. + "echo -e 'close')" + else + echo = "(echo -e 'password " .. password .. "'" .. + "echo -e 'status'; sleep 0.1;" .. + "echo -e 'currentsong'; sleep 0.1;" .. + "echo -e 'close')" + end - mpd_now = { - state = "N/A", - file = "N/A", - artist = "N/A", - title = "N/A", - album = "N/A", - date = "N/A" - } + mpd.widget = wibox.widget.textbox('') mpd_notification_preset = { title = "Now playing", @@ -59,7 +62,16 @@ local function worker(args) helpers.set_map("current mpd track", nil) function mpd.update() - local f = io.popen(echo .. " | curl --connect-timeout 1 -fsm 3 " .. mpdh) + mpd_now = { + state = "N/A", + file = "N/A", + artist = "N/A", + title = "N/A", + album = "N/A", + date = "N/A" + } + + local f = io.popen(echo .. " | curl --connect-timeout 1 -fsm 1 " .. mpdh) for line in f:lines() do for k, v in string.gmatch(line, "([%w]+):[%s](.*)$") do -- 2.39.5