diff --git a/src/covermanager/musicbrainzcoverprovider.cpp b/src/covermanager/musicbrainzcoverprovider.cpp index a17b155ab..e9fd6550a 100644 --- a/src/covermanager/musicbrainzcoverprovider.cpp +++ b/src/covermanager/musicbrainzcoverprovider.cpp @@ -24,6 +24,7 @@ #include #include +#include #include #include #include @@ -36,28 +37,26 @@ #include "core/closure.h" #include "core/network.h" +#include "core/logging.h" #include "albumcoverfetcher.h" #include "coverprovider.h" #include "musicbrainzcoverprovider.h" +using std::count_if; using std::mem_fun; -namespace { - -static const char *kReleaseSearchUrl = "https://musicbrainz.org/ws/2/release/"; -static const char *kAlbumCoverUrl = "https://coverartarchive.org/release/%1/front"; -} // namespace +const char *MusicbrainzCoverProvider::kReleaseSearchUrl = "https://musicbrainz.org/ws/2/release/"; +const char *MusicbrainzCoverProvider::kAlbumCoverUrl = "https://coverartarchive.org/release/%1/front"; MusicbrainzCoverProvider::MusicbrainzCoverProvider(QObject *parent): CoverProvider("MusicBrainz", true, parent), network_(new NetworkAccessManager(this)) {} bool MusicbrainzCoverProvider::StartSearch(const QString &artist, const QString &album, int id) { - // Find release information. - QUrl url(kReleaseSearchUrl); QString query = QString("release:\"%1\" AND artist:\"%2\"").arg(album.trimmed().replace('"', "\\\"")).arg(artist.trimmed().replace('"', "\\\"")); QUrlQuery url_query; url_query.addQueryItem("query", query); - url_query.addQueryItem("limit", "5"); + url_query.addQueryItem("limit", "15"); + QUrl url(kReleaseSearchUrl); url.setQuery(url_query); QNetworkRequest request(url); @@ -75,7 +74,9 @@ void MusicbrainzCoverProvider::ReleaseSearchFinished(QNetworkReply *reply, int i QList releases; - QXmlStreamReader reader(reply); + QByteArray data(reply->readAll()); + //qLog(Debug) << data; + QXmlStreamReader reader(data); while (!reader.atEnd()) { QXmlStreamReader::TokenType type = reader.readNext(); if (type == QXmlStreamReader::StartElement && reader.name() == "release") { diff --git a/src/covermanager/musicbrainzcoverprovider.h b/src/covermanager/musicbrainzcoverprovider.h index 76489c685..aa23fe95f 100644 --- a/src/covermanager/musicbrainzcoverprovider.h +++ b/src/covermanager/musicbrainzcoverprovider.h @@ -39,7 +39,6 @@ class MusicbrainzCoverProvider : public CoverProvider { public: explicit MusicbrainzCoverProvider(QObject *parent = nullptr); - // CoverProvider virtual bool StartSearch(const QString &artist, const QString &album, int id); virtual void CancelSearch(int id); @@ -48,6 +47,8 @@ class MusicbrainzCoverProvider : public CoverProvider { void ImageCheckFinished(int id); private: + static const char *kReleaseSearchUrl; + static const char *kAlbumCoverUrl; QNetworkAccessManager *network_; QMultiMap image_checks_; QMap cover_names_;