X-Git-Url: https://diplodocus.org/git/flac-archive/blobdiff_plain/e53e2434445e78d18c0bdf3596b1444ddb399bde..fee6350f22d80d9f54f9ad4dccbfa7696e3e861a:/flac2mp3 diff --git a/flac2mp3 b/flac2mp3 index c1e0944..d82e61d 100755 --- a/flac2mp3 +++ b/flac2mp3 @@ -62,15 +62,29 @@ epg::flac::archive::tags->import( read_tags mangle_for_file_name quote + two_digits ]); sub flac2mp3 { - my %a = @_; - my $quoted_flac = quote($a{flac}); + my $quoted_flac = quote(shift); + my $tags = shift; + my ($artist, $album, $date, $discnumber) = disc_tags(%$tags); - say('if metaflac --export-picture-to=flac2mp3.cover.$$ ', $quoted_flac, '; then'); - say(' pic_options="--ti flac2mp3.cover.$$"'); - say('fi'); + # TODO resurrect whole-disc FLAC? + # Stupid hack: only a single-track file should have the + # TRACKNUMBER tag, so use it if set for the first pass through + # the loop. At the end of the loop, we'll set $track for the + # next run, so this continues to work for multi-track files. + # if track == None: + # track = 1 + # else: + # track = int(track) + + my $tracknumber = epg::flac::archive::tags::one(TRACKNUMBER => $tags); + my $title = epg::flac::archive::tags::one(TITLE => $tags); + # TODO restore PARTNUMBER and VERSION next time i need them + + say('metaflac --export-picture-to=flac2mp3.cover.$$', " $quoted_flac && pic_options=", '"--ti flac2mp3.cover.$$"'); # This is an old TODO; what's wrong with --ty ? # TODO: Look at TDOR, TDRL, TDRC for date. @@ -85,33 +99,32 @@ sub flac2mp3 { '--pad-id3v2-size', 0, '--preset standard', '--ta', - quote($a{artist}), + quote($artist), '--tl', - quote($a{album}), + quote($album), '--tn', - quote($a{track}), + quote($tracknumber), '--tt', - quote($a{title}), + quote($title), '--ty', - quote($a{date}), + quote($date), '$pic_options', - (map { ('--tv', quote("TPE2=$_")) } @{$a{albumartist}}), - (map { ('--tv', quote("TPOS=$_")) } @{$a{discnumber}}), + #(map { ('--tv', quote("TPE2=$_")) } @{$albumartist}), + (map { ('--tv', quote("TPOS=$_")) } @{$discnumber}), '-', quote( mangle_for_file_name( join(' ', - $a{artist}, - $a{album}, - (map { sprintf('%02d', $_) } @{$a{discnumber}}), - $a{track}, - $a{title}, + $artist, + $album, + (map { two_digits($_) } @{$discnumber}), + two_digits($tracknumber), + $title, )) . '.mp3' ) )); say('unset pic_options'); - say('rm -f flac2mp3.cover.$$'); } sub read_tags_metaflac { @@ -130,32 +143,9 @@ sub read_tags_metaflac { sub main { for my $fn (@_) { my ($tags) = read_tags_metaflac($fn); - my ($album, $artist, $date, $discnumber) = disc_tags($tags); - - # TODO resurrect whole-disc FLAC? - # Stupid hack: only a single-track file should have the - # TRACKNUMBER tag, so use it if set for the first pass through - # the loop. At the end of the loop, we'll set $track for the - # next run, so this continues to work for multi-track files. - # if track == None: - # track = 1 - # else: - # track = int(track) - { - my $tracknumber = epg::flac::archive::tags::one(TRACKNUMBER => $tags); - my $title = epg::flac::archive::tags::one(TITLE => $tags); - # TODO restore PARTNUMBER and VERSION net time i need them - flac2mp3( - artist => $artist, - album => $album, - date => $date, - discnumber => $discnumber, - track => $tracknumber, - title => $title, - flac => $fn, - ) - } + flac2mp3($fn, $tags); } + say('rm -f flac2mp3.cover.$$'); return 0; }