Changeset 10 in flacrip for trunk/flactrack


Ignore:
Timestamp:
02/26/14 14:37:32 (10 years ago)
Author:
peter
Message:
  • if flactrack has the album metadata, generate a directory name using the album's original release date, to make the album directories sort chronologically within artists
  • convert "&" to " and " in name and title strings
  • MusicBrainz retrieves the disc number and total number of discs for multidisc releases
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/flactrack

    r5 r10  
    88 
    99use Getopt::Long qw{:config no_ignore_case}; 
    10 use File::Spec::Functions qw{catfile}; 
     10use File::Spec::Functions qw{catfile splitpath}; 
    1111use File::Path; 
    1212use Audio::FLAC::Header; 
     
    3939    #TODO: calculate TOC and DISCID from cuesheet if there is no MBZ_DISCID tag present 
    4040 
    41     #TODO: also get the year from MBZ 
    4241    $info = get_musicbrainz_info($discid); 
     42 
     43    # if we have metadata, change the directory name to ARTIST.DATE.ALBUM, so it will sort nicely 
     44    my $base_dir = (splitpath($DIRECTORY))[1]; 
     45    my $album_dir = join('.', map { to_filename($_) } @{$info}{qw{ALBUMARTISTSORT ORIGINALDATE ALBUM}}); 
     46    # need to append "disc#" if this is a multidisc album 
     47    if ($info->{DISCTOTAL} > 1) { 
     48        $album_dir .= '.disc_' . $info->{DISCNUMBER}; 
     49    } 
     50    $DIRECTORY = catfile($base_dir, $album_dir); 
     51    #die $DIRECTORY; 
    4352} 
    4453 
     
    112121    #TODO: deal with non-ascii characters (unidecode) e.g. ü --> ue 
    113122    return map { 
     123        s/&/ and /g; 
    114124        s/[^a-z0-9-_ ]+//gi; 
    115125        s/ +/_/g; 
Note: See TracChangeset for help on using the changeset viewer.