]> diplodocus.org Git - flac-archive/blobdiff - fa-encode
fix some failing tests
[flac-archive] / fa-encode
index 5f98151b5b17b21f581aea90bdcd0b442048520f..9388f07e2f91c4a3ed68835a2fe1cb22953e7dc5 100755 (executable)
--- a/fa-encode
+++ b/fa-encode
@@ -23,15 +23,35 @@ use warnings;
 use FindBin;
 use Pod::Usage;
 
 use FindBin;
 use Pod::Usage;
 
-require "$FindBin::Bin/tags.pl";
+use lib $FindBin::Bin;
+
+require 'tags.pl';
 epg::flac::archive::tags->import(
     qw[
         read_tags
         mangle_for_file_name
         quote
 epg::flac::archive::tags->import(
     qw[
         read_tags
         mangle_for_file_name
         quote
+        track_tags_from_disc
         two_digits
     ]);
 
         two_digits
     ]);
 
+sub filename {
+    my ($tracknumber, $tags) = @_;
+    my $title = $tags->{TITLE} // die('title required');
+    my @discnumber = @{$tags->{DISCNUMBER} // []};
+    my @partnumber = @{$tags->{PARTNUMBER} // []};
+    my @version = @{$tags->{VERSION} // []};
+    join('-',
+         (map { two_digits($_) } @discnumber),
+         two_digits($tracknumber),
+         mangle_for_file_name(join('TODO multi-title?', @$title)),
+         # TODO more than one VERSION?
+         (map { mangle_for_file_name($_) } @version),
+         @partnumber,
+        )
+        . '.flac',
+}
+
 sub main {
     my $input_directory = shift || pod2usage();
     my $fn = "$input_directory/tags";
 sub main {
     my $input_directory = shift || pod2usage();
     my $fn = "$input_directory/tags";
@@ -85,17 +105,17 @@ sub main {
             $track->{DISCNUMBER} = \@discnumber;
         }
         my $title = join(' ', @{$track->{TITLE}});
             $track->{DISCNUMBER} = \@discnumber;
         }
         my $title = join(' ', @{$track->{TITLE}});
-        my $tracknum_s = two_digits($tracknum);
         my $fn = join('/',
                       $dir,
         my $fn = join('/',
                       $dir,
-                      join('_',
-                           (map { two_digits($_) } @discnumber),
-                           $tracknum_s,
-                           mangle_for_file_name($title) . '.flac',
+                      filename(
+                          $tracknum,
+                          {track_tags_from_disc($album, $tracks, $tracknum)}
                       ),
             );
         -e $fn && die("cowardly refusing to clobber $fn");
         my @pictures = ('--picture', quote('3|image/jpeg|||cover.front.jpeg')); # TODO optional
                       ),
             );
         -e $fn && die("cowardly refusing to clobber $fn");
         my @pictures = ('--picture', quote('3|image/jpeg|||cover.front.jpeg')); # TODO optional
+        @pictures = ();         # XXX
+        my $tracknum_s = two_digits($tracknum);
         say(join(' ',
                  'flac -o',
                  quote($fn),
         say(join(' ',
                  'flac -o',
                  quote($fn),