diff cddb2.tcl @ 6:f5daa3cdeb58

- Clear up old variable usage. - Grok Artist/Title in TTITLE fields. - Add the ability to append to track title fields.
author darius
date Sat, 12 Aug 2000 07:12:12 +0000
parents dd6e30f7eb42
children 2c01c09bdc0f
line wrap: on
line diff
--- a/cddb2.tcl	Sat Aug 12 07:11:06 2000 +0000
+++ b/cddb2.tcl	Sat Aug 12 07:12:12 2000 +0000
@@ -39,9 +39,6 @@
     set tracks(albumartist) "";
     set tracks(number) 0;
 
-    set dtitle "";
-    set dartist "";
-
     # If the file doesn't exist we assume the user wants to enter new data
     if {![file exists $infile] && $infile != "-"} {
 	puts "Please enter the number of tracks on the CD..."
@@ -115,24 +112,29 @@
 		}
 
 		"DTITLE" {
-		    if { [ regexp {^(.*) / (.*)$} $value a tracks(albumartist) tracks(albumname)] == 1 } {
-#			puts "Got disc artist as $dartist, title as $dtitle";
-			;
+		    if {[regexp {^(.*) / (.*)$} $value a tracks(albumartist) tracks(albumname)] != 1} {
+			set tracks(albumname) $value;
 		    } else {
-			set tracks(albumname) $value;
-#			puts "Got title as $value";
+			puts "Atrist - $tracks(albumartist)";
 		    }
+		    puts "Title - $tracks(albumname)";
 		}
 
 		"TTITLE([0-9]+)" {
 		    regexp {TTITLE([0-9]+)} $key a t_no;
 		    set t_no [ expr $t_no + 1 ];
 
-		    incr tracks(number);
-
-		    if {![regexp {^(.*) - (.*)$} $value a tracks(artist:$t_no) tracks(title:$t_no)] == 1} {
-			if {![regexp {^(.*)--(.*)$} $value a tracks(artist:$t_no) tracks(title:$t_no)] == 1} {
-			    set tracks(artist:$t_no) $value;
+		    if {[info exists tracks(title:$t_no)]} {
+			append tracks(title:$t_no) $value;
+		    } else {
+			incr tracks(number);
+			
+			if {![regexp {^(.*) - (.*)$} $value a tracks(artist:$t_no) tracks(title:$t_no)] == 1} {
+			    if {![regexp {^(.*)--(.*)$} $value a tracks(artist:$t_no) tracks(title:$t_no)] == 1} {
+				if {![regexp {^(.*) / (.*)$} $value a tracks(artist:$t_no) tracks(title:$t_no)] == 1} {
+				    set tracks(title:$t_no) $value;
+				}
+			    }
 			}
 		    }
 		}
@@ -161,7 +163,8 @@
 
 	for {set i 1} {$i <= $tracks(number)} {incr i} {
 	    if {![info exists tracks(title:$i)]} {
-		error "track $i has no title!";
+#		error "track $i has no title!";
+		set tracks(title:$i) "";
 	    }
 	    
 	    if {[info exists tracks(artist:$i)]} {
@@ -169,9 +172,8 @@
 		continue;
 	    }
 	    
-	    if {$dartist != ""} {
+	    if {$tracks(albumartist) != ""} {
 		set tracks(artist:$i) $tracks(albumartist);
-		#       puts "setting artists to $dartist for $i (disc artist)";
 		continue;
 	    }
 
@@ -188,6 +190,10 @@
 
     }	
 
+    if {$tracks(albumartist) == ""} {
+	set tracks(albumartist) "Various Artists";
+    }
+
     print_tracks "Before editing";
     set tracks(updated) 0;
     edit_tracks;
@@ -223,7 +229,7 @@
 # Submitted via: Tcl Mangler 0.1 - Copyright (c) 1999 Daniel O'Connor
 #
 DISCID=$tracks(discid)
-DTITLE=$tracks(albumname)";
+DTITLE=$tracks(albumartist) - $tracks(albumname)";
 	    for { set i 1 } { $i <= $tracks(number) } { incr i } {
 		puts $fh "TTITLE[expr $i - 1]=$tracks(artist:$i) - $tracks(title:$i)";
 	    }
@@ -232,22 +238,16 @@
     }
 
     # Eat illegal characters
-    regsub {\\} $tracks(albumname) / tracks(albumname)
-    regsub \" $tracks(albumname) \\\" tracks(albumname)
-
-    if { $dartist != "" } {
-        set dirname "$dartist - $tracks(albumname)";
-    } else {
-	set dirname "Various Artists - $tracks(albumname)";
-    }
+    quoter tracks(albumname);
+    quoter tracks(albumartist);
+    set dirname "$tracks(albumartist) - $tracks(albumname)";
 
     puts $out "mkdir \"$dirname\"";
     for { set t_no 1 } { $t_no <= $tracks(number) } { incr t_no } {
 	# Eat illegal characters
-	regsub -- {\\} $tracks(artist:$t_no) / tracks(artist:$t_no);
-	regsub -- {\\} $tracks(title:$t_no) / tracks(title:$t_no);
-	regsub -- \" $tracks(artist:$t_no) \\\" tracks(artist:$t_no);
-	regsub -- \" $tracks(title:$t_no) \\\" tracks(title:$t_no);
+	quoter tracks(artist:$t_no);
+	quoter tracks(title:$t_no);
+
 	set oldname [ eval format {$oldbasename} {$t_no} ];
 	set newname [ eval format {$newbasename} {"$tracks(artist:$t_no) - $tracks(title:$t_no)"} ];
 
@@ -266,6 +266,14 @@
     }
 }
 
+proc quoter {str_var} {
+    upvar $str_var str;
+
+    regsub -all -- {/} $str {\\} str;
+    regsub -all -- {\"} $str {\"} str;
+#    regsub -all -- {\'} $str {\'} str;
+}
+
 proc print_tracks {outtitle} {
     global tracks;