Rhythmboxはあらゆる種類の情報を~/.local/share/rhythmbox/rhythmdb.xml
に保存することを知っています。
type="iradio"
の付いたエントリはすべてラジオ局です。
TuneIn からラジオ局をインポートしたい。
私の質問は:このxmlデータベースを操作するために使用できるAPIはありますか?
つまり、私は手でそれを行うことができますが、Rhythmboxはすでにそれを操作しており、プラグインをサポートしているので、アプリの外でそれを更新するより良い方法があると思います。
[〜#〜]更新[〜#〜]
私はそれを手動で更新してしまいました https://github.com/umpirsky/rhytmbox-tunein-import 。
Rhythmboxには [〜#〜] c [〜#〜] / Python APIがあり、トラック/曲/ラジオステーション/ポッドキャストの詳細を追加および変更できます等.
ローカルのrhythmdb.xmlに直接書き込むことはありません。これは、バージョン間で変更される可能性のある内部XML形式です。
次のサンプルの主要な部分は次のとおりです。
RB.RhythmDBEntry.new
を使用して新しいエントリを作成しますfrom gi.repository import GObject、Peas from gi.repository import RB class SamplePython(GObject.Object、Peas.Activatable): __gtype_name = 'SamplePythonPlugin' object = GObject.property(type = GObject.GObject) def __init __(self): GObject.Object .__ init __( self) def do_activate(self): print( "activating sample python plugin") Shell = self.object db = Shell.props.db entry_type = db.entry_type_get_by_name( "iradio") url = "http://bbc.co.uk/radio/listen/live/r1.asx" entry = RB.RhythmDBEntry.new(db、entry_type、url) db.commit() db.entry_set(entry、RB.RhythmDBPropType.TITLE、url) db.entry_set(entry、RB.RhythmDBPropType.GENRE、 "Unknown") def do_deactivate(self): print( "deactivating sample pythonプラグイン ")