From aeb36e8665241faef82b96f0ca48647ef47a2f78 Mon Sep 17 00:00:00 2001 From: Jonas Kvinge Date: Sun, 23 Jun 2019 16:45:00 +0200 Subject: [PATCH] Simplify generating queries in lyrics providers --- src/lyrics/auddlyricsprovider.cpp | 21 +++++---------------- src/lyrics/chartlyricsprovider.cpp | 18 ++++++------------ src/lyrics/lyricsprovider.h | 9 ++++++--- 3 files changed, 17 insertions(+), 31 deletions(-) diff --git a/src/lyrics/auddlyricsprovider.cpp b/src/lyrics/auddlyricsprovider.cpp index 184c1fe6..83cd5c7f 100644 --- a/src/lyrics/auddlyricsprovider.cpp +++ b/src/lyrics/auddlyricsprovider.cpp @@ -55,26 +55,15 @@ AuddLyricsProvider::AuddLyricsProvider(QObject *parent) : LyricsProvider("AudD", bool AuddLyricsProvider::StartSearch(const QString &artist, const QString &album, const QString &title, quint64 id) { - QString search(artist + " " + title); - - typedef QPair Arg; - typedef QList ArgList; - - typedef QPair EncodedArg; - typedef QList EncodedArgList; - - ArgList args = ArgList(); - args.append(Arg("api_token", QByteArray::fromBase64(kAPITokenB64))); - args.append(Arg("q", search)); + const ParamList params = ParamList() << Param("api_token", QByteArray::fromBase64(kAPITokenB64)) + << Param("q", QString(artist + " " + title)); QUrlQuery url_query; - QUrl url(kUrlSearch); - - for (const Arg &arg : args) { - EncodedArg encoded_arg(QUrl::toPercentEncoding(arg.first), QUrl::toPercentEncoding(arg.second)); - url_query.addQueryItem(encoded_arg.first, encoded_arg.second); + for (const Param ¶m : params) { + url_query.addQueryItem(QUrl::toPercentEncoding(param.first), QUrl::toPercentEncoding(param.second)); } + QUrl url(kUrlSearch); url.setQuery(url_query); QNetworkReply *reply = network_->get(QNetworkRequest(url)); NewClosure(reply, SIGNAL(finished()), this, SLOT(HandleSearchReply(QNetworkReply*, quint64, QString, QString)), reply, id, artist, title); diff --git a/src/lyrics/chartlyricsprovider.cpp b/src/lyrics/chartlyricsprovider.cpp index 1295c4c9..d0370372 100644 --- a/src/lyrics/chartlyricsprovider.cpp +++ b/src/lyrics/chartlyricsprovider.cpp @@ -47,27 +47,21 @@ ChartLyricsProvider::ChartLyricsProvider(QObject *parent) : LyricsProvider("Char bool ChartLyricsProvider::StartSearch(const QString &artist, const QString &album, const QString &title, quint64 id) { - typedef QPair Param; - typedef QList ParamList; - - typedef QPair EncodedParam; - typedef QList EncodedParamList; - - ParamList params = ParamList() << Param("artist", artist) - << Param("song", title); + const ParamList params = ParamList() << Param("artist", artist) + << Param("song", title); QUrlQuery url_query; - QUrl url(kUrlSearch); - for (const Param ¶m : params) { - EncodedParam encoded_param(QUrl::toPercentEncoding(param.first), QUrl::toPercentEncoding(param.second)); - url_query.addQueryItem(encoded_param.first, encoded_param.second); + url_query.addQueryItem(QUrl::toPercentEncoding(param.first), QUrl::toPercentEncoding(param.second)); } + QUrl url(kUrlSearch); url.setQuery(url_query); QNetworkReply *reply = network_->get(QNetworkRequest(url)); NewClosure(reply, SIGNAL(finished()), this, SLOT(HandleSearchReply(QNetworkReply*, quint64, QString, QString)), reply, id, artist, title); + //qLog(Debug) << "ChartLyrics: Sending request for" << url; + return true; } diff --git a/src/lyrics/lyricsprovider.h b/src/lyrics/lyricsprovider.h index 1b3dbafe..090e074e 100644 --- a/src/lyrics/lyricsprovider.h +++ b/src/lyrics/lyricsprovider.h @@ -33,18 +33,21 @@ struct LyricsSearchResult; class LyricsProvider : public QObject { Q_OBJECT -public: + public: explicit LyricsProvider(const QString &name, QObject *parent); + typedef QPair Param; + typedef QList ParamList; + QString name() const { return name_; } virtual bool StartSearch(const QString &artist, const QString &album, const QString &title, quint64 id) = 0; virtual void CancelSearch(quint64 id) {} -signals: + signals: void SearchFinished(quint64 id, const QList& results); -private: + private: QString name_; };