Improve album and title disc, remastered, etc matching

Don't partial remove things like "(Mono / Remastered)".

Fixes #1387
This commit is contained in:
Jonas Kvinge
2024-03-02 19:48:19 +01:00
parent b365131363
commit 7f4c61b15a
14 changed files with 96 additions and 42 deletions

View File

@@ -333,7 +333,7 @@ AlbumCoverImageResult AlbumCoverChoiceController::SearchForImage(Song *song) {
if (!song->url().isValid() || !song->url().isLocalFile() || song->effective_albumartist().isEmpty() || song->album().isEmpty()) return AlbumCoverImageResult();
QString album = song->effective_album();
album = album.remove(Song::kAlbumRemoveDisc).remove(Song::kAlbumRemoveMisc);
album = Song::AlbumRemoveDiscMisc(album);
// Get something sensible to stick in the search box
return cover_searcher_->Exec(song->effective_albumartist(), album);

View File

@@ -66,9 +66,7 @@ quint64 AlbumCoverFetcher::FetchAlbumCover(const QString &artist, const QString
CoverSearchRequest request;
request.id = ++next_id_;
request.artist = artist;
request.album = album;
request.album = request.album.remove(Song::kAlbumRemoveDisc);
request.album = request.album.remove(Song::kAlbumRemoveMisc);
request.album = Song::AlbumRemoveDiscMisc(album);
request.title = title;
request.search = false;
request.batch = batch;
@@ -83,9 +81,7 @@ quint64 AlbumCoverFetcher::SearchForCovers(const QString &artist, const QString
CoverSearchRequest request;
request.id = ++next_id_;
request.artist = artist;
request.album = album;
request.album = request.album.remove(Song::kAlbumRemoveDisc);
request.album = request.album.remove(Song::kAlbumRemoveMisc);
request.album = Song::AlbumRemoveDiscMisc(album);
request.title = title;
request.search = true;
request.batch = false;

View File

@@ -265,12 +265,9 @@ void DeezerCoverProvider::HandleSearchReply(QNetworkReply *reply, const int id)
}
QString album = obj_album["title"].toString();
album = album.remove(Song::kAlbumRemoveDisc);
album = album.remove(Song::kAlbumRemoveMisc);
CoverProviderSearchResult cover_result;
cover_result.artist = artist;
cover_result.album = album;
cover_result.album = Song::AlbumRemoveDiscMisc(album);
bool have_cover = false;
QList<QPair<QString, QSize>> cover_sizes = QList<QPair<QString, QSize>>() << qMakePair(QString("cover_xl"), QSize(1000, 1000))

View File

@@ -262,12 +262,9 @@ void QobuzCoverProvider::HandleSearchReply(QNetworkReply *reply, const int id) {
}
QUrl cover_url(obj_image["large"].toString());
album = album.remove(Song::kAlbumRemoveDisc);
album = album.remove(Song::kAlbumRemoveMisc);
CoverProviderSearchResult cover_result;
cover_result.artist = artist;
cover_result.album = album;
cover_result.album = Song::AlbumRemoveDiscMisc(album);
cover_result.image_url = cover_url;
cover_result.image_size = QSize(600, 600);
results << cover_result;

View File

@@ -241,15 +241,11 @@ void TidalCoverProvider::HandleSearchReply(QNetworkReply *reply, const int id) {
continue;
}
QString album = obj_album["title"].toString();
QString cover = obj_album["cover"].toString();
album = album.remove(Song::kAlbumRemoveDisc);
album = album.remove(Song::kAlbumRemoveMisc);
cover = cover.replace("-", "/");
QString cover = obj_album["cover"].toString().replace("-", "/");
CoverProviderSearchResult cover_result;
cover_result.artist = artist;
cover_result.album = album;
cover_result.album = Song::AlbumRemoveDiscMisc(album);
cover_result.number = ++i;
QList<QPair<QString, QSize>> cover_sizes = QList<QPair<QString, QSize>>() << qMakePair(QString("1280x1280"), QSize(1280, 1280))