]> diplodocus.org Git - flac-archive/blobdiff - flac2mp3
Restore PART/VERSION and add filename tests.
[flac-archive] / flac2mp3
index c8e9d11313f2c40447be7697273d493154bde2e0..e3e386788702236d5ea93b31dae2e8ea44c46e30 100755 (executable)
--- a/flac2mp3
+++ b/flac2mp3
@@ -52,10 +52,11 @@ package epg::flac::archive::mp3;
 use v5.12;
 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
@@ -105,25 +106,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.$$');