summaryrefslogtreecommitdiff
path: root/tools/songdb.pl
diff options
context:
space:
mode:
Diffstat (limited to 'tools/songdb.pl')
-rwxr-xr-xtools/songdb.pl60
1 files changed, 57 insertions, 3 deletions
diff --git a/tools/songdb.pl b/tools/songdb.pl
index 64bce440b5..73c8e94c09 100755
--- a/tools/songdb.pl
+++ b/tools/songdb.pl
@@ -9,6 +9,11 @@ use MP3::Info;
9 9
10my $dir = $ARGV[0]; 10my $dir = $ARGV[0];
11 11
12my %entries;
13my %genres;
14my %albums;
15my %years;
16
12if(! -d $dir) { 17if(! -d $dir) {
13 print "given argument is not a directory!\n"; 18 print "given argument is not a directory!\n";
14 exit; 19 exit;
@@ -58,7 +63,6 @@ sub singlefile {
58# for(keys %$hash) { 63# for(keys %$hash) {
59# print "Info: $_ ".$hash->{$_}."\n"; 64# print "Info: $_ ".$hash->{$_}."\n";
60# } 65# }
61
62 return $hash; # a hash reference 66 return $hash; # a hash reference
63} 67}
64 68
@@ -77,17 +81,67 @@ sub dodir {
77 81
78 my $id3 = singlefile("$dir/$f"); 82 my $id3 = singlefile("$dir/$f");
79 83
80 printf "Artist: %s\n", $id3->{'ARTIST'}; 84 # ARTIST
85 # COMMENT
86 # ALBUM
87 # TITLE
88 # GENRE
89 # TRACKNUM
90 # YEAR
91
92 #printf "Artist: %s\n", $id3->{'ARTIST'};
93 $entries{"$dir/$f"}= $id3;
94
95 $artists{$id3->{'ARTIST'}}++ if($id3->{'ARTIST'});
96 $genres{$id3->{'GENRE'}}++ if($id3->{'GENRE'});
97 $years{$id3->{'YEAR'}}++ if($id3->{'YEAR'});
98
99 # prepend Artist name to handle duplicate album names from other
100 # artists
101 $albums{$id3->{'ARTIST'}."___".$id3->{'ALBUM'}}++ if($id3->{'ALBUM'});
102
81 } 103 }
82 104
83 # extractdirs filters out only subdirectories from all given entries 105 # extractdirs filters out only subdirectories from all given entries
84 my @d = extractdirs($dir, @a); 106 my @d = extractdirs($dir, @a);
85 107
86 for $d (sort @d) { 108 for $d (sort @d) {
87 print "Subdir: $d\n"; 109 #print "Subdir: $d\n";
88 dodir("$dir/$d"); 110 dodir("$dir/$d");
89 } 111 }
90} 112}
91 113
92 114
93dodir($dir); 115dodir($dir);
116
117print "File name table\n";
118for(sort keys %entries) {
119 printf(" %s\n", $_);
120}
121
122print "\nSong title table\n";
123#for(sort {$entries{$a}->{'TITLE'} cmp $entries{$b}->{'TITLE'}} %entries) {
124for(sort {$entries{$a}->{'TITLE'} cmp $entries{$b}->{'TITLE'}} keys %entries) {
125 printf(" %s\n", $entries{$_}->{'TITLE'} );
126}
127
128print "\nArtist table\n";
129for(sort keys %artists) {
130 printf(" %s\n", $_);
131}
132
133print "\nGenre table\n";
134for(sort keys %genres) {
135 printf(" %s\n", $_);
136}
137
138print "\nYear table\n";
139for(sort keys %years) {
140 printf(" %s\n", $_);
141}
142
143print "\nAlbum table\n";
144for(sort keys %albums) {
145 my @moo=split(/___/, $_);
146 printf(" %s\n", $moo[1]);
147}