use Pod::Usage;
sub tformat {
- my $min = shift;
- my $sec = shift;
- my $hun = shift;
- return "$min:$sec.$hun";
+ return sprintf('%02d:%02d.%02d', @_);
}
sub get_decode_args {
if (defined($next)) {
if ($next->[2] == 0) {
if ($next->[1] == 0) {
- push(@$arg, '--until=' . tformat($next->[0] - 1, 59, 99));
+ push(@$arg, '--until=' . tformat($next->[0] - 1, 59, 74));
} else {
push(@$arg, '--until=' . tformat($next->[0], $next->[1] - 1,
- 99));
+ 74));
}
} else {
push(@$arg, '--until=' . tformat($next->[0], $next->[1],
$album = $value;
} elsif (/^DATE=/) {
$date = $value;
- } elsif (/TITLE=/) {
+ } elsif (/TITLE/) {
push(@titles, $value);
}
}
my $track = shift;
my $skip_arg = shift;
my $until_arg = shift;
+ my $outfile;
- my $outfile = sprintf("$artist ($album) \%02s $title.mp3", $track);
- for ($outfile) {
- s/\//_/g;
- s/:/_/g;
- s/'/_/g;
- s/"/_/g;
+ # We'll be putting these in single quotes, so we need to escape
+ # any single quotes in the filename by closing the quote ('),
+ # putting an escaped quote (\'), and then reopening the quote (').
+ for ($fn, $title, $artist, $album, $date) {
+ s/'/'\\''/;
}
+ $outfile = sprintf("$artist ($album) \%02s $title.mp3", $track);
+ $outfile =~ s/\//_/g;
+
$until_arg ||= '';
# XXX
system("flac -cd $skip_arg $until_arg '$fn' | lame --preset standard --tt '$title' --ta '$artist' --tl '$album' --ty '$date' --tn $track - '$outfile'");