aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/General/lyrics/lyricswindow.cpp
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2010-08-13 15:47:32 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2010-08-13 15:47:32 +0000
commit0d0e92bb52188c28c99f69376c4b6ee024a06e8e (patch)
treee2b231ca58fecab6c3d88e331c208cbfa57a2602 /src/plugins/General/lyrics/lyricswindow.cpp
parent7f7f5b2e8a47f92bf9d051847771233a5734cd7b (diff)
downloadqmmp-0d0e92bb52188c28c99f69376c4b6ee024a06e8e.tar.gz
qmmp-0d0e92bb52188c28c99f69376c4b6ee024a06e8e.tar.bz2
qmmp-0d0e92bb52188c28c99f69376c4b6ee024a06e8e.zip
fixed lyrics plugin
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@1825 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/General/lyrics/lyricswindow.cpp')
-rw-r--r--src/plugins/General/lyrics/lyricswindow.cpp32
1 files changed, 31 insertions, 1 deletions
diff --git a/src/plugins/General/lyrics/lyricswindow.cpp b/src/plugins/General/lyrics/lyricswindow.cpp
index aa19cbfbe..03ac3b2bd 100644
--- a/src/plugins/General/lyrics/lyricswindow.cpp
+++ b/src/plugins/General/lyrics/lyricswindow.cpp
@@ -34,6 +34,7 @@ LyricsWindow::LyricsWindow(const QString &artist, const QString &title, QWidget
setWindowFlags(Qt::Dialog);
setAttribute(Qt::WA_DeleteOnClose);
setAttribute(Qt::WA_QuitOnClose, false);
+ m_requestReply = 0;
ui.artistLineEdit->setText(artist);
ui.titleLineEdit->setText(title);
m_http = new QNetworkAccessManager(this);
@@ -65,10 +66,39 @@ void LyricsWindow::showText(QNetworkReply *reply)
{
ui.stateLabel->setText(tr("Error"));
ui.textBrowser->setText(reply->errorString());
+ m_requestReply = 0;
+ reply->deleteLater();
return;
}
QString content = QString::fromUtf8(reply->readAll().constData());
+ if(m_requestReply == reply)
+ {
+ m_requestReply = 0;
+ QRegExp js_params("javascript:getContent\\(\\\'(.*)\\\', \\\'(.*)\\\', \\\'(.*)\\\', \\\'(.*)\\\'");
+ js_params.setMinimal (true);
+ js_params.indexIn(content);
+
+ QUrl url = QString("http://www.lyricsplugin.com/winamp03/plugin/content.php?")
+ + "artist=" + js_params.cap(1)
+ + "&title=" + js_params.cap(2)
+ + "&time=" + js_params.cap(3)
+ + "&check=" + js_params.cap(4);
+
+ QString referer = QString("http://www.lyricsplugin.com/winamp03/plugin/?")
+ + "artist=" + js_params.cap(1)
+ + "&title=" + js_params.cap(2);
+
+ qDebug("LyricsWindow: request url = %s", url.toEncoded().constData());
+ QNetworkRequest request;
+ request.setUrl(url);
+ request.setRawHeader("Referer", referer.toAscii());
+ ui.stateLabel->setText(tr("Receiving"));
+ m_http->get(request);
+ reply->deleteLater();
+ return;
+ }
+
QRegExp artist_regexp("<div id=\\\"artist\\\">(.*)</div>");
artist_regexp.setMinimal(true);
QRegExp title_regexp("<div id=\\\"title\\\">([^<]*)</div>");
@@ -100,5 +130,5 @@ void LyricsWindow::on_searchPushButton_clicked()
request.setUrl(QUrl("http://www.lyricsplugin.com/winamp03/plugin/?artist=" +
ui.artistLineEdit->text()+"&title=" + ui.titleLineEdit->text()));
request.setRawHeader("User-Agent", QString("qmmp/%1").arg(Qmmp::strVersion()).toAscii());
- m_http->get(request);
+ m_requestReply = m_http->get(request);
}