diff --git a/src/libs/services/artwork/impl/ArtworkService.cpp b/src/libs/services/artwork/impl/ArtworkService.cpp index 0f083634..3f1784c6 100644 --- a/src/libs/services/artwork/impl/ArtworkService.cpp +++ b/src/libs/services/artwork/impl/ArtworkService.cpp @@ -203,7 +203,7 @@ namespace lms::artwork if (isImageFound(res)) return res; - // Fallback on front cover + // Fallback on front cover for this track { db::TrackEmbeddedImage::FindParameters params; params.setTrack(trackId); @@ -213,19 +213,6 @@ namespace lms::artwork db::TrackEmbeddedImage::find(session, params, [&](const db::TrackEmbeddedImage::pointer& image) { res = image->getId(); }); } - if (isImageFound(res)) - return res; - - // Fallback on whatever front cover found on the release - { - db::TrackEmbeddedImage::FindParameters params; - params.setRelease(releaseId); - params.setImageTypes({ db::ImageType::FrontCover }); - params.setSortMethod(db::TrackEmbeddedImageSortMethod::SizeDesc); - params.setRange(db::Range{ .offset = 0, .size = 1 }); - db::TrackEmbeddedImage::find(session, params, [&](const db::TrackEmbeddedImage::pointer& image) { res = image->getId(); }); - } - if (isImageFound(res)) return res; @@ -236,6 +223,19 @@ namespace lms::artwork res = imageId; } + if (isImageFound(res)) + return res; + + // Fallback on the first front cover found on the release + { + db::TrackEmbeddedImage::FindParameters params; + params.setRelease(releaseId); + params.setImageTypes({ db::ImageType::FrontCover }); + params.setSortMethod(db::TrackEmbeddedImageSortMethod::DiscNumberThenTrackNumberThenSizeDesc); + params.setRange(db::Range{ .offset = 0, .size = 1 }); + db::TrackEmbeddedImage::find(session, params, [&](const db::TrackEmbeddedImage::pointer& image) { res = image->getId(); }); + } + return res; }