From 505329730c316c506d3253bd843cbdb6b0125389 Mon Sep 17 00:00:00 2001 From: Jonas Kvinge Date: Sun, 8 Oct 2023 23:55:05 +0200 Subject: [PATCH] Improve lyrics match --- src/lyrics/azlyricscomlyricsprovider.cpp | 5 +++-- src/lyrics/azlyricscomlyricsprovider.h | 2 +- src/lyrics/elyricsnetlyricsprovider.cpp | 10 ++++++---- src/lyrics/elyricsnetlyricsprovider.h | 2 +- src/lyrics/lyricsmodecomlyricsprovider.cpp | 10 ++++++---- src/lyrics/lyricsmodecomlyricsprovider.h | 2 +- src/lyrics/songlyricscomlyricsprovider.cpp | 17 +++++++++-------- src/lyrics/songlyricscomlyricsprovider.h | 2 +- src/providers/musixmatchprovider.cpp | 17 +++++++++-------- src/providers/musixmatchprovider.h | 2 +- 10 files changed, 38 insertions(+), 31 deletions(-) diff --git a/src/lyrics/azlyricscomlyricsprovider.cpp b/src/lyrics/azlyricscomlyricsprovider.cpp index 27b77220..1f02f47d 100644 --- a/src/lyrics/azlyricscomlyricsprovider.cpp +++ b/src/lyrics/azlyricscomlyricsprovider.cpp @@ -26,6 +26,7 @@ #include "core/shared_ptr.h" #include "core/networkaccessmanager.h" +#include "utilities/transliterate.h" #include "lyricssearchrequest.h" #include "azlyricscomlyricsprovider.h" @@ -43,8 +44,8 @@ QUrl AzLyricsComLyricsProvider::Url(const LyricsSearchRequest &request) { } -QString AzLyricsComLyricsProvider::StringFixup(QString string) { +QString AzLyricsComLyricsProvider::StringFixup(QString text) { - return string.remove(QRegularExpression("[^\\w0-9\\-]", QRegularExpression::UseUnicodePropertiesOption)).simplified().toLower(); + return Utilities::Transliterate(text).remove(QRegularExpression("[^\\w0-9\\-]")).toLower(); } diff --git a/src/lyrics/azlyricscomlyricsprovider.h b/src/lyrics/azlyricscomlyricsprovider.h index a30e5dc5..823ddffd 100644 --- a/src/lyrics/azlyricscomlyricsprovider.h +++ b/src/lyrics/azlyricscomlyricsprovider.h @@ -42,7 +42,7 @@ class AzLyricsComLyricsProvider : public HtmlLyricsProvider { QUrl Url(const LyricsSearchRequest &request) override; private: - QString StringFixup(QString string); + QString StringFixup(QString text); private: static const char kUrl[]; diff --git a/src/lyrics/elyricsnetlyricsprovider.cpp b/src/lyrics/elyricsnetlyricsprovider.cpp index 8e10b80c..ca061a4c 100644 --- a/src/lyrics/elyricsnetlyricsprovider.cpp +++ b/src/lyrics/elyricsnetlyricsprovider.cpp @@ -26,6 +26,7 @@ #include "core/shared_ptr.h" #include "core/networkaccessmanager.h" +#include "utilities/transliterate.h" #include "lyricssearchrequest.h" #include "elyricsnetlyricsprovider.h" @@ -43,12 +44,13 @@ QUrl ElyricsNetLyricsProvider::Url(const LyricsSearchRequest &request) { } -QString ElyricsNetLyricsProvider::StringFixup(QString string) { +QString ElyricsNetLyricsProvider::StringFixup(QString text) { - return string - .replace(' ', '-') - .replace(QRegularExpression("[^\\w0-9_-]", QRegularExpression::UseUnicodePropertiesOption), "_") + return Utilities::Transliterate(text) + .replace(QRegularExpression("[^\\w0-9_,&\\-\\(\\) ]"), "_") + .replace(QRegularExpression(" {2,}"), " ") .simplified() + .replace(' ', '-') .toLower(); } diff --git a/src/lyrics/elyricsnetlyricsprovider.h b/src/lyrics/elyricsnetlyricsprovider.h index 8a5ee0a9..769fc8b2 100644 --- a/src/lyrics/elyricsnetlyricsprovider.h +++ b/src/lyrics/elyricsnetlyricsprovider.h @@ -42,7 +42,7 @@ class ElyricsNetLyricsProvider : public HtmlLyricsProvider { QUrl Url(const LyricsSearchRequest &request) override; private: - QString StringFixup(QString string); + QString StringFixup(QString text); private: static const char kUrl[]; diff --git a/src/lyrics/lyricsmodecomlyricsprovider.cpp b/src/lyrics/lyricsmodecomlyricsprovider.cpp index d4a2fcba..b14ab43b 100644 --- a/src/lyrics/lyricsmodecomlyricsprovider.cpp +++ b/src/lyrics/lyricsmodecomlyricsprovider.cpp @@ -43,12 +43,14 @@ QUrl LyricsModeComLyricsProvider::Url(const LyricsSearchRequest &request) { } -QString LyricsModeComLyricsProvider::StringFixup(QString string) { +QString LyricsModeComLyricsProvider::StringFixup(QString text) { - return string - .replace(' ', '_') - .remove(QRegularExpression("[^\\w0-9_-]", QRegularExpression::UseUnicodePropertiesOption)) + return text + .remove(QRegularExpression("[^\\w0-9_\\- ]")) + .replace(QRegularExpression(" {2,}"), " ") .simplified() + .replace(' ', '_') + .replace('-', '_') .toLower(); } diff --git a/src/lyrics/lyricsmodecomlyricsprovider.h b/src/lyrics/lyricsmodecomlyricsprovider.h index 55021d82..4f5572c0 100644 --- a/src/lyrics/lyricsmodecomlyricsprovider.h +++ b/src/lyrics/lyricsmodecomlyricsprovider.h @@ -42,7 +42,7 @@ class LyricsModeComLyricsProvider : public HtmlLyricsProvider { QUrl Url(const LyricsSearchRequest &request) override; private: - QString StringFixup(QString string); + QString StringFixup(QString text); private: static const char kUrl[]; diff --git a/src/lyrics/songlyricscomlyricsprovider.cpp b/src/lyrics/songlyricscomlyricsprovider.cpp index 2299a273..cf40c62f 100644 --- a/src/lyrics/songlyricscomlyricsprovider.cpp +++ b/src/lyrics/songlyricscomlyricsprovider.cpp @@ -43,14 +43,15 @@ QUrl SongLyricsComLyricsProvider::Url(const LyricsSearchRequest &request) { } -QString SongLyricsComLyricsProvider::StringFixup(QString string) { +QString SongLyricsComLyricsProvider::StringFixup(QString text) { - return string.replace('/', '-') - .replace('\'', '-') - .remove(QRegularExpression("[^\\w0-9\\- ]", QRegularExpression::UseUnicodePropertiesOption)) - .simplified() - .replace(' ', '-') - .replace(QRegularExpression("(-)\\1+"), "-") - .toLower(); + return text.replace('/', '-') + .replace('\'', '-') + .remove(QRegularExpression("[^\\w0-9\\- ]")) + .replace(QRegularExpression(" {2,}"), " ") + .simplified() + .replace(' ', '-') + .replace(QRegularExpression("(-)\\1+"), "-") + .toLower(); } diff --git a/src/lyrics/songlyricscomlyricsprovider.h b/src/lyrics/songlyricscomlyricsprovider.h index 851e40b8..cfad073c 100644 --- a/src/lyrics/songlyricscomlyricsprovider.h +++ b/src/lyrics/songlyricscomlyricsprovider.h @@ -42,7 +42,7 @@ class SongLyricsComLyricsProvider : public HtmlLyricsProvider { QUrl Url(const LyricsSearchRequest &request) override; private: - QString StringFixup(QString string); + QString StringFixup(QString text); private: static const char kUrl[]; diff --git a/src/providers/musixmatchprovider.cpp b/src/providers/musixmatchprovider.cpp index f8987076..78a5fb9d 100644 --- a/src/providers/musixmatchprovider.cpp +++ b/src/providers/musixmatchprovider.cpp @@ -25,14 +25,15 @@ const char *MusixmatchProvider::kApiUrl = "https://api.musixmatch.com/ws/1.1"; const char *MusixmatchProvider::kApiKey = "Y2FhMDRlN2Y4OWE5OTIxYmZlOGMzOWQzOGI3ZGU4MjE="; -QString MusixmatchProvider::StringFixup(QString string) { +QString MusixmatchProvider::StringFixup(QString text) { - return string.replace('/', '-') - .replace('\'', '-') - .remove(QRegularExpression("[^\\w0-9\\- ]", QRegularExpression::UseUnicodePropertiesOption)) - .simplified() - .replace(' ', '-') - .replace(QRegularExpression("(-)\\1+"), "-") - .toLower(); + return text.replace('/', '-') + .replace('\'', '-') + .remove(QRegularExpression("[^\\w0-9\\- ]", QRegularExpression::UseUnicodePropertiesOption)) + .replace(QRegularExpression(" {2,}"), " ") + .simplified() + .replace(' ', '-') + .replace(QRegularExpression("(-)\\1+"), "-") + .toLower(); } diff --git a/src/providers/musixmatchprovider.h b/src/providers/musixmatchprovider.h index 50f781a3..883dd80b 100644 --- a/src/providers/musixmatchprovider.h +++ b/src/providers/musixmatchprovider.h @@ -25,7 +25,7 @@ class MusixmatchProvider { protected: - QString StringFixup(QString string); + QString StringFixup(QString text); protected: static const char *kApiUrl;