Replace QStringLiteral with QLatin1String
This commit is contained in:
@@ -73,12 +73,12 @@ bool DeezerCoverProvider::StartSearch(const QString &artist, const QString &albu
|
||||
QString resource;
|
||||
QString query = artist;
|
||||
if (album.isEmpty() && !title.isEmpty()) {
|
||||
resource = QStringLiteral("search/track");
|
||||
resource = QLatin1String("search/track");
|
||||
if (!query.isEmpty()) query.append(QLatin1Char(' '));
|
||||
query.append(title);
|
||||
}
|
||||
else {
|
||||
resource = QStringLiteral("search/album");
|
||||
resource = QLatin1String("search/album");
|
||||
if (!album.isEmpty()) {
|
||||
if (!query.isEmpty()) query.append(QLatin1Char(' '));
|
||||
query.append(album);
|
||||
@@ -129,12 +129,12 @@ QByteArray DeezerCoverProvider::GetReplyData(QNetworkReply *reply) {
|
||||
QString error;
|
||||
if (json_error.error == QJsonParseError::NoError && !json_doc.isEmpty() && json_doc.isObject()) {
|
||||
QJsonObject json_obj = json_doc.object();
|
||||
if (json_obj.contains(QStringLiteral("error"))) {
|
||||
QJsonValue value_error = json_obj[QStringLiteral("error")];
|
||||
if (json_obj.contains(QLatin1String("error"))) {
|
||||
QJsonValue value_error = json_obj[QLatin1String("error")];
|
||||
if (value_error.isObject()) {
|
||||
QJsonObject obj_error = value_error.toObject();
|
||||
int code = obj_error[QStringLiteral("code")].toInt();
|
||||
QString message = obj_error[QStringLiteral("message")].toString();
|
||||
int code = obj_error[QLatin1String("code")].toInt();
|
||||
QString message = obj_error[QLatin1String("message")].toString();
|
||||
error = QStringLiteral("%1 (%2)").arg(message).arg(code);
|
||||
}
|
||||
}
|
||||
@@ -161,27 +161,27 @@ QJsonValue DeezerCoverProvider::ExtractData(const QByteArray &data) {
|
||||
QJsonObject json_obj = ExtractJsonObj(data);
|
||||
if (json_obj.isEmpty()) return QJsonObject();
|
||||
|
||||
if (json_obj.contains(QStringLiteral("error"))) {
|
||||
QJsonValue value_error = json_obj[QStringLiteral("error")];
|
||||
if (json_obj.contains(QLatin1String("error"))) {
|
||||
QJsonValue value_error = json_obj[QLatin1String("error")];
|
||||
if (!value_error.isObject()) {
|
||||
Error(QStringLiteral("Error missing object"), json_obj);
|
||||
return QJsonValue();
|
||||
}
|
||||
QJsonObject obj_error = value_error.toObject();
|
||||
const int code = obj_error[QStringLiteral("code")].toInt();
|
||||
QString message = obj_error[QStringLiteral("message")].toString();
|
||||
const int code = obj_error[QLatin1String("code")].toInt();
|
||||
QString message = obj_error[QLatin1String("message")].toString();
|
||||
Error(QStringLiteral("%1 (%2)").arg(message).arg(code));
|
||||
return QJsonValue();
|
||||
}
|
||||
|
||||
if (!json_obj.contains(QStringLiteral("data")) && !json_obj.contains(QStringLiteral("DATA"))) {
|
||||
if (!json_obj.contains(QLatin1String("data")) && !json_obj.contains(QLatin1String("DATA"))) {
|
||||
Error(QStringLiteral("Json reply object is missing data."), json_obj);
|
||||
return QJsonValue();
|
||||
}
|
||||
|
||||
QJsonValue value_data;
|
||||
if (json_obj.contains(QStringLiteral("data"))) value_data = json_obj[QStringLiteral("data")];
|
||||
else value_data = json_obj[QStringLiteral("DATA")];
|
||||
if (json_obj.contains(QLatin1String("data"))) value_data = json_obj[QLatin1String("data")];
|
||||
else value_data = json_obj[QLatin1String("DATA")];
|
||||
|
||||
return value_data;
|
||||
|
||||
@@ -222,50 +222,50 @@ void DeezerCoverProvider::HandleSearchReply(QNetworkReply *reply, const int id)
|
||||
}
|
||||
QJsonObject json_obj = json_value.toObject();
|
||||
QJsonObject obj_album;
|
||||
if (json_obj.contains(QStringLiteral("album")) && json_obj[QStringLiteral("album")].isObject()) { // Song search, so extract the album.
|
||||
obj_album = json_obj[QStringLiteral("album")].toObject();
|
||||
if (json_obj.contains(QLatin1String("album")) && json_obj[QLatin1String("album")].isObject()) { // Song search, so extract the album.
|
||||
obj_album = json_obj[QLatin1String("album")].toObject();
|
||||
}
|
||||
else {
|
||||
obj_album = json_obj;
|
||||
}
|
||||
|
||||
if (!json_obj.contains(QStringLiteral("id")) || !obj_album.contains(QStringLiteral("id"))) {
|
||||
if (!json_obj.contains(QLatin1String("id")) || !obj_album.contains(QLatin1String("id"))) {
|
||||
Error(QStringLiteral("Invalid Json reply, data array value object is missing ID."), json_obj);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!obj_album.contains(QStringLiteral("type"))) {
|
||||
if (!obj_album.contains(QLatin1String("type"))) {
|
||||
Error(QStringLiteral("Invalid Json reply, data array value album object is missing type."), obj_album);
|
||||
continue;
|
||||
}
|
||||
QString type = obj_album[QStringLiteral("type")].toString();
|
||||
if (type != QStringLiteral("album")) {
|
||||
QString type = obj_album[QLatin1String("type")].toString();
|
||||
if (type != QLatin1String("album")) {
|
||||
Error(QStringLiteral("Invalid Json reply, data array value album object has incorrect type returned"), obj_album);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!json_obj.contains(QStringLiteral("artist"))) {
|
||||
if (!json_obj.contains(QLatin1String("artist"))) {
|
||||
Error(QStringLiteral("Invalid Json reply, data array value object is missing artist."), json_obj);
|
||||
continue;
|
||||
}
|
||||
QJsonValue value_artist = json_obj[QStringLiteral("artist")];
|
||||
QJsonValue value_artist = json_obj[QLatin1String("artist")];
|
||||
if (!value_artist.isObject()) {
|
||||
Error(QStringLiteral("Invalid Json reply, data array value artist is not a object."), value_artist);
|
||||
continue;
|
||||
}
|
||||
QJsonObject obj_artist = value_artist.toObject();
|
||||
|
||||
if (!obj_artist.contains(QStringLiteral("name"))) {
|
||||
if (!obj_artist.contains(QLatin1String("name"))) {
|
||||
Error(QStringLiteral("Invalid Json reply, data array value artist object is missing name."), obj_artist);
|
||||
continue;
|
||||
}
|
||||
QString artist = obj_artist[QStringLiteral("name")].toString();
|
||||
QString artist = obj_artist[QLatin1String("name")].toString();
|
||||
|
||||
if (!obj_album.contains(QStringLiteral("title"))) {
|
||||
if (!obj_album.contains(QLatin1String("title"))) {
|
||||
Error(QStringLiteral("Invalid Json reply, data array value album object is missing title."), obj_album);
|
||||
continue;
|
||||
}
|
||||
QString album = obj_album[QStringLiteral("title")].toString();
|
||||
QString album = obj_album[QLatin1String("title")].toString();
|
||||
|
||||
CoverProviderSearchResult cover_result;
|
||||
cover_result.artist = artist;
|
||||
|
||||
@@ -163,7 +163,7 @@ QNetworkReply *DiscogsCoverProvider::CreateRequest(QUrl url, const ParamList &pa
|
||||
url.setQuery(url_query);
|
||||
|
||||
// Sign the request
|
||||
const QByteArray data_to_sign = QStringLiteral("GET\n%1\n%2\n%3").arg(url.host(), url.path(), query_items.join(QStringLiteral("&"))).toUtf8();
|
||||
const QByteArray data_to_sign = QStringLiteral("GET\n%1\n%2\n%3").arg(url.host(), url.path(), query_items.join(QLatin1Char('&'))).toUtf8();
|
||||
const QByteArray signature(Utilities::HmacSha256(QByteArray::fromBase64(kSecretKeyB64), data_to_sign));
|
||||
|
||||
// Add the signature to the request
|
||||
@@ -201,8 +201,8 @@ QByteArray DiscogsCoverProvider::GetReplyData(QNetworkReply *reply) {
|
||||
QJsonDocument json_doc = QJsonDocument::fromJson(data, &json_error);
|
||||
if (json_error.error == QJsonParseError::NoError && !json_doc.isEmpty() && json_doc.isObject()) {
|
||||
QJsonObject json_obj = json_doc.object();
|
||||
if (json_obj.contains(QStringLiteral("message"))) {
|
||||
error = json_obj[QStringLiteral("message")].toString();
|
||||
if (json_obj.contains(QLatin1String("message"))) {
|
||||
error = json_obj[QLatin1String("message")].toString();
|
||||
}
|
||||
}
|
||||
if (error.isEmpty()) {
|
||||
@@ -245,11 +245,11 @@ void DiscogsCoverProvider::HandleSearchReply(QNetworkReply *reply, const int id)
|
||||
}
|
||||
|
||||
QJsonValue value_results;
|
||||
if (json_obj.contains(QStringLiteral("results"))) {
|
||||
value_results = json_obj[QStringLiteral("results")];
|
||||
if (json_obj.contains(QLatin1String("results"))) {
|
||||
value_results = json_obj[QLatin1String("results")];
|
||||
}
|
||||
else if (json_obj.contains(QStringLiteral("message"))) {
|
||||
QString message = json_obj[QStringLiteral("message")].toString();
|
||||
else if (json_obj.contains(QLatin1String("message"))) {
|
||||
QString message = json_obj[QLatin1String("message")].toString();
|
||||
Error(QStringLiteral("%1").arg(message));
|
||||
EndSearch(search);
|
||||
return;
|
||||
@@ -274,16 +274,16 @@ void DiscogsCoverProvider::HandleSearchReply(QNetworkReply *reply, const int id)
|
||||
continue;
|
||||
}
|
||||
QJsonObject obj_result = value_result.toObject();
|
||||
if (!obj_result.contains(QStringLiteral("id")) || !obj_result.contains(QStringLiteral("title")) || !obj_result.contains(QStringLiteral("resource_url"))) {
|
||||
if (!obj_result.contains(QLatin1String("id")) || !obj_result.contains(QLatin1String("title")) || !obj_result.contains(QLatin1String("resource_url"))) {
|
||||
Error(QStringLiteral("Invalid Json reply, results value object is missing ID, title or resource_url."), obj_result);
|
||||
continue;
|
||||
}
|
||||
quint64 release_id = obj_result[QStringLiteral("id")].toInt();
|
||||
QUrl resource_url(obj_result[QStringLiteral("resource_url")].toString());
|
||||
QString title = obj_result[QStringLiteral("title")].toString();
|
||||
quint64 release_id = obj_result[QLatin1String("id")].toInt();
|
||||
QUrl resource_url(obj_result[QLatin1String("resource_url")].toString());
|
||||
QString title = obj_result[QLatin1String("title")].toString();
|
||||
|
||||
if (title.contains(QLatin1String(" - "))) {
|
||||
QStringList title_splitted = title.split(QStringLiteral(" - "));
|
||||
QStringList title_splitted = title.split(QLatin1String(" - "));
|
||||
if (title_splitted.count() == 2) {
|
||||
QString artist = title_splitted.first();
|
||||
title = title_splitted.last();
|
||||
@@ -354,18 +354,18 @@ void DiscogsCoverProvider::HandleReleaseReply(QNetworkReply *reply, const int se
|
||||
return;
|
||||
}
|
||||
|
||||
if (!json_obj.contains(QStringLiteral("artists")) || !json_obj.contains(QStringLiteral("title"))) {
|
||||
if (!json_obj.contains(QLatin1String("artists")) || !json_obj.contains(QLatin1String("title"))) {
|
||||
Error(QStringLiteral("Json reply object is missing artists or title."), json_obj);
|
||||
EndSearch(search, release.id);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!json_obj.contains(QStringLiteral("images"))) {
|
||||
if (!json_obj.contains(QLatin1String("images"))) {
|
||||
EndSearch(search, release.id);
|
||||
return;
|
||||
}
|
||||
|
||||
QJsonValue value_artists = json_obj[QStringLiteral("artists")];
|
||||
QJsonValue value_artists = json_obj[QLatin1String("artists")];
|
||||
if (!value_artists.isArray()) {
|
||||
Error(QStringLiteral("Json reply object artists is not a array."), value_artists);
|
||||
EndSearch(search, release.id);
|
||||
@@ -380,11 +380,11 @@ void DiscogsCoverProvider::HandleReleaseReply(QNetworkReply *reply, const int se
|
||||
continue;
|
||||
}
|
||||
QJsonObject obj_artist = value_artist.toObject();
|
||||
if (!obj_artist.contains(QStringLiteral("name"))) {
|
||||
if (!obj_artist.contains(QLatin1String("name"))) {
|
||||
Error(QStringLiteral("Invalid Json reply, artists array value object is missing name."), obj_artist);
|
||||
continue;
|
||||
}
|
||||
artist = obj_artist[QStringLiteral("name")].toString();
|
||||
artist = obj_artist[QLatin1String("name")].toString();
|
||||
++i;
|
||||
if (artist == search->artist) break;
|
||||
}
|
||||
@@ -393,15 +393,15 @@ void DiscogsCoverProvider::HandleReleaseReply(QNetworkReply *reply, const int se
|
||||
EndSearch(search, release.id);
|
||||
return;
|
||||
}
|
||||
if (i > 1 && artist != search->artist) artist = QStringLiteral("Various artists");
|
||||
if (i > 1 && artist != search->artist) artist = QLatin1String("Various artists");
|
||||
|
||||
QString album = json_obj[QStringLiteral("title")].toString();
|
||||
QString album = json_obj[QLatin1String("title")].toString();
|
||||
if (artist != search->artist && album != search->album) {
|
||||
EndSearch(search, release.id);
|
||||
return;
|
||||
}
|
||||
|
||||
QJsonValue value_images = json_obj[QStringLiteral("images")];
|
||||
QJsonValue value_images = json_obj[QLatin1String("images")];
|
||||
if (!value_images.isArray()) {
|
||||
Error(QStringLiteral("Json images is not an array."));
|
||||
EndSearch(search, release.id);
|
||||
@@ -422,23 +422,23 @@ void DiscogsCoverProvider::HandleReleaseReply(QNetworkReply *reply, const int se
|
||||
continue;
|
||||
}
|
||||
QJsonObject obj_image = value_image.toObject();
|
||||
if (!obj_image.contains(QStringLiteral("type")) || !obj_image.contains(QStringLiteral("resource_url")) || !obj_image.contains(QStringLiteral("width")) || !obj_image.contains(QStringLiteral("height"))) {
|
||||
if (!obj_image.contains(QLatin1String("type")) || !obj_image.contains(QLatin1String("resource_url")) || !obj_image.contains(QLatin1String("width")) || !obj_image.contains(QLatin1String("height"))) {
|
||||
Error(QStringLiteral("Invalid Json reply, images array value object is missing type, resource_url, width or height."), obj_image);
|
||||
continue;
|
||||
}
|
||||
QString type = obj_image[QStringLiteral("type")].toString();
|
||||
if (type != QStringLiteral("primary")) {
|
||||
QString type = obj_image[QLatin1String("type")].toString();
|
||||
if (type != QLatin1String("primary")) {
|
||||
continue;
|
||||
}
|
||||
int width = obj_image[QStringLiteral("width")].toInt();
|
||||
int height = obj_image[QStringLiteral("height")].toInt();
|
||||
int width = obj_image[QLatin1String("width")].toInt();
|
||||
int height = obj_image[QLatin1String("height")].toInt();
|
||||
if (width < 300 || height < 300) continue;
|
||||
const float aspect_score = static_cast<float>(1.0) - static_cast<float>(std::max(width, height) - std::min(width, height)) / static_cast<float>(std::max(height, width));
|
||||
if (aspect_score < 0.85) continue;
|
||||
CoverProviderSearchResult result;
|
||||
result.artist = artist;
|
||||
result.album = album;
|
||||
result.image_url = QUrl(obj_image[QStringLiteral("resource_url")].toString());
|
||||
result.image_url = QUrl(obj_image[QLatin1String("resource_url")].toString());
|
||||
if (result.image_url.isEmpty()) continue;
|
||||
search->results.append(result);
|
||||
}
|
||||
|
||||
@@ -74,14 +74,14 @@ bool LastFmCoverProvider::StartSearch(const QString &artist, const QString &albu
|
||||
QString type;
|
||||
QString query = artist;
|
||||
if (album.isEmpty() && !title.isEmpty()) {
|
||||
method = QStringLiteral("track.search");
|
||||
type = QStringLiteral("track");
|
||||
method = QLatin1String("track.search");
|
||||
type = QLatin1String("track");
|
||||
if (!query.isEmpty()) query.append(QLatin1Char(' '));
|
||||
query.append(title);
|
||||
}
|
||||
else {
|
||||
method = QStringLiteral("album.search");
|
||||
type = QStringLiteral("album");
|
||||
method = QLatin1String("album.search");
|
||||
type = QLatin1String("album");
|
||||
if (!album.isEmpty()) {
|
||||
if (!query.isEmpty()) query.append(QLatin1Char(' '));
|
||||
query.append(album);
|
||||
@@ -143,12 +143,12 @@ void LastFmCoverProvider::QueryFinished(QNetworkReply *reply, const int id, cons
|
||||
}
|
||||
|
||||
QJsonValue value_results;
|
||||
if (json_obj.contains(QStringLiteral("results"))) {
|
||||
value_results = json_obj[QStringLiteral("results")];
|
||||
if (json_obj.contains(QLatin1String("results"))) {
|
||||
value_results = json_obj[QLatin1String("results")];
|
||||
}
|
||||
else if (json_obj.contains(QStringLiteral("error")) && json_obj.contains(QStringLiteral("message"))) {
|
||||
int error = json_obj[QStringLiteral("error")].toInt();
|
||||
QString message = json_obj[QStringLiteral("message")].toString();
|
||||
else if (json_obj.contains(QLatin1String("error")) && json_obj.contains(QLatin1String("message"))) {
|
||||
int error = json_obj[QLatin1String("error")].toInt();
|
||||
QString message = json_obj[QLatin1String("message")].toString();
|
||||
Error(QStringLiteral("Error: %1: %2").arg(QString::number(error), message));
|
||||
emit SearchFinished(id, results);
|
||||
return;
|
||||
@@ -174,9 +174,9 @@ void LastFmCoverProvider::QueryFinished(QNetworkReply *reply, const int id, cons
|
||||
|
||||
QJsonValue value_matches;
|
||||
|
||||
if (type == QStringLiteral("album")) {
|
||||
if (obj_results.contains(QStringLiteral("albummatches"))) {
|
||||
value_matches = obj_results[QStringLiteral("albummatches")];
|
||||
if (type == QLatin1String("album")) {
|
||||
if (obj_results.contains(QLatin1String("albummatches"))) {
|
||||
value_matches = obj_results[QLatin1String("albummatches")];
|
||||
}
|
||||
else {
|
||||
Error(QStringLiteral("Json results object is missing albummatches."), obj_results);
|
||||
@@ -184,9 +184,9 @@ void LastFmCoverProvider::QueryFinished(QNetworkReply *reply, const int id, cons
|
||||
return;
|
||||
}
|
||||
}
|
||||
else if (type == QStringLiteral("track")) {
|
||||
if (obj_results.contains(QStringLiteral("trackmatches"))) {
|
||||
value_matches = obj_results[QStringLiteral("trackmatches")];
|
||||
else if (type == QLatin1String("track")) {
|
||||
if (obj_results.contains(QLatin1String("trackmatches"))) {
|
||||
value_matches = obj_results[QLatin1String("trackmatches")];
|
||||
}
|
||||
else {
|
||||
Error(QStringLiteral("Json results object is missing trackmatches."), obj_results);
|
||||
@@ -230,17 +230,17 @@ void LastFmCoverProvider::QueryFinished(QNetworkReply *reply, const int id, cons
|
||||
continue;
|
||||
}
|
||||
QJsonObject obj = value.toObject();
|
||||
if (!obj.contains(QStringLiteral("artist")) || !obj.contains(QStringLiteral("image")) || !obj.contains(QStringLiteral("name"))) {
|
||||
if (!obj.contains(QLatin1String("artist")) || !obj.contains(QLatin1String("image")) || !obj.contains(QLatin1String("name"))) {
|
||||
Error(QStringLiteral("Invalid Json reply, album is missing artist, image or name."), obj);
|
||||
continue;
|
||||
}
|
||||
QString artist = obj[QStringLiteral("artist")].toString();
|
||||
QString artist = obj[QLatin1String("artist")].toString();
|
||||
QString album;
|
||||
if (type == QStringLiteral("album")) {
|
||||
album = obj[QStringLiteral("name")].toString();
|
||||
if (type == QLatin1String("album")) {
|
||||
album = obj[QLatin1String("name")].toString();
|
||||
}
|
||||
|
||||
QJsonValue json_image = obj[QStringLiteral("image")];
|
||||
QJsonValue json_image = obj[QLatin1String("image")];
|
||||
if (!json_image.isArray()) {
|
||||
Error(QStringLiteral("Invalid Json reply, album image is not a array."), json_image);
|
||||
continue;
|
||||
@@ -254,13 +254,13 @@ void LastFmCoverProvider::QueryFinished(QNetworkReply *reply, const int id, cons
|
||||
continue;
|
||||
}
|
||||
QJsonObject obj_image = value_image.toObject();
|
||||
if (!obj_image.contains(QStringLiteral("#text")) || !obj_image.contains(QStringLiteral("size"))) {
|
||||
if (!obj_image.contains(QLatin1String("#text")) || !obj_image.contains(QLatin1String("size"))) {
|
||||
Error(QStringLiteral("Invalid Json reply, album image value is missing #text or size."), obj_image);
|
||||
continue;
|
||||
}
|
||||
QString image_url = obj_image[QStringLiteral("#text")].toString();
|
||||
QString image_url = obj_image[QLatin1String("#text")].toString();
|
||||
if (image_url.isEmpty()) continue;
|
||||
LastFmImageSize image_size = ImageSizeFromString(obj_image[QStringLiteral("size")].toString().toLower());
|
||||
LastFmImageSize image_size = ImageSizeFromString(obj_image[QLatin1String("size")].toString().toLower());
|
||||
if (image_url_use.isEmpty() || image_size > image_size_use) {
|
||||
image_url_use = image_url;
|
||||
image_size_use = image_size;
|
||||
@@ -307,10 +307,10 @@ QByteArray LastFmCoverProvider::GetReplyData(QNetworkReply *reply) {
|
||||
QJsonDocument json_doc = QJsonDocument::fromJson(data, &json_error);
|
||||
if (json_error.error == QJsonParseError::NoError && !json_doc.isEmpty() && json_doc.isObject()) {
|
||||
QJsonObject json_obj = json_doc.object();
|
||||
if (json_obj.contains(QStringLiteral("error")) && json_obj.contains(QStringLiteral("message"))) {
|
||||
int code = json_obj[QStringLiteral("error")].toInt();
|
||||
QString message = json_obj[QStringLiteral("message")].toString();
|
||||
error = QStringLiteral("Error: ") + QString::number(code) + QStringLiteral(": ") + message;
|
||||
if (json_obj.contains(QLatin1String("error")) && json_obj.contains(QLatin1String("message"))) {
|
||||
int code = json_obj[QLatin1String("error")].toInt();
|
||||
QString message = json_obj[QLatin1String("message")].toString();
|
||||
error = QLatin1String("Error: ") + QString::number(code) + QLatin1String(": ") + message;
|
||||
}
|
||||
}
|
||||
if (error.isEmpty()) {
|
||||
@@ -339,10 +339,10 @@ void LastFmCoverProvider::Error(const QString &error, const QVariant &debug) {
|
||||
|
||||
LastFmCoverProvider::LastFmImageSize LastFmCoverProvider::ImageSizeFromString(const QString &size) {
|
||||
|
||||
if (size == QStringLiteral("small")) return LastFmImageSize::Small;
|
||||
else if (size == QStringLiteral("medium")) return LastFmImageSize::Medium;
|
||||
else if (size == QStringLiteral("large")) return LastFmImageSize::Large;
|
||||
else if (size == QStringLiteral("extralarge")) return LastFmImageSize::ExtraLarge;
|
||||
if (size == QLatin1String("small")) return LastFmImageSize::Small;
|
||||
else if (size == QLatin1String("medium")) return LastFmImageSize::Medium;
|
||||
else if (size == QLatin1String("large")) return LastFmImageSize::Large;
|
||||
else if (size == QLatin1String("extralarge")) return LastFmImageSize::ExtraLarge;
|
||||
else return LastFmImageSize::Unknown;
|
||||
|
||||
}
|
||||
|
||||
@@ -140,9 +140,9 @@ void MusicbrainzCoverProvider::HandleSearchReply(QNetworkReply *reply, const int
|
||||
return;
|
||||
}
|
||||
|
||||
if (!json_obj.contains(QStringLiteral("releases"))) {
|
||||
if (json_obj.contains(QStringLiteral("error"))) {
|
||||
QString error = json_obj[QStringLiteral("error")].toString();
|
||||
if (!json_obj.contains(QLatin1String("releases"))) {
|
||||
if (json_obj.contains(QLatin1String("error"))) {
|
||||
QString error = json_obj[QLatin1String("error")].toString();
|
||||
Error(error);
|
||||
}
|
||||
else {
|
||||
@@ -151,7 +151,7 @@ void MusicbrainzCoverProvider::HandleSearchReply(QNetworkReply *reply, const int
|
||||
emit SearchFinished(search_id, results);
|
||||
return;
|
||||
}
|
||||
QJsonValue value_releases = json_obj[QStringLiteral("releases")];
|
||||
QJsonValue value_releases = json_obj[QLatin1String("releases")];
|
||||
|
||||
if (!value_releases.isArray()) {
|
||||
Error(QStringLiteral("Json releases is not an array."), value_releases);
|
||||
@@ -172,12 +172,12 @@ void MusicbrainzCoverProvider::HandleSearchReply(QNetworkReply *reply, const int
|
||||
continue;
|
||||
}
|
||||
QJsonObject obj_release = value_release.toObject();
|
||||
if (!obj_release.contains(QStringLiteral("id")) || !obj_release.contains(QStringLiteral("artist-credit")) || !obj_release.contains(QStringLiteral("title"))) {
|
||||
if (!obj_release.contains(QLatin1String("id")) || !obj_release.contains(QLatin1String("artist-credit")) || !obj_release.contains(QLatin1String("title"))) {
|
||||
Error(QStringLiteral("Invalid Json reply, releases array object is missing id, artist-credit or title."), obj_release);
|
||||
continue;
|
||||
}
|
||||
|
||||
QJsonValue json_artists = obj_release[QStringLiteral("artist-credit")];
|
||||
QJsonValue json_artists = obj_release[QLatin1String("artist-credit")];
|
||||
if (!json_artists.isArray()) {
|
||||
Error(QStringLiteral("Invalid Json reply, artist-credit is not a array."), json_artists);
|
||||
continue;
|
||||
@@ -192,28 +192,28 @@ void MusicbrainzCoverProvider::HandleSearchReply(QNetworkReply *reply, const int
|
||||
}
|
||||
QJsonObject obj_artist = value_artist.toObject();
|
||||
|
||||
if (!obj_artist.contains(QStringLiteral("artist"))) {
|
||||
if (!obj_artist.contains(QLatin1String("artist"))) {
|
||||
Error(QStringLiteral("Invalid Json reply, artist is missing."), obj_artist);
|
||||
continue;
|
||||
}
|
||||
QJsonValue value_artist2 = obj_artist[QStringLiteral("artist")];
|
||||
QJsonValue value_artist2 = obj_artist[QLatin1String("artist")];
|
||||
if (!value_artist2.isObject()) {
|
||||
Error(QStringLiteral("Invalid Json reply, artist is not an object."), value_artist2);
|
||||
continue;
|
||||
}
|
||||
QJsonObject obj_artist2 = value_artist2.toObject();
|
||||
|
||||
if (!obj_artist2.contains(QStringLiteral("name"))) {
|
||||
if (!obj_artist2.contains(QLatin1String("name"))) {
|
||||
Error(QStringLiteral("Invalid Json reply, artist is missing name."), value_artist2);
|
||||
continue;
|
||||
}
|
||||
artist = obj_artist2[QStringLiteral("name")].toString();
|
||||
artist = obj_artist2[QLatin1String("name")].toString();
|
||||
++i;
|
||||
}
|
||||
if (i > 1) artist = QStringLiteral("Various artists");
|
||||
if (i > 1) artist = QLatin1String("Various artists");
|
||||
|
||||
QString id = obj_release[QStringLiteral("id")].toString();
|
||||
QString album = obj_release[QStringLiteral("title")].toString();
|
||||
QString id = obj_release[QLatin1String("id")].toString();
|
||||
QString album = obj_release[QLatin1String("title")].toString();
|
||||
|
||||
CoverProviderSearchResult cover_result;
|
||||
QUrl url(QString::fromLatin1(kAlbumCoverUrl).arg(id));
|
||||
@@ -247,8 +247,8 @@ QByteArray MusicbrainzCoverProvider::GetReplyData(QNetworkReply *reply) {
|
||||
QJsonDocument json_doc = QJsonDocument::fromJson(data, &json_error);
|
||||
if (json_error.error == QJsonParseError::NoError && !json_doc.isEmpty() && json_doc.isObject()) {
|
||||
QJsonObject json_obj = json_doc.object();
|
||||
if (json_obj.contains(QStringLiteral("error"))) {
|
||||
error = json_obj[QStringLiteral("error")].toString();
|
||||
if (json_obj.contains(QLatin1String("error"))) {
|
||||
error = json_obj[QLatin1String("error")].toString();
|
||||
}
|
||||
}
|
||||
if (error.isEmpty()) {
|
||||
|
||||
@@ -107,8 +107,8 @@ void MusixmatchCoverProvider::HandleSearchReply(QNetworkReply *reply, const int
|
||||
return;
|
||||
}
|
||||
const QString content = QString::fromUtf8(data);
|
||||
const QString data_begin = QStringLiteral("<script id=\"__NEXT_DATA__\" type=\"application/json\">");
|
||||
const QString data_end = QStringLiteral("</script>");
|
||||
const QString data_begin = QLatin1String("<script id=\"__NEXT_DATA__\" type=\"application/json\">");
|
||||
const QString data_end = QLatin1String("</script>");
|
||||
if (!content.contains(data_begin) || !content.contains(data_end)) {
|
||||
emit SearchFinished(id, results);
|
||||
return;
|
||||
@@ -161,47 +161,47 @@ void MusixmatchCoverProvider::HandleSearchReply(QNetworkReply *reply, const int
|
||||
return;
|
||||
}
|
||||
|
||||
if (!obj_data.contains(QStringLiteral("props")) || !obj_data[QStringLiteral("props")].isObject()) {
|
||||
if (!obj_data.contains(QLatin1String("props")) || !obj_data[QLatin1String("props")].isObject()) {
|
||||
Error(QStringLiteral("Json reply is missing props."), obj_data);
|
||||
emit SearchFinished(id, results);
|
||||
return;
|
||||
}
|
||||
obj_data = obj_data[QStringLiteral("props")].toObject();
|
||||
obj_data = obj_data[QLatin1String("props")].toObject();
|
||||
|
||||
if (!obj_data.contains(QStringLiteral("pageProps")) || !obj_data[QStringLiteral("pageProps")].isObject()) {
|
||||
if (!obj_data.contains(QLatin1String("pageProps")) || !obj_data[QLatin1String("pageProps")].isObject()) {
|
||||
Error(QStringLiteral("Json props is missing pageProps."), obj_data);
|
||||
emit SearchFinished(id, results);
|
||||
return;
|
||||
}
|
||||
obj_data = obj_data[QStringLiteral("pageProps")].toObject();
|
||||
obj_data = obj_data[QLatin1String("pageProps")].toObject();
|
||||
|
||||
if (!obj_data.contains(QStringLiteral("data")) || !obj_data[QStringLiteral("data")].isObject()) {
|
||||
if (!obj_data.contains(QLatin1String("data")) || !obj_data[QLatin1String("data")].isObject()) {
|
||||
Error(QStringLiteral("Json pageProps is missing data."), obj_data);
|
||||
emit SearchFinished(id, results);
|
||||
return;
|
||||
}
|
||||
obj_data = obj_data[QStringLiteral("data")].toObject();
|
||||
obj_data = obj_data[QLatin1String("data")].toObject();
|
||||
|
||||
if (!obj_data.contains(QStringLiteral("albumGet")) || !obj_data[QStringLiteral("albumGet")].isObject()) {
|
||||
if (!obj_data.contains(QLatin1String("albumGet")) || !obj_data[QLatin1String("albumGet")].isObject()) {
|
||||
Error(QStringLiteral("Json data is missing albumGet."), obj_data);
|
||||
emit SearchFinished(id, results);
|
||||
return;
|
||||
}
|
||||
obj_data = obj_data[QStringLiteral("albumGet")].toObject();
|
||||
obj_data = obj_data[QLatin1String("albumGet")].toObject();
|
||||
|
||||
if (!obj_data.contains(QStringLiteral("data")) || !obj_data[QStringLiteral("data")].isObject()) {
|
||||
if (!obj_data.contains(QLatin1String("data")) || !obj_data[QLatin1String("data")].isObject()) {
|
||||
Error(QStringLiteral("Json albumGet reply is missing data."), obj_data);
|
||||
emit SearchFinished(id, results);
|
||||
return;
|
||||
}
|
||||
obj_data = obj_data[QStringLiteral("data")].toObject();
|
||||
obj_data = obj_data[QLatin1String("data")].toObject();
|
||||
|
||||
CoverProviderSearchResult result;
|
||||
if (obj_data.contains(QStringLiteral("artistName")) && obj_data[QStringLiteral("artistName")].isString()) {
|
||||
result.artist = obj_data[QStringLiteral("artistName")].toString();
|
||||
if (obj_data.contains(QLatin1String("artistName")) && obj_data[QLatin1String("artistName")].isString()) {
|
||||
result.artist = obj_data[QLatin1String("artistName")].toString();
|
||||
}
|
||||
if (obj_data.contains(QStringLiteral("name")) && obj_data[QStringLiteral("name")].isString()) {
|
||||
result.album = obj_data[QStringLiteral("name")].toString();
|
||||
if (obj_data.contains(QLatin1String("name")) && obj_data[QLatin1String("name")].isString()) {
|
||||
result.album = obj_data[QLatin1String("name")].toString();
|
||||
}
|
||||
|
||||
if (result.artist.compare(artist, Qt::CaseInsensitive) != 0 && result.album.compare(album, Qt::CaseInsensitive) != 0) {
|
||||
|
||||
@@ -193,21 +193,21 @@ void OpenTidalCoverProvider::LoginFinished(QNetworkReply *reply) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!json_obj.contains(QStringLiteral("access_token")) ||
|
||||
!json_obj.contains(QStringLiteral("token_type")) ||
|
||||
!json_obj.contains(QStringLiteral("expires_in")) ||
|
||||
!json_obj[QStringLiteral("access_token")].isString() ||
|
||||
!json_obj[QStringLiteral("token_type")].isString()) {
|
||||
if (!json_obj.contains(QLatin1String("access_token")) ||
|
||||
!json_obj.contains(QLatin1String("token_type")) ||
|
||||
!json_obj.contains(QLatin1String("expires_in")) ||
|
||||
!json_obj[QLatin1String("access_token")].isString() ||
|
||||
!json_obj[QLatin1String("token_type")].isString()) {
|
||||
qLog(Error) << "OpenTidal: Invalid login reply.";
|
||||
FinishAllSearches();
|
||||
return;
|
||||
}
|
||||
|
||||
have_login_ = true;
|
||||
token_type_ = json_obj[QStringLiteral("token_type")].toString();
|
||||
access_token_ = json_obj[QStringLiteral("access_token")].toString();
|
||||
token_type_ = json_obj[QLatin1String("token_type")].toString();
|
||||
access_token_ = json_obj[QLatin1String("access_token")].toString();
|
||||
login_time_ = QDateTime::currentDateTime().toSecsSinceEpoch();
|
||||
expires_in_ = json_obj[QStringLiteral("expires_in")].toInt();
|
||||
expires_in_ = json_obj[QLatin1String("expires_in")].toInt();
|
||||
|
||||
Settings s;
|
||||
s.beginGroup(kSettingsGroup);
|
||||
@@ -262,19 +262,19 @@ QJsonObject OpenTidalCoverProvider::GetJsonObject(QNetworkReply *reply) {
|
||||
return QJsonObject();
|
||||
}
|
||||
QJsonObject json_obj = ExtractJsonObj(data);
|
||||
if (json_obj.contains(QStringLiteral("errors")) && json_obj[QStringLiteral("errors")].isArray()) {
|
||||
QJsonArray array = json_obj[QStringLiteral("errors")].toArray();
|
||||
if (json_obj.contains(QLatin1String("errors")) && json_obj[QLatin1String("errors")].isArray()) {
|
||||
QJsonArray array = json_obj[QLatin1String("errors")].toArray();
|
||||
for (const QJsonValue &value : array) {
|
||||
if (!value.isObject()) continue;
|
||||
QJsonObject obj = value.toObject();
|
||||
if (!obj.contains(QStringLiteral("category")) ||
|
||||
!obj.contains(QStringLiteral("code")) ||
|
||||
!obj.contains(QStringLiteral("detail"))) {
|
||||
if (!obj.contains(QLatin1String("category")) ||
|
||||
!obj.contains(QLatin1String("code")) ||
|
||||
!obj.contains(QLatin1String("detail"))) {
|
||||
continue;
|
||||
}
|
||||
QString category = obj[QStringLiteral("category")].toString();
|
||||
QString code = obj[QStringLiteral("code")].toString();
|
||||
QString detail = obj[QStringLiteral("detail")].toString();
|
||||
QString category = obj[QLatin1String("category")].toString();
|
||||
QString code = obj[QLatin1String("code")].toString();
|
||||
QString detail = obj[QLatin1String("detail")].toString();
|
||||
qLog(Error) << "OpenTidal:" << category << code << detail;
|
||||
}
|
||||
}
|
||||
@@ -306,7 +306,7 @@ void OpenTidalCoverProvider::SendSearchRequest(SearchRequestPtr search_request)
|
||||
url_query.addQueryItem(QStringLiteral("query"), QString::fromUtf8(QUrl::toPercentEncoding(query)));
|
||||
url_query.addQueryItem(QStringLiteral("limit"), QString::number(kLimit));
|
||||
url_query.addQueryItem(QStringLiteral("countryCode"), QStringLiteral("US"));
|
||||
QUrl url(QLatin1String(kApiUrl) + QStringLiteral("/search"));
|
||||
QUrl url(QLatin1String(kApiUrl) + QLatin1String("/search"));
|
||||
url.setQuery(url_query);
|
||||
QNetworkRequest req(url);
|
||||
req.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy);
|
||||
@@ -332,13 +332,13 @@ void OpenTidalCoverProvider::HandleSearchReply(QNetworkReply *reply, SearchReque
|
||||
return;
|
||||
}
|
||||
|
||||
if (!json_obj.contains(QStringLiteral("albums")) || !json_obj[QStringLiteral("albums")].isArray()) {
|
||||
if (!json_obj.contains(QLatin1String("albums")) || !json_obj[QLatin1String("albums")].isArray()) {
|
||||
qLog(Debug) << "OpenTidal: Json object is missing albums.";
|
||||
emit SearchFinished(search_request->id, CoverProviderSearchResults());
|
||||
return;
|
||||
}
|
||||
|
||||
QJsonArray array_albums = json_obj[QStringLiteral("albums")].toArray();
|
||||
QJsonArray array_albums = json_obj[QLatin1String("albums")].toArray();
|
||||
if (array_albums.isEmpty()) {
|
||||
emit SearchFinished(search_request->id, CoverProviderSearchResults());
|
||||
return;
|
||||
@@ -354,55 +354,55 @@ void OpenTidalCoverProvider::HandleSearchReply(QNetworkReply *reply, SearchReque
|
||||
}
|
||||
QJsonObject obj_album = value_album.toObject();
|
||||
|
||||
if (!obj_album.contains(QStringLiteral("resource")) || !obj_album[QStringLiteral("resource")].isObject()) {
|
||||
if (!obj_album.contains(QLatin1String("resource")) || !obj_album[QLatin1String("resource")].isObject()) {
|
||||
qLog(Debug) << "OpenTidal: Invalid Json reply: Albums array album is missing resource object.";
|
||||
continue;
|
||||
}
|
||||
QJsonObject obj_resource = obj_album[QStringLiteral("resource")].toObject();
|
||||
QJsonObject obj_resource = obj_album[QLatin1String("resource")].toObject();
|
||||
|
||||
if (!obj_resource.contains(QStringLiteral("artists")) || !obj_resource[QStringLiteral("artists")].isArray()) {
|
||||
if (!obj_resource.contains(QLatin1String("artists")) || !obj_resource[QLatin1String("artists")].isArray()) {
|
||||
qLog(Debug) << "OpenTidal: Invalid Json reply: Resource is missing artists array.";
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!obj_resource.contains(QStringLiteral("title")) || !obj_resource[QStringLiteral("title")].isString()) {
|
||||
if (!obj_resource.contains(QLatin1String("title")) || !obj_resource[QLatin1String("title")].isString()) {
|
||||
qLog(Debug) << "OpenTidal: Invalid Json reply: Resource is missing title.";
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!obj_resource.contains(QStringLiteral("imageCover")) || !obj_resource[QStringLiteral("imageCover")].isArray()) {
|
||||
if (!obj_resource.contains(QLatin1String("imageCover")) || !obj_resource[QLatin1String("imageCover")].isArray()) {
|
||||
qLog(Debug) << "OpenTidal: Invalid Json reply: Resource is missing imageCover array.";
|
||||
continue;
|
||||
}
|
||||
|
||||
QString artist;
|
||||
const QString album = obj_resource[QStringLiteral("title")].toString();
|
||||
const QString album = obj_resource[QLatin1String("title")].toString();
|
||||
|
||||
QJsonArray array_artists = obj_resource[QStringLiteral("artists")].toArray();
|
||||
QJsonArray array_artists = obj_resource[QLatin1String("artists")].toArray();
|
||||
for (const QJsonValueRef value_artist : array_artists) {
|
||||
if (!value_artist.isObject()) {
|
||||
continue;
|
||||
}
|
||||
QJsonObject obj_artist = value_artist.toObject();
|
||||
if (!obj_artist.contains(QStringLiteral("name"))) {
|
||||
if (!obj_artist.contains(QLatin1String("name"))) {
|
||||
continue;
|
||||
}
|
||||
artist = obj_artist[QStringLiteral("name")].toString();
|
||||
artist = obj_artist[QLatin1String("name")].toString();
|
||||
break;
|
||||
}
|
||||
|
||||
QJsonArray array_covers = obj_resource[QStringLiteral("imageCover")].toArray();
|
||||
QJsonArray array_covers = obj_resource[QLatin1String("imageCover")].toArray();
|
||||
for (const QJsonValueRef value_cover : array_covers) {
|
||||
if (!value_cover.isObject()) {
|
||||
continue;
|
||||
}
|
||||
QJsonObject obj_cover = value_cover.toObject();
|
||||
if (!obj_cover.contains(QStringLiteral("url")) || !obj_cover.contains(QStringLiteral("width")) || !obj_cover.contains(QStringLiteral("height"))) {
|
||||
if (!obj_cover.contains(QLatin1String("url")) || !obj_cover.contains(QLatin1String("width")) || !obj_cover.contains(QLatin1String("height"))) {
|
||||
continue;
|
||||
}
|
||||
const QUrl url(obj_cover[QStringLiteral("url")].toString());
|
||||
const int width = obj_cover[QStringLiteral("width")].toInt();
|
||||
const int height = obj_cover[QStringLiteral("height")].toInt();
|
||||
const QUrl url(obj_cover[QLatin1String("url")].toString());
|
||||
const int width = obj_cover[QLatin1String("width")].toInt();
|
||||
const int height = obj_cover[QLatin1String("height")].toInt();
|
||||
if (!url.isValid()) continue;
|
||||
if (width < 640 || height < 640) continue;
|
||||
CoverProviderSearchResult cover_result;
|
||||
|
||||
@@ -72,12 +72,12 @@ bool QobuzCoverProvider::StartSearch(const QString &artist, const QString &album
|
||||
QString resource;
|
||||
QString query = artist;
|
||||
if (album.isEmpty() && !title.isEmpty()) {
|
||||
resource = QStringLiteral("track/search");
|
||||
resource = QLatin1String("track/search");
|
||||
if (!query.isEmpty()) query.append(QLatin1Char(' '));
|
||||
query.append(title);
|
||||
}
|
||||
else {
|
||||
resource = QStringLiteral("album/search");
|
||||
resource = QLatin1String("album/search");
|
||||
if (!album.isEmpty()) {
|
||||
if (!query.isEmpty()) query.append(QLatin1Char(' '));
|
||||
query.append(album);
|
||||
@@ -133,9 +133,9 @@ QByteArray QobuzCoverProvider::GetReplyData(QNetworkReply *reply) {
|
||||
QJsonDocument json_doc = QJsonDocument::fromJson(data, &parse_error);
|
||||
if (parse_error.error == QJsonParseError::NoError && !json_doc.isEmpty() && json_doc.isObject()) {
|
||||
QJsonObject json_obj = json_doc.object();
|
||||
if (!json_obj.isEmpty() && json_obj.contains(QStringLiteral("status")) && json_obj.contains(QStringLiteral("code")) && json_obj.contains(QStringLiteral("message"))) {
|
||||
int code = json_obj[QStringLiteral("code")].toInt();
|
||||
QString message = json_obj[QStringLiteral("message")].toString();
|
||||
if (!json_obj.isEmpty() && json_obj.contains(QLatin1String("status")) && json_obj.contains(QLatin1String("code")) && json_obj.contains(QLatin1String("message"))) {
|
||||
int code = json_obj[QLatin1String("code")].toInt();
|
||||
QString message = json_obj[QLatin1String("message")].toString();
|
||||
error = QStringLiteral("%1 (%2)").arg(message).arg(code);
|
||||
}
|
||||
}
|
||||
@@ -178,11 +178,11 @@ void QobuzCoverProvider::HandleSearchReply(QNetworkReply *reply, const int id) {
|
||||
}
|
||||
|
||||
QJsonValue value_type;
|
||||
if (json_obj.contains(QStringLiteral("albums"))) {
|
||||
value_type = json_obj[QStringLiteral("albums")];
|
||||
if (json_obj.contains(QLatin1String("albums"))) {
|
||||
value_type = json_obj[QLatin1String("albums")];
|
||||
}
|
||||
else if (json_obj.contains(QStringLiteral("tracks"))) {
|
||||
value_type = json_obj[QStringLiteral("tracks")];
|
||||
else if (json_obj.contains(QLatin1String("tracks"))) {
|
||||
value_type = json_obj[QLatin1String("tracks")];
|
||||
}
|
||||
else {
|
||||
Error(QStringLiteral("Json reply is missing albums and tracks object."), json_obj);
|
||||
@@ -197,12 +197,12 @@ void QobuzCoverProvider::HandleSearchReply(QNetworkReply *reply, const int id) {
|
||||
}
|
||||
QJsonObject obj_type = value_type.toObject();
|
||||
|
||||
if (!obj_type.contains(QStringLiteral("items"))) {
|
||||
if (!obj_type.contains(QLatin1String("items"))) {
|
||||
Error(QStringLiteral("Json albums or tracks object does not contain items."), obj_type);
|
||||
emit SearchFinished(id, results);
|
||||
return;
|
||||
}
|
||||
QJsonValue value_items = obj_type[QStringLiteral("items")];
|
||||
QJsonValue value_items = obj_type[QLatin1String("items")];
|
||||
|
||||
if (!value_items.isArray()) {
|
||||
Error(QStringLiteral("Json albums or track object items is not a array."), value_items);
|
||||
@@ -220,49 +220,49 @@ void QobuzCoverProvider::HandleSearchReply(QNetworkReply *reply, const int id) {
|
||||
QJsonObject item_obj = value.toObject();
|
||||
|
||||
QJsonObject obj_album;
|
||||
if (item_obj.contains(QStringLiteral("album"))) {
|
||||
if (!item_obj[QStringLiteral("album")].isObject()) {
|
||||
if (item_obj.contains(QLatin1String("album"))) {
|
||||
if (!item_obj[QLatin1String("album")].isObject()) {
|
||||
Error(QStringLiteral("Invalid Json reply, items album is not a object."), item_obj);
|
||||
continue;
|
||||
}
|
||||
obj_album = item_obj[QStringLiteral("album")].toObject();
|
||||
obj_album = item_obj[QLatin1String("album")].toObject();
|
||||
}
|
||||
else {
|
||||
obj_album = item_obj;
|
||||
}
|
||||
|
||||
if (!obj_album.contains(QStringLiteral("artist")) || !obj_album.contains(QStringLiteral("image")) || !obj_album.contains(QStringLiteral("title"))) {
|
||||
if (!obj_album.contains(QLatin1String("artist")) || !obj_album.contains(QLatin1String("image")) || !obj_album.contains(QLatin1String("title"))) {
|
||||
Error(QStringLiteral("Invalid Json reply, item is missing artist, title or image."), obj_album);
|
||||
continue;
|
||||
}
|
||||
|
||||
QString album = obj_album[QStringLiteral("title")].toString();
|
||||
QString album = obj_album[QLatin1String("title")].toString();
|
||||
|
||||
// Artist
|
||||
QJsonValue value_artist = obj_album[QStringLiteral("artist")];
|
||||
QJsonValue value_artist = obj_album[QLatin1String("artist")];
|
||||
if (!value_artist.isObject()) {
|
||||
Error(QStringLiteral("Invalid Json reply, items (album) artist is not a object."), value_artist);
|
||||
continue;
|
||||
}
|
||||
QJsonObject obj_artist = value_artist.toObject();
|
||||
if (!obj_artist.contains(QStringLiteral("name"))) {
|
||||
if (!obj_artist.contains(QLatin1String("name"))) {
|
||||
Error(QStringLiteral("Invalid Json reply, items (album) artist is missing name."), obj_artist);
|
||||
continue;
|
||||
}
|
||||
QString artist = obj_artist[QStringLiteral("name")].toString();
|
||||
QString artist = obj_artist[QLatin1String("name")].toString();
|
||||
|
||||
// Image
|
||||
QJsonValue value_image = obj_album[QStringLiteral("image")];
|
||||
QJsonValue value_image = obj_album[QLatin1String("image")];
|
||||
if (!value_image.isObject()) {
|
||||
Error(QStringLiteral("Invalid Json reply, items (album) image is not a object."), value_image);
|
||||
continue;
|
||||
}
|
||||
QJsonObject obj_image = value_image.toObject();
|
||||
if (!obj_image.contains(QStringLiteral("large"))) {
|
||||
if (!obj_image.contains(QLatin1String("large"))) {
|
||||
Error(QStringLiteral("Invalid Json reply, items (album) image is missing large."), obj_image);
|
||||
continue;
|
||||
}
|
||||
QUrl cover_url(obj_image[QStringLiteral("large")].toString());
|
||||
QUrl cover_url(obj_image[QLatin1String("large")].toString());
|
||||
|
||||
CoverProviderSearchResult cover_result;
|
||||
cover_result.artist = artist;
|
||||
|
||||
@@ -280,9 +280,9 @@ void SpotifyCoverProvider::AccessTokenRequestFinished(QNetworkReply *reply) {
|
||||
QJsonDocument json_doc = QJsonDocument::fromJson(data, &json_error);
|
||||
if (json_error.error == QJsonParseError::NoError && !json_doc.isEmpty() && json_doc.isObject()) {
|
||||
QJsonObject json_obj = json_doc.object();
|
||||
if (!json_obj.isEmpty() && json_obj.contains(QStringLiteral("error")) && json_obj.contains(QStringLiteral("error_description"))) {
|
||||
QString error = json_obj[QStringLiteral("error")].toString();
|
||||
QString error_description = json_obj[QStringLiteral("error_description")].toString();
|
||||
if (!json_obj.isEmpty() && json_obj.contains(QLatin1String("error")) && json_obj.contains(QLatin1String("error_description"))) {
|
||||
QString error = json_obj[QLatin1String("error")].toString();
|
||||
QString error_description = json_obj[QLatin1String("error_description")].toString();
|
||||
login_errors_ << QStringLiteral("Authentication failure: %1 (%2)").arg(error, error_description);
|
||||
}
|
||||
}
|
||||
@@ -325,16 +325,16 @@ void SpotifyCoverProvider::AccessTokenRequestFinished(QNetworkReply *reply) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!json_obj.contains(QStringLiteral("access_token")) || !json_obj.contains(QStringLiteral("expires_in"))) {
|
||||
if (!json_obj.contains(QLatin1String("access_token")) || !json_obj.contains(QLatin1String("expires_in"))) {
|
||||
AuthError(QStringLiteral("Authentication reply from server is missing access token or expires in."), json_obj);
|
||||
return;
|
||||
}
|
||||
|
||||
access_token_ = json_obj[QStringLiteral("access_token")].toString();
|
||||
if (json_obj.contains(QStringLiteral("refresh_token"))) {
|
||||
refresh_token_ = json_obj[QStringLiteral("refresh_token")].toString();
|
||||
access_token_ = json_obj[QLatin1String("access_token")].toString();
|
||||
if (json_obj.contains(QLatin1String("refresh_token"))) {
|
||||
refresh_token_ = json_obj[QLatin1String("refresh_token")].toString();
|
||||
}
|
||||
expires_in_ = json_obj[QStringLiteral("expires_in")].toInt();
|
||||
expires_in_ = json_obj[QLatin1String("expires_in")].toInt();
|
||||
login_time_ = QDateTime::currentDateTime().toSecsSinceEpoch();
|
||||
|
||||
Settings s;
|
||||
@@ -367,14 +367,14 @@ bool SpotifyCoverProvider::StartSearch(const QString &artist, const QString &alb
|
||||
QString extract;
|
||||
QString query = artist;
|
||||
if (album.isEmpty() && !title.isEmpty()) {
|
||||
type = QStringLiteral("track");
|
||||
extract = QStringLiteral("tracks");
|
||||
type = QLatin1String("track");
|
||||
extract = QLatin1String("tracks");
|
||||
if (!query.isEmpty()) query.append(QLatin1Char(' '));
|
||||
query.append(title);
|
||||
}
|
||||
else {
|
||||
type = QStringLiteral("album");
|
||||
extract = QStringLiteral("albums");
|
||||
type = QLatin1String("album");
|
||||
extract = QLatin1String("albums");
|
||||
if (!album.isEmpty()) {
|
||||
if (!query.isEmpty()) query.append(QLatin1Char(' '));
|
||||
query.append(album);
|
||||
@@ -426,11 +426,11 @@ QByteArray SpotifyCoverProvider::GetReplyData(QNetworkReply *reply) {
|
||||
QString error;
|
||||
if (parse_error.error == QJsonParseError::NoError && !json_doc.isEmpty() && json_doc.isObject()) {
|
||||
QJsonObject json_obj = json_doc.object();
|
||||
if (!json_obj.isEmpty() && json_obj.contains(QStringLiteral("error")) && json_obj[QStringLiteral("error")].isObject()) {
|
||||
QJsonObject obj_error = json_obj[QStringLiteral("error")].toObject();
|
||||
if (obj_error.contains(QStringLiteral("status")) && obj_error.contains(QStringLiteral("message"))) {
|
||||
int status = obj_error[QStringLiteral("status")].toInt();
|
||||
QString message = obj_error[QStringLiteral("message")].toString();
|
||||
if (!json_obj.isEmpty() && json_obj.contains(QLatin1String("error")) && json_obj[QLatin1String("error")].isObject()) {
|
||||
QJsonObject obj_error = json_obj[QLatin1String("error")].toObject();
|
||||
if (obj_error.contains(QLatin1String("status")) && obj_error.contains(QLatin1String("message"))) {
|
||||
int status = obj_error[QLatin1String("status")].toInt();
|
||||
QString message = obj_error[QLatin1String("message")].toString();
|
||||
error = QStringLiteral("%1 (%2)").arg(message).arg(status);
|
||||
if (status == 401) access_token_.clear();
|
||||
}
|
||||
@@ -480,13 +480,13 @@ void SpotifyCoverProvider::HandleSearchReply(QNetworkReply *reply, const int id,
|
||||
}
|
||||
json_obj = json_obj[extract].toObject();
|
||||
|
||||
if (!json_obj.contains(QStringLiteral("items")) || !json_obj[QStringLiteral("items")].isArray()) {
|
||||
if (!json_obj.contains(QLatin1String("items")) || !json_obj[QLatin1String("items")].isArray()) {
|
||||
Error(QStringLiteral("%1 object is missing items array.").arg(extract), json_obj);
|
||||
emit SearchFinished(id, CoverProviderSearchResults());
|
||||
return;
|
||||
}
|
||||
|
||||
QJsonArray array_items = json_obj[QStringLiteral("items")].toArray();
|
||||
QJsonArray array_items = json_obj[QLatin1String("items")].toArray();
|
||||
if (array_items.isEmpty()) {
|
||||
emit SearchFinished(id, CoverProviderSearchResults());
|
||||
return;
|
||||
@@ -501,33 +501,33 @@ void SpotifyCoverProvider::HandleSearchReply(QNetworkReply *reply, const int id,
|
||||
QJsonObject obj_item = value_item.toObject();
|
||||
|
||||
QJsonObject obj_album = obj_item;
|
||||
if (obj_item.contains(QStringLiteral("album")) && obj_item[QStringLiteral("album")].isObject()) {
|
||||
obj_album = obj_item[QStringLiteral("album")].toObject();
|
||||
if (obj_item.contains(QLatin1String("album")) && obj_item[QLatin1String("album")].isObject()) {
|
||||
obj_album = obj_item[QLatin1String("album")].toObject();
|
||||
}
|
||||
|
||||
if (!obj_album.contains(QStringLiteral("artists")) || !obj_album.contains(QStringLiteral("name")) || !obj_album.contains(QStringLiteral("images")) || !obj_album[QStringLiteral("artists")].isArray() || !obj_album[QStringLiteral("images")].isArray()) {
|
||||
if (!obj_album.contains(QLatin1String("artists")) || !obj_album.contains(QLatin1String("name")) || !obj_album.contains(QLatin1String("images")) || !obj_album[QLatin1String("artists")].isArray() || !obj_album[QLatin1String("images")].isArray()) {
|
||||
continue;
|
||||
}
|
||||
QJsonArray array_artists = obj_album[QStringLiteral("artists")].toArray();
|
||||
QJsonArray array_images = obj_album[QStringLiteral("images")].toArray();
|
||||
QString album = obj_album[QStringLiteral("name")].toString();
|
||||
QJsonArray array_artists = obj_album[QLatin1String("artists")].toArray();
|
||||
QJsonArray array_images = obj_album[QLatin1String("images")].toArray();
|
||||
QString album = obj_album[QLatin1String("name")].toString();
|
||||
|
||||
QStringList artists;
|
||||
for (const QJsonValueRef value_artist : array_artists) {
|
||||
if (!value_artist.isObject()) continue;
|
||||
QJsonObject obj_artist = value_artist.toObject();
|
||||
if (!obj_artist.contains(QStringLiteral("name"))) continue;
|
||||
artists << obj_artist[QStringLiteral("name")].toString();
|
||||
if (!obj_artist.contains(QLatin1String("name"))) continue;
|
||||
artists << obj_artist[QLatin1String("name")].toString();
|
||||
}
|
||||
|
||||
for (const QJsonValueRef value_image : array_images) {
|
||||
if (!value_image.isObject()) continue;
|
||||
QJsonObject obj_image = value_image.toObject();
|
||||
if (!obj_image.contains(QStringLiteral("url")) || !obj_image.contains(QStringLiteral("width")) || !obj_image.contains(QStringLiteral("height"))) continue;
|
||||
int width = obj_image[QStringLiteral("width")].toInt();
|
||||
int height = obj_image[QStringLiteral("height")].toInt();
|
||||
if (!obj_image.contains(QLatin1String("url")) || !obj_image.contains(QLatin1String("width")) || !obj_image.contains(QLatin1String("height"))) continue;
|
||||
int width = obj_image[QLatin1String("width")].toInt();
|
||||
int height = obj_image[QLatin1String("height")].toInt();
|
||||
if (width < 300 || height < 300) continue;
|
||||
QUrl url(obj_image[QStringLiteral("url")].toString());
|
||||
QUrl url(obj_image[QLatin1String("url")].toString());
|
||||
CoverProviderSearchResult result;
|
||||
result.album = album;
|
||||
result.image_url = url;
|
||||
|
||||
@@ -73,12 +73,12 @@ bool TidalCoverProvider::StartSearch(const QString &artist, const QString &album
|
||||
QString resource;
|
||||
QString query = artist;
|
||||
if (album.isEmpty() && !title.isEmpty()) {
|
||||
resource = QStringLiteral("search/tracks");
|
||||
resource = QLatin1String("search/tracks");
|
||||
if (!query.isEmpty()) query.append(QLatin1Char(' '));
|
||||
query.append(title);
|
||||
}
|
||||
else {
|
||||
resource = QStringLiteral("search/albums");
|
||||
resource = QLatin1String("search/albums");
|
||||
if (!album.isEmpty()) {
|
||||
if (!query.isEmpty()) query.append(QLatin1Char(' '));
|
||||
query.append(album);
|
||||
@@ -134,10 +134,10 @@ QByteArray TidalCoverProvider::GetReplyData(QNetworkReply *reply) {
|
||||
QString error;
|
||||
if (parse_error.error == QJsonParseError::NoError && !json_doc.isEmpty() && json_doc.isObject()) {
|
||||
QJsonObject json_obj = json_doc.object();
|
||||
if (!json_obj.isEmpty() && json_obj.contains(QStringLiteral("status")) && json_obj.contains(QStringLiteral("userMessage"))) {
|
||||
status = json_obj[QStringLiteral("status")].toInt();
|
||||
sub_status = json_obj[QStringLiteral("subStatus")].toInt();
|
||||
QString user_message = json_obj[QStringLiteral("userMessage")].toString();
|
||||
if (!json_obj.isEmpty() && json_obj.contains(QLatin1String("status")) && json_obj.contains(QLatin1String("userMessage"))) {
|
||||
status = json_obj[QLatin1String("status")].toInt();
|
||||
sub_status = json_obj[QLatin1String("subStatus")].toInt();
|
||||
QString user_message = json_obj[QLatin1String("userMessage")].toString();
|
||||
error = QStringLiteral("%1 (%2) (%3)").arg(user_message).arg(status).arg(sub_status);
|
||||
}
|
||||
}
|
||||
@@ -180,12 +180,12 @@ void TidalCoverProvider::HandleSearchReply(QNetworkReply *reply, const int id) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!json_obj.contains(QStringLiteral("items"))) {
|
||||
if (!json_obj.contains(QLatin1String("items"))) {
|
||||
Error(QStringLiteral("Json object is missing items."), json_obj);
|
||||
emit SearchFinished(id, CoverProviderSearchResults());
|
||||
return;
|
||||
}
|
||||
QJsonValue value_items = json_obj[QStringLiteral("items")];
|
||||
QJsonValue value_items = json_obj[QLatin1String("items")];
|
||||
|
||||
if (!value_items.isArray()) {
|
||||
emit SearchFinished(id, CoverProviderSearchResults());
|
||||
@@ -207,25 +207,25 @@ void TidalCoverProvider::HandleSearchReply(QNetworkReply *reply, const int id) {
|
||||
}
|
||||
QJsonObject obj_item = value_item.toObject();
|
||||
|
||||
if (!obj_item.contains(QStringLiteral("artist"))) {
|
||||
if (!obj_item.contains(QLatin1String("artist"))) {
|
||||
Error(QStringLiteral("Invalid Json reply, items array item is missing artist."), obj_item);
|
||||
continue;
|
||||
}
|
||||
QJsonValue value_artist = obj_item[QStringLiteral("artist")];
|
||||
QJsonValue value_artist = obj_item[QLatin1String("artist")];
|
||||
if (!value_artist.isObject()) {
|
||||
Error(QStringLiteral("Invalid Json reply, items array item artist is not a object."), value_artist);
|
||||
continue;
|
||||
}
|
||||
QJsonObject obj_artist = value_artist.toObject();
|
||||
if (!obj_artist.contains(QStringLiteral("name"))) {
|
||||
if (!obj_artist.contains(QLatin1String("name"))) {
|
||||
Error(QStringLiteral("Invalid Json reply, items array item artist is missing name."), obj_artist);
|
||||
continue;
|
||||
}
|
||||
QString artist = obj_artist[QStringLiteral("name")].toString();
|
||||
QString artist = obj_artist[QLatin1String("name")].toString();
|
||||
|
||||
QJsonObject obj_album;
|
||||
if (obj_item.contains(QStringLiteral("album"))) {
|
||||
QJsonValue value_album = obj_item[QStringLiteral("album")];
|
||||
if (obj_item.contains(QLatin1String("album"))) {
|
||||
QJsonValue value_album = obj_item[QLatin1String("album")];
|
||||
if (value_album.isObject()) {
|
||||
obj_album = value_album.toObject();
|
||||
}
|
||||
@@ -238,12 +238,12 @@ void TidalCoverProvider::HandleSearchReply(QNetworkReply *reply, const int id) {
|
||||
obj_album = obj_item;
|
||||
}
|
||||
|
||||
if (!obj_album.contains(QStringLiteral("title")) || !obj_album.contains(QStringLiteral("cover"))) {
|
||||
if (!obj_album.contains(QLatin1String("title")) || !obj_album.contains(QLatin1String("cover"))) {
|
||||
Error(QStringLiteral("Invalid Json reply, items array item album is missing title or cover."), obj_album);
|
||||
continue;
|
||||
}
|
||||
QString album = obj_album[QStringLiteral("title")].toString();
|
||||
QString cover = obj_album[QStringLiteral("cover")].toString().replace(QLatin1String("-"), QLatin1String("/"));
|
||||
QString album = obj_album[QLatin1String("title")].toString();
|
||||
QString cover = obj_album[QLatin1String("cover")].toString().replace(QLatin1String("-"), QLatin1String("/"));
|
||||
|
||||
CoverProviderSearchResult cover_result;
|
||||
cover_result.artist = artist;
|
||||
|
||||
Reference in New Issue
Block a user