Ouais tu as raison, je le savais avant. Mais je cherche un moyen plus simple, s'il en existe un.
Bakhtiyor,
3
voici un script python pour faire la même chose, c'est-à-dire extraire les noms et les emplacements des stations de radio Internet à partir de la base de données xml utilisée par Rhythmbox:
import xml.sax.handler
import xml.sax
import pprint
classRhythmboxPlaylistHandler(xml.sax.handler.ContentHandler):def __init__(self):
self.inRTitle =False
self.inRLocation =False
self.entrytype ="undefined"
self.titlebuffer =""
self.locationbuffer =""
self.radiostations ={}def startElement(self, name, attributes):if name =="entry":
self.entrytype = attributes["type"]# we're interested in type="iradio"elif name =="title"and self.entrytype =="iradio":
self.inRTitle =Trueelif name =="location"and self.entrytype =="iradio":
self.inRLocation =Truedef characters(self, data):if self.inRTitle:
self.titlebuffer += data
elif self.inRLocation:
self.locationbuffer += data
def endElement(self, name):if name =="title":
self.inRTitle =Falseelif name =="location":
self.inRLocation =Falseelif name =="entry"and self.entrytype =="iradio":
self.radiostations[self.titlebuffer]= self.locationbuffer
self.titlebuffer=""
self.locationbuffer=""
parser = xml.sax.make_parser()
handler =RhythmboxPlaylistHandler()
parser.setContentHandler(handler)
parser.parse("work_copy_of_rhythmdb.xml")
pprint.pprint(handler.radiostations)
rstations=handler.radiostations
rskeys=[key for key in rstations]
rskeys.sort()
ofile=open("rhytmbox_current_internet_radiostations.txt","w")
ofile.write("# {0:41} --> {1}\r\n".format('radio station name','location'))
ofile.write("#"+120*'-'+"\r\n")for key in rskeys:
ofile.write("{0:45} --> {1}\r\n".format(key,rstations[key]))
ofile.close()
joli pointant vers le tutoriel xmlstarlet pour cela
Sabacon
1
Bien que cela puisse théoriquement répondre à la question, il serait préférable d'inclure ici les parties essentielles de la réponse et de fournir le lien de référence.
Marco Ceppi
Désolé pour ça. Je viens de le modifier pour inclure l'idée principale. (Merci pour le lien. Je craignais que republier d'autres informations ne dupliquerait inutilement les données Web.)
colan
0
pour exporter lire le fichier ~/.local/share/rhythmbox/rhythmdb.xml
si vous voulez importer Créez une liste de lecture de fichiers M3U comme:
#EXTM3U
#EXTINF:-1,Quran - Eman City Quran & Islam Talk
http://206.72.199.180:9990/;stream.nsv
#EXTINF:-1,Quran - Radio Quraan
http://66.45.232.131:9994/;stream.nsv
#EXTINF:-1,Quran - Allahu Akbar Radio
http://66.45.232.1ls32:10196/;stream.nsv
#EXTINF:-1,Quran - izlam
http://66.45.232.133:9998/;stream.nsv
#EXTINF:-1,Quran - tafsir Al Sheikh Mohammad Ratib Al Nabulsi & Sheikh Muhammad Mitwalli Al Sharawi
http://206.72.199.179:9992/;stream.nsv
#EXTINF:-1,Quran - radioislamico
http://66.45.232.134:9996/;stream.nsv
Réponses:
rhythmbox stocke des informations sur tous les fichiers musicaux dans ~ / .local / share / rhythmbox / rythdb.xml
Les entrées concernant les stations radio commencent par "type d'entrée iradio".
la source
voici un script python pour faire la même chose, c'est-à-dire extraire les noms et les emplacements des stations de radio Internet à partir de la base de données xml utilisée par Rhythmbox:
(J'ai commencé avec ce tutoriel sur l'utilisation de bases de données XML à partir de python: http://oreilly.com/catalog/pythonxml/chapter/ch01.html )
la source
Vous pouvez utiliser xmlstarlet pour extraire les données essentielles de votre fichier XML. Voir ici pour plus de détails:
http://steffen67.blogspot.com/2011/05/how-to-export-rhythmbox-radio-stations.html
la source
pour exporter lire le fichier
~/.local/share/rhythmbox/rhythmdb.xml
si vous voulez importer Créez une liste de lecture de fichiers M3U comme:
et l'ouvrir avec rhythmbox
la source