Remove remastered from album title
This commit is contained in:
@@ -142,7 +142,9 @@ const QString Song::kFtsUpdateSpec = Utilities::Updateify(Song::kFtsColumns).joi
|
||||
const QString Song::kManuallyUnsetCover = "(unset)";
|
||||
const QString Song::kEmbeddedCover = "(embedded)";
|
||||
|
||||
const QRegExp Song::kCoverRemoveDisc(" ?-? ((\\(|\\[)?)(Disc|CD) ?([0-9]{1,2})((\\)|\\])?)$");
|
||||
const QRegExp Song::kAlbumRemoveDisc(" ?-? ((\\(|\\[)?)(Disc|CD) ?([0-9]{1,2})((\\)|\\])?)$");
|
||||
const QRegExp Song::kAlbumRemoveMisc(" ?-? ((\\(|\\[)?)(Remastered) ?((\\)|\\])?)$");
|
||||
const QRegExp Song::kTitleRemoveMisc(" ?-? ((\\(|\\[)?)(Remastered|Live) ?((\\)|\\])?)$");
|
||||
|
||||
struct Song::Private : public QSharedData {
|
||||
|
||||
@@ -820,7 +822,7 @@ void Song::InitFromFilePartial(const QString &filename) {
|
||||
void Song::InitArtManual() {
|
||||
|
||||
QString album2 = d->album_;
|
||||
album2.remove(Song::kCoverRemoveDisc);
|
||||
album2.remove(Song::kAlbumRemoveDisc);
|
||||
|
||||
//qLog(Debug) << __PRETTY_FUNCTION__ << d->artist_ << d->album_ << album2;
|
||||
|
||||
|
||||
@@ -83,7 +83,9 @@ class Song {
|
||||
static const QString kManuallyUnsetCover;
|
||||
static const QString kEmbeddedCover;
|
||||
|
||||
static const QRegExp kCoverRemoveDisc;
|
||||
static const QRegExp kAlbumRemoveDisc;
|
||||
static const QRegExp kAlbumRemoveMisc;
|
||||
static const QRegExp kTitleRemoveMisc;
|
||||
static const QRegExp kFilenameRemoveNonFatChars;
|
||||
|
||||
static QString JoinSpec(const QString &table);
|
||||
|
||||
@@ -180,7 +180,8 @@ QString AlbumCoverChoiceController::LoadCoverFromURL(Song *song) {
|
||||
QString AlbumCoverChoiceController::SearchForCover(Song *song) {
|
||||
|
||||
QString album = song->effective_album();
|
||||
album.remove(Song::kCoverRemoveDisc);
|
||||
album.remove(Song::kAlbumRemoveDisc);
|
||||
album.remove(Song::kAlbumRemoveMisc);
|
||||
|
||||
// Get something sensible to stick in the search box
|
||||
QImage image = cover_searcher_->Exec(song->effective_albumartist(), album);
|
||||
@@ -305,7 +306,7 @@ void AlbumCoverChoiceController::SaveCover(Song *song, const QString &cover) {
|
||||
QString AlbumCoverChoiceController::SaveCoverInCache(const QString &artist, const QString &album, const QImage &image) {
|
||||
|
||||
QString album2(album);
|
||||
album2.remove(Song::kCoverRemoveDisc);
|
||||
album2.remove(Song::kAlbumRemoveDisc);
|
||||
|
||||
// Hash the artist and album into a filename for the image
|
||||
QString filename(Utilities::Sha1CoverHash(artist, album2).toHex() + ".jpg");
|
||||
|
||||
@@ -50,7 +50,8 @@ quint64 AlbumCoverFetcher::FetchAlbumCover(const QString &artist, const QString
|
||||
CoverSearchRequest request;
|
||||
request.artist = artist;
|
||||
request.album = album;
|
||||
request.album.remove(Song::kCoverRemoveDisc);
|
||||
request.album.remove(Song::kAlbumRemoveDisc);
|
||||
request.album.remove(Song::kAlbumRemoveMisc);
|
||||
request.search = false;
|
||||
request.id = next_id_++;
|
||||
request.fetchall = fetchall;
|
||||
@@ -65,7 +66,8 @@ quint64 AlbumCoverFetcher::SearchForCovers(const QString &artist, const QString
|
||||
CoverSearchRequest request;
|
||||
request.artist = artist;
|
||||
request.album = album;
|
||||
request.album.remove(Song::kCoverRemoveDisc);
|
||||
request.album.remove(Song::kAlbumRemoveDisc);
|
||||
request.album.remove(Song::kAlbumRemoveMisc);
|
||||
request.search = true;
|
||||
request.id = next_id_++;
|
||||
request.fetchall = false;
|
||||
|
||||
@@ -25,12 +25,12 @@
|
||||
#include <QString>
|
||||
|
||||
#include "core/logging.h"
|
||||
#include "core/song.h"
|
||||
#include "lyricsfetcher.h"
|
||||
#include "lyricsfetchersearch.h"
|
||||
|
||||
const int LyricsFetcher::kMaxConcurrentRequests = 5;
|
||||
const QRegExp LyricsFetcher::kRemoveNonAlpha("[^a-zA-Z0-9\\d\\s]");
|
||||
const QRegExp LyricsFetcher::kRemoveFromTitle(" ?-? ((\\(|\\[)?)(Remastered|Live) ?((\\)|\\])?)$");
|
||||
|
||||
LyricsFetcher::LyricsFetcher(LyricsProviders *lyrics_providers, QObject *parent)
|
||||
: QObject(parent),
|
||||
@@ -50,10 +50,10 @@ quint64 LyricsFetcher::Search(const QString &artist, const QString &album, const
|
||||
request.artist = artist;
|
||||
request.album = album;
|
||||
request.album.remove(kRemoveNonAlpha);
|
||||
request.album.remove(kRemoveFromTitle);
|
||||
request.album.remove(Song::kTitleRemoveMisc);
|
||||
request.title = title;
|
||||
request.title.remove(kRemoveNonAlpha);
|
||||
request.title.remove(kRemoveFromTitle);
|
||||
request.title.remove(Song::kTitleRemoveMisc);
|
||||
request.id = next_id_++;
|
||||
AddRequest(request);
|
||||
|
||||
|
||||
@@ -65,7 +65,6 @@ class LyricsFetcher : public QObject {
|
||||
|
||||
static const int kMaxConcurrentRequests;
|
||||
static const QRegExp kRemoveNonAlpha;
|
||||
static const QRegExp kRemoveFromTitle;
|
||||
|
||||
quint64 Search(const QString &artist, const QString &album, const QString &title);
|
||||
void Clear();
|
||||
|
||||
@@ -334,7 +334,8 @@ void ListenBrainzScrobbler::UpdateNowPlaying(const Song &song) {
|
||||
if (!song.is_metadata_good()) return;
|
||||
|
||||
QString album = song.album();
|
||||
album = album.remove(Song::kCoverRemoveDisc);
|
||||
album = album.remove(Song::kAlbumRemoveDisc);
|
||||
album = album.remove(Song::kAlbumRemoveMisc);
|
||||
|
||||
QJsonObject object_track_metadata;
|
||||
object_track_metadata.insert("artist_name", QJsonValue::fromVariant(song.artist()));
|
||||
|
||||
@@ -182,9 +182,13 @@ ScrobblerCacheItem *ScrobblerCache::Add(const Song &song, const quint64 ×ta
|
||||
if (scrobbler_cache_.contains(timestamp)) return nullptr;
|
||||
|
||||
QString album = song.album();
|
||||
album = album.remove(Song::kCoverRemoveDisc);
|
||||
QString title = song.title();
|
||||
|
||||
ScrobblerCacheItem *item = new ScrobblerCacheItem(song.artist(), album, song.title(), song.albumartist(), song.track(), song.length_nanosec(), timestamp);
|
||||
album.remove(Song::kAlbumRemoveDisc);
|
||||
album.remove(Song::kAlbumRemoveMisc);
|
||||
title.remove(Song::kTitleRemoveMisc);
|
||||
|
||||
ScrobblerCacheItem *item = new ScrobblerCacheItem(song.artist(), album, title, song.albumartist(), song.track(), song.length_nanosec(), timestamp);
|
||||
scrobbler_cache_.insert(timestamp, item);
|
||||
|
||||
if (loaded_) DoInAMinuteOrSo(this, SLOT(WriteCache()));
|
||||
|
||||
@@ -384,7 +384,8 @@ void ScrobblingAPI20::UpdateNowPlaying(const Song &song) {
|
||||
if (!IsAuthenticated() || !song.is_metadata_good()) return;
|
||||
|
||||
QString album = song.album();
|
||||
album = album.remove(Song::kCoverRemoveDisc);
|
||||
album = album.remove(Song::kAlbumRemoveDisc);
|
||||
album = album.remove(Song::kAlbumRemoveMisc);
|
||||
|
||||
ParamList params = ParamList()
|
||||
<< Param("method", "track.updateNowPlaying")
|
||||
|
||||
@@ -792,6 +792,9 @@ Song TidalService::ParseSong(const int album_id_requested, const QJsonValue &val
|
||||
|
||||
//qLog(Debug) << "id" << id << "track" << track << "disc" << disc << "title" << title << "album" << album << "artist" << artist << cover << allow_streaming << url;
|
||||
|
||||
title.remove(Song::kTitleRemoveMisc);
|
||||
album.remove(Song::kAlbumRemoveMisc);
|
||||
|
||||
song.set_source(Song::Source_Tidal);
|
||||
song.set_id(song_id);
|
||||
song.set_album_id(album_id);
|
||||
|
||||
Reference in New Issue
Block a user