Re: [Rhythmbox-devel] Saving Import Errors
- From: Duncan McGreggor <duncan mcgreggor gmail com>
- To: rhythmbox-devel <rhythmbox-devel gnome org>
- Subject: Re: [Rhythmbox-devel] Saving Import Errors
- Date: Mon, 12 Jan 2009 10:12:30 -0600
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
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]