I found out about Grooveshark a few days ago, and was planning to write a CLI in Ruby before I found "remora". I have to say I've never seen such a great UI done in Ruby before!
I've forked the repo and committed a few changes. I've made it a little bit easier for new users to get it up and running, by using 'bundler' for gem management, and adding a simple dependency check (for bundler and mplayer). I also moved grooveshark specific libraries to a 'grooveshark' directory (personal preference, I guess).
I'm quite interested in doing a bit more work on this, so please do let me know if theres any more features you would like some help with! (ie. queue manipulation / searching & adding albums / etc)
I like how this is filed as an issue :P
I personally would use jeweler for the gem management, but since I never applied it to this (though I did apply jeweler to luck), I guess it really doesn't matter.
You can make a third gem out of the grooveshark lib to finish up the trio; backend gem, UI gem, and a gem that ties the two together. That's not really a problem right now, though.
One area where the UI is lacking is modifying the queue. I have played with drag&drop to rearrange but nothing serious. If you want you can add a remove button (I think there's a /rem command?) and other fun stuff.
Or just use it for a bit and add whatever fixes you personally think it could use :P
Haha yeah, I was going to send a github message, but opening an issue seemed like a better idea...
Ahh, you mean 'gem packaging', and yeah, jeweler is the best tool for that. When I say 'gem management with bundler', I'm talking about gem dependencies. If you install the bundler gem, you can just type 'bundle install', and all the required gems will be installed on the users machine. Gems are configured with a file called 'Gemfile', and in the actual application, all the gems can be loaded with:
Anyway, the idea of making a gem out of the backend is a great idea. Also, a feature to enable modifying the queue would be awesome. But yeah, I'll use it for a bit and see what else I can come up with.
I managed to have a complaint already against bundler. That didn't take long ;)
danopia@ubuntu:~/remora$ sudo gem1.9.1 install bundler
ERROR: Error installing bundler:
bundler requires RubyGems version >= 1.3.6
Sometimes I hate how rubygems refuses to update on ubuntu...
sudo gem update --system
sudo gem install rubygems-update
I think I got it working now. gem update --system is disabled on debian/ubuntu but it appears as though I can download the latest gem from rubygems.org and install it that way.
gem update --system
I have remora going and it works nicely \o/
The wider queue is nicer when running in a fullscreened terminal (which I normally use as well) but in a 25x80 terminal (or virtterm) it does seem like it's a little too wide. I wonder if that should be a config option or if it should use a percentage for the queue. Also if I take out the thread/mplayer panes then that will pretty much be a moot point because the search pane would be plenty big.
When you come up with something that you think remora could use, feel free to file a bug.
I added some usage info to the README if you are interested in reading it.
Also one last thing; I was considering adding a XML reader to Luck so UI info would be stored seperate from the code. Thoughts?
Cool! I'm glad its working. A percentage width for the queue pane sounds good to me, but I have never touched a UI like this in Ruby before, so I might leave that one to you.
The readme looks good, and a UI defined in XML sounds pretty good to me. I think its always good to keep UI design away from the code.
I think I will work on separating the grooveshark module into a separate gem, and add more features such as album searching / playlist support. I'm most interested in embedding it on a thin-client computer, and writing a LCD screen / web server interface for it. I've done similar projects with Last.fm, but Last.fm doesnt let you choose individual songs :P
I'm off to sleep now, will do a bit more when I have some free time
There actually is a MPD server in Remora. It runs automatically. I can control remora from my phone and laptop and cool stuff like that, so a web server interface shuold be easy. Plus it uses EventMachine so thin would probably be able to work off the same event loop.
I also am looking at placing Grooveshark support in XBMC, which I run on a couple boxes driving HDTVs and home stereo systems. Though that is Python-based and would require completely different coding styles D:
I'm danopia on freenode if you ever want to IRC.
Mobile app grooveshark