| 
					
				 | 
			
			
				@@ -0,0 +1,92 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#!/usr/bin/perl 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+use strict; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+use warnings; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+if ( ! defined $ARGV[0] ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	print "Need to pass dir\n"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	exit 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+my $dir_path = shift(@ARGV); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+if ( ! -d $dir_path ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	print "$dir_path doesnt look like a dir\n"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	exit 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+my @info_files; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+my @audio_files; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+foreach my $file ( split("\n",`ls $dir_path`) ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if ( $file =~ m/^(audio_[0-9]{2}.inf)/ ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		push(@info_files, $1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} elsif ( $file =~ m/^(audio_[0-9]{2}.wav)/ ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		push(@audio_files, $1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+my %tracks_map; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@tracks_map{@audio_files} = @info_files; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+sub sanitize_title($) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	my $title = shift; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	my $san_title; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	open(my $fh, ">>", \$san_title) or die "Couldnt open $!\n"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	foreach my $char ( split("",$title) ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if ( $char =~ m/[\'\"\:\,\.\&\(\)]/ ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			print $fh ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} elsif ( $char =~ m/\s/ ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			print $fh "_"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			print $fh "$char"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	close $fh; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	return $san_title; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+foreach my $audio_file ( sort keys %tracks_map ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	my $track_title = "null"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	foreach my $line ( split("\n", `cat $dir_path/$tracks_map{$audio_file}`) ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if ( $line =~ m/^Tracktitle=\s+(.*)$/ ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			$track_title = sanitize_title($1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if ( $track_title eq "null" ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		print "Couldnt get title from $tracks_map{$audio_file}\n"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		exit 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	#print "$audio_file -> $tracks_map{$audio_file} -> '$track_title'\n"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	$tracks_map{$audio_file} = $track_title; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+foreach my $audio_file ( sort keys %tracks_map ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	my $filename; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if ( $audio_file =~ m/^audio_([0-9]{2}).wav/ ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$filename = $1 . "_" . $tracks_map{$audio_file} . ".wav"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		print "could get track number\n"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		exit 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	print "mv $dir_path/$audio_file $dir_path/$filename\n"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	system("mv $dir_path/$audio_file $dir_path/$filename") == 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		or die "Failed to mv $audio_file\n"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 |