Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MPD widget acting up. #9

Closed
Foxboron opened this issue Oct 31, 2013 · 14 comments
Closed

MPD widget acting up. #9

Foxboron opened this issue Oct 31, 2013 · 14 comments

Comments

@Foxboron
Copy link

After the recent update too MPD, the widget have started to act up. Displaying N/A and turning on and off. Sometimes displaying the correct information.

lcpz pushed a commit that referenced this issue Nov 1, 2013
@lcpz
Copy link
Owner

lcpz commented Nov 1, 2013

Working as usual here.

Maybe is just a Lua caching issue. I've committed a fix, so git update lain.

If it's still acting up, try adding

package.loaded.lain = nil

before

local lain = require("lain")

in your rc.lua.

Let me know.

@Foxboron
Copy link
Author

Foxboron commented Nov 1, 2013

Nope, still acting up. This also occurs even when mpd is paused btw.

@lcpz
Copy link
Owner

lcpz commented Nov 1, 2013

You should provide me more info on how you're using it, then.

Since I'm using it with my copland config, with no such issue.

@Foxboron
Copy link
Author

Foxboron commented Nov 1, 2013

Using the multicolor config. All vanilla. No edits too the code in the MPD widget, nor in lain.

lcpz pushed a commit that referenced this issue Nov 1, 2013
@lcpz
Copy link
Owner

lcpz commented Nov 1, 2013

I still got no problems, even with vanilla multicolor.

I don't know if this may help, but I committed a little change to the curl call within the worker function.

Otherwise, are you sure sure your MPD is properly set? Try out with my mpd configs. Of course, you have to modify the paths accordingly.

@blueluke
Copy link
Contributor

blueluke commented Nov 1, 2013

Getting the same issue - both with a default copland config and my own powerarrow variant.
From what I can tell, my .mpdconf seems to be fine (not that differnt from yours).

2nd fix had no effetc, either.

@lcpz
Copy link
Owner

lcpz commented Nov 1, 2013

I don't know what could cause this. 😢

I still think it may be a caching problem, I'll try something concrete later.

@blueluke
Copy link
Contributor

blueluke commented Nov 1, 2013

I might have a hint. I checked the output of your curl query with a simple bash loop:

i=0
for (( ; ; ))
    do
        echo $i >> test.txt
        echo -e "status\ncurrentsong\nclose" | curl --connect-timeout 1 -fsm 1 "telnet://127.0.0.1:6600" >> test.txt
        sleep 1
        echo -e "\n\n" >> test.txt
        i=$(($i+1))
done

And tested some usual mpd usage (pausing, track change, etc.) before canceling the loop.
New mpd version: http://pastebin.com/0T2NjSiZ
And with a downgraded mpd 0.17: http://pastebin.com/ZU41pSK8

There's one important difference: In the new mpd version, "currentsong" is not showing in each query.
That might be the reason why the mpd widget can't fetch the current song properly.

lcpz pushed a commit that referenced this issue Nov 1, 2013
@lcpz
Copy link
Owner

lcpz commented Nov 1, 2013

You are right. I found out this is affecting a lot of MPD-based programs too, like Sonata.

For the moment, I committed a semi-fix: it should remove the "acting up" behaviour.

About currentsong issue, which will cause the widget not to update or act weirdly most of the times, I'm asking the MPD community.

I'll work on a solution as soon as they answer me properly.

@Foxboron
Copy link
Author

Foxboron commented Nov 1, 2013

Awesome! 👍

@blueluke
Copy link
Contributor

blueluke commented Nov 1, 2013

Thanks for your efforts so far. 👍

Another thing I noticed: There also seems to be a problem with the state value grabbed from status as pausing/unpausing doesn't update correctly, too.

Even if currentsong returns nothing, shouldn't it still be able to fetch the correct state?

@lcpz
Copy link
Owner

lcpz commented Nov 1, 2013

I submitted a bug report here. Add your feedback so they can notice it better.

@blueluke
Copy link
Contributor

blueluke commented Nov 2, 2013

I managed to find a (somewhat ugly) workaround.
Instead of doing one big echo "\nstatus\ncurrentsong\nclose", do seperateechocommands with a shortsleepin between.
Like this:
(echo -e "status";sleep 0.2;echo -e "currentsong";sleep 0.2;echo -e "close") | curl --connect-timeout 1 -fsm 1 "telnet://127.0.0.1:6600"

This seems to do the trick.
As I don't know how to implement this correctly with lua (My attempts at io.popen failed horribly...), I created a seperate bash-script which is called from within the mpd.lua:
Bash script: http://pastebin.com/di4vf90T
Changes to mpd.lua: http://pastebin.com/dz2EuK2N

Note that this ignores the password parts (I don't use any with my mpd) but I guess it can be added as another echo in the bash script.

lcpz pushed a commit that referenced this issue Nov 2, 2013
@lcpz
Copy link
Owner

lcpz commented Nov 2, 2013

Good idea, I implemented it in 3a0aba5. Cheers, blueluke. 🍻

I'll be back on this if MPD people update me, but for now I consider the issue closed.

@lcpz lcpz closed this as completed Nov 2, 2013
lcpz pushed a commit that referenced this issue Jan 21, 2014
lcpz pushed a commit that referenced this issue Aug 5, 2015
lcpz pushed a commit that referenced this issue Aug 5, 2015
lcpz pushed a commit that referenced this issue Aug 5, 2015
lcpz pushed a commit that referenced this issue Aug 5, 2015
lcpz pushed a commit that referenced this issue Aug 5, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants