Improve lyrics match

This commit is contained in:
Jonas Kvinge
2023-10-08 23:55:05 +02:00
parent 1a07404c10
commit 505329730c
10 changed files with 38 additions and 31 deletions

View File

@@ -26,6 +26,7 @@
#include "core/shared_ptr.h" #include "core/shared_ptr.h"
#include "core/networkaccessmanager.h" #include "core/networkaccessmanager.h"
#include "utilities/transliterate.h"
#include "lyricssearchrequest.h" #include "lyricssearchrequest.h"
#include "azlyricscomlyricsprovider.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();
} }

View File

@@ -42,7 +42,7 @@ class AzLyricsComLyricsProvider : public HtmlLyricsProvider {
QUrl Url(const LyricsSearchRequest &request) override; QUrl Url(const LyricsSearchRequest &request) override;
private: private:
QString StringFixup(QString string); QString StringFixup(QString text);
private: private:
static const char kUrl[]; static const char kUrl[];

View File

@@ -26,6 +26,7 @@
#include "core/shared_ptr.h" #include "core/shared_ptr.h"
#include "core/networkaccessmanager.h" #include "core/networkaccessmanager.h"
#include "utilities/transliterate.h"
#include "lyricssearchrequest.h" #include "lyricssearchrequest.h"
#include "elyricsnetlyricsprovider.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 return Utilities::Transliterate(text)
.replace(' ', '-') .replace(QRegularExpression("[^\\w0-9_,&\\-\\(\\) ]"), "_")
.replace(QRegularExpression("[^\\w0-9_-]", QRegularExpression::UseUnicodePropertiesOption), "_") .replace(QRegularExpression(" {2,}"), " ")
.simplified() .simplified()
.replace(' ', '-')
.toLower(); .toLower();
} }

View File

@@ -42,7 +42,7 @@ class ElyricsNetLyricsProvider : public HtmlLyricsProvider {
QUrl Url(const LyricsSearchRequest &request) override; QUrl Url(const LyricsSearchRequest &request) override;
private: private:
QString StringFixup(QString string); QString StringFixup(QString text);
private: private:
static const char kUrl[]; static const char kUrl[];

View File

@@ -43,12 +43,14 @@ QUrl LyricsModeComLyricsProvider::Url(const LyricsSearchRequest &request) {
} }
QString LyricsModeComLyricsProvider::StringFixup(QString string) { QString LyricsModeComLyricsProvider::StringFixup(QString text) {
return string return text
.replace(' ', '_') .remove(QRegularExpression("[^\\w0-9_\\- ]"))
.remove(QRegularExpression("[^\\w0-9_-]", QRegularExpression::UseUnicodePropertiesOption)) .replace(QRegularExpression(" {2,}"), " ")
.simplified() .simplified()
.replace(' ', '_')
.replace('-', '_')
.toLower(); .toLower();
} }

View File

@@ -42,7 +42,7 @@ class LyricsModeComLyricsProvider : public HtmlLyricsProvider {
QUrl Url(const LyricsSearchRequest &request) override; QUrl Url(const LyricsSearchRequest &request) override;
private: private:
QString StringFixup(QString string); QString StringFixup(QString text);
private: private:
static const char kUrl[]; static const char kUrl[];

View File

@@ -43,14 +43,15 @@ QUrl SongLyricsComLyricsProvider::Url(const LyricsSearchRequest &request) {
} }
QString SongLyricsComLyricsProvider::StringFixup(QString string) { QString SongLyricsComLyricsProvider::StringFixup(QString text) {
return string.replace('/', '-') return text.replace('/', '-')
.replace('\'', '-') .replace('\'', '-')
.remove(QRegularExpression("[^\\w0-9\\- ]", QRegularExpression::UseUnicodePropertiesOption)) .remove(QRegularExpression("[^\\w0-9\\- ]"))
.simplified() .replace(QRegularExpression(" {2,}"), " ")
.replace(' ', '-') .simplified()
.replace(QRegularExpression("(-)\\1+"), "-") .replace(' ', '-')
.toLower(); .replace(QRegularExpression("(-)\\1+"), "-")
.toLower();
} }

View File

@@ -42,7 +42,7 @@ class SongLyricsComLyricsProvider : public HtmlLyricsProvider {
QUrl Url(const LyricsSearchRequest &request) override; QUrl Url(const LyricsSearchRequest &request) override;
private: private:
QString StringFixup(QString string); QString StringFixup(QString text);
private: private:
static const char kUrl[]; static const char kUrl[];

View File

@@ -25,14 +25,15 @@
const char *MusixmatchProvider::kApiUrl = "https://api.musixmatch.com/ws/1.1"; const char *MusixmatchProvider::kApiUrl = "https://api.musixmatch.com/ws/1.1";
const char *MusixmatchProvider::kApiKey = "Y2FhMDRlN2Y4OWE5OTIxYmZlOGMzOWQzOGI3ZGU4MjE="; const char *MusixmatchProvider::kApiKey = "Y2FhMDRlN2Y4OWE5OTIxYmZlOGMzOWQzOGI3ZGU4MjE=";
QString MusixmatchProvider::StringFixup(QString string) { QString MusixmatchProvider::StringFixup(QString text) {
return string.replace('/', '-') return text.replace('/', '-')
.replace('\'', '-') .replace('\'', '-')
.remove(QRegularExpression("[^\\w0-9\\- ]", QRegularExpression::UseUnicodePropertiesOption)) .remove(QRegularExpression("[^\\w0-9\\- ]", QRegularExpression::UseUnicodePropertiesOption))
.simplified() .replace(QRegularExpression(" {2,}"), " ")
.replace(' ', '-') .simplified()
.replace(QRegularExpression("(-)\\1+"), "-") .replace(' ', '-')
.toLower(); .replace(QRegularExpression("(-)\\1+"), "-")
.toLower();
} }

View File

@@ -25,7 +25,7 @@
class MusixmatchProvider { class MusixmatchProvider {
protected: protected:
QString StringFixup(QString string); QString StringFixup(QString text);
protected: protected:
static const char *kApiUrl; static const char *kApiUrl;