On Sun, 2009-01-11 at 14:29 -0600, Duncan McGreggor wrote: > On Sun, 2009-01-11 at 19:30 +1000, Jonathan Matthew wrote: > > On Sat, Jan 10, 2009 at 03:23:35PM -0600, Duncan McGreggor wrote: > > > Hey everyone, > > > > > > I spent a couple of hours today digging around in the RB Python console > > > looking for an object that would give me access to the list of files > > > that show up in my import errors (~400 songs) so that I could save them > > > to disk. > > > > > > 1) Is there a better way to do this? > > > > > > 2) If not, can someone point me to the right object? and method > > > call(s)/parameters? > > > > I'd suggest locating the import errors source in the source list, then > > iterating the contents of its query model. > > Hrm, that's what I'd tried to do, but was unable to find it. I thought > that maybe the import errors source wasn't exposed in the Python code. > I'll have another look. If I still can't find it, I'll a concise Python > console session (I don't read C, so looking through the .c files has > only been helpful at the most intuitive level).
Okay, it looks like I found the import errors... but I can't get the data out of any objects. Here's how I got them: source_list = shell.get_property("sourcelist") library, playlists = source_list.get_property("model") sources = library.iterchildren() import_errors = [x for x in sources if x[2] == "Import Errors"][0] Or, if you prefer something more legible: for child in library.iterchildren(): x, pixbuf, name, source, pango_attrs, y, z, enum = child if name == "Import Errors": import_errors = source break x, pixbuf, name, source, pango_attrs, y, z, enum = import_errors query_model = source.get_property("query-model") The number of elements in qm matches the number of import errors, so that checks out. The following gives me a list of the entries (RhythmDBEntry instances): [entry for entry, count in query_model] However, I have not been able to get actual data from these objects. Each entry object has three methods (copy, get_entry_type, get_playback_uri), but when I execute the following: [entry.get_playback_uri() for entry, count in query_model] I get a long list of "None"s. What am I missing? I'd like to get the full path name for each file with errors, as it is presenting in the rhythmbox UI. What do I need to do? Thanks, d _______________________________________________ rhythmbox-devel mailing list rhythmbox-devel@gnome.org http://mail.gnome.org/mailman/listinfo/rhythmbox-devel