rendered paste bodyXchat::hook_command("np", "now_playing");
my $col_1 = chr(3)."08";
my $col_2 = chr(3)."09";
sub amarok { chomp(my $dcop = `dcop amarok player @_`); return $dcop; }
sub now_playing {
if (amarok("isPlaying") eq "true") {
my ($i, @echo);
for ($i = 1; $i <= 4; $i++) {
push @echo, echo_part($i);
}
Xchat::command("say ".join($col_1." - ".chr(3), @echo));
}
else {
Xchat::print("amaroK doesn't seem to be playing.\n");
}
}
sub echo_part {
my $str;
if ($_[0] == 1) {
$str = "Now Playing: ".amarok("artist");
}
elsif ($_[0] == 2) {
$str = amarok("album");
}
elsif ($_[0] == 3) {
$str = amarok("title");
}
else {
my $i = amarok("trackTotalTime");
my ($m, $s) = (
zero(($i / 60)%60), zero($i%60)
);
return pbar().$col_1." - [".$col_2.$m.$col_1.":"
.$col_2.$s.$col_1."-".$col_2
.amarok("bitrate")." kbps".$col_1."]"; }
return str_col($str);
}
sub str_col {
my @str = split(/ /, "@_");
my $i = 0;
foreach $a (@str) {
$str[$i] = $col_1.substr($a, 0, 1)
.$col_2.substr($a, 1, (length($a) - 1));
$i++;
}
return join(" ", @str);
}
sub zero {
my $i = $_[0];
if ($i < 10) {
$i = "0".$i;
}
return $i;
}
sub pbar {
my $i = int((amarok("trackCurrentTime") / amarok("trackTotalTime")) * 15);
return chr(3)."08,08"."|" x $i.chr(3)."09,09"."|" x (15 - $i).chr(3);
}