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?

War es hilfreich?

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)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top