Permalink
Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
130 lines (109 sloc) 4.1 KB
#=================================================================================
#
# rhythmbox.pl
# script that allows you to control rhythmbox from irssi
#
#=================================================================================
# INITIAL SECTION
#=================================================================================
use Irssi;
use Irssi::Irc;
use strict;
use vars qw($VERSION %IRSSI);
$VERSION = "1.30";
%IRSSI = (
authors => 'Fogel',
contact => 'fogel@fogel.netmark.pl',
name => 'rhythmbox',
description => 'Rhythmbox now playing script',
license => 'BSD',
url => "www.fogel.com.pl",
);
#=================================================================================
# NOW PLAYING SECTION
#=================================================================================
sub now_playing {
my ($data, $server, $witem) = @_;
my $title = `rhythmbox-client --print-playing-format %tt`;
my $artist = `rhythmbox-client --print-playing-format %ta`;
my $number = `rhythmbox-client --print-playing-format %tn`;
my $duration = `rhythmbox-client --print-playing-format %td`;
my $elapsed = `rhythmbox-client --print-playing-format %te`;
my $album_title = `rhythmbox-client --print-playing-format %at`;
my $album_artist = `rhythmbox-client --print-playing-format %aa`;
my $album_year = `rhythmbox-client --print-playing-format %ay`;
my $album_genre = `rhythmbox-client --print-playing-format %ag`;
my $disc_number = `rhythmbox-client --print-playing-format %an`;
if ($number =~ m/^\d*$/i) {
my $output = "np: $artist - $title ($elapsed / $duration)"; # here set desired format of output
if ($witem && ($witem->{type} eq "CHANNEL" || $witem->{type} eq "QUERY")) {
$witem->command("me $output")
} else {
Irssi::print("This is not a channel/query window");
}
} else {
Irssi::print("rhythmbox is not playing anything at the moment.");
}
}
#=================================================================================
# RHYTHMBOX CONTROL SECTION
#=================================================================================
sub pause {
system("rhythmbox-client --pause");
}
sub play {
system("rhythmbox-client --play");
}
sub next {
system("rhythmbox-client --next");
}
sub previous {
system("rhythmbox-client --previous");
}
sub volume_up {
system("rhythmbox-client --volume-up");
}
sub volume_down {
system("rhythmbox-client --volume-down");
}
sub volume {
my $vol = `rhythmbox-client --print-volume`;
Irssi::print("rhythmbox volume: $vol");
}
sub mute {
system("rhythmbox-client --mute");
}
sub unmute {
system("rhythmbox-client --unmute");
}
#=================================================================================
# HELP DISPLAY SECTION SECTION
#=================================================================================
sub help {
Irssi::print("rhythmbox.pl - rhythmbox control script for irssi");
Irssi::print("Copyright Michal \"Fogel\" Fogelman");
Irssi::print("List of commands:");
Irssi::print("/np - now playing - show others what are you listening to");
Irssi::print("/pause, /play");
Irssi::print("/prev, /next - previous/next track");
Irssi::print("/vup, /vdown - volume up/down");
Irssi::print("/volume - displays current volume level");
Irssi::print("/mute, /unmute");
}
#=================================================================================
# COMMAND BINDINGS
#=================================================================================
Irssi::command_bind('np', 'now_playing');
Irssi::command_bind('pause', 'pause');
Irssi::command_bind('play', 'play');
Irssi::command_bind('next', 'next');
Irssi::command_bind('prev', 'previous');
Irssi::command_bind('vup', 'volume_up');
Irssi::command_bind('vdown', 'volume_down');
Irssi::command_bind('vol', 'volume');
Irssi::command_bind('mute', 'mute');
Irssi::command_bind('unmute', 'unmute');
Irssi::command_bind('rhythmbox_help', 'help');
#=================================================================================
# END OF FILE
#=================================================================================