Hoi,
#!/usr/bin/perl -w
use strict;
use vars qw($base $search);
use MP3::Info;
use POSIX qw(locale_h);
use locale;
setlocale(LANG,'german');
##########################################
wohin sollen die Daten ?
$base = '/home2/mp3'; #
##########################################
ab wo soll gesucht werden ?
$search = '/'; #
##########################################
################
#################################################################
################
my $a = 1;
opendir SRCH,$search or die $!;
opendir BASE,$base or die $!;
my @mp3s = grep /.mp3$/,readdir SRCH,readdir BASE;
closedir SRCH;
closedir BASE;
foreach my $mp3 (@mp3s) {
my $mp3_info = get_mp3tag ($mp3,1,1);
my $artist = $mp3_info->{ARTIST} or "unknown";
my $album = $mp3_info->{ALBUM} or "unknown";
my $title = $mp3_info->{TITLE} or "unknown";
my $track = $mp3_info->{TRACKNUM} or "unknown";
foreach($artist,$album,$title) {
y!_/! -!;
s/([0-9])/|$1|/g;
s/-/|-|/g;
$_ = lc $_;
s/\b([a-zA-ZäöüÄÖÜß])/\u$1/g;
s/ /_/g;
y!|!!d;
tr/-,.öäüßÖÄÜ&()A-Za-z_0-9/_/c;
s/__/_/g;
}
$track = sprintf('%02d',$track);
if (length($track) != 2 or $track eq '00') {
$track = '';
}
$mp3_qual = get_mp3info($mp3);
$vbr = $mp3_qual->{VBR};
$bitrate = int($mp3_qual->{BITRATE});
$minutes = $mp3_qual->{MM};
$seconds = $mp3_qual->{SS};
if(($minutes * 100 + $seconds) == 0) {
$track = '';
}
$seconds = sprintf('%02d',$seconds);
if ($vbr) {
$vbr = 'VBR';
$qual_fak = 2;
}
else {
$vbr = 'CBR';
$qual_fak = 1;
}
# den letzten Teil habe ich nicht verstanden.
}
Ich habe die Transformationen zwar nicht verstanden, aber ich habe
das ganze mal etwas 'perliger' gemacht und kuerzer gemacht.
Gruesse aus dem ausnahmsweise sonnigen MS,
c.j.k