plug-in Rhythmbox aux fichiers de podcast d'accès ne les voit pas
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?
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)