]> diplodocus.org Git - flac-archive/blobdiff - fa-encode
test mp3::cd::read_args
[flac-archive] / fa-encode
index 10210b90759a5bcd8818bd658a3409cd1b876490..1656353e4f338b938beb3712852dfc8d2d13c5b3 100755 (executable)
--- a/fa-encode
+++ b/fa-encode
@@ -31,19 +31,25 @@ epg::flac::archive::tags->import(
         read_tags
         mangle_for_file_name
         quote
         read_tags
         mangle_for_file_name
         quote
+        track_tags_from_disc
         two_digits
     ]);
 
 sub filename {
         two_digits
     ]);
 
 sub filename {
-    my %a = @_;
-    my @discnumber = @{$a{discnumber} // []};
-    my $tracknumber = $a{tracknumber} // die('tracknumber required');
-    my $title = $a{title} // die('title required');
+    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),
     join('-',
          (map { two_digits($_) } @discnumber),
          two_digits($tracknumber),
-         mangle_for_file_name($title) . '.flac',
+         mangle_for_file_name(join('TODO multi-title?', @$title)),
+         # TODO more than one VERSION?
+         (map { mangle_for_file_name($_) } @version),
+         @partnumber,
         )
         )
+        . '.flac',
 }
 
 sub main {
 }
 
 sub main {
@@ -102,9 +108,8 @@ sub main {
         my $fn = join('/',
                       $dir,
                       filename(
         my $fn = join('/',
                       $dir,
                       filename(
-                          discnumber => \@discnumber,
-                          tracknumber => $tracknum,
-                          title => $title,
+                          $tracknum,
+                          {track_tags_from_disc($album, $tracks, $tracknum)}
                       ),
             );
         -e $fn && die("cowardly refusing to clobber $fn");
                       ),
             );
         -e $fn && die("cowardly refusing to clobber $fn");