X-Git-Url: https://diplodocus.org/git/flac-archive/blobdiff_plain/001061de87619abc962ae2b5b062cb59594c7cc2..49c989802328cc7723f410d6d8b92754d207981e:/fa-encode?ds=sidebyside diff --git a/fa-encode b/fa-encode index 5f98151..9388f07 100755 --- a/fa-encode +++ b/fa-encode @@ -23,15 +23,35 @@ use warnings; 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 + track_tags_from_disc 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"; @@ -85,17 +105,17 @@ sub main { $track->{DISCNUMBER} = \@discnumber; } my $title = join(' ', @{$track->{TITLE}}); - my $tracknum_s = two_digits($tracknum); 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 + @pictures = (); # XXX + my $tracknum_s = two_digits($tracknum); say(join(' ', 'flac -o', quote($fn),