]> diplodocus.org Git - flac-archive/blobdiff - flac2mp3
rename to test more filenames
[flac-archive] / flac2mp3
index d82e61d3db6916dd944e294ca73e13cf8ecb09b2..fd0b1487d135034ad66da50b1aec22a381df9f36 100755 (executable)
--- a/flac2mp3
+++ b/flac2mp3
@@ -58,40 +58,23 @@ use FindBin;
 require "$FindBin::Bin/tags.pl";
 epg::flac::archive::tags->import(
     qw[
-        disc_tags
-        read_tags
+        track_tags
+        read_tags_metaflac
         mangle_for_file_name
         quote
         two_digits
     ]);
 
 sub flac2mp3 {
-    my $quoted_flac = quote(shift);
+    my $mp3 = shift;
+    my $flac = shift;
     my $tags = shift;
-    my ($artist, $album, $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 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.
     say(join(' ',
              'flac',
              '-cd',
-             $quoted_flac,
+             quote($flac),
              '|',
              'lame',
              '--id3v2-only',
@@ -99,51 +82,41 @@ sub flac2mp3 {
              '--pad-id3v2-size', 0,
              '--preset standard',
              '--ta',
-             quote($artist),
+             quote($tags->{artist}),
              '--tl',
-             quote($album),
+             quote($tags->{album}),
              '--tn',
-             quote($tracknumber),
+             quote($tags->{tracknumber}),
              '--tt',
-             quote($title),
+             quote($tags->{title}),
              '--ty',
-             quote($date),
+             quote($tags->{date}),
              '$pic_options',
              #(map { ('--tv', quote("TPE2=$_")) } @{$albumartist}),
-             (map { ('--tv', quote("TPOS=$_")) } @{$discnumber}),
+             (map { ('--tv', quote("TPOS=$_")) } @{$tags->{discnumber}}),
              '-',
-             quote(
-                 mangle_for_file_name(
-                     join(' ',
-                          $artist,
-                          $album,
-                          (map { two_digits($_) } @{$discnumber}),
-                          two_digits($tracknumber),
-                          $title,
-                     ))
-                 . '.mp3'
-             )
-        ));
-    say('unset pic_options');
-}
-
-sub read_tags_metaflac {
-    my $fn = shift;
-    open(my $fh, '-|', 'metaflac', '--no-utf8-convert', '--export-tags-to=-', $fn) || die("metalfac: $!");
-    my @result = read_tags($fh);
-    if (!close($fh)) {
-        if ($! == 0) {
-            die("metaflac exited $?")
-        }
-        die("close(metaflac): $!")
-    }
-    @result
+             quote($mp3),
+        ))
 }
 
 sub main {
-    for my $fn (@_) {
-        my ($tags) = read_tags_metaflac($fn);
-        flac2mp3($fn, $tags);
+    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,
+            );
+        say('unset pic_options');
     }
     say('rm -f flac2mp3.cover.$$');