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