aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2011-01-25 18:58:43 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2011-01-25 18:58:43 +0000
commite7edcfe24763067d62e4e4145c01fb6261e0d30d (patch)
tree177dae97509a71daff37ee02cb82a50ab5e39c72 /src
parent5ae6aa8f58bdaf887f3b419c31a69435d5fb0a02 (diff)
downloadqmmp-e7edcfe24763067d62e4e4145c01fb6261e0d30d.tar.gz
qmmp-e7edcfe24763067d62e4e4145c01fb6261e0d30d.tar.bz2
qmmp-e7edcfe24763067d62e4e4145c01fb6261e0d30d.zip
switched to lyricswiki again
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@2023 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src')
-rw-r--r--src/plugins/General/CMakeLists.txt2
-rw-r--r--src/plugins/General/General.pro4
-rw-r--r--src/plugins/General/lyrics/lyricswindow.cpp87
-rw-r--r--src/plugins/General/lyrics/lyricswindow.h3
4 files changed, 68 insertions, 28 deletions
diff --git a/src/plugins/General/CMakeLists.txt b/src/plugins/General/CMakeLists.txt
index 64ae88887..cb8931cc0 100644
--- a/src/plugins/General/CMakeLists.txt
+++ b/src/plugins/General/CMakeLists.txt
@@ -2,7 +2,7 @@ SET(USE_MPRIS TRUE CACHE BOOL "enable/disable mpris plugin")
SET(USE_SCROBBLER TRUE CACHE BOOL "enable/disable scrobbler plugin")
SET(USE_STATICON TRUE CACHE BOOL "enable/disable status icon plugin")
SET(USE_NOTIFIER TRUE CACHE BOOL "enable/disable notifier plugin")
-#SET(USE_LYRICS TRUE CACHE BOOL "enable/disable lyrics version")
+SET(USE_LYRICS TRUE CACHE BOOL "enable/disable lyrics version")
SET(USE_HAL TRUE CACHE BOOL "enable/disable hal plugin")
SET(USE_UDISKS TRUE CACHE BOOL "enable/disable udisks plugin")
SET(USE_HOTKEY TRUE CACHE BOOL "enable/disable global hotkey plugin")
diff --git a/src/plugins/General/General.pro b/src/plugins/General/General.pro
index 298c36d85..f1f1facfa 100644
--- a/src/plugins/General/General.pro
+++ b/src/plugins/General/General.pro
@@ -1,5 +1,6 @@
SUBDIRS += statusicon \
notifier \
+ lyrics \
scrobbler \
fileops
unix:SUBDIRS += mpris \
@@ -7,5 +8,6 @@ unix:SUBDIRS += mpris \
udisks \
hotkey \
covermanager \
- kdenotify
+ kdenotify \
+ streambrowser
TEMPLATE = subdirs
diff --git a/src/plugins/General/lyrics/lyricswindow.cpp b/src/plugins/General/lyrics/lyricswindow.cpp
index a9ec4474c..25bf49554 100644
--- a/src/plugins/General/lyrics/lyricswindow.cpp
+++ b/src/plugins/General/lyrics/lyricswindow.cpp
@@ -71,24 +71,67 @@ void LyricsWindow::showText(QNetworkReply *reply)
return;
}
QString content = QString::fromUtf8(reply->readAll().constData());
+ //qDebug("=%s=",qPrintable(content));
if(m_requestReply == reply)
{
m_requestReply = 0;
- QRegExp js_params("javascript:getContent\\(\\\'(.*)\\\', \\\'(.*)\\\', \\\'(.*)\\\', \\\'(.*)\\\'");
- js_params.setMinimal (true);
- js_params.indexIn(content);
+ reply->deleteLater();
+ QRegExp artist_regexp("<artist>(.*)</artist>");
+ artist_regexp.setMinimal(true);
+ QRegExp song_regexp("<song>(.*)</song>");
+ song_regexp.setMinimal(true);
+ QRegExp lyrics_regexp("<lyrics>(.*)</lyrics>");
+ lyrics_regexp.setMinimal(true);
+ QRegExp url_regexp("<url>(.*)</url>");
+ url_regexp.setMinimal(true);
- QUrl url = QUrl::fromEncoded(QByteArray("http://www.lyricsplugin.com/winamp03/plugin/content.php?")
- + "artist=" + js_params.cap(1).toAscii()
- + "&title=" + js_params.cap(2).toAscii()
- + "&time=" + js_params.cap(3).toAscii()
- + "&check=" + js_params.cap(4).toAscii());
+ if(artist_regexp.indexIn(content) < 0)
+ {
+ ui.textBrowser->setHtml("<b>" + tr("Error") + "</b>");
+ return;
+ }
+
+ if(artist_regexp.indexIn(content) < 0)
+ {
+ ui.textBrowser->setHtml("<b>" + tr("Error") + "</b>");
+ return;
+ }
+ else
+ m_artist = artist_regexp.cap(1);
- QString referer = QString("http://www.lyricsplugin.com/winamp03/plugin/?")
- + "artist=" + js_params.cap(1)
- + "&title=" + js_params.cap(2);
+ if(song_regexp.indexIn(content) < 0)
+ {
+ ui.textBrowser->setHtml("<b>" + tr("Error") + "</b>");
+ return;
+ }
+ else
+ m_title = song_regexp.cap(1);
+ if(lyrics_regexp.indexIn(content) < 0)
+ {
+ ui.textBrowser->setHtml("<b>" + tr("Error") + "</b>");
+ return;
+ }
+ else if(lyrics_regexp.cap(1) == "Not found")
+ {
+ ui.textBrowser->setHtml("<b>" + tr("Not found") + "</b>");
+ return;
+ }
+
+ if(url_regexp.indexIn(content) < 0)
+ {
+ ui.textBrowser->setHtml("<b>" + tr("Error") + "</b>");
+ return;
+ }
+
+ QString temp = url_regexp.cap(1).toAscii();
+ qDebug("LyricsWindow: received url = %s", qPrintable(temp));
+ temp.replace("http://lyrics.wikia.com/","http://lyrics.wikia.com/index.php?title=");
+ temp.append("&action=edit");
+
+ QUrl url = QUrl::fromEncoded(temp.toAscii());
+ QString referer = url_regexp.cap(1);
qDebug("LyricsWindow: request url = %s", url.toEncoded().constData());
QNetworkRequest request;
request.setUrl(url);
@@ -98,20 +141,15 @@ void LyricsWindow::showText(QNetworkReply *reply)
reply->deleteLater();
return;
}
-
- QRegExp artist_regexp("<div id=\\\"artist\\\">(.*)</div>");
- artist_regexp.setMinimal(true);
- QRegExp title_regexp("<div id=\\\"title\\\">([^<]*)</div>");
- QRegExp lyrics_regexp("<div id=\\\"lyrics\\\">([^<]*)</div>");
- artist_regexp.indexIn(content);
- title_regexp.indexIn(content);
- content.replace("<br />", "[br /]");
+ content.replace("&lt;", "<");
+ QRegExp lyrics_regexp("<lyrics>(.*)</lyrics>");
lyrics_regexp.indexIn(content);
- QString text = "<h2>" +artist_regexp.cap(1) + " - " + title_regexp.cap(1) + "</h2>";
+ QString text = "<h2>" + m_artist + " - " + m_title + "</h2>";
QString lyrics = lyrics_regexp.cap(1);
- lyrics.replace("[br /]", "<br />");
- if(lyrics.trimmed().isEmpty())
+ lyrics = lyrics.trimmed();
+ lyrics.replace("\n", "<br>");
+ if(lyrics.isEmpty())
ui.textBrowser->setHtml("<b>" + tr("Not found") + "</b>");
else
{
@@ -127,9 +165,8 @@ void LyricsWindow::on_searchPushButton_clicked()
setWindowTitle(QString(tr("Lyrics: %1 - %2")).arg(ui.artistLineEdit->text())
.arg(ui.titleLineEdit->text()));
QNetworkRequest request;
- request.setUrl(QUrl("http://www.lyricsplugin.com/winamp03/plugin/?artist=" +
- ui.artistLineEdit->text()+"&title=" + ui.titleLineEdit->text()));
+ request.setUrl(QUrl("http://lyrics.wikia.com/api.php?action=lyrics&artist=" +
+ ui.artistLineEdit->text()+"&song=" + ui.titleLineEdit->text() + "&fmt=xml"));
request.setRawHeader("User-Agent", QString("qmmp/%1").arg(Qmmp::strVersion()).toAscii());
m_requestReply = m_http->get(request);
}
-
diff --git a/src/plugins/General/lyrics/lyricswindow.h b/src/plugins/General/lyrics/lyricswindow.h
index 026f71d0b..825885a36 100644
--- a/src/plugins/General/lyrics/lyricswindow.h
+++ b/src/plugins/General/lyrics/lyricswindow.h
@@ -28,7 +28,7 @@ class QNetworkAccessManager;
class QNetworkReply;
/**
- @author Ilya Kotov <forkotov02@hotmail.ru>
+ @author Ilya Kotov <forkotov02@hotmail.ru>
*/
class LyricsWindow : public QWidget
{
@@ -46,6 +46,7 @@ private:
Ui::LyricsWindow ui;
QNetworkAccessManager *m_http;
QNetworkReply *m_requestReply;
+ QString m_artist, m_title;
};
#endif