المكون الإضافي لـ Rhythmbox للوصول إلى ملفات البودكاست لا يراها
سؤال
أنا أكتب مكونًا إضافيًا لـ Rhythmbox للتكرار عبر جميع ملفات البودكاست المعروفة حاليًا بـ Rhythmbox (سواء تم تنزيله أم لا) وللقيام بشيء معهم.
بعد بعض الأبحاث والاختبار في قذيفة Python 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)>
, ، لذلك يبدو أن كائن 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...
وهو يعمل بشكل صحيح. حسنًا ، ليس أجمل حل ، لكنه على ما يرام لاحتياجاتي.
نصائح أخرى
حاول أولاً إعادة تثبيت 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)
لا تنتمي إلى StackOverflow