found 292612 2.99.6-1
tags 292612 + patch pending
thanks

* era eriksson <[EMAIL PROTECTED]> [2005-07-27 09:35]:
> > >   *info* querying...
> > >   *warning* no freedb info for track 10 ("TTITLE9")
> > >   *error* could not read freedb file
> > 
> > I don't quite understand what's going on there.  Can you please send
> > me the jack-* files from that directory?
> 
> I am not entirely sure I haven't misplaced some of them, but here are
> the jack.* files I have in that directory.

Thanks, now I see the problem.  Unlike the FreeDB file you mentioned
in your initial bug report, this one really has a missing track info:

TTITLE8=Tidal
TTITLE9=

However, it shouldn't matter since this is a data track anyway and
therefore won't be ripped and tagged.  I've now modified jack to only
return an error if the tracks which don't have any information are
actually to be ripped.  This will exclude data tracks and other songs
that we don't care about (e.g. running jack with the -t 1-2 option
won't care if the 3rd track has no info; it will still print a warning
but not an error).


diff -urN jack-3.1.1~/jack jack-3.1.1/jack
--- jack-3.1.1~/jack    2005-07-27 11:53:12.773676248 +0100
+++ jack-3.1.1/jack     2005-07-27 11:53:31.973757392 +0100
@@ -144,12 +144,12 @@
     if not os.path.exists(cf['_freedb_form_file'] + ".bak"):
         cf['_query_on_start'] = 1
 if cf['_query_on_start']:
-    freedb_rename = jack_prepare.query_on_start()
+    freedb_rename = jack_prepare.query_on_start(todo)
 
 ### (10) update freedb dbfile
 if cf['_update_freedb']:
     if not jack_tag.track_names:
-        err, jack_tag.track_names, jack_tag.locale_names, freedb_rename, 
revision = jack_freedb.interpret_db_file(jack_ripstuff.all_tracks, 
cf['_freedb_form_file'], verb = 1, dirs = 0)
+        err, jack_tag.track_names, jack_tag.locale_names, freedb_rename, 
revision = jack_freedb.interpret_db_file(jack_ripstuff.all_tracks, todo, 
cf['_freedb_form_file'], verb = 1, dirs = 0)
     jack_freedb.freedb_template(jack_ripstuff.all_tracks, 
jack_tag.track_names, revision + 1)
     jack_utils.ex_edit(cf['_freedb_form_file'])
     info("now submit your changes if you like, using the option --submit (via 
http POST). Don't forget to activate your changes locally with -R")
@@ -242,7 +242,7 @@
         jack_display.exit()
 
 if cf['_query_when_ready'] or cf['_read_freedb_file'] or cf['_query_on_start']:
-    err, jack_tag.track_names, jack_tag.locale_names, freedb_rename, revision 
= jack_freedb.interpret_db_file(jack_ripstuff.all_tracks, 
cf['_freedb_form_file'], verb = 1, dirs = 1)
+    err, jack_tag.track_names, jack_tag.locale_names, freedb_rename, revision 
= jack_freedb.interpret_db_file(jack_ripstuff.all_tracks, todo, 
cf['_freedb_form_file'], verb = 1, dirs = 1)
     if err:
         error("could not read freedb file")
 
diff -urN jack-3.1.1~/jack_freedb.py jack-3.1.1/jack_freedb.py
--- jack-3.1.1~/jack_freedb.py  2005-07-27 11:53:12.821668952 +0100
+++ jack-3.1.1/jack_freedb.py   2005-07-27 11:53:18.882747528 +0100
@@ -50,14 +50,14 @@
     },
 }
 
-def interpret_db_file(all_tracks, freedb_form_file, verb, dirs = 0, warn = 
None):
+def interpret_db_file(all_tracks, todo, freedb_form_file, verb, dirs = 0, warn 
= None):
     "read freedb file and rename dir(s)"
     global names_available, dir_created
     freedb_rename = 0
     if warn == None:
-        err, track_names, locale_names, cd_id, revision = 
freedb_names(freedb_id(all_tracks), all_tracks, freedb_form_file, verb = verb)
+        err, track_names, locale_names, cd_id, revision = 
freedb_names(freedb_id(all_tracks), all_tracks, todo, freedb_form_file, verb = 
verb)
     else:
-        err, track_names, locale_names, cd_id, revision = 
freedb_names(freedb_id(all_tracks), all_tracks, freedb_form_file, verb = verb, 
warn = warn)
+        err, track_names, locale_names, cd_id, revision = 
freedb_names(freedb_id(all_tracks), all_tracks, todo, freedb_form_file, verb = 
verb, warn = warn)
     if (not err) and dirs:
         freedb_rename = 1
 
@@ -316,7 +316,7 @@
     f.close()
     return err
 
-def freedb_names(cd_id, tracks, name, verb = 0, warn = 1):
+def freedb_names(cd_id, tracks, todo, name, verb = 0, warn = 1):
     "returns err, [(artist, albumname), (track_01-artist, track_01-name), 
...], cd_id, revision"
     err = 0
     tracks_on_cd = tracks[-1][NUM]
@@ -352,7 +352,8 @@
  
     for i in tracks:    # check that info is there for all tracks
         if not freedb.has_key("TTITLE%i" % (i[NUM] - 1)):   # -1 because 
freedb starts at 0
-            err = 1
+            if i[NUM] in [x[NUM] for x in todo]:
+                err = 1
             if verb:
                 warning("no freedb info for track %02i (\"TTITLE%i\")" % 
(i[NUM], i[NUM] - 1))
             freedb["TTITLE%i" % (i[NUM] - 1)] = "[not set]"
diff -urN jack-3.1.1~/jack_prepare.py jack-3.1.1/jack_prepare.py
--- jack-3.1.1~/jack_prepare.py 2005-07-27 11:53:12.823668648 +0100
+++ jack-3.1.1/jack_prepare.py  2005-07-27 11:53:18.884747224 +0100
@@ -106,7 +106,7 @@
                         unique_dirs.append(jack_dirs[i])
                 for i in unique_dirs:
                     jack_ripstuff.all_tracks, dummy, track1_offset = 
jack_functions.cdrdao_gettoc(os.path.join(i, cf['_toc_file']))
-                    err, jack_tag.track_names, jack_tag.locale_names, cd_id, 
revision = freedb_names(jack_freedb.freedb_id(jack_ripstuff.all_tracks), 
jack_ripstuff.all_tracks,  os.path.join(i, cf['_freedb_form_file']), verb = 0, 
warn = 0)
+                    err, jack_tag.track_names, jack_tag.locale_names, cd_id, 
revision = freedb_names(jack_freedb.freedb_id(jack_ripstuff.all_tracks), 
jack_ripstuff.all_tracks, jack_ripstuff.all_tracks, os.path.join(i, 
cf['_freedb_form_file']), verb = 0, warn = 0)
                     if err or cf['_force']:# this means freedb data is not 
there yet
                         info("matching dir found: %d" % i)
                         pid = os.fork()
@@ -465,7 +465,7 @@
     if not is_submittable:
         error("can't submit in current state, please fix jack.freedb")
 
-    err, jack_tag.track_names, jack_tag.locale_names, cd_id, revision = 
jack_freedb.freedb_names(jack_freedb.freedb_id(jack_ripstuff.all_tracks), 
jack_ripstuff.all_tracks, cf['_freedb_form_file'])
+    err, jack_tag.track_names, jack_tag.locale_names, cd_id, revision = 
jack_freedb.freedb_names(jack_freedb.freedb_id(jack_ripstuff.all_tracks), 
jack_ripstuff.all_tracks, jack_ripstuff.all_tracks, cf['_freedb_form_file'])
     if err:
         error("invalid freedb file")
     else:
@@ -476,7 +476,7 @@
 
     ### (9) do query on start
 
-def query_on_start():
+def query_on_start(todo):
     info("querying...")
     if 
jack_freedb.freedb_query(jack_freedb.freedb_id(jack_ripstuff.all_tracks), 
jack_ripstuff.all_tracks, cf['_freedb_form_file']):
         if cf['_cont_failed_query']:
@@ -492,11 +492,11 @@
         jack_utils.ex_edit(cf['_freedb_form_file'])
 
     if cf['_query_on_start']:
-        err, jack_tag.track_names, jack_tag.locale_names, freedb_rename, 
revision = jack_freedb.interpret_db_file(jack_ripstuff.all_tracks, 
cf['_freedb_form_file'], verb = cf['_query_on_start'], dirs = 1)
+        err, jack_tag.track_names, jack_tag.locale_names, freedb_rename, 
revision = jack_freedb.interpret_db_file(jack_ripstuff.all_tracks, todo, 
cf['_freedb_form_file'], verb = cf['_query_on_start'], dirs = 1)
         if err:
             error("query on start failed to give a good freedb file, 
aborting.")
     else:
-        err, jack_tag.track_names, jack_tag.locale_names, freedb_rename, 
revision = jack_freedb.interpret_db_file(jack_ripstuff.all_tracks, 
cf['_freedb_form_file'], verb = cf['_query_on_start'], warn = 
cf['_query_on_start'])
+        err, jack_tag.track_names, jack_tag.locale_names, freedb_rename, 
revision = jack_freedb.interpret_db_file(jack_ripstuff.all_tracks, todo, 
cf['_freedb_form_file'], verb = cf['_query_on_start'], warn = 
cf['_query_on_start'])
     return freedb_rename
 
 def undo_rename(status, todo):



-- 
Martin Michlmayr
http://www.cyrius.com/


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to