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>
|