Плагин 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)