From 1abe1e566fd2039e8914400416b241d4adf41ca0 Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Sun, 6 Sep 2009 10:53:44 +0000 Subject: removed broken LyricWiki.org support, added lyricsplugin.com instead git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@1188 90c681e8-e032-0410-971d-27865f9a5e38 --- src/plugins/General/lyrics/lyricswindow.cpp | 64 +++++++++-------------------- 1 file changed, 19 insertions(+), 45 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 04fb7f330..a3c9262bd 100644 --- a/src/plugins/General/lyrics/lyricswindow.cpp +++ b/src/plugins/General/lyrics/lyricswindow.cpp @@ -28,7 +28,6 @@ LyricsWindow::LyricsWindow(const QString &artist, const QString &title, QWidget *parent) : QWidget(parent) { - m_parse_url = FALSE; ui.setupUi(this); setWindowFlags(Qt::Dialog); setAttribute(Qt::WA_DeleteOnClose); @@ -57,52 +56,28 @@ void LyricsWindow::showText(bool error) if (error) { ui.textEdit->setText(m_http->errorString()); - m_parse_url = FALSE; return; } QString content = QString::fromUtf8(m_http->readAll().constData()); - if(m_parse_url) - { - QRegExp url_regexp(""); - if(url_regexp.indexIn(content) > 1) - { - QString url = qPrintable(url_regexp.cap(1)); - qDebug("LyricsWindow: url1=%s", qPrintable(url)); - if(url.endsWith("action=edit")) - ui.textEdit->setHtml(""+tr("Not found")+""); - else - { - url.replace("lyricwiki.org", "lyrics.wikia.com/lyrics"); - m_http->setHost("lyrics.wikia.com"); - qDebug("LyricsWindow: url2=%s", qPrintable(url)); - m_http->get(url); - } - } - else - ui.textEdit->setHtml(""+tr("Error")+""); - } + + QRegExp artist_regexp("
([^<]*)
"); + QRegExp title_regexp("
([^<]*)
"); + QRegExp lyrics_regexp("
([^<]*)
"); + artist_regexp.indexIn(content); + title_regexp.indexIn(content); + content.replace("
", "[br /]"); + lyrics_regexp.indexIn(content); + + QString text = "

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

"; + QString lyrics = lyrics_regexp.cap(1); + lyrics.replace("[br /]", "
"); + if(lyrics.trimmed().isEmpty()) + ui.textEdit->setHtml("" + tr("Not found") + ""); else { - QRegExp caption_regexp("

([^<]*)

"); - caption_regexp.indexIn(content); - QString text = "

" + caption_regexp.cap(1) + "

"; - text.replace(":", " - "); - int lyric_begin = content.indexOf("
"); - if(lyric_begin > 0) - { - int lyric_end = content.indexOf("
", lyric_begin); - if(lyric_end > 0) - { - text.append(content.mid(lyric_begin, lyric_end - lyric_begin-6)); - ui.textEdit->setHtml(text); - } - else - ui.textEdit->setHtml(""+tr("Error")+""); - } - else - ui.textEdit->setHtml(""+tr("Error")+""); + text += lyrics; + ui.textEdit->setHtml(text); } - m_parse_url = FALSE; } void LyricsWindow::showState(int state) @@ -134,9 +109,8 @@ void LyricsWindow::showState(int state) void LyricsWindow::on_searchPushButton_clicked() { - m_http->setHost("lyricwiki.org"); + m_http->setHost("www.lyricsplugin.com"); setWindowTitle(QString(tr("Lyrics: %1 - %2")).arg(ui.artistLineEdit->text()).arg(ui.titleLineEdit->text())); - m_http->get("/api.php?func=getSong&artist=" + QUrl::toPercentEncoding(ui.artistLineEdit->text()) - +"&song=" + QUrl::toPercentEncoding(ui.titleLineEdit->text()) +"&fmt=html"); - m_parse_url = TRUE; + m_http->get("/winamp03/plugin/?artist=" + QUrl::toPercentEncoding(ui.artistLineEdit->text()) + +"&title=" + QUrl::toPercentEncoding(ui.titleLineEdit->text())); } -- cgit v1.2.3-13-gbd6f