Rolled back debian/control deps changes
[maelyrica:maelyrica.git] / LyricWikiDownloader.cpp
1 #include "LyricWikiDownloader.h"
2 #include <QTextDocument>
3 #include <QDebug>
4
5 const QString LyricWikiDownloader::rooturl("http://lyrics.wikia.com");
6
7 string LyricWikiDownloader::toProviderCode(const string &artist, const string &track) const
8 {
9     QString artist_www, track_www;
10     artist_www = QString::fromStdString(artist).trimmed().replace(' ', '_');
11     track_www = QString::fromStdString(track).trimmed().replace(' ', '_');
12     return (QString(rooturl + "/%1:%2").arg(artist_www, track_www)).toStdString();
13 }
14
15 bool LyricWikiDownloader::parse()
16 {
17     qDebug() << "parsing\n";
18     istringstream temp(buff.str());
19     buff.str("");
20     string line;
21     QString line_QStr;
22     qDebug() << "variables set up\n";
23     while (temp.good())
24     {
25         getline(temp, line);
26         qDebug() << "Got line = " << QString::fromStdString(line);
27         if ((line_QStr = QString::fromStdString(line)).contains("<div class='lyricbox\'>"))
28         {
29             qDebug() << "Line contains lyricbox!!\n";
30             int lyricsstart = line_QStr.indexOf("</div>") + 6;
31             int lyricslength = line_QStr.indexOf("<!-- ") - lyricsstart;
32             /*copy(line_QStr.begin() + line_QStr.indexOf("</div>") + 6, // + length of "</div>"
33                  line_QStr.begin() + line_QStr.indexOf("<!-- "),
34                  lyrics_qstr.begin());*/
35             lyrics_qstr = line_QStr.mid(lyricsstart, lyricslength);
36             break;
37         }
38     }
39     if ( !temp.good() ) return false; // something went wrong
40
41     QTextDocument lyricsHtml;
42     lyricsHtml.setHtml(lyrics_qstr);
43     lyrics_qstr = lyricsHtml.toPlainText();
44     return true;
45 }