Tidal artist id fixes
This commit is contained in:
parent
5c2ca1e3d9
commit
e19b840ee6
|
@ -478,19 +478,19 @@ void TidalRequest::ArtistAlbumsReplyReceived(QNetworkReply *reply, const int art
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void TidalRequest::AlbumsReceived(QNetworkReply *reply, const int artist_id, const int limit_requested, const int offset_requested, const bool auto_login) {
|
void TidalRequest::AlbumsReceived(QNetworkReply *reply, const int artist_id_requested, const int limit_requested, const int offset_requested, const bool auto_login) {
|
||||||
|
|
||||||
QString error;
|
QString error;
|
||||||
QByteArray data = GetReplyData(reply, error, auto_login);
|
QByteArray data = GetReplyData(reply, error, auto_login);
|
||||||
|
|
||||||
if (data.isEmpty()) {
|
if (data.isEmpty()) {
|
||||||
AlbumsFinishCheck(artist_id);
|
AlbumsFinishCheck(artist_id_requested);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
QJsonObject json_obj = ExtractJsonObj(data, error);
|
QJsonObject json_obj = ExtractJsonObj(data, error);
|
||||||
if (json_obj.isEmpty()) {
|
if (json_obj.isEmpty()) {
|
||||||
AlbumsFinishCheck(artist_id);
|
AlbumsFinishCheck(artist_id_requested);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -499,7 +499,7 @@ void TidalRequest::AlbumsReceived(QNetworkReply *reply, const int artist_id, con
|
||||||
!json_obj.contains("totalNumberOfItems") ||
|
!json_obj.contains("totalNumberOfItems") ||
|
||||||
!json_obj.contains("items")) {
|
!json_obj.contains("items")) {
|
||||||
Error("Json object missing values.", json_obj);
|
Error("Json object missing values.", json_obj);
|
||||||
AlbumsFinishCheck(artist_id);
|
AlbumsFinishCheck(artist_id_requested);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -509,19 +509,19 @@ void TidalRequest::AlbumsReceived(QNetworkReply *reply, const int artist_id, con
|
||||||
|
|
||||||
if (offset != offset_requested) {
|
if (offset != offset_requested) {
|
||||||
Error(QString("Offset returned does not match offset requested! %1 != %2").arg(offset).arg(offset_requested));
|
Error(QString("Offset returned does not match offset requested! %1 != %2").arg(offset).arg(offset_requested));
|
||||||
AlbumsFinishCheck(artist_id);
|
AlbumsFinishCheck(artist_id_requested);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
QJsonValue json_value = ExtractItems(json_obj, error);
|
QJsonValue json_value = ExtractItems(json_obj, error);
|
||||||
if (!json_value.isArray()) {
|
if (!json_value.isArray()) {
|
||||||
AlbumsFinishCheck(artist_id);
|
AlbumsFinishCheck(artist_id_requested);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
QJsonArray json_items = json_value.toArray();
|
QJsonArray json_items = json_value.toArray();
|
||||||
if (json_items.isEmpty()) {
|
if (json_items.isEmpty()) {
|
||||||
no_results_ = true;
|
no_results_ = true;
|
||||||
AlbumsFinishCheck(artist_id);
|
AlbumsFinishCheck(artist_id_requested);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -587,10 +587,12 @@ void TidalRequest::AlbumsReceived(QNetworkReply *reply, const int artist_id, con
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
QJsonObject json_artist = json_value_artist.toObject();
|
QJsonObject json_artist = json_value_artist.toObject();
|
||||||
if (!json_artist.contains("name")) {
|
if (!json_artist.contains("id") || !json_artist.contains("name")) {
|
||||||
Error("Invalid Json reply, item artist missing name.", json_artist);
|
Error("Invalid Json reply, item artist missing id or name.", json_artist);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int artist_id = json_artist["id"].toInt();
|
||||||
QString artist = json_artist["name"].toString();
|
QString artist = json_artist["name"].toString();
|
||||||
|
|
||||||
QString quality = json_obj["audioQuality"].toString();
|
QString quality = json_obj["audioQuality"].toString();
|
||||||
|
@ -599,14 +601,19 @@ void TidalRequest::AlbumsReceived(QNetworkReply *reply, const int artist_id, con
|
||||||
//qLog(Debug) << "Tidal:" << artist << album << quality << copyright;
|
//qLog(Debug) << "Tidal:" << artist << album << quality << copyright;
|
||||||
|
|
||||||
Request request;
|
Request request;
|
||||||
request.artist_id = artist_id;
|
if (artist_id_requested == 0) {
|
||||||
|
request.artist_id = artist_id;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
request.artist_id = artist_id_requested;
|
||||||
|
}
|
||||||
request.album_id = album_id;
|
request.album_id = album_id;
|
||||||
request.album_artist = artist;
|
request.album_artist = artist;
|
||||||
album_songs_requests_pending_.insert(album_id, request);
|
album_songs_requests_pending_.insert(album_id, request);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
AlbumsFinishCheck(artist_id, limit_requested, offset, albums_total, albums_received);
|
AlbumsFinishCheck(artist_id_requested, limit_requested, offset, albums_total, albums_received);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -815,7 +822,7 @@ void TidalRequest::SongsFinishCheck(const int artist_id, const int album_id, con
|
||||||
AddSongsRequest(offset_next);
|
AddSongsRequest(offset_next);
|
||||||
break;
|
break;
|
||||||
case QueryType_SearchSongs:
|
case QueryType_SearchSongs:
|
||||||
// If artist_id and album_id is zero it means this it's a songs search where we fetch all albums too. So pass through.
|
// If artist_id and album_id isn't zero it means that it's a songs search where we fetch all albums too. So pass through.
|
||||||
if (artist_id == 0 && album_id == 0) {
|
if (artist_id == 0 && album_id == 0) {
|
||||||
AddSongsSearchRequest(offset_next);
|
AddSongsSearchRequest(offset_next);
|
||||||
break;
|
break;
|
||||||
|
@ -894,10 +901,11 @@ int TidalRequest::ParseSong(Song &song, const QJsonObject &json_obj, const int a
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
QJsonObject json_artist = json_value_artist.toObject();
|
QJsonObject json_artist = json_value_artist.toObject();
|
||||||
if (!json_artist.contains("name")) {
|
if (!json_artist.contains("id") || !json_artist.contains("name")) {
|
||||||
Error("Invalid Json reply, track artist is missing name.", json_artist);
|
Error("Invalid Json reply, track artist is missing id or name.", json_artist);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
int artist_id = json_artist["id"].toInt();
|
||||||
QString artist = json_artist["name"].toString();
|
QString artist = json_artist["name"].toString();
|
||||||
|
|
||||||
if (!json_value_album.isObject()) {
|
if (!json_value_album.isObject()) {
|
||||||
|
@ -949,7 +957,7 @@ int TidalRequest::ParseSong(Song &song, const QJsonObject &json_obj, const int a
|
||||||
song.set_source(Song::Source_Tidal);
|
song.set_source(Song::Source_Tidal);
|
||||||
song.set_song_id(song_id);
|
song.set_song_id(song_id);
|
||||||
song.set_album_id(album_id);
|
song.set_album_id(album_id);
|
||||||
song.set_artist_id(artist_id_requested);
|
song.set_artist_id(artist_id);
|
||||||
if (album_artist != artist) song.set_albumartist(album_artist);
|
if (album_artist != artist) song.set_albumartist(album_artist);
|
||||||
song.set_album(album);
|
song.set_album(album);
|
||||||
song.set_artist(artist);
|
song.set_artist(artist);
|
||||||
|
|
|
@ -78,7 +78,7 @@ class TidalRequest : public TidalBaseRequest {
|
||||||
void ArtistsReplyReceived(QNetworkReply *reply, const int limit_requested, const int offset_requested);
|
void ArtistsReplyReceived(QNetworkReply *reply, const int limit_requested, const int offset_requested);
|
||||||
|
|
||||||
void AlbumsReplyReceived(QNetworkReply *reply, const int limit_requested, const int offset_requested);
|
void AlbumsReplyReceived(QNetworkReply *reply, const int limit_requested, const int offset_requested);
|
||||||
void AlbumsReceived(QNetworkReply *reply, const int artist_id, const int limit_requested, const int offset_requested, const bool auto_login);
|
void AlbumsReceived(QNetworkReply *reply, const int artist_id_requested, const int limit_requested, const int offset_requested, const bool auto_login);
|
||||||
|
|
||||||
void SongsReplyReceived(QNetworkReply *reply, const int limit_requested, const int offset_requested);
|
void SongsReplyReceived(QNetworkReply *reply, const int limit_requested, const int offset_requested);
|
||||||
void SongsReceived(QNetworkReply *reply, const int artist_id, const int album_id, const int limit_requested, const int offset_requested, const bool auto_login = false, const QString album_artist = QString());
|
void SongsReceived(QNetworkReply *reply, const int artist_id, const int album_id, const int limit_requested, const int offset_requested, const bool auto_login = false, const QString album_artist = QString());
|
||||||
|
|
Loading…
Reference in New Issue