]> diplodocus.org Git - flac-archive/blobdiff - flac2mp3
add todos and fix undefined release status
[flac-archive] / flac2mp3
index c8e9d11313f2c40447be7697273d493154bde2e0..4dbb9278e99abe4704c4b4bf72f5b53c6fae0df3 100755 (executable)
--- a/flac2mp3
+++ b/flac2mp3
@@ -55,7 +55,9 @@ use warnings;
 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
@@ -71,6 +73,11 @@ sub flac2mp3 {
     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(
@@ -92,7 +99,7 @@ sub flac2mp3 {
             '--tn',
             quote($tags->{tracknumber}),
             '--tt',
-            quote($tags->{title}),
+            quote(join(' ', $tags->{title}, @version)),
             '--ty',
             quote($tags->{date}),
             '$pic_options',
@@ -105,25 +112,29 @@ sub flac2mp3 {
     );
 }
 
+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.$$');