Плагин Rhythmbox для доступа к файлам подкаста не видит их
Вопрос
Я пишу плагин Rhythmbox, чтобы повторить все файлы подкастов, которые в настоящее время известны Rhythmbox (загружены или нет) и делать что-то с ними.
После некоторых исследований и тестирования в Rhythmbox's Python Shell мне удалось получить список всех объектов. Однако, когда я записал его в плагин, я получаю ошибку:
(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)>
, поэтому объект DB, по-видимому, действителен.
Что я делаю неправильно?
Решение 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)