diff options
Diffstat (limited to 'webdownloader.cpp')
-rw-r--r-- | webdownloader.cpp | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/webdownloader.cpp b/webdownloader.cpp index 897ce80..78941fb 100644 --- a/webdownloader.cpp +++ b/webdownloader.cpp @@ -26,6 +26,8 @@ void WebDownloader::fetchData(QString artist, QString album){ void WebDownloader::dlFinished(QNetworkReply *reply){ mData.clear(); mOtherData.clear(); + mArtistId.clear(); + mAlternateArtists.clear(); QByteArray res = reply->readAll(); QJsonDocument jDoc = QJsonDocument::fromJson(res); QJsonObject docObj = jDoc.object(); @@ -44,16 +46,29 @@ void WebDownloader::dlFinished(QNetworkReply *reply){ mArtistId = aId; std::for_each(relArr.constBegin(), relArr.constEnd(), [this, aId](auto c){ QString id = c.toObject().value("artist-credit").toArray().at(0).toObject().value("artist").toObject().value("id").toString(); + QString linkId = c.toObject().value("release-group").toObject().value("id").toString(); + QString title = c.toObject().value("title").toString().toLower(); if(id == aId){ QString primary = c.toObject().value("release-group").toObject().value("primary-type").toString().toLower(); QString status = c.toObject().value("status").toString().toLower(); if(primary == "album" && status == "official"){ - QString linkId = c.toObject().value("release-group").toObject().value("id").toString(); - QString title = c.toObject().value("title").toString().toLower(); mOtherData.insert(linkId, title); } } }); + }else{ + std::for_each(relArr.constBegin(), relArr.constEnd(), [this](auto c){ + QString disamb = c.toObject().value("artist-credit").toArray().at(0).toObject().value("artist").toObject().value("disambiguation").toString(); + QString name = c.toObject().value("artist-credit").toArray().at(0).toObject().value("artist").toObject().value("name").toString(); + QString linkId = c.toObject().value("artist-credit").toArray().at(0).toObject().value("artist").toObject().value("id").toString(); + QString t; + if(!disamb.isEmpty()){ + t = QString("%1 (%2)").arg(name).arg(disamb); + }else{ + t = name; + } + mAlternateArtists.insert(linkId, t); + }); } reply->deleteLater(); emit done(); |