1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
#!/usr/bin/perl
# - display counts of mixed-up album mp3s in the current directory
# - add prefixes to the filenames
use MP3::Tag;
my @t;
#my $TAG = shift @ARGV || die "NO TAG SPECIFIED";
my $BIN_MV = "/bin/mv";
opendir D, "." or die $!;
while (my $f = readdir D)
{
push (@t, $f) if $f =~ /mp3$/
}
closedir D;
my $albs = {};
foreach my $t (sort @t)
{
my $a;
my $mp3 = MP3::Tag->new($t);
$mp3->get_tags();
my ($title, $track, $artist, $album, $comment, $year, $genre) = $mp3->autoinfo();
$track = sprintf "%02d", $track;
$artist =~ /^(..?.?)/;
my $art = lc $1;
$album =~ /^(The )?(..?.?)/;
my $alb = lc $2;
# my $newf = "$art-$alb-$track $title.mp3";
my $newf = "$track $title.mp3";
$newf =~ s/[^-A-Za-z0-9 _\.]//g;
print $newf."\n";
system($BIN_MV, $t, $newf);
$albs->{$art} ||= {};
$albs->{$art}->{$alb} ||= [];
$albs->{$art}->{$alb} = 1;
# if (! $a) { print STDERR "TAGLESS: $t\n"; next; }
# my $id = $mp3->track0(2);
# my $newt = $TAG. '-' . $id . '-' . $t;
# print "$newt\n";
# system($BIN_MV, $t, $newt);
# $albs->{$a} ||= [];
# push @{ $albs->{$a} }, $t;
}
map {print $_, " => ", join ",", keys(%{$albs->{$_}}), "\n" } keys %$albs;
#my @keyz = qw[ZENC ZEND ZENE ZENF];
#my $q = 0;
#foreach my $a (sort keys %$albs)
# {
# my $count = scalar @{ $albs->{$a} };
## print "$keyz[$q] : $a : $count\n";
# foreach my $f (@{ $albs->{$a} })
# {
# # system($BIN_MV, $f, $keyz[$q] . "-" . $f);
# }
# $q++;
# }
|