Плагин Rhythmbox для доступа к файлам подкастов их не видит - PullRequest
4 голосов
/ 21 сентября 2010

Я пишу плагин 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 ]

1 голос
/ 29 сентября 2010

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

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

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)
0 голосов
/ 26 февраля 2013

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

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

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

...