Плагин Rhythmbox для доступа к файлам подкастов не видит их

Я пишу плагин Rhythmbox для перебора всех файлов подкастов, которые в настоящее время известны Rhythmbox (загруженных или нет) и что-то с ними делать.

После некоторых исследований и тестирования в Python Shell Rhythmbox, мне удалось получить список всех объектов. Однако, когда я закодировал его в плагин, я получил ошибку:

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

и entries список пуст:

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

Тем не менее print entry_type возвращает: <rhythmdb.EntryType object at 0xa7ea34c (RhythmDBEntryType at 0xa106988)>, таким образом, объект БД, по-видимому, действителен.

Что я делаю неправильно?

2 ответа

Решение

Я попробовал следующее:

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...

и это работает правильно. Ну, не самое красивое решение, но оно подходит для моих нужд.

Сначала попробуйте переустановить ритмбокс.

Посмотрите, что это выводит, он отлично работает на моей машине, опубликовать, что это выводит на вашей машине

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)
Другие вопросы по тегам