diff options
Diffstat (limited to 'scripts/rhythmbox.pl')
| -rw-r--r-- | scripts/rhythmbox.pl | 129 | 
1 files changed, 129 insertions, 0 deletions
| diff --git a/scripts/rhythmbox.pl b/scripts/rhythmbox.pl new file mode 100644 index 0000000..ec31cc7 --- /dev/null +++ b/scripts/rhythmbox.pl @@ -0,0 +1,129 @@ +#================================================================================= +# +# 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 +#================================================================================= | 
