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.
'--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 {
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;
}