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

Add Spotify block #20

Open
wants to merge 5 commits into
base: develop
Choose a base branch
from
Open

Add Spotify block #20

wants to merge 5 commits into from

Conversation

mattmahn
Copy link

This PR will add support for using Spotify as a music player. It works exactly the same as the Rythmbox block.

Since I am not currently using i3/lemonbar, I have not been able to test how well it actually integrates with those. However, I have tested all the other D-Bus and Spotify functionality. The only thing that I think could be a problem is the button controls; those dbus-send commands print to stdout, so I'm not sure if that will break lemonbar or i3. When I removed the --print-reply option, then Spotify would not do what it was supposed to do (i.e. play/pause, etc). I assume that if printing to stdout is a problem, &>/dev/null could simply be tacked onto the end of the command.

Tested with:

  • Spotify v1.0.25.127 from the AUR
  • D-Bus daemon v1.10.8
  • Arch Linux (Antergos)

P.S. I added vendor/bundle to the .gitignore, so people can keep their development and system gem environments separated.

@mattmahn
Copy link
Author

It appears that the Travis build is failing because it cannot connect to the Docker container's D-Bus. This is a known issue: moby/moby#7459, systemd/systemd#589.

To get around this, we could use an environment variable to detect whether or not it is being tested in a Docker container, then simply not execute that code that deals with the D-Bus (its only in Barr::Blocks::Spotify#initialize).

Thoughts?

@OkayDave
Copy link
Owner

Thanks for this @mattmahn. this looks great.

For the test, I'd prefer the DBus connection to be mocked/stubbed rather than it have different behaviours for different environments. It'll keep the tests fast and consistent this way.

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

Successfully merging this pull request may close these issues.

None yet

2 participants