use File::Temp;
use FindBin;
-require "$FindBin::Bin/tags.pl";
+use lib $FindBin::Bin;
+
+require 'tags.pl';
epg::flac::archive::tags->import(
qw[
track_tags
my $flac = shift;
my $tags = shift;
+ my @version;
+ if (defined($tags->{version})) {
+ @version = ('(' . $tags->{version} . ')');
+ }
+
# This is an old TODO; what's wrong with --ty ?
# TODO: Look at TDOR, TDRL, TDRC for date.
say(
'--tn',
quote($tags->{tracknumber}),
'--tt',
- quote($tags->{title}),
+ quote(join(' ', $tags->{title}, @version)),
'--ty',
quote($tags->{date}),
'$pic_options',
);
}
+sub filename {
+ my $tags = shift;
+ mangle_for_file_name(
+ join(' ',
+ @{$tags->{ARTIST}},
+ @{$tags->{ALBUM}},
+ (map { two_digits($_) } @{$tags->{DISCNUMBER} // []}),
+ (map { two_digits($_) } @{$tags->{TRACKNUMBER} // []}),
+ @{$tags->{TITLE}},
+ @{$tags->{VERSION} // []},
+ @{$tags->{PARTNUMBER} // []},
+ )
+ ) . '.mp3';
+}
+
sub main {
for my $flac (@_) {
say('metaflac --export-picture-to=flac2mp3.cover.$$ ',
quote($flac), ' && pic_options="--ti flac2mp3.cover.$$"');
- my %tags = track_tags(read_tags_metaflac($flac));
- flac2mp3(
- mangle_for_file_name(
- join(' ',
- $tags{artist},
- $tags{album},
- (map { two_digits($_) } @{$tags{discnumber}}),
- two_digits($tags{tracknumber}),
- $tags{title},
- )
- )
- . '.mp3',
- $flac,
- \%tags,
- );
+
+ # TODO multi-track
+ my ($tags) = read_tags_metaflac($flac);
+ flac2mp3(filename($tags), $flac, {track_tags($tags)});
say('unset pic_options');
}
say('rm -f flac2mp3.cover.$$');