Rhythmbox-Plugin für den Zugriff Podcast-Dateien sieht sie nicht
Frage
Ich bin ein Rhythmbox Plugin Iterierte über alle Podcast-Dateien auf Rhythmbox derzeit bekannten Schreiben (ob heruntergeladen oder nicht) und mit ihnen etwas zu tun.
Nach einigen Recherchen und Tests in der Python Shell Rhythmbox, gelang es mir, eine Liste aller Objekte zu erhalten. Allerdings, wenn ich es in ein Plugin codiert, ich erhalte eine Fehlermeldung:
(rhythmbox:7500): GLib-GObject-WARNING **: invalid cast from `RhythmDBTree' to `RhythmDBEntryType'
und die entries
Liste ist leer:
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
Doch die print entry_type
kehrt. <rhythmdb.EntryType object at 0xa7ea34c (RhythmDBEntryType at 0xa106988)>
, so dass das db Objekt ist offenbar gültig
Was mache ich falsch?
Lösung 2
Ich habe versucht, die folgenden:
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...
und es funktioniert einwandfrei. Na ja, nicht die schönste Lösung, aber es ist in Ordnung für meine Bedürfnisse.
Andere Tipps
Versuchen Sie zunächst rhythmbox neu zu installieren.
Sehen Sie, was diese Ausgänge, es läuft gut auf meiner Maschine, Post, was diese Ausgaben auf Ihrem Rechner
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)