summaryrefslogtreecommitdiffstats
path: root/webdownloader.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'webdownloader.cpp')
-rw-r--r--webdownloader.cpp19
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();