43 lines
1.1 KiB
Markdown
43 lines
1.1 KiB
Markdown
|
+++
|
|||
|
title = "Rack und XMMS2"
|
|||
|
date = "2009-06-17T22:13:00+00:00"
|
|||
|
author = "Gibheer"
|
|||
|
draft = false
|
|||
|
+++
|
|||
|
|
|||
|
Ich hab heute mal ein kleines bischen mit Rack und Ruby rumgespielt und
|
|||
|
dabei ist ein kleines Script rausgekommen, mit dem es möglich ist, XMMS2
|
|||
|
per Weboberfläche zu steuern.
|
|||
|
|
|||
|
Es ist keineswegs komplett oder wirklich benutzbar, aber dafür hab ich
|
|||
|
das auch in irb zusammen geschrieben und war nach 2h fertig
|
|||
|
|
|||
|
<source:ruby>\
|
|||
|
require ‘rubygems’\
|
|||
|
require ‘rack’\
|
|||
|
require ‘xmmsclient’
|
|||
|
|
|||
|
\$xmms2 = Xmms::Client.new ‘rackclient’\
|
|||
|
\$xmms2.connect ‘path-to-ipc’
|
|||
|
|
|||
|
Rack::Handler::WEBrick.run lambda {|env|\
|
|||
|
body = “\<html\>”\
|
|||
|
if env[‘PATH\_INFO’] == ‘/next’\
|
|||
|
\$xmms2.playlist\_set\_next\_rel(1).wait.value\
|
|||
|
\$xmms2.playback\_tickle.wait\
|
|||
|
sleep 0.3\
|
|||
|
end\
|
|||
|
mediaentry = \$xmms2.medialib\_get\_info(\
|
|||
|
\$xmms2.playback\_current\_id.wait.value\
|
|||
|
).wait.value\
|
|||
|
body \<\< “\#{\
|
|||
|
mediaentry[:artist][:”plugin/vorbis“]\
|
|||
|
} - \#{\
|
|||
|
mediaentry[:title][:”plugin/vorbis“]\
|
|||
|
}”\
|
|||
|
body \<\< ‘<br><a href="/next">naechster</a>’\
|
|||
|
body \<\< ‘\</html\>’\
|
|||
|
[200, {’Content-Type’ =\> ‘text/html’}, body]\
|
|||
|
}, :Port =\> 8080\
|
|||
|
</source>
|