初めて比較的ちゃんをRuby書いたけど、とりあえずうごくくらいにはなりました。
なんで作ったかというと、先日の Windows のデスクトップ機 OS 再インストール時にレート付きのプレイリストのデータを消してしまったので、またやり直すのめんどいなーと思ってやりました。あとデスクトップ機と Ubuntu サーバ機両方に mp3 突っ込んであるのでプレイリストの同期とか面倒くさかったので。
それで今朝思いついて久しぶりに Python で書いていたのですが、何回やっても BeautifulSoup が Last.fm のページのパースに失敗するので、勉強も兼ねて Ruby で書いてみました。それで Ubuntu サーバで動かなかったりとかを直したり gem が重いのを待ってたりしてたら一日が終わりました。
対象は、Last.fm を使っていてちょくちょく love のボタン押す人で、同じ曲のライブラリで(ファイルの path は違ってもいけるはず) mt-daapd サーバを立てていて Ruby とか rubygems とか nokogiri とか sqlite3-ruby とかが使える人です。
使い方は、最初の user とか apikey (すぐ取れるので取得してください) とか プレイリストの path とか DB ファイルの path を環境に合うように書き換えて(パーミッションも変える必要あるかも)、上のスクリプトを last.rb として保存したとすると
# ruby last.rb all
ってすると loved tracks 全部がプレイリストになるはずなので、そのあとは crontab に
0 */3 * * * ruby /home/oquno/scripts/last.rb new > /dev/null 2&>1
とか書いとくと3時間おきとかに更新されるんじゃないかと思います。