Port to QStringLiteral operator
This commit is contained in:
@@ -57,7 +57,7 @@ QNetworkReply *SpotifyBaseRequest::CreateRequest(const QString &ressource_name,
|
||||
url.setQuery(url_query);
|
||||
QNetworkRequest req(url);
|
||||
req.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy);
|
||||
req.setHeader(QNetworkRequest::ContentTypeHeader, QStringLiteral("application/x-www-form-urlencoded"));
|
||||
req.setHeader(QNetworkRequest::ContentTypeHeader, u"application/x-www-form-urlencoded"_s);
|
||||
if (!access_token().isEmpty()) req.setRawHeader("authorization", "Bearer " + access_token().toUtf8());
|
||||
|
||||
QNetworkReply *reply = network_->get(req);
|
||||
@@ -130,23 +130,23 @@ QJsonObject SpotifyBaseRequest::ExtractJsonObj(const QByteArray &data) {
|
||||
QJsonDocument json_doc = QJsonDocument::fromJson(data, &json_error);
|
||||
|
||||
if (json_error.error != QJsonParseError::NoError) {
|
||||
Error(QStringLiteral("Reply from server missing Json data."), data);
|
||||
Error(u"Reply from server missing Json data."_s, data);
|
||||
return QJsonObject();
|
||||
}
|
||||
|
||||
if (json_doc.isEmpty()) {
|
||||
Error(QStringLiteral("Received empty Json document."), data);
|
||||
Error(u"Received empty Json document."_s, data);
|
||||
return QJsonObject();
|
||||
}
|
||||
|
||||
if (!json_doc.isObject()) {
|
||||
Error(QStringLiteral("Json document is not an object."), json_doc);
|
||||
Error(u"Json document is not an object."_s, json_doc);
|
||||
return QJsonObject();
|
||||
}
|
||||
|
||||
QJsonObject json_obj = json_doc.object();
|
||||
if (json_obj.isEmpty()) {
|
||||
Error(QStringLiteral("Received empty Json object."), json_doc);
|
||||
Error(u"Received empty Json object."_s, json_doc);
|
||||
return QJsonObject();
|
||||
}
|
||||
|
||||
@@ -165,7 +165,7 @@ QJsonValue SpotifyBaseRequest::ExtractItems(const QByteArray &data) {
|
||||
QJsonValue SpotifyBaseRequest::ExtractItems(const QJsonObject &json_obj) {
|
||||
|
||||
if (!json_obj.contains("items"_L1)) {
|
||||
Error(QStringLiteral("Json reply is missing items."), json_obj);
|
||||
Error(u"Json reply is missing items."_s, json_obj);
|
||||
return QJsonArray();
|
||||
}
|
||||
QJsonValue json_items = json_obj["items"_L1];
|
||||
|
||||
@@ -42,6 +42,8 @@
|
||||
#include "spotifybaserequest.h"
|
||||
#include "spotifyfavoriterequest.h"
|
||||
|
||||
using namespace Qt::Literals::StringLiterals;
|
||||
|
||||
SpotifyFavoriteRequest::SpotifyFavoriteRequest(SpotifyService *service, NetworkAccessManager *network, QObject *parent)
|
||||
: SpotifyBaseRequest(service, network, parent),
|
||||
service_(service),
|
||||
@@ -62,11 +64,11 @@ QString SpotifyFavoriteRequest::FavoriteText(const FavoriteType type) {
|
||||
|
||||
switch (type) {
|
||||
case FavoriteType_Artists:
|
||||
return QStringLiteral("artists");
|
||||
return u"artists"_s;
|
||||
case FavoriteType_Albums:
|
||||
return QStringLiteral("albums");
|
||||
return u"albums"_s;
|
||||
case FavoriteType_Songs:
|
||||
return QStringLiteral("tracks");
|
||||
return u"tracks"_s;
|
||||
}
|
||||
|
||||
return QString();
|
||||
@@ -127,16 +129,16 @@ void SpotifyFavoriteRequest::AddFavorites(const FavoriteType type, const SongLis
|
||||
|
||||
void SpotifyFavoriteRequest::AddFavoritesRequest(const FavoriteType type, const QString &ids_list, const QByteArray &json_data, const SongList &songs) {
|
||||
|
||||
QUrl url(QLatin1String(SpotifyService::kApiUrl) + (type == FavoriteType_Artists ? QStringLiteral("/me/following") : QStringLiteral("/me/") + FavoriteText(type)));
|
||||
QUrl url(QLatin1String(SpotifyService::kApiUrl) + (type == FavoriteType_Artists ? u"/me/following"_s : u"/me/"_s + FavoriteText(type)));
|
||||
if (type == FavoriteType_Artists) {
|
||||
QUrlQuery url_query;
|
||||
url_query.addQueryItem(QStringLiteral("type"), QStringLiteral("artist"));
|
||||
url_query.addQueryItem(QStringLiteral("ids"), ids_list);
|
||||
url_query.addQueryItem(u"type"_s, u"artist"_s);
|
||||
url_query.addQueryItem(u"ids"_s, ids_list);
|
||||
url.setQuery(url_query);
|
||||
}
|
||||
QNetworkRequest req(url);
|
||||
req.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy);
|
||||
req.setHeader(QNetworkRequest::ContentTypeHeader, QStringLiteral("application/x-www-form-urlencoded"));
|
||||
req.setHeader(QNetworkRequest::ContentTypeHeader, u"application/x-www-form-urlencoded"_s);
|
||||
if (!access_token().isEmpty()) req.setRawHeader("authorization", "Bearer " + access_token().toUtf8());
|
||||
QNetworkReply *reply = nullptr;
|
||||
if (type == FavoriteType_Artists) {
|
||||
@@ -241,16 +243,16 @@ void SpotifyFavoriteRequest::RemoveFavoritesRequest(const FavoriteType type, con
|
||||
|
||||
Q_UNUSED(json_data)
|
||||
|
||||
QUrl url(QLatin1String(SpotifyService::kApiUrl) + (type == FavoriteType_Artists ? QStringLiteral("/me/following") : QStringLiteral("/me/") + FavoriteText(type)));
|
||||
QUrl url(QLatin1String(SpotifyService::kApiUrl) + (type == FavoriteType_Artists ? u"/me/following"_s : u"/me/"_s + FavoriteText(type)));
|
||||
if (type == FavoriteType_Artists) {
|
||||
QUrlQuery url_query;
|
||||
url_query.addQueryItem(QStringLiteral("type"), QStringLiteral("artist"));
|
||||
url_query.addQueryItem(QStringLiteral("ids"), ids_list);
|
||||
url_query.addQueryItem(u"type"_s, u"artist"_s);
|
||||
url_query.addQueryItem(u"ids"_s, ids_list);
|
||||
url.setQuery(url_query);
|
||||
}
|
||||
QNetworkRequest req(url);
|
||||
req.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy);
|
||||
req.setHeader(QNetworkRequest::ContentTypeHeader, QStringLiteral("application/x-www-form-urlencoded"));
|
||||
req.setHeader(QNetworkRequest::ContentTypeHeader, u"application/x-www-form-urlencoded"_s);
|
||||
if (!access_token().isEmpty()) req.setRawHeader("authorization", "Bearer " + access_token().toUtf8());
|
||||
QNetworkReply *reply = nullptr;
|
||||
if (type == FavoriteType_Artists) {
|
||||
|
||||
@@ -152,7 +152,7 @@ void SpotifyRequest::Process() {
|
||||
SongsSearch();
|
||||
break;
|
||||
default:
|
||||
Error(QStringLiteral("Invalid query type."));
|
||||
Error(u"Invalid query type."_s);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -236,22 +236,22 @@ void SpotifyRequest::FlushArtistsRequests() {
|
||||
|
||||
Request request = artists_requests_queue_.dequeue();
|
||||
|
||||
ParamList parameters = ParamList() << Param(QStringLiteral("type"), QStringLiteral("artist"));
|
||||
ParamList parameters = ParamList() << Param(u"type"_s, u"artist"_s);
|
||||
if (type_ == Type::SearchArtists) {
|
||||
parameters << Param(QStringLiteral("q"), search_text_);
|
||||
parameters << Param(u"q"_s, search_text_);
|
||||
}
|
||||
if (request.limit > 0) {
|
||||
parameters << Param(QStringLiteral("limit"), QString::number(request.limit));
|
||||
parameters << Param(u"limit"_s, QString::number(request.limit));
|
||||
}
|
||||
if (request.offset > 0) {
|
||||
parameters << Param(QStringLiteral("offset"), QString::number(request.offset));
|
||||
parameters << Param(u"offset"_s, QString::number(request.offset));
|
||||
}
|
||||
QNetworkReply *reply = nullptr;
|
||||
if (type_ == Type::FavouriteArtists) {
|
||||
reply = CreateRequest(QStringLiteral("me/following"), parameters);
|
||||
reply = CreateRequest(u"me/following"_s, parameters);
|
||||
}
|
||||
if (type_ == Type::SearchArtists) {
|
||||
reply = CreateRequest(QStringLiteral("search"), parameters);
|
||||
reply = CreateRequest(u"search"_s, parameters);
|
||||
}
|
||||
if (!reply) continue;
|
||||
replies_ << reply;
|
||||
@@ -292,20 +292,20 @@ void SpotifyRequest::FlushAlbumsRequests() {
|
||||
|
||||
ParamList parameters;
|
||||
if (type_ == Type::SearchAlbums) {
|
||||
parameters << Param(QStringLiteral("type"), QStringLiteral("album"));
|
||||
parameters << Param(QStringLiteral("q"), search_text_);
|
||||
parameters << Param(u"type"_s, u"album"_s);
|
||||
parameters << Param(u"q"_s, search_text_);
|
||||
}
|
||||
else {
|
||||
parameters << Param(QStringLiteral("include_groups"), QStringLiteral("album,single"));
|
||||
parameters << Param(u"include_groups"_s, u"album,single"_s);
|
||||
}
|
||||
if (request.limit > 0) parameters << Param(QStringLiteral("limit"), QString::number(request.limit));
|
||||
if (request.offset > 0) parameters << Param(QStringLiteral("offset"), QString::number(request.offset));
|
||||
if (request.limit > 0) parameters << Param(u"limit"_s, QString::number(request.limit));
|
||||
if (request.offset > 0) parameters << Param(u"offset"_s, QString::number(request.offset));
|
||||
QNetworkReply *reply = nullptr;
|
||||
if (type_ == Type::FavouriteAlbums) {
|
||||
reply = CreateRequest(QStringLiteral("me/albums"), parameters);
|
||||
reply = CreateRequest(u"me/albums"_s, parameters);
|
||||
}
|
||||
if (type_ == Type::SearchAlbums) {
|
||||
reply = CreateRequest(QStringLiteral("search"), parameters);
|
||||
reply = CreateRequest(u"search"_s, parameters);
|
||||
}
|
||||
if (!reply) continue;
|
||||
replies_ << reply;
|
||||
@@ -346,21 +346,21 @@ void SpotifyRequest::FlushSongsRequests() {
|
||||
|
||||
ParamList parameters;
|
||||
if (type_ == Type::SearchSongs) {
|
||||
parameters << Param(QStringLiteral("type"), QStringLiteral("track"));
|
||||
parameters << Param(QStringLiteral("q"), search_text_);
|
||||
parameters << Param(u"type"_s, u"track"_s);
|
||||
parameters << Param(u"q"_s, search_text_);
|
||||
}
|
||||
if (request.limit > 0) {
|
||||
parameters << Param(QStringLiteral("limit"), QString::number(request.limit));
|
||||
parameters << Param(u"limit"_s, QString::number(request.limit));
|
||||
}
|
||||
if (request.offset > 0) {
|
||||
parameters << Param(QStringLiteral("offset"), QString::number(request.offset));
|
||||
parameters << Param(u"offset"_s, QString::number(request.offset));
|
||||
}
|
||||
QNetworkReply *reply = nullptr;
|
||||
if (type_ == Type::FavouriteSongs) {
|
||||
reply = CreateRequest(QStringLiteral("me/tracks"), parameters);
|
||||
reply = CreateRequest(u"me/tracks"_s, parameters);
|
||||
}
|
||||
if (type_ == Type::SearchSongs) {
|
||||
reply = CreateRequest(QStringLiteral("search"), parameters);
|
||||
reply = CreateRequest(u"search"_s, parameters);
|
||||
}
|
||||
if (!reply) continue;
|
||||
replies_ << reply;
|
||||
@@ -440,7 +440,7 @@ void SpotifyRequest::ArtistsReplyReceived(QNetworkReply *reply, const int limit_
|
||||
}
|
||||
|
||||
if (!json_obj.contains("artists"_L1) || !json_obj["artists"_L1].isObject()) {
|
||||
Error(QStringLiteral("Json object missing values."), json_obj);
|
||||
Error(u"Json object missing values."_s, json_obj);
|
||||
ArtistsFinishCheck();
|
||||
return;
|
||||
}
|
||||
@@ -449,7 +449,7 @@ void SpotifyRequest::ArtistsReplyReceived(QNetworkReply *reply, const int limit_
|
||||
if (!obj_artists.contains("limit"_L1) ||
|
||||
!obj_artists.contains("total"_L1) ||
|
||||
!obj_artists.contains("items"_L1)) {
|
||||
Error(QStringLiteral("Json object missing values."), obj_artists);
|
||||
Error(u"Json object missing values."_s, obj_artists);
|
||||
ArtistsFinishCheck();
|
||||
return;
|
||||
}
|
||||
@@ -498,7 +498,7 @@ void SpotifyRequest::ArtistsReplyReceived(QNetworkReply *reply, const int limit_
|
||||
++artists_received;
|
||||
|
||||
if (!value_item.isObject()) {
|
||||
Error(QStringLiteral("Invalid Json reply, item in array is not a object."));
|
||||
Error(u"Invalid Json reply, item in array is not a object."_s);
|
||||
continue;
|
||||
}
|
||||
QJsonObject obj_item = value_item.toObject();
|
||||
@@ -506,14 +506,14 @@ void SpotifyRequest::ArtistsReplyReceived(QNetworkReply *reply, const int limit_
|
||||
if (obj_item.contains("item"_L1)) {
|
||||
QJsonValue json_item = obj_item["item"_L1];
|
||||
if (!json_item.isObject()) {
|
||||
Error(QStringLiteral("Invalid Json reply, item in array is not a object."), json_item);
|
||||
Error(u"Invalid Json reply, item in array is not a object."_s, json_item);
|
||||
continue;
|
||||
}
|
||||
obj_item = json_item.toObject();
|
||||
}
|
||||
|
||||
if (!obj_item.contains("id"_L1) || !obj_item.contains("name"_L1)) {
|
||||
Error(QStringLiteral("Invalid Json reply, item missing id or album."), obj_item);
|
||||
Error(u"Invalid Json reply, item missing id or album."_s, obj_item);
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -597,7 +597,7 @@ void SpotifyRequest::FlushArtistAlbumsRequests() {
|
||||
ArtistAlbumsRequest request = artist_albums_requests_queue_.dequeue();
|
||||
|
||||
ParamList parameters;
|
||||
if (request.offset > 0) parameters << Param(QStringLiteral("offset"), QString::number(request.offset));
|
||||
if (request.offset > 0) parameters << Param(u"offset"_s, QString::number(request.offset));
|
||||
QNetworkReply *reply = CreateRequest(QStringLiteral("artists/%1/albums").arg(request.artist.artist_id), parameters);
|
||||
QObject::connect(reply, &QNetworkReply::finished, this, [this, reply, request]() { ArtistAlbumsReplyReceived(reply, request.artist, request.offset); });
|
||||
replies_ << reply;
|
||||
@@ -651,7 +651,7 @@ void SpotifyRequest::AlbumsReceived(QNetworkReply *reply, const Artist &artist_a
|
||||
!json_obj.contains("offset"_L1) ||
|
||||
!json_obj.contains("total"_L1) ||
|
||||
!json_obj.contains("items"_L1)) {
|
||||
Error(QStringLiteral("Json object missing values."), json_obj);
|
||||
Error(u"Json object missing values."_s, json_obj);
|
||||
AlbumsFinishCheck(artist_artist);
|
||||
return;
|
||||
}
|
||||
@@ -689,7 +689,7 @@ void SpotifyRequest::AlbumsReceived(QNetworkReply *reply, const Artist &artist_a
|
||||
++albums_received;
|
||||
|
||||
if (!value_item.isObject()) {
|
||||
Error(QStringLiteral("Invalid Json reply, item in array is not a object."));
|
||||
Error(u"Invalid Json reply, item in array is not a object."_s);
|
||||
continue;
|
||||
}
|
||||
QJsonObject obj_item = value_item.toObject();
|
||||
@@ -697,7 +697,7 @@ void SpotifyRequest::AlbumsReceived(QNetworkReply *reply, const Artist &artist_a
|
||||
if (obj_item.contains("item"_L1)) {
|
||||
QJsonValue json_item = obj_item["item"_L1];
|
||||
if (!json_item.isObject()) {
|
||||
Error(QStringLiteral("Invalid Json reply, item in array is not a object."), json_item);
|
||||
Error(u"Invalid Json reply, item in array is not a object."_s, json_item);
|
||||
continue;
|
||||
}
|
||||
obj_item = json_item.toObject();
|
||||
@@ -706,7 +706,7 @@ void SpotifyRequest::AlbumsReceived(QNetworkReply *reply, const Artist &artist_a
|
||||
if (obj_item.contains("album"_L1)) {
|
||||
QJsonValue json_item = obj_item["album"_L1];
|
||||
if (!json_item.isObject()) {
|
||||
Error(QStringLiteral("Invalid Json reply, album in array is not a object."), json_item);
|
||||
Error(u"Invalid Json reply, album in array is not a object."_s, json_item);
|
||||
continue;
|
||||
}
|
||||
obj_item = json_item.toObject();
|
||||
@@ -716,15 +716,15 @@ void SpotifyRequest::AlbumsReceived(QNetworkReply *reply, const Artist &artist_a
|
||||
Album album;
|
||||
|
||||
if (!obj_item.contains("id"_L1)) {
|
||||
Error(QStringLiteral("Invalid Json reply, item is missing ID."), obj_item);
|
||||
Error(u"Invalid Json reply, item is missing ID."_s, obj_item);
|
||||
continue;
|
||||
}
|
||||
if (!obj_item.contains("name"_L1)) {
|
||||
Error(QStringLiteral("Invalid Json reply, item is missing name."), obj_item);
|
||||
Error(u"Invalid Json reply, item is missing name."_s, obj_item);
|
||||
continue;
|
||||
}
|
||||
if (!obj_item.contains("images"_L1)) {
|
||||
Error(QStringLiteral("Invalid Json reply, item is missing images."), obj_item);
|
||||
Error(u"Invalid Json reply, item is missing images."_s, obj_item);
|
||||
continue;
|
||||
}
|
||||
album.album_id = obj_item["id"_L1].toString();
|
||||
@@ -910,7 +910,7 @@ void SpotifyRequest::FlushAlbumSongsRequests() {
|
||||
AlbumSongsRequest request = album_songs_requests_queue_.dequeue();
|
||||
++album_songs_requests_active_;
|
||||
ParamList parameters;
|
||||
if (request.offset > 0) parameters << Param(QStringLiteral("offset"), QString::number(request.offset));
|
||||
if (request.offset > 0) parameters << Param(u"offset"_s, QString::number(request.offset));
|
||||
QNetworkReply *reply = CreateRequest(QStringLiteral("albums/%1/tracks").arg(request.album.album_id), parameters);
|
||||
replies_ << reply;
|
||||
QObject::connect(reply, &QNetworkReply::finished, this, [this, reply, request]() { AlbumSongsReplyReceived(reply, request.artist, request.album, request.offset); });
|
||||
@@ -960,7 +960,7 @@ void SpotifyRequest::SongsReceived(QNetworkReply *reply, const Artist &artist, c
|
||||
!json_obj.contains("offset"_L1) ||
|
||||
!json_obj.contains("total"_L1) ||
|
||||
!json_obj.contains("items"_L1)) {
|
||||
Error(QStringLiteral("Json object missing values."), json_obj);
|
||||
Error(u"Json object missing values."_s, json_obj);
|
||||
SongsFinishCheck(artist, album, limit_requested, offset_requested, 0, 0);
|
||||
return;
|
||||
}
|
||||
@@ -1000,7 +1000,7 @@ void SpotifyRequest::SongsReceived(QNetworkReply *reply, const Artist &artist, c
|
||||
for (const QJsonValue &value_item : array_items) {
|
||||
|
||||
if (!value_item.isObject()) {
|
||||
Error(QStringLiteral("Invalid Json reply, track is not a object."));
|
||||
Error(u"Invalid Json reply, track is not a object."_s);
|
||||
continue;
|
||||
}
|
||||
QJsonObject obj_item = value_item.toObject();
|
||||
@@ -1084,7 +1084,7 @@ void SpotifyRequest::ParseSong(Song &song, const QJsonObject &json_obj, const Ar
|
||||
!json_obj.contains("track_number"_L1) ||
|
||||
!json_obj.contains("disc_number"_L1)
|
||||
) {
|
||||
Error(QStringLiteral("Invalid Json reply, track is missing one or more values."), json_obj);
|
||||
Error(u"Invalid Json reply, track is missing one or more values."_s, json_obj);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -88,7 +88,7 @@ using std::make_shared;
|
||||
using namespace std::chrono_literals;
|
||||
|
||||
SpotifyService::SpotifyService(Application *app, QObject *parent)
|
||||
: StreamingService(Song::Source::Spotify, QStringLiteral("Spotify"), QStringLiteral("spotify"), QLatin1String(SpotifySettingsPage::kSettingsGroup), SettingsDialog::Page::Spotify, app, parent),
|
||||
: StreamingService(Song::Source::Spotify, u"Spotify"_s, u"spotify"_s, QLatin1String(SpotifySettingsPage::kSettingsGroup), SettingsDialog::Page::Spotify, app, parent),
|
||||
app_(app),
|
||||
network_(new NetworkAccessManager(this)),
|
||||
artists_collection_backend_(nullptr),
|
||||
@@ -279,11 +279,11 @@ void SpotifyService::Authenticate() {
|
||||
code_challenge_.chop(1);
|
||||
}
|
||||
|
||||
const ParamList params = ParamList() << Param(QStringLiteral("client_id"), QString::fromLatin1(QByteArray::fromBase64(kClientIDB64)))
|
||||
<< Param(QStringLiteral("response_type"), QStringLiteral("code"))
|
||||
<< Param(QStringLiteral("redirect_uri"), redirect_url.toString())
|
||||
<< Param(QStringLiteral("state"), code_challenge_)
|
||||
<< Param(QStringLiteral("scope"), QStringLiteral("user-follow-read user-follow-modify user-library-read user-library-modify streaming"));
|
||||
const ParamList params = ParamList() << Param(u"client_id"_s, QString::fromLatin1(QByteArray::fromBase64(kClientIDB64)))
|
||||
<< Param(u"response_type"_s, u"code"_s)
|
||||
<< Param(u"redirect_uri"_s, redirect_url.toString())
|
||||
<< Param(u"state"_s, code_challenge_)
|
||||
<< Param(u"scope"_s, u"user-follow-read user-follow-modify user-library-read user-library-modify streaming"_s);
|
||||
|
||||
QUrlQuery url_query;
|
||||
for (const Param ¶m : params) {
|
||||
@@ -329,12 +329,12 @@ void SpotifyService::RedirectArrived() {
|
||||
QUrl url = server_->request_url();
|
||||
if (url.isValid()) {
|
||||
QUrlQuery url_query(url);
|
||||
if (url_query.hasQueryItem(QStringLiteral("error"))) {
|
||||
LoginError(QUrlQuery(url).queryItemValue(QStringLiteral("error")));
|
||||
if (url_query.hasQueryItem(u"error"_s)) {
|
||||
LoginError(QUrlQuery(url).queryItemValue(u"error"_s));
|
||||
}
|
||||
else if (url_query.hasQueryItem(QStringLiteral("code")) && url_query.hasQueryItem(QStringLiteral("state"))) {
|
||||
else if (url_query.hasQueryItem(u"code"_s) && url_query.hasQueryItem(u"state"_s)) {
|
||||
qLog(Debug) << "Spotify: Authorization URL Received" << url;
|
||||
QString code = url_query.queryItemValue(QStringLiteral("code"));
|
||||
QString code = url_query.queryItemValue(u"code"_s);
|
||||
QUrl redirect_url(QString::fromLatin1(kOAuthRedirectUrl));
|
||||
redirect_url.setPort(server_->url().port());
|
||||
RequestAccessToken(code, redirect_url);
|
||||
@@ -361,17 +361,17 @@ void SpotifyService::RequestAccessToken(const QString &code, const QUrl &redirec
|
||||
|
||||
refresh_login_timer_.stop();
|
||||
|
||||
ParamList params = ParamList() << Param(QStringLiteral("client_id"), QString::fromLatin1(QByteArray::fromBase64(kClientIDB64)))
|
||||
<< Param(QStringLiteral("client_secret"), QString::fromLatin1(QByteArray::fromBase64(kClientSecretB64)));
|
||||
ParamList params = ParamList() << Param(u"client_id"_s, QString::fromLatin1(QByteArray::fromBase64(kClientIDB64)))
|
||||
<< Param(u"client_secret"_s, QString::fromLatin1(QByteArray::fromBase64(kClientSecretB64)));
|
||||
|
||||
if (!code.isEmpty() && !redirect_url.isEmpty()) {
|
||||
params << Param(QStringLiteral("grant_type"), QStringLiteral("authorization_code"));
|
||||
params << Param(QStringLiteral("code"), code);
|
||||
params << Param(QStringLiteral("redirect_uri"), redirect_url.toString());
|
||||
params << Param(u"grant_type"_s, u"authorization_code"_s);
|
||||
params << Param(u"code"_s, code);
|
||||
params << Param(u"redirect_uri"_s, redirect_url.toString());
|
||||
}
|
||||
else if (!refresh_token_.isEmpty() && enabled_) {
|
||||
params << Param(QStringLiteral("grant_type"), QStringLiteral("refresh_token"));
|
||||
params << Param(QStringLiteral("refresh_token"), refresh_token_);
|
||||
params << Param(u"grant_type"_s, u"refresh_token"_s);
|
||||
params << Param(u"refresh_token"_s, refresh_token_);
|
||||
}
|
||||
else {
|
||||
return;
|
||||
@@ -385,7 +385,7 @@ void SpotifyService::RequestAccessToken(const QString &code, const QUrl &redirec
|
||||
QUrl new_url(QString::fromLatin1(kOAuthAccessTokenUrl));
|
||||
QNetworkRequest req(new_url);
|
||||
req.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy);
|
||||
req.setHeader(QNetworkRequest::ContentTypeHeader, QStringLiteral("application/x-www-form-urlencoded"));
|
||||
req.setHeader(QNetworkRequest::ContentTypeHeader, u"application/x-www-form-urlencoded"_s);
|
||||
QString auth_header_data = QString::fromLatin1(QByteArray::fromBase64(kClientIDB64)) + QLatin1Char(':') + QString::fromLatin1(QByteArray::fromBase64(kClientSecretB64));
|
||||
req.setRawHeader("Authorization", "Basic " + auth_header_data.toUtf8().toBase64());
|
||||
|
||||
@@ -456,23 +456,23 @@ void SpotifyService::AccessTokenRequestFinished(QNetworkReply *reply) {
|
||||
}
|
||||
|
||||
if (json_doc.isEmpty()) {
|
||||
LoginError(QStringLiteral("Authentication reply from server has empty Json document."));
|
||||
LoginError(u"Authentication reply from server has empty Json document."_s);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!json_doc.isObject()) {
|
||||
LoginError(QStringLiteral("Authentication reply from server has Json document that is not an object."), json_doc);
|
||||
LoginError(u"Authentication reply from server has Json document that is not an object."_s, json_doc);
|
||||
return;
|
||||
}
|
||||
|
||||
QJsonObject json_obj = json_doc.object();
|
||||
if (json_obj.isEmpty()) {
|
||||
LoginError(QStringLiteral("Authentication reply from server has empty Json object."), json_doc);
|
||||
LoginError(u"Authentication reply from server has empty Json object."_s, json_doc);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!json_obj.contains("access_token"_L1) || !json_obj.contains("expires_in"_L1)) {
|
||||
LoginError(QStringLiteral("Authentication reply from server is missing access token or expires in."), json_obj);
|
||||
LoginError(u"Authentication reply from server is missing access token or expires in."_s, json_obj);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user