aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/plugins/General/CMakeLists.txt2
-rw-r--r--src/plugins/General/lyrics/lyricswindow.cpp14
-rw-r--r--src/plugins/General/lyrics/lyricswindow.h3
-rw-r--r--src/plugins/General/lyrics/providers/providers.qrc6
-rw-r--r--src/plugins/General/lyrics/providers/ultimate_providers.xml313
5 files changed, 330 insertions, 8 deletions
diff --git a/src/plugins/General/CMakeLists.txt b/src/plugins/General/CMakeLists.txt
index f6c81baf5..71dd3a686 100644
--- a/src/plugins/General/CMakeLists.txt
+++ b/src/plugins/General/CMakeLists.txt
@@ -41,7 +41,7 @@ add_subdirectory(notifier)
ENDIF(USE_NOTIFIER)
IF(USE_LYRICS)
-add_subdirectory(lyrics)
+#add_subdirectory(lyrics)
ENDIF(USE_LYRICS)
IF(USE_HAL AND Qt5DBus_FOUND)
diff --git a/src/plugins/General/lyrics/lyricswindow.cpp b/src/plugins/General/lyrics/lyricswindow.cpp
index 1754413b3..3e59893df 100644
--- a/src/plugins/General/lyrics/lyricswindow.cpp
+++ b/src/plugins/General/lyrics/lyricswindow.cpp
@@ -28,7 +28,6 @@
#include <QCryptographicHash>
#include <qmmp/qmmpsettings.h>
#include <qmmp/qmmp.h>
-//#include "ultimatelyricsparser.h"
#include "lyricswindow.h"
LyricsWindow::LyricsWindow(const QString &artist, const QString &title, QWidget *parent)
@@ -59,6 +58,9 @@ LyricsWindow::LyricsWindow(const QString &artist, const QString &title, QWidget
}
connect(m_http, SIGNAL(finished (QNetworkReply *)), SLOT(showText(QNetworkReply *)));
+ if(!m_parser.load(":/ultimate_providers.xml"))
+ qWarning("LyricsWindow: unable to load ultimate_providers.xml");
+
QDir cacheDir(m_cachePath);
if(!cacheDir.exists())
{
@@ -67,9 +69,6 @@ LyricsWindow::LyricsWindow(const QString &artist, const QString &title, QWidget
}
if(!loadFromCache())
on_searchPushButton_clicked();
-
- //UltimateLyricsParser parser;
- //parser.load(":/ultimate_providers.xml");
}
@@ -180,13 +179,16 @@ void LyricsWindow::showText(QNetworkReply *reply)
void LyricsWindow::on_searchPushButton_clicked()
{
m_ui.stateLabel->setText(tr("Receiving"));
- setWindowTitle(QString(tr("Lyrics: %1 - %2")).arg(m_ui.artistLineEdit->text())
+ qDebug() << m_parser.providers().count();
+
+
+ /*setWindowTitle(QString(tr("Lyrics: %1 - %2")).arg(m_ui.artistLineEdit->text())
.arg(m_ui.titleLineEdit->text()));
QNetworkRequest request;
request.setUrl(QUrl("https://lyrics.fandom.com/api.php?action=lyrics&artist=" +
m_ui.artistLineEdit->text()+"&song=" + m_ui.titleLineEdit->text() + "&fmt=xml"));
request.setRawHeader("User-Agent", QString("qmmp/%1").arg(Qmmp::strVersion()).toLatin1());
- m_requestReply = m_http->get(request);
+ m_requestReply = m_http->get(request);*/
}
QString LyricsWindow::cacheFilePath() const
diff --git a/src/plugins/General/lyrics/lyricswindow.h b/src/plugins/General/lyrics/lyricswindow.h
index f8a4e8ca8..2843cc959 100644
--- a/src/plugins/General/lyrics/lyricswindow.h
+++ b/src/plugins/General/lyrics/lyricswindow.h
@@ -21,7 +21,7 @@
#define LYRICSWINDOW_H
#include <QWidget>
-
+#include "ultimatelyricsparser.h"
#include "ui_lyricswindow.h"
class QNetworkAccessManager;
@@ -51,6 +51,7 @@ private:
QNetworkReply *m_requestReply;
QString m_artist, m_title;
QString m_cachePath;
+ UltimateLyricsParser m_parser;
};
#endif
diff --git a/src/plugins/General/lyrics/providers/providers.qrc b/src/plugins/General/lyrics/providers/providers.qrc
new file mode 100644
index 000000000..102d6b40e
--- /dev/null
+++ b/src/plugins/General/lyrics/providers/providers.qrc
@@ -0,0 +1,6 @@
+<!DOCTYPE RCC>
+<RCC version="1.0">
+ <qresource>
+ <file>ultimate_providers.xml</file>
+ </qresource>
+</RCC>
diff --git a/src/plugins/General/lyrics/providers/ultimate_providers.xml b/src/plugins/General/lyrics/providers/ultimate_providers.xml
new file mode 100644
index 000000000..98a043695
--- /dev/null
+++ b/src/plugins/General/lyrics/providers/ultimate_providers.xml
@@ -0,0 +1,313 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<lyricproviders>
+ <provider name="azlyrics.com" title="{artist} LYRICS - {title}" charset="utf-8" url="http://www.azlyrics.com/lyrics/{artist}/{title}.html">
+ <urlFormat replace=" ._@,;&amp;\/()'&quot;-" with=""/>
+ <extract>
+ <item begin="&lt;!-- Usage of azlyrics.com content by any third-party lyrics provider is prohibited by our licensing agreement. Sorry about that. --&gt;" end="&lt;/div&gt;"/>
+ </extract>
+ <exclude>
+ <item tag="&lt;B&gt;"/>
+ <item begin="&lt;i&gt;[" end="]&lt;/i&gt;"/>
+ <item begin="[" end="]"/>
+ </exclude>
+ <invalidIndicator value="&lt;h1&gt;Welcome to AZLyrics!&lt;/h1&gt;"/>
+ </provider>
+ <provider name="bollywoodlyrics.com (Bollywood songs)" title="{title} Song Lyrics - BollywoodLyrics.com" charset="utf-8" url="http://www.bollywoodlyrics.com/lyric/{Title}">
+ <urlFormat replace=" _@;\/&quot;'()[]" with="-"/>
+ <urlFormat replace="?" with=""/>
+ <extract>
+ <item begin="&lt;div class=&quot;entry-content&quot;&gt;" end="&lt;/div&gt;"/>
+ </extract>
+ <invalidIndicator value="Couldn't find that page."/>
+ </provider>
+ <provider name="darklyrics.com" title ="{ARTIST} LYRICS - &quot;{title}&quot; ({year}) album" charset="utf-8" url="http://www.darklyrics.com/lyrics/{artist2}/{album2}.html">
+ <extract>
+ <item begin="&lt;h3&gt;&lt;a name=&quot;{track}&quot;&gt;{track}. {Title2}&lt;/a&gt;&lt;/h3&gt;&lt;br /&gt;" end="&lt;h3&gt;"/>
+ </extract>
+ <extract>
+ <item begin="&lt;h3&gt;&lt;a name=&quot;{track}&quot;&gt;{track}. {Title2}&lt;/a&gt;&lt;/h3&gt;&lt;br /&gt;" end="&lt;div class=&quot;thanks&quot;&gt;"/>
+ </extract>
+ <invalidIndicator value="The page you requested was not found on DarkLyrics.com."/>
+ </provider>
+ <provider name="directlyrics.com" title="{artist} - {title} lyrics" charset="iso-8859-1" url="http://www.directlyrics.com/{artist}-{title}-lyrics.html">
+ <urlFormat replace=" _@,;&amp;\/'&quot;" with="-"/>
+ <urlFormat replace="." with=""/>
+ <extract>
+ <item tag="&lt;div id=&quot;lyricsContent&quot;&gt;"/>
+ <item tag="&lt;p&gt;"/>
+ </extract>
+ <exclude>
+ <item begin="&lt;b&gt;" end="&lt;/b&gt;"/>
+ </exclude>
+ </provider>
+ <provider name="elyrics.net" title="{title} Lyrics - {artist}" charset="iso-8859-1" url="http://www.elyrics.net/read/{a}/{artist}-lyrics/{title}-lyrics.html">
+ <urlFormat replace=" _@;&amp;\/&quot;" with="-"/>
+ <urlFormat replace="'" with="_"/>
+ <extract>
+ <item tag="&lt;div class='ly' style='font-size:12px;'&gt;"/>
+ </extract>
+ <exclude>
+ <item tag="&lt;strong&gt;"/>
+ <item tag="&lt;em&gt;"/>
+ </exclude>
+ <invalidIndicator value="Page not Found"/>
+ </provider>
+ <provider name="Encyclopaedia Metallum" title="{title Lyrics - {artist}" charset="utf-8" url="http://www.metal-archives.com/search/ajax-advanced/searching/songs/?songTitle={title}&amp;bandName={artist}&amp;ExactBandMatch=1">
+ <extract>
+ <item url="http://www.metal-archives.com/release/ajax-view-lyrics/id/{id}"/>
+ <item begin="id=\&quot;lyricsLink_" end="&quot;"/>
+ </extract>
+ <invalidIndicator value="&quot;iTotalRecords&quot;: 0"/>
+ <invalidIndicator value="lyrics not available"/>
+ </provider>
+ <provider name="genius.com" charset="utf-8" url="https://www.genius.com/{artist}-{title}-lyrics">
+ <urlFormat replace=",._@!#%^*+;\/&quot;'()[]" with=""/>
+ <urlFormat replace=" :" with="-"/>
+ <!-- When $ is used as the dollar sign it is omitted from the url
+ When $ is used instead of 's',
+ in some cases it is replaced by 's'(Too $hort -> too-short)
+ in other cases it is omitted ($uicideboy$ -> uicideboy)
+ I chose to omit it though, in some cases it's gonna be problematic -->
+ <urlFormat replace="$" with=""/>
+ <urlFormat replace="ÄÂÀÁÃäâàáã" with="a"/>
+ <urlFormat replace="ËÊÈÉëêèé" with="e"/>
+ <urlFormat replace="ÏÌïì" with="i"/>
+ <urlFormat replace="ÖÔÒÓÕöôòóõ" with="o"/>
+ <urlFormat replace="ÜŪÙÚüūùú" with="u"/>
+ <urlFormat replace="ŸÝÿý" with="y"/>
+ <urlFormat replace="Ññ" with="n"/>
+ <urlFormat replace="Çç" with="c"/>
+ <urlFormat replace="ß" with="ss"/>
+ <urlFormat replace="&amp;" with="and"/>
+ <extract>
+ <item tag="&lt;div class=&quot;lyrics&quot;&gt;"/>
+ </extract>
+ <exclude>
+ <item begin="&lt;!--" end="--&gt;"/>
+ <item begin="&lt;a href=" end="&gt;"/>
+ <item begin="&lt;/a" end="&gt;"/>
+ </exclude>
+ </provider>
+ <provider name="hindilyrics.net (Bollywood songs)" title="{title} ({album})" charset="utf-8" url="http://www.hindilyrics.net/lyrics/of-{Title}.html">
+ <urlFormat replace=" _@;\/&quot;'()[]" with="%20"/>
+ <urlFormat replace="?" with=""/>
+ <extract>
+ <item begin="&lt;div class=nm&gt;Movie&lt;/div&gt;:" end="&lt;/pre&gt;"/>
+ </extract>
+ <exclude>
+ <item begin="&lt;span class=" end="&quot;&gt;"/>
+ </exclude>
+ <invalidIndicator value="Couldn't find that page."/>
+ </provider>
+ <provider name="letras.mus.br" title="" charset="utf-8" url="https://www.letras.mus.br/winamp.php?musica={title}&amp;artista={artist}">
+ <urlFormat replace="_@,;&amp;\/&quot;" with="_"/>
+ <urlFormat replace=" " with="+"/>
+ <extract>
+ <item begin="&lt;/div&gt;" end="&lt;/div&gt;"/>
+ </extract>
+ <invalidIndicator value="Verifique se o nome do seu arquivo e sua"/>
+ </provider>
+ <provider name="lololyrics.com" title="" charset="utf-8" url="http://api.lololyrics.com/0.5/getLyric?artist={artist}&amp;track={title}">
+ <urlFormat replace="_@,;&amp;\/&quot;#" with="_"/>
+ <extract>
+ <item tag="&lt;response&gt;"/>
+ </extract>
+ <invalidIndicator value="ERROR"/>
+ </provider>
+ <provider name="loudson.gs" title="" charset="utf-8" url="http://www.loudson.gs/{a}/{artist}/{album}/{title}">
+ <urlFormat replace=" _@,;&amp;\/&quot;" with="-"/>
+ <urlFormat replace="." with=""/>
+ <extract>
+ <item tag="&lt;div class=&quot;middle_col_TracksLyrics &quot;&gt;"/>
+ </extract>
+ </provider>
+ <provider name="lyrics.com" title="{artist} - {title} Lyrics" charset="utf-8" url="http://www.lyrics.com/lyrics/{artist}/{title}.html">
+ <urlFormat replace=" _@,;&amp;\/&quot;" with="-"/>
+ <urlFormat replace="'." with=""/>
+ <extract>
+ <item tag="&lt;div id=&quot;lyrics&quot; class=&quot;SCREENONLY&quot;&gt;"/>
+ </extract>
+ <exclude>
+ <item begin="&lt;br&gt;&lt;br&gt;&lt;a target='_blank'" end="&gt;&lt;/a&gt;"/>
+ </exclude>
+ <invalidIndicator value="Click to search for the Lyrics on Lyrics.com"/>
+ <invalidIndicator value="we do not have the lyric for this song"/>
+ </provider>
+ <provider name="lyrics.wikia.com" title="{artist}:{title} Lyrics - " charset="utf-8" url="http://lyrics.wikia.com/{Artist}:{Title}">
+ <urlFormat replace=" _@;\&quot;" with="_"/>
+ <urlFormat replace="?" with="%3F"/>
+ <extract>
+ <item begin="&lt;div class='lyricbox'&gt;" end="&lt;div class='lyricsbreak'"/>
+ </extract>
+ <exclude>
+ <item tag="&lt;div class='rtMatcher'&gt;"/>
+ <item tag="&lt;span style=&quot;padding:1em&quot;&gt;"/>
+ </exclude>
+ </provider>
+ <provider name="lyricsbay.com" title="{title} lyrics {artist}" charset="iso-8859-1" url="http://www.lyricsbay.com/{title}_lyrics-{artist}.html">
+ <urlFormat replace=" _@,;&amp;\/'&quot;" with="_"/>
+ <urlFormat replace="." with=""/>
+ <extract>
+ <item tag="&lt;div id=EchoTopic&gt;"/>
+ </extract>
+ <exclude>
+ <item tag="&lt;textarea name=&quot;songscpy&quot; id=&quot;songscpyid&quot; onclick=&quot;callselect('songscpyid','selectswf')&quot; rows=&quot;3&quot; cols=&quot;45&quot; READONLY&gt;"/>
+ </exclude>
+ </provider>
+ <provider name="lyricsdownload.com" title="{artist} - {title} LYRICS" charset="utf-8" url="http://www.lyricsdownload.com/{artist}-{title}-lyrics.html">
+ <urlFormat replace=" _@,;&amp;\/&quot;" with="-"/>
+ <urlFormat replace="." with=""/>
+ <extract>
+ <item tag="&lt;div id=&quot;div_customCSS&quot;&gt;"/>
+ </extract>
+ <invalidIndicator value="We haven't lyrics of this song"/>
+ </provider>
+ <provider name="lyricsmania.com" title="{artist} - {title} Lyrics" charset="iso-8859-1" url="http://www.lyricsmania.com/{title}_lyrics_{artist}.html">
+ <urlFormat replace=" _@;&amp;\/&quot;'." with="_"/>
+ <extract>
+ <item begin="&lt;span style=&quot;font-size:14px;&quot;&gt;" end="&lt;span style=&quot;font-size:14px;&quot;&gt;"/>
+ <item begin="&lt;/center&gt;" end="&lt;a"/>
+ </extract>
+ <invalidIndicator value="The lyrics you requested is not in our archive yet,"/>
+ </provider>
+ <provider name="lyricsmode.com" title="{artist} - {title} lyrics" charset="iso-8859-1" url="http://www.lyricsmode.com/lyrics/{a}/{artist}/{title}.html">
+ <urlFormat replace=" ._@,;&amp;\/&quot;" with="_"/>
+ <extract>
+ <item tag="&lt;div id='songlyrics_h' class='dn'&gt;"/>
+ </extract>
+ <invalidIndicator value="Sorry, we have no"/>
+ </provider>
+ <provider name="lyricsplugin.com" title="{artist} - {title} Lyrics" charset="utf-8" url="http://www.lyricsplugin.com/winamp03/plugin/?title={title}&amp;artist={artist}">
+ <urlFormat replace="_@;&amp;\/&quot;" with="-"/>
+ <urlFormat replace="'" with=""/>
+ <urlFormat replace=" " with="%20"/>
+ <extract>
+ <item tag="&lt;div id=&quot;lyrics&quot;&gt;"/>
+ </extract>
+ </provider>
+ <provider name="lyricsreg.com" title="{title} lyrics {artist}" charset="iso-8859-1" url="http://www.lyricsreg.com/lyrics/{artist}/{title}/">
+ <urlFormat replace=" _@,;&amp;\/&quot;" with="+"/>
+ <urlFormat replace="'." with=""/>
+ <extract>
+ <item begin="Ringtone to your Cell" end="Ringtone to your Cell"/>
+ <item begin="&lt;div style=&quot;text-align:center;&quot;&gt;" end="&lt;a"/>
+ </extract>
+ <invalidIndicator value="Page not Found"/>
+ </provider>
+ <provider name="lyricstime.com" title="{artist} - {title} Lyrics" charset="iso-8859-1" url="http://www.lyricstime.com/{artist}-{title}-lyrics.html">
+ <urlFormat replace=" _@,;&amp;\/&quot;'" with="-"/>
+ <urlFormat replace="." with=""/>
+ <extract>
+ <item tag="&lt;div id=&quot;songlyrics&quot; &gt;"/>
+ <item tag="&lt;p&gt;"/>
+ </extract>
+ </provider>
+ <provider name="lyriki.com" title="" charset="utf-8" url="http://www.lyriki.com/{artist}:{title}">
+ <urlFormat replace=" _@,;&amp;\/&quot;" with="_"/>
+ <urlFormat replace="." with=""/>
+ <extract>
+ <item begin="&lt;/table&gt;" end="&lt;div class=&quot;printfooter&quot;&gt;"/>
+ <item tag="&lt;p&gt;"/>
+ </extract>
+ </provider>
+ <provider name="metrolyrics.com" title="{artist} - {title} LYRICS" charset="utf-8" url="http://www.metrolyrics.com/{title}-lyrics-{artist}.html">
+ <urlFormat replace=" _@,;&amp;\/&quot;" with="-"/>
+ <urlFormat replace="'." with=""/>
+ <extract>
+ <item tag="&lt;span id=&quot;lyrics&quot;&gt;"/>
+ </extract>
+ <extract>
+ <item tag="&lt;div id=&quot;lyrics&quot;&gt;"/>
+ </extract>
+ <exclude>
+ <item tag="&lt;h5&gt;"/>
+ </exclude>
+ <invalidIndicator value="These lyrics are missing"/>
+ </provider>
+ <provider name="mp3lyrics.org" title="{artist} &amp;quot;{title}&amp;quot; Lyrics" charset="utf-8" url="http://www.mp3lyrics.org/{a}/{artist}/{title}/">
+ <urlFormat replace=" _@,;&amp;\/&quot;" with="-"/>
+ <urlFormat replace="'." with=""/>
+ <extract>
+ <item tag="&lt;span id=gn_lyricsB&gt;"/>
+ </extract>
+ <extract>
+ <item tag="&lt;div class=&quot;KonaBody&quot; id=&quot;EchoTopic&quot;&gt;"/>
+ </extract>
+ <exclude>
+ <item tag="&lt;font size=2&gt;"/>
+ <item begin="&lt;b&gt;&lt;i&gt;" end="&lt;/u&gt;&lt;/b&gt;:"/>
+ <item begin="&lt;b&gt;Lyrics" end="&lt;/b&gt;"/>
+ </exclude>
+ <invalidIndicator value="Something went wrong"/>
+ </provider>
+ <provider name="musixmatch.com" title="{artist} - {title} lyrics | Musixmatch" charset="utf-8" url="https://www.musixmatch.com/lyrics/{Artist}/{Title}">
+ <urlFormat replace=" _@;\/&quot;'()[]" with="-"/>
+ <urlFormat replace="?" with=""/>
+ <extract>
+ <item begin="&lt;span id=&quot;lyrics-html&quot;" end="&lt;/span&gt;"/>
+ </extract>
+ <exclude>
+ <item begin=" data-reactid=&quot;" end="&quot;&gt;"/>
+ </exclude>
+ <invalidIndicator value="We couldn't find that page."/>
+ </provider>
+ <provider name="seeklyrics.com" title="{artist} - {title} Lyrics" charset="iso-8859-1" url="http://www.seeklyrics.com/lyrics/{Artist}/{Title}.html">
+ <urlFormat replace=" _@,;&amp;\/'&quot;" with="-"/>
+ <urlFormat replace="." with=""/>
+ <extract>
+ <item tag="&lt;div id=&quot;songlyrics&quot;&gt;"/>
+ </extract>
+ </provider>
+ <provider name="songlyrics.com" title="{title} LYRICS - {artist}" charset="utf-8" url="http://www.songlyrics.com/{artist}/{title}-lyrics/">
+ <urlFormat replace=" ._@,;&amp;\/&quot;" with="-"/>
+ <urlFormat replace="'" with="_"/>
+ <extract>
+ <item tag="&lt;p id=&quot;songLyricsDiv&quot; ondragstart=&quot;return false;&quot; onselectstart=&quot;return false;&quot; oncontextmenu=&quot;return false;&quot; class=&quot;songLyricsV14&quot; style=&quot;font-size: 14px;z-index: 9999;position: absolute;left: -6000px;&quot;&gt;"/>
+ </extract>
+ <exclude>
+ <item begin="&#10;[" end="] "/>
+ </exclude>
+ <invalidIndicator value="Sorry, we have no"/>
+ <invalidIndicator value="This is an upcoming album and we do not have the"/>
+ </provider>
+ <provider name="tekstowo.pl (Original lyric language)" title="{artist} - {title} - tekst" charset="utf-8" url="http://www.tekstowo.pl/piosenka,{artist},{title}.html">
+ <urlFormat replace=" _@,;&amp;\/'&quot;." with="_"/>
+ <extract>
+ <item begin="&lt;div class=&quot;song-text&quot;&gt;" end="&lt;a href=&quot;javascript:;&quot;"/>
+ </extract>
+ <extract>
+ <item tag="&lt;div class=&quot;tlumaczenie&quot;&gt;"/>
+ </extract>
+ <exclude>
+ <item begin="&lt;h2&gt;" end="&lt;/h2&gt;&lt;br /&gt;"/>
+ </exclude>
+ </provider>
+ <provider name="tekstowo.pl (Translated to Polish)" title="{artist} - {title} - tekst" charset="utf-8" url="http://www.tekstowo.pl/piosenka,{artist},{title}.html">
+ <urlFormat replace=" _@,;&amp;\/'&quot;." with="_"/>
+ <extract>
+ <item begin="&lt;div id=&quot;translation&quot; class=" end="&lt;a href="/>
+ </extract>
+ <exclude>
+ <item begin="&quot;id-" end="&quot;&gt;"/>
+ </exclude>
+ </provider>
+ <provider name="teksty.org" title="{artist} - {title} - tekst" charset="utf-8" url="http://teksty.org/{artist},{title},tekst-piosenki">
+ <urlFormat replace=" _@,;&amp;\/&quot;'" with="-"/>
+ <urlFormat replace="." with=""/>
+ <extract>
+ <item begin="&lt;div class=&quot;songText&quot; id=&quot;songContent&quot;&gt;" end="&lt;/div&gt;"/>
+ </extract>
+ </provider>
+ <provider name="vagalume.com.br" title="{title} de {artist} no VAGALUME" charset="iso-8859-1" url="http://vagalume.com.br/{artist}/{title}.html">
+ <urlFormat replace=" _@,;&amp;\/'&quot;." with="-"/>
+ <extract>
+ <item tag="&lt;span class=&quot;editable_area&quot;&gt;"/>
+ </extract>
+ </provider>
+ <provider name="vagalume.com.br (Portuguese translations)" title="{title} de {artist} no VAGALUME" charset="iso-8859-1" url="http://vagalume.com.br/{artist}/{title}-traducao.html">
+ <urlFormat replace=" _@,;&amp;\/'&quot;." with="-"/>
+ <extract>
+ <item tag="&lt;div class=&quot;tab_traducao sideBySide lyricArea tab_tra_pt&quot;&gt;"/>
+ </extract>
+ </provider>
+</lyricproviders>