Christian Kruse: vielleicht interessier es ja? :-)

Beitrag lesen

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