Je sais que Rhythmbox stocke toutes sortes d'informations dans ~/.local/share/rhythmbox/rhythmdb.xml
.
Toutes les entrées avec type="iradio"
sont des stations de radio.
Je voudrais importer des stations de radio de TuneIn .
Ma question est: existe-t-il une API que je peux utiliser pour manipuler cette base de données XML?
Je veux dire, je peux le faire à la main, mais comme Rhythmbox le manipule déjà et qu'il prend en charge les plugins, je suppose qu'il existe un meilleur moyen de le mettre à jour que de le faire en dehors de l'application.
[~ # ~] mise à jour [~ # ~]
J'ai fini par le mettre à jour à la main https://github.com/umpirsky/rhytmbox-tunein-import .
Rhythmbox a une [[# #]] c [~ # ~] / Python API que vous pouvez utiliser pour ajouter et modifier les détails des pistes/chansons/stations de radio/podcasts etc.
Vous n'écrivez pas directement dans le fichier local rythdb.xml - il s'agit d'un format XML interne susceptible de changer entre les versions.
Dans l'exemple suivant, les éléments clés sont les suivants:
RB.RhythmDBEntry.new
de gi.repository import GObject, Peas de gi.repository import RB classe 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 ("activation de l'échantillon python") 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 (entrée, RB.RhythmDBPropType.TITLE, url) db.entry_set (entrée, RB.RhythmDBPropType.GENRE, "Unknown") def do_deactivate (self): print ("désactivation de l'échantillon python plugin ")