From e7edcfe24763067d62e4e4145c01fb6261e0d30d Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Tue, 25 Jan 2011 18:58:43 +0000 Subject: switched to lyricswiki again git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@2023 90c681e8-e032-0410-971d-27865f9a5e38 --- src/plugins/General/lyrics/lyricswindow.cpp | 87 ++++++++++++++++++++--------- 1 file changed, 62 insertions(+), 25 deletions(-) (limited to 'src/plugins/General/lyrics/lyricswindow.cpp') 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_regexp.setMinimal(true); + QRegExp song_regexp("(.*)"); + song_regexp.setMinimal(true); + QRegExp lyrics_regexp("(.*)"); + lyrics_regexp.setMinimal(true); + QRegExp url_regexp("(.*)"); + 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("" + tr("Error") + ""); + return; + } + + if(artist_regexp.indexIn(content) < 0) + { + ui.textBrowser->setHtml("" + tr("Error") + ""); + 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("" + tr("Error") + ""); + return; + } + else + m_title = song_regexp.cap(1); + if(lyrics_regexp.indexIn(content) < 0) + { + ui.textBrowser->setHtml("" + tr("Error") + ""); + return; + } + else if(lyrics_regexp.cap(1) == "Not found") + { + ui.textBrowser->setHtml("" + tr("Not found") + ""); + return; + } + + if(url_regexp.indexIn(content) < 0) + { + ui.textBrowser->setHtml("" + tr("Error") + ""); + 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("
(.*)
"); - artist_regexp.setMinimal(true); - QRegExp title_regexp("
([^<]*)
"); - QRegExp lyrics_regexp("
([^<]*)
"); - artist_regexp.indexIn(content); - title_regexp.indexIn(content); - content.replace("
", "[br /]"); + content.replace("<", "<"); + QRegExp lyrics_regexp("(.*)"); lyrics_regexp.indexIn(content); - QString text = "

" +artist_regexp.cap(1) + " - " + title_regexp.cap(1) + "

"; + QString text = "

" + m_artist + " - " + m_title + "

"; QString lyrics = lyrics_regexp.cap(1); - lyrics.replace("[br /]", "
"); - if(lyrics.trimmed().isEmpty()) + lyrics = lyrics.trimmed(); + lyrics.replace("\n", "
"); + if(lyrics.isEmpty()) ui.textBrowser->setHtml("" + tr("Not found") + ""); 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); } - -- cgit v1.2.3-13-gbd6f