#!/usr/local/bin/perl -w # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # This script requires the Xmms::Remote module, use the following commands to install # Xmms::Remote perl -MCPAN -e shell # once you have done that do install Xmms::Remote # commands: /mp3 - display the currently playing track # /mp3auto - display the currently playing track and each subsequent track # /mp3auto - toggle auto display on/off # /mp3skip - skip forward to next track # /mp3pause - pause/unpause track # for comments, suggestions, improvements etc contact me # on irc.chatnet.org (nick gordy) # Thanks for your interest. use Xmms::Remote (); IRC::register ("XMMS-thing", "0.1", "", ""); IRC::print ("XMMS-thing loaded"); IRC::add_command_handler("mp3", "mp3_bullshit"); IRC::add_command_handler("mp3auto", "auto"); IRC::add_command_handler("mp3skip", "skip"); IRC::add_command_handler("mp3pause", "pause"); $remote = Xmms::Remote->new; sub mp3_bullshit { if ($remote->is_playing) { $title = $remote->get_playlist_title; $time = $remote->get_playlist_timestr."s"; $time =~ s/:/m/; @info = $remote->get_info; $kbs = $info[0]/1000; #utf8::decode($title); #utf8::decode($time); #utf8::decode($kbs); #utf8::decode($info); #chomp($title); IRC::command("/me is playing \cC09 $title $time \cC14 $kbs kbit \cC09 $info[1] Hz"); #IRC::command("/say NP: \cC09 $title $time $kps \cC14 kbit/s \cC09 $info[1] \cC14 Hz"); } return 1; } sub mp3_auto_bullshit { if ($auto eq "on") { if ($title ne $remote->get_playlist_title) { mp3_bullshit(); } IRC::add_timeout_handler(5000, mp3_auto_bullshit); return 1; } } sub skip { $remote->playlist_next; return 1; } sub pause { $remote->pause; return 1; } sub auto { unless ($auto) { $auto = "on"; } else { $auto = ""; } mp3_auto_bullshit(); return 1; }