A imagem mostra as estações de rádio RadioTray padrão importadas para o Rhythmbox
Como eu fiz isso?
O RadioTray mantém suas estações de rádio em um arquivo XML localizado em:
~/.local/share/radiotray/bookmarks.xml
O Rhythmbox contém todos os seus dados de maneira semelhante em um arquivo XML localizado em:
~/.local/share/rhythmbox/rhythmdb.xml
Se você examinar ambos os arquivos, é bastante óbvio que o formato XML (sua estrutura definida) é muito diferente.
Uma solução é transformar o formato XML do Radiotray em algo que o Rhythmbox possa entender.
XSLT
Você pode usar a linguagem de tradução XML estruturada XSLT para realizar essa conversão.
Para instalar:
sudo apt-get install python-4suite-xml
Em seguida, copie o conteúdo abaixo em um novo arquivo gedit
Salve em um arquivo (crie a pasta xml
, se necessário) chamado ~/xml/style
Em seguida, copie o arquivo XML RadioTray para a mesma pasta ~/xml
Por fim, copie o arquivo XML do Rhythmbox para a mesma pasta ~/xml
Ir para um terminal:
cd ~/xml
4xslt bookmarks.xml style > test.xml
Isso irá reformatar o RadioTray no XML que pode ser lido pelo RhythmBox
Em seguida, precisamos adicionar esses novos dados ao Rhythmbox.
Agora abra os dois test.xml
e rhythmdb.xml
Copie o conteúdo de test.xml
EXCEPT para a primeira linha no arquivo rhythmdb.xml
. Nota - cole o conteúdo no final do ficheiro, por exemplo
</entry>
*****paste test.xml here*****
</rhythmdb>
Salvar.
Faça o backup do antigo arquivo rhythmdb.xml
e copie o novo arquivo rhythmdb.xml
.
Acione o Rhythmbox
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:for-each select="bookmarks/group/group/bookmark">
<entry type="iradio">
<title><xsl:value-of select="@name"/></title>
<genre><xsl:value-of select="translate(../@name,'','')"/></genre>
<artist></artist>
<album></album>
<location><xsl:value-of select="@url"/></location>
<date>0</date>
<media-type>application/octet-stream</media-type>
</entry>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>