diff --git a/src/subsonic/subsonicrequest.cpp b/src/subsonic/subsonicrequest.cpp index 1a5b15b77..c801ad2fc 100644 --- a/src/subsonic/subsonicrequest.cpp +++ b/src/subsonic/subsonicrequest.cpp @@ -442,6 +442,11 @@ void SubsonicRequest::AlbumSongsReplyReceived(QNetworkReply *reply, const QStrin } QJsonArray array_songs = json_song.toArray(); + qint64 created = 0; + if (obj_album.contains("created")) { + created = QDateTime::fromString(obj_album["created"].toString(), Qt::ISODate).toSecsSinceEpoch(); + } + bool compilation = false; bool multidisc = false; SongList songs; @@ -456,7 +461,7 @@ void SubsonicRequest::AlbumSongsReplyReceived(QNetworkReply *reply, const QStrin ++songs_received; Song song(Song::Source_Subsonic); - ParseSong(song, obj_song, artist_id, album_id, album_artist); + ParseSong(song, obj_song, artist_id, album_id, album_artist, created); if (!song.is_valid()) continue; if (song.disc() >= 2) multidisc = true; if (song.is_compilation()) compilation = true; @@ -497,7 +502,7 @@ void SubsonicRequest::SongsFinishCheck() { } -QString SubsonicRequest::ParseSong(Song &song, const QJsonObject &json_obj, const QString &artist_id_requested, const QString &album_id_requested, const QString &album_artist) { +QString SubsonicRequest::ParseSong(Song &song, const QJsonObject &json_obj, const QString &artist_id_requested, const QString &album_id_requested, const QString &album_artist, qint64 album_created) { Q_UNUSED(artist_id_requested); Q_UNUSED(album_id_requested); @@ -631,6 +636,9 @@ QString SubsonicRequest::ParseSong(Song &song, const QJsonObject &json_obj, cons if (json_obj.contains("created")) { created = QDateTime::fromString(json_obj["created"].toString(), Qt::ISODate).toSecsSinceEpoch(); } + else { + created = album_created; + } QUrl url; url.setScheme(url_handler_->scheme()); diff --git a/src/subsonic/subsonicrequest.h b/src/subsonic/subsonicrequest.h index eba0d0ebf..a4acc5dd4 100644 --- a/src/subsonic/subsonicrequest.h +++ b/src/subsonic/subsonicrequest.h @@ -100,7 +100,7 @@ class SubsonicRequest : public SubsonicBaseRequest { void AddAlbumSongsRequest(const QString &artist_id, const QString &album_id, const QString &album_artist, const int offset = 0); void FlushAlbumSongsRequests(); - QString ParseSong(Song &song, const QJsonObject &json_obj, const QString &artist_id_requested = QString(), const QString &album_id_requested = QString(), const QString &album_artist = QString()); + QString ParseSong(Song &song, const QJsonObject &json_obj, const QString &artist_id_requested = QString(), const QString &album_id_requested = QString(), const QString &album_artist = QString(), qint64 album_created = 0); void GetAlbumCovers(); void AddAlbumCoverRequest(Song &song);