From 826fad1ad4072b18c8a974f7cba62853abed56b6 Mon Sep 17 00:00:00 2001 From: Jonas Kvinge Date: Mon, 5 Aug 2024 18:24:47 +0200 Subject: [PATCH] SpotifyRequest: Limit returned albums to queried artists --- src/spotify/spotifyrequest.cpp | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/spotify/spotifyrequest.cpp b/src/spotify/spotifyrequest.cpp index 5dd4df8c..460ae748 100644 --- a/src/spotify/spotifyrequest.cpp +++ b/src/spotify/spotifyrequest.cpp @@ -728,15 +728,25 @@ void SpotifyRequest::AlbumsReceived(QNetworkReply *reply, const Artist &artist_a if (obj_item.contains(QLatin1String("artists")) && obj_item[QLatin1String("artists")].isArray()) { QJsonArray array_artists = obj_item[QLatin1String("artists")].toArray(); + bool artist_matches = false; for (const QJsonValueRef value : array_artists) { if (!value.isObject()) { continue; } QJsonObject obj_artist = value.toObject(); if (obj_artist.isEmpty() || !obj_artist.contains(QLatin1String("id")) || !obj_artist.contains(QLatin1String("name"))) continue; - artist.artist_id = obj_artist[QLatin1String("id")].toString(); - artist.artist = obj_artist[QLatin1String("name")].toString(); - break; + if (artist.artist_id.isEmpty() || artist.artist_id == artist_artist.artist_id) { + artist.artist_id = obj_artist[QLatin1String("id")].toString(); + artist.artist = obj_artist[QLatin1String("name")].toString(); + if (artist.artist_id == artist_artist.artist_id) { + artist_matches = true; + break; + } + } + } + if (!artist_matches && (type_ == Type::FavouriteArtists || type_ == Type::SearchArtists)) { + AlbumsFinishCheck(artist_artist); + return; } }