Question

Je suis en train d'écrire un plugin Rhythmbox pour parcourir tous les fichiers podcast connus à Rhythmbox (que ce soit téléchargé ou non) et de faire quelque chose avec eux.

Après quelques recherches et essais en Python Shell du Rhythmbox, je réussissais à obtenir une liste de tous les objets. Cependant, quand je codé dans un plug-in, je reçois une erreur:

(rhythmbox:7500): GLib-GObject-WARNING **: invalid cast from `RhythmDBTree' to `RhythmDBEntryType'

et la liste des entries est vide:

def run(self, action, shell):
    db = shell.get_property('db')
    entry_type = db.entry_type_get_by_name('podcast-post')
    print entry_type
    entries = []
    db.entry_foreach_by_type(entry_type, entries.append)
    print entries

Cependant, le rendement de print entry_type:. <rhythmdb.EntryType object at 0xa7ea34c (RhythmDBEntryType at 0xa106988)>, de sorte que l'objet db est apparemment valide

Qu'est-ce que je fais mal?

Était-ce utile?

La solution 2

J'ai essayé le suivant:

def run(self, action, shell):
    db = shell.get_property('db')
    entry_type = db.entry_type_get_by_name('podcast-post')
    print entry_type
    entries = []
    db.entry_foreach(entries.append)
    print entries
    for entry in entries:
        if entry.get_type() == entry_type:
            # process entry...

et il fonctionne correctement. Eh bien, pas la plus belle solution, mais il est OK pour mes besoins.

Autres conseils

Tout d'abord essayer de réinstaller Rhythmbox.

Voir ce que cette sortie, il fonctionne bien sur ma machine, après que cette sortie sur la machine

from __future__ import print_function

def plugin_create(database):
    print(database)
    db.entry_foreach_by_type(db.entry_type_get_by_name('podcast-post'), print)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top