Un inutile progetto software
Joe Oblivian
lavagetto@gmail.com
Mer 11 Ott 2006 12:44:28 CEST
Il giorno lun, 02/10/2006 alle 13.28 +0200, Joe Oblivian ha scritto:
> Ad esempio andrebbe esteso ai file non .mp3,
Ho inserito una routine che legge pure i cd. Il codice e' grezzo e si
puo' migliorare (specie le regexp). Fatevi sotto con le patch e/o con le
richieste di commento!
use CDDB_get qw( get_cddb );
my $filename;
my $iswhat="mp3";
@players=qw/xmms rhythmbox/;
foreach(@players) {&$_ if ( `lsof /usr/bin/$_` )} ;
#print "$iswhat, $filename\n";
&$iswhat($filename);
sub xmms()
{
open XMMSINFO, "< /tmp/xmms-info";
while(<XMMSINFO>)
{
/^(File\:\ )(.*)$/ and $filename=$2 and last;
};
close XMMSINFO;
$filename=$1 and $iswhat="cd" if($filename=~/^\/dev\/cdrom\/(..)/)
}
sub rhythmbox()
{
my $bus = Net::DBus->session;
my $rhythmbox = $bus->get_service("org.gnome.Rhythmbox");
my $player = $rhythmbox->
get_object("/org/gnome/Rhythmbox/Player","org.gnome.Rhythmbox.Player");
my $play = $player->getPlayingUri;
if($play=~/^cdda\:.*\:(.*)$/)
{$iswhat="cd"; $filename=$1;}
else
{$filename=URI->new($play)->file("unix");}
}
sub cd($filename)
{
my %config;
$config{CDDB_HOST}="freedb.freedb.org";
$config{CDDB_PORT}=8880;
$config{CDDB_MODE}="cddb";
$config{CD_DEVICE}="/dev/cdrom";
$config{input}=0;
my %cd=get_cddb(\%config);
unless(defined $cd{title}) {
die "no cddb entry found";
}
print "$cd{artist} - @{$cd{track}}[$filename-1]";
}
sub mp3($filename)
{
my $mp3=MP3::Tag->new($filename) or die "Non stai acoltando nulla!\n";
($title, $track, $artist, $album, $comment, $year, $genre) =
$mp3->autoinfo();
print "$artist - $title";
}
Maggiori informazioni sulla lista
palermo