Replace QStringLiteral with QLatin1String
This commit is contained in:
@@ -102,10 +102,10 @@ QByteArray TidalBaseRequest::GetReplyData(QNetworkReply *reply, const bool send_
|
||||
int sub_status = 0;
|
||||
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("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);
|
||||
}
|
||||
}
|
||||
@@ -185,11 +185,11 @@ QJsonValue TidalBaseRequest::ExtractItems(const QByteArray &data) {
|
||||
|
||||
QJsonValue TidalBaseRequest::ExtractItems(const QJsonObject &json_obj) {
|
||||
|
||||
if (!json_obj.contains(QStringLiteral("items"))) {
|
||||
if (!json_obj.contains(QLatin1String("items"))) {
|
||||
Error(QStringLiteral("Json reply is missing items."), json_obj);
|
||||
return QJsonArray();
|
||||
}
|
||||
QJsonValue json_items = json_obj[QStringLiteral("items")];
|
||||
QJsonValue json_items = json_obj[QLatin1String("items")];
|
||||
return json_items;
|
||||
|
||||
}
|
||||
@@ -198,7 +198,7 @@ QString TidalBaseRequest::ErrorsToHTML(const QStringList &errors) {
|
||||
|
||||
QString error_html;
|
||||
for (const QString &error : errors) {
|
||||
error_html += error + QStringLiteral("<br />");
|
||||
error_html += error + QLatin1String("<br />");
|
||||
}
|
||||
return error_html;
|
||||
|
||||
|
||||
@@ -142,7 +142,7 @@ void TidalFavoriteRequest::AddFavoritesRequest(const FavoriteType type, const QS
|
||||
url_query.addQueryItem(QString::fromLatin1(QUrl::toPercentEncoding(param.first)), QString::fromLatin1(QUrl::toPercentEncoding(param.second)));
|
||||
}
|
||||
|
||||
QUrl url(QLatin1String(TidalService::kApiUrl) + QLatin1Char('/') + QStringLiteral("users/") + QString::number(service_->user_id()) + QStringLiteral("/favorites/") + FavoriteText(type));
|
||||
QUrl url(QLatin1String(TidalService::kApiUrl) + QLatin1Char('/') + QLatin1String("users/") + QString::number(service_->user_id()) + QLatin1String("/favorites/") + FavoriteText(type));
|
||||
QNetworkRequest req(url);
|
||||
req.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy);
|
||||
req.setHeader(QNetworkRequest::ContentTypeHeader, QStringLiteral("application/x-www-form-urlencoded"));
|
||||
@@ -251,7 +251,7 @@ void TidalFavoriteRequest::RemoveFavoritesRequest(const FavoriteType type, const
|
||||
url_query.addQueryItem(QString::fromLatin1(QUrl::toPercentEncoding(param.first)), QString::fromLatin1(QUrl::toPercentEncoding(param.second)));
|
||||
}
|
||||
|
||||
QUrl url(QLatin1String(TidalService::kApiUrl) + QStringLiteral("/users/") + QString::number(service_->user_id()) + QStringLiteral("/favorites/") + FavoriteText(type) + QStringLiteral("/") + id);
|
||||
QUrl url(QLatin1String(TidalService::kApiUrl) + QLatin1String("/users/") + QString::number(service_->user_id()) + QLatin1String("/favorites/") + FavoriteText(type) + QLatin1String("/") + id);
|
||||
url.setQuery(url_query);
|
||||
QNetworkRequest req(url);
|
||||
req.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy);
|
||||
|
||||
@@ -433,17 +433,17 @@ void TidalRequest::ArtistsReplyReceived(QNetworkReply *reply, const int limit_re
|
||||
return;
|
||||
}
|
||||
|
||||
if (!json_obj.contains(QStringLiteral("limit")) ||
|
||||
!json_obj.contains(QStringLiteral("offset")) ||
|
||||
!json_obj.contains(QStringLiteral("totalNumberOfItems")) ||
|
||||
!json_obj.contains(QStringLiteral("items"))) {
|
||||
if (!json_obj.contains(QLatin1String("limit")) ||
|
||||
!json_obj.contains(QLatin1String("offset")) ||
|
||||
!json_obj.contains(QLatin1String("totalNumberOfItems")) ||
|
||||
!json_obj.contains(QLatin1String("items"))) {
|
||||
Error(QStringLiteral("Json object missing values."), json_obj);
|
||||
ArtistsFinishCheck();
|
||||
return;
|
||||
}
|
||||
//int limit = json_obj["limit"].toInt();
|
||||
int offset = json_obj[QStringLiteral("offset")].toInt();
|
||||
int artists_total = json_obj[QStringLiteral("totalNumberOfItems")].toInt();
|
||||
int offset = json_obj[QLatin1String("offset")].toInt();
|
||||
int artists_total = json_obj[QLatin1String("totalNumberOfItems")].toInt();
|
||||
|
||||
if (offset_requested == 0) {
|
||||
artists_total_ = artists_total;
|
||||
@@ -487,8 +487,8 @@ void TidalRequest::ArtistsReplyReceived(QNetworkReply *reply, const int limit_re
|
||||
}
|
||||
QJsonObject obj_item = value_item.toObject();
|
||||
|
||||
if (obj_item.contains(QStringLiteral("item"))) {
|
||||
QJsonValue json_item = obj_item[QStringLiteral("item")];
|
||||
if (obj_item.contains(QLatin1String("item"))) {
|
||||
QJsonValue json_item = obj_item[QLatin1String("item")];
|
||||
if (!json_item.isObject()) {
|
||||
Error(QStringLiteral("Invalid Json reply, item in array is not a object."), json_item);
|
||||
continue;
|
||||
@@ -496,19 +496,19 @@ void TidalRequest::ArtistsReplyReceived(QNetworkReply *reply, const int limit_re
|
||||
obj_item = json_item.toObject();
|
||||
}
|
||||
|
||||
if (!obj_item.contains(QStringLiteral("id")) || !obj_item.contains(QStringLiteral("name"))) {
|
||||
if (!obj_item.contains(QLatin1String("id")) || !obj_item.contains(QLatin1String("name"))) {
|
||||
Error(QStringLiteral("Invalid Json reply, item missing id or album."), obj_item);
|
||||
continue;
|
||||
}
|
||||
|
||||
Artist artist;
|
||||
if (obj_item[QStringLiteral("id")].isString()) {
|
||||
artist.artist_id = obj_item[QStringLiteral("id")].toString();
|
||||
if (obj_item[QLatin1String("id")].isString()) {
|
||||
artist.artist_id = obj_item[QLatin1String("id")].toString();
|
||||
}
|
||||
else {
|
||||
artist.artist_id = QString::number(obj_item[QStringLiteral("id")].toInt());
|
||||
artist.artist_id = QString::number(obj_item[QLatin1String("id")].toInt());
|
||||
}
|
||||
artist.artist = obj_item[QStringLiteral("name")].toString();
|
||||
artist.artist = obj_item[QLatin1String("name")].toString();
|
||||
|
||||
if (artist_albums_requests_pending_.contains(artist.artist_id)) continue;
|
||||
|
||||
@@ -628,18 +628,18 @@ void TidalRequest::AlbumsReceived(QNetworkReply *reply, const Artist &artist_req
|
||||
return;
|
||||
}
|
||||
|
||||
if (!json_obj.contains(QStringLiteral("limit")) ||
|
||||
!json_obj.contains(QStringLiteral("offset")) ||
|
||||
!json_obj.contains(QStringLiteral("totalNumberOfItems")) ||
|
||||
!json_obj.contains(QStringLiteral("items"))) {
|
||||
if (!json_obj.contains(QLatin1String("limit")) ||
|
||||
!json_obj.contains(QLatin1String("offset")) ||
|
||||
!json_obj.contains(QLatin1String("totalNumberOfItems")) ||
|
||||
!json_obj.contains(QLatin1String("items"))) {
|
||||
Error(QStringLiteral("Json object missing values."), json_obj);
|
||||
AlbumsFinishCheck(artist_requested);
|
||||
return;
|
||||
}
|
||||
|
||||
//int limit = json_obj["limit"].toInt();
|
||||
int offset = json_obj[QStringLiteral("offset")].toInt();
|
||||
int albums_total = json_obj[QStringLiteral("totalNumberOfItems")].toInt();
|
||||
int offset = json_obj[QLatin1String("offset")].toInt();
|
||||
int albums_total = json_obj[QLatin1String("totalNumberOfItems")].toInt();
|
||||
|
||||
if (offset != offset_requested) {
|
||||
Error(QStringLiteral("Offset returned does not match offset requested! %1 != %2").arg(offset).arg(offset_requested));
|
||||
@@ -669,8 +669,8 @@ void TidalRequest::AlbumsReceived(QNetworkReply *reply, const Artist &artist_req
|
||||
}
|
||||
QJsonObject obj_item = value_item.toObject();
|
||||
|
||||
if (obj_item.contains(QStringLiteral("item"))) {
|
||||
QJsonValue json_item = obj_item[QStringLiteral("item")];
|
||||
if (obj_item.contains(QLatin1String("item"))) {
|
||||
QJsonValue json_item = obj_item[QLatin1String("item")];
|
||||
if (!json_item.isObject()) {
|
||||
Error(QStringLiteral("Invalid Json reply, item in array is not a object."), json_item);
|
||||
continue;
|
||||
@@ -679,47 +679,47 @@ void TidalRequest::AlbumsReceived(QNetworkReply *reply, const Artist &artist_req
|
||||
}
|
||||
|
||||
Album album;
|
||||
if (obj_item.contains(QStringLiteral("type"))) { // This was an albums request or search
|
||||
if (!obj_item.contains(QStringLiteral("id")) || !obj_item.contains(QStringLiteral("title"))) {
|
||||
if (obj_item.contains(QLatin1String("type"))) { // This was an albums request or search
|
||||
if (!obj_item.contains(QLatin1String("id")) || !obj_item.contains(QLatin1String("title"))) {
|
||||
Error(QStringLiteral("Invalid Json reply, item is missing ID or title."), obj_item);
|
||||
continue;
|
||||
}
|
||||
if (obj_item[QStringLiteral("id")].isString()) {
|
||||
album.album_id = obj_item[QStringLiteral("id")].toString();
|
||||
if (obj_item[QLatin1String("id")].isString()) {
|
||||
album.album_id = obj_item[QLatin1String("id")].toString();
|
||||
}
|
||||
else {
|
||||
album.album_id = QString::number(obj_item[QStringLiteral("id")].toInt());
|
||||
album.album_id = QString::number(obj_item[QLatin1String("id")].toInt());
|
||||
}
|
||||
album.album = obj_item[QStringLiteral("title")].toString();
|
||||
if (service_->album_explicit() && obj_item.contains(QStringLiteral("explicit"))) {
|
||||
album.album_explicit = obj_item[QStringLiteral("explicit")].toVariant().toBool();
|
||||
album.album = obj_item[QLatin1String("title")].toString();
|
||||
if (service_->album_explicit() && obj_item.contains(QLatin1String("explicit"))) {
|
||||
album.album_explicit = obj_item[QLatin1String("explicit")].toVariant().toBool();
|
||||
if (album.album_explicit && !album.album.isEmpty()) {
|
||||
album.album.append(QStringLiteral(" (Explicit)"));
|
||||
album.album.append(QLatin1String(" (Explicit)"));
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (obj_item.contains(QStringLiteral("album"))) { // This was a tracks request or search
|
||||
QJsonValue value_album = obj_item[QStringLiteral("album")];
|
||||
else if (obj_item.contains(QLatin1String("album"))) { // This was a tracks request or search
|
||||
QJsonValue value_album = obj_item[QLatin1String("album")];
|
||||
if (!value_album.isObject()) {
|
||||
Error(QStringLiteral("Invalid Json reply, item album is not a object."), value_album);
|
||||
continue;
|
||||
}
|
||||
QJsonObject obj_album = value_album.toObject();
|
||||
if (!obj_album.contains(QStringLiteral("id")) || !obj_album.contains(QStringLiteral("title"))) {
|
||||
if (!obj_album.contains(QLatin1String("id")) || !obj_album.contains(QLatin1String("title"))) {
|
||||
Error(QStringLiteral("Invalid Json reply, item album is missing ID or title."), obj_album);
|
||||
continue;
|
||||
}
|
||||
if (obj_album[QStringLiteral("id")].isString()) {
|
||||
album.album_id = obj_album[QStringLiteral("id")].toString();
|
||||
if (obj_album[QLatin1String("id")].isString()) {
|
||||
album.album_id = obj_album[QLatin1String("id")].toString();
|
||||
}
|
||||
else {
|
||||
album.album_id = QString::number(obj_album[QStringLiteral("id")].toInt());
|
||||
album.album_id = QString::number(obj_album[QLatin1String("id")].toInt());
|
||||
}
|
||||
album.album = obj_album[QStringLiteral("title")].toString();
|
||||
if (service_->album_explicit() && obj_album.contains(QStringLiteral("explicit"))) {
|
||||
album.album_explicit = obj_album[QStringLiteral("explicit")].toVariant().toBool();
|
||||
album.album = obj_album[QLatin1String("title")].toString();
|
||||
if (service_->album_explicit() && obj_album.contains(QLatin1String("explicit"))) {
|
||||
album.album_explicit = obj_album[QLatin1String("explicit")].toVariant().toBool();
|
||||
if (album.album_explicit && !album.album.isEmpty()) {
|
||||
album.album.append(QStringLiteral(" (Explicit)"));
|
||||
album.album.append(QLatin1String(" (Explicit)"));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -730,29 +730,29 @@ void TidalRequest::AlbumsReceived(QNetworkReply *reply, const Artist &artist_req
|
||||
|
||||
if (album_songs_requests_pending_.contains(album.album_id)) continue;
|
||||
|
||||
if (!obj_item.contains(QStringLiteral("artist")) || !obj_item.contains(QStringLiteral("title")) || !obj_item.contains(QStringLiteral("audioQuality"))) {
|
||||
if (!obj_item.contains(QLatin1String("artist")) || !obj_item.contains(QLatin1String("title")) || !obj_item.contains(QLatin1String("audioQuality"))) {
|
||||
Error(QStringLiteral("Invalid Json reply, item missing artist, title or audioQuality."), 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, item artist is not a object."), value_artist);
|
||||
continue;
|
||||
}
|
||||
QJsonObject obj_artist = value_artist.toObject();
|
||||
if (!obj_artist.contains(QStringLiteral("id")) || !obj_artist.contains(QStringLiteral("name"))) {
|
||||
if (!obj_artist.contains(QLatin1String("id")) || !obj_artist.contains(QLatin1String("name"))) {
|
||||
Error(QStringLiteral("Invalid Json reply, item artist missing id or name."), obj_artist);
|
||||
continue;
|
||||
}
|
||||
|
||||
Artist album_artist;
|
||||
if (obj_artist[QStringLiteral("id")].isString()) {
|
||||
album_artist.artist_id = obj_artist[QStringLiteral("id")].toString();
|
||||
if (obj_artist[QLatin1String("id")].isString()) {
|
||||
album_artist.artist_id = obj_artist[QLatin1String("id")].toString();
|
||||
}
|
||||
else {
|
||||
album_artist.artist_id = QString::number(obj_artist[QStringLiteral("id")].toInt());
|
||||
album_artist.artist_id = QString::number(obj_artist[QLatin1String("id")].toInt());
|
||||
}
|
||||
album_artist.artist = obj_artist[QStringLiteral("name")].toString();
|
||||
album_artist.artist = obj_artist[QLatin1String("name")].toString();
|
||||
|
||||
//QString quality = obj_item["audioQuality"].toString();
|
||||
//QString copyright = obj_item["copyright"].toString();
|
||||
@@ -905,18 +905,18 @@ void TidalRequest::SongsReceived(QNetworkReply *reply, const Artist &artist, con
|
||||
return;
|
||||
}
|
||||
|
||||
if (!json_obj.contains(QStringLiteral("limit")) ||
|
||||
!json_obj.contains(QStringLiteral("offset")) ||
|
||||
!json_obj.contains(QStringLiteral("totalNumberOfItems")) ||
|
||||
!json_obj.contains(QStringLiteral("items"))) {
|
||||
if (!json_obj.contains(QLatin1String("limit")) ||
|
||||
!json_obj.contains(QLatin1String("offset")) ||
|
||||
!json_obj.contains(QLatin1String("totalNumberOfItems")) ||
|
||||
!json_obj.contains(QLatin1String("items"))) {
|
||||
Error(QStringLiteral("Json object missing values."), json_obj);
|
||||
SongsFinishCheck(artist, album, limit_requested, offset_requested);
|
||||
return;
|
||||
}
|
||||
|
||||
//int limit = json_obj["limit"].toInt();
|
||||
int offset = json_obj[QStringLiteral("offset")].toInt();
|
||||
int songs_total = json_obj[QStringLiteral("totalNumberOfItems")].toInt();
|
||||
int offset = json_obj[QLatin1String("offset")].toInt();
|
||||
int songs_total = json_obj[QLatin1String("totalNumberOfItems")].toInt();
|
||||
|
||||
if (offset != offset_requested) {
|
||||
Error(QStringLiteral("Offset returned does not match offset requested! %1 != %2").arg(offset).arg(offset_requested));
|
||||
@@ -948,8 +948,8 @@ void TidalRequest::SongsReceived(QNetworkReply *reply, const Artist &artist, con
|
||||
}
|
||||
QJsonObject obj_item = value_item.toObject();
|
||||
|
||||
if (obj_item.contains(QStringLiteral("item"))) {
|
||||
QJsonValue item = obj_item[QStringLiteral("item")];
|
||||
if (obj_item.contains(QLatin1String("item"))) {
|
||||
QJsonValue item = obj_item[QLatin1String("item")];
|
||||
if (!item.isObject()) {
|
||||
Error(QStringLiteral("Invalid Json reply, item is not a object."), item);
|
||||
continue;
|
||||
@@ -1019,85 +1019,85 @@ void TidalRequest::SongsFinishCheck(const Artist &artist, const Album &album, co
|
||||
void TidalRequest::ParseSong(Song &song, const QJsonObject &json_obj, const Artist &album_artist, const Album &album) {
|
||||
|
||||
if (
|
||||
!json_obj.contains(QStringLiteral("album")) ||
|
||||
!json_obj.contains(QStringLiteral("allowStreaming")) ||
|
||||
!json_obj.contains(QStringLiteral("artist")) ||
|
||||
!json_obj.contains(QStringLiteral("artists")) ||
|
||||
!json_obj.contains(QStringLiteral("audioQuality")) ||
|
||||
!json_obj.contains(QStringLiteral("duration")) ||
|
||||
!json_obj.contains(QStringLiteral("id")) ||
|
||||
!json_obj.contains(QStringLiteral("streamReady")) ||
|
||||
!json_obj.contains(QStringLiteral("title")) ||
|
||||
!json_obj.contains(QStringLiteral("trackNumber")) ||
|
||||
!json_obj.contains(QStringLiteral("url")) ||
|
||||
!json_obj.contains(QStringLiteral("volumeNumber")) ||
|
||||
!json_obj.contains(QStringLiteral("copyright"))
|
||||
!json_obj.contains(QLatin1String("album")) ||
|
||||
!json_obj.contains(QLatin1String("allowStreaming")) ||
|
||||
!json_obj.contains(QLatin1String("artist")) ||
|
||||
!json_obj.contains(QLatin1String("artists")) ||
|
||||
!json_obj.contains(QLatin1String("audioQuality")) ||
|
||||
!json_obj.contains(QLatin1String("duration")) ||
|
||||
!json_obj.contains(QLatin1String("id")) ||
|
||||
!json_obj.contains(QLatin1String("streamReady")) ||
|
||||
!json_obj.contains(QLatin1String("title")) ||
|
||||
!json_obj.contains(QLatin1String("trackNumber")) ||
|
||||
!json_obj.contains(QLatin1String("url")) ||
|
||||
!json_obj.contains(QLatin1String("volumeNumber")) ||
|
||||
!json_obj.contains(QLatin1String("copyright"))
|
||||
) {
|
||||
Error(QStringLiteral("Invalid Json reply, track is missing one or more values."), json_obj);
|
||||
return;
|
||||
}
|
||||
|
||||
QJsonValue value_artist = json_obj[QStringLiteral("artist")];
|
||||
QJsonValue value_album = json_obj[QStringLiteral("album")];
|
||||
QJsonValue json_duration = json_obj[QStringLiteral("duration")];
|
||||
QJsonValue value_artist = json_obj[QLatin1String("artist")];
|
||||
QJsonValue value_album = json_obj[QLatin1String("album")];
|
||||
QJsonValue json_duration = json_obj[QLatin1String("duration")];
|
||||
//QJsonArray array_artists = json_obj["artists"].toArray();
|
||||
|
||||
QString song_id;
|
||||
if (json_obj[QStringLiteral("id")].isString()) {
|
||||
song_id = json_obj[QStringLiteral("id")].toString();
|
||||
if (json_obj[QLatin1String("id")].isString()) {
|
||||
song_id = json_obj[QLatin1String("id")].toString();
|
||||
}
|
||||
else {
|
||||
song_id = QString::number(json_obj[QStringLiteral("id")].toInt());
|
||||
song_id = QString::number(json_obj[QLatin1String("id")].toInt());
|
||||
}
|
||||
|
||||
QString title = json_obj[QStringLiteral("title")].toString();
|
||||
QString title = json_obj[QLatin1String("title")].toString();
|
||||
//QString urlstr = json_obj["url"].toString();
|
||||
int track = json_obj[QStringLiteral("trackNumber")].toInt();
|
||||
int disc = json_obj[QStringLiteral("volumeNumber")].toInt();
|
||||
bool allow_streaming = json_obj[QStringLiteral("allowStreaming")].toBool();
|
||||
bool stream_ready = json_obj[QStringLiteral("streamReady")].toBool();
|
||||
QString copyright = json_obj[QStringLiteral("copyright")].toString();
|
||||
int track = json_obj[QLatin1String("trackNumber")].toInt();
|
||||
int disc = json_obj[QLatin1String("volumeNumber")].toInt();
|
||||
bool allow_streaming = json_obj[QLatin1String("allowStreaming")].toBool();
|
||||
bool stream_ready = json_obj[QLatin1String("streamReady")].toBool();
|
||||
QString copyright = json_obj[QLatin1String("copyright")].toString();
|
||||
|
||||
if (!value_artist.isObject()) {
|
||||
Error(QStringLiteral("Invalid Json reply, track artist is not a object."), value_artist);
|
||||
return;
|
||||
}
|
||||
QJsonObject obj_artist = value_artist.toObject();
|
||||
if (!obj_artist.contains(QStringLiteral("id")) || !obj_artist.contains(QStringLiteral("name"))) {
|
||||
if (!obj_artist.contains(QLatin1String("id")) || !obj_artist.contains(QLatin1String("name"))) {
|
||||
Error(QStringLiteral("Invalid Json reply, track artist is missing id or name."), obj_artist);
|
||||
return;
|
||||
}
|
||||
QString artist_id;
|
||||
if (obj_artist[QStringLiteral("id")].isString()) {
|
||||
artist_id = obj_artist[QStringLiteral("id")].toString();
|
||||
if (obj_artist[QLatin1String("id")].isString()) {
|
||||
artist_id = obj_artist[QLatin1String("id")].toString();
|
||||
}
|
||||
else {
|
||||
artist_id = QString::number(obj_artist[QStringLiteral("id")].toInt());
|
||||
artist_id = QString::number(obj_artist[QLatin1String("id")].toInt());
|
||||
}
|
||||
QString artist = obj_artist[QStringLiteral("name")].toString();
|
||||
QString artist = obj_artist[QLatin1String("name")].toString();
|
||||
|
||||
if (!value_album.isObject()) {
|
||||
Error(QStringLiteral("Invalid Json reply, track album is not a object."), value_album);
|
||||
return;
|
||||
}
|
||||
QJsonObject obj_album = value_album.toObject();
|
||||
if (!obj_album.contains(QStringLiteral("id")) || !obj_album.contains(QStringLiteral("title"))) {
|
||||
if (!obj_album.contains(QLatin1String("id")) || !obj_album.contains(QLatin1String("title"))) {
|
||||
Error(QStringLiteral("Invalid Json reply, track album is missing ID or title."), obj_album);
|
||||
return;
|
||||
}
|
||||
QString album_id;
|
||||
if (obj_album[QStringLiteral("id")].isString()) {
|
||||
album_id = obj_album[QStringLiteral("id")].toString();
|
||||
if (obj_album[QLatin1String("id")].isString()) {
|
||||
album_id = obj_album[QLatin1String("id")].toString();
|
||||
}
|
||||
else {
|
||||
album_id = QString::number(obj_album[QStringLiteral("id")].toInt());
|
||||
album_id = QString::number(obj_album[QLatin1String("id")].toInt());
|
||||
}
|
||||
if (!album.album_id.isEmpty() && album.album_id != album_id) {
|
||||
Error(QStringLiteral("Invalid Json reply, track album id is wrong."), obj_album);
|
||||
return;
|
||||
}
|
||||
QString album_title = obj_album[QStringLiteral("title")].toString();
|
||||
if (album.album_explicit) album_title.append(QStringLiteral(" (Explicit)"));
|
||||
QString album_title = obj_album[QLatin1String("title")].toString();
|
||||
if (album.album_explicit) album_title.append(QLatin1String(" (Explicit)"));
|
||||
|
||||
if (!allow_streaming) {
|
||||
Warn(QStringLiteral("Song %1 %2 %3 is not allowStreaming").arg(artist, album_title, title));
|
||||
@@ -1124,8 +1124,8 @@ void TidalRequest::ParseSong(Song &song, const QJsonObject &json_obj, const Arti
|
||||
}
|
||||
|
||||
QUrl cover_url;
|
||||
if (obj_album.contains(QStringLiteral("cover"))) {
|
||||
const QString cover = obj_album[QStringLiteral("cover")].toString().replace(QLatin1String("-"), QLatin1String("/"));
|
||||
if (obj_album.contains(QLatin1String("cover"))) {
|
||||
const QString cover = obj_album[QLatin1String("cover")].toString().replace(QLatin1Char('-'), QLatin1Char('/'));
|
||||
if (!cover.isEmpty()) {
|
||||
cover_url.setUrl(QStringLiteral("%1/images/%2/%3.jpg").arg(QLatin1String(kResourcesUrl), cover, coversize_));
|
||||
}
|
||||
|
||||
@@ -424,10 +424,10 @@ void TidalService::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("status")) && json_obj.contains(QStringLiteral("userMessage"))) {
|
||||
int status = json_obj[QStringLiteral("status")].toInt();
|
||||
int 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"))) {
|
||||
int status = json_obj[QLatin1String("status")].toInt();
|
||||
int sub_status = json_obj[QLatin1String("subStatus")].toInt();
|
||||
QString user_message = json_obj[QLatin1String("userMessage")].toString();
|
||||
login_errors_ << QStringLiteral("Authentication failure: %1 (%2) (%3)").arg(user_message).arg(status).arg(sub_status);
|
||||
}
|
||||
}
|
||||
@@ -469,23 +469,23 @@ void TidalService::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"))) {
|
||||
LoginError(QStringLiteral("Authentication reply from server is missing access_token or expires_in"), json_obj);
|
||||
return;
|
||||
}
|
||||
|
||||
access_token_ = json_obj[QStringLiteral("access_token")].toString();
|
||||
expires_in_ = json_obj[QStringLiteral("expires_in")].toInt();
|
||||
if (json_obj.contains(QStringLiteral("refresh_token"))) {
|
||||
refresh_token_ = json_obj[QStringLiteral("refresh_token")].toString();
|
||||
access_token_ = json_obj[QLatin1String("access_token")].toString();
|
||||
expires_in_ = json_obj[QLatin1String("expires_in")].toInt();
|
||||
if (json_obj.contains(QLatin1String("refresh_token"))) {
|
||||
refresh_token_ = json_obj[QLatin1String("refresh_token")].toString();
|
||||
}
|
||||
login_time_ = QDateTime::currentDateTime().toSecsSinceEpoch();
|
||||
|
||||
if (json_obj.contains(QStringLiteral("user")) && json_obj[QStringLiteral("user")].isObject()) {
|
||||
QJsonObject obj_user = json_obj[QStringLiteral("user")].toObject();
|
||||
if (obj_user.contains(QStringLiteral("countryCode")) && obj_user.contains(QStringLiteral("userId"))) {
|
||||
country_code_ = obj_user[QStringLiteral("countryCode")].toString();
|
||||
user_id_ = obj_user[QStringLiteral("userId")].toInt();
|
||||
if (json_obj.contains(QLatin1String("user")) && json_obj[QLatin1String("user")].isObject()) {
|
||||
QJsonObject obj_user = json_obj[QLatin1String("user")].toObject();
|
||||
if (obj_user.contains(QLatin1String("countryCode")) && obj_user.contains(QLatin1String("userId"))) {
|
||||
country_code_ = obj_user[QLatin1String("countryCode")].toString();
|
||||
user_id_ = obj_user[QLatin1String("userId")].toInt();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -574,10 +574,10 @@ void TidalService::HandleAuthReply(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("status")) && json_obj.contains(QStringLiteral("userMessage"))) {
|
||||
int status = json_obj[QStringLiteral("status")].toInt();
|
||||
int 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"))) {
|
||||
int status = json_obj[QLatin1String("status")].toInt();
|
||||
int sub_status = json_obj[QLatin1String("subStatus")].toInt();
|
||||
QString user_message = json_obj[QLatin1String("userMessage")].toString();
|
||||
login_errors_ << QStringLiteral("Authentication failure: %1 (%2) (%3)").arg(user_message).arg(status).arg(sub_status);
|
||||
}
|
||||
}
|
||||
@@ -622,14 +622,14 @@ void TidalService::HandleAuthReply(QNetworkReply *reply) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!json_obj.contains(QStringLiteral("userId")) || !json_obj.contains(QStringLiteral("sessionId")) || !json_obj.contains(QStringLiteral("countryCode"))) {
|
||||
if (!json_obj.contains(QLatin1String("userId")) || !json_obj.contains(QLatin1String("sessionId")) || !json_obj.contains(QLatin1String("countryCode"))) {
|
||||
LoginError(QStringLiteral("Authentication reply from server is missing userId, sessionId or countryCode"), json_obj);
|
||||
return;
|
||||
}
|
||||
|
||||
country_code_ = json_obj[QStringLiteral("countryCode")].toString();
|
||||
session_id_ = json_obj[QStringLiteral("sessionId")].toString();
|
||||
user_id_ = json_obj[QStringLiteral("userId")].toInt();
|
||||
country_code_ = json_obj[QLatin1String("countryCode")].toString();
|
||||
session_id_ = json_obj[QLatin1String("sessionId")].toString();
|
||||
user_id_ = json_obj[QLatin1String("userId")].toInt();
|
||||
access_token_.clear();
|
||||
refresh_token_.clear();
|
||||
|
||||
@@ -1008,7 +1008,7 @@ void TidalService::LoginError(const QString &error, const QVariant &debug) {
|
||||
QString error_html;
|
||||
for (const QString &e : login_errors_) {
|
||||
qLog(Error) << "Tidal:" << e;
|
||||
error_html += e + QStringLiteral("<br />");
|
||||
error_html += e + QLatin1String("<br />");
|
||||
}
|
||||
if (debug.isValid()) qLog(Debug) << debug;
|
||||
|
||||
|
||||
@@ -169,22 +169,22 @@ void TidalStreamURLRequest::StreamURLReceived() {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!json_obj.contains(QStringLiteral("trackId"))) {
|
||||
if (!json_obj.contains(QLatin1String("trackId"))) {
|
||||
Error(QStringLiteral("Invalid Json reply, stream missing trackId."), json_obj);
|
||||
emit StreamURLFailure(id_, media_url_, errors_.first());
|
||||
return;
|
||||
}
|
||||
int track_id = json_obj[QStringLiteral("trackId")].toInt();
|
||||
int track_id = json_obj[QLatin1String("trackId")].toInt();
|
||||
if (track_id != song_id_) {
|
||||
qLog(Debug) << "Tidal returned track ID" << track_id << "for" << media_url_;
|
||||
}
|
||||
|
||||
Song::FileType filetype(Song::FileType::Stream);
|
||||
|
||||
if (json_obj.contains(QStringLiteral("codec")) || json_obj.contains(QStringLiteral("codecs"))) {
|
||||
if (json_obj.contains(QLatin1String("codec")) || json_obj.contains(QLatin1String("codecs"))) {
|
||||
QString codec;
|
||||
if (json_obj.contains(QStringLiteral("codec"))) codec = json_obj[QStringLiteral("codec")].toString().toLower();
|
||||
if (json_obj.contains(QStringLiteral("codecs"))) codec = json_obj[QStringLiteral("codecs")].toString().toLower();
|
||||
if (json_obj.contains(QLatin1String("codec"))) codec = json_obj[QLatin1String("codec")].toString().toLower();
|
||||
if (json_obj.contains(QLatin1String("codecs"))) codec = json_obj[QLatin1String("codecs")].toString().toLower();
|
||||
filetype = Song::FiletypeByExtension(codec);
|
||||
if (filetype == Song::FileType::Unknown) {
|
||||
qLog(Debug) << "Tidal: Unknown codec" << codec;
|
||||
@@ -194,9 +194,9 @@ void TidalStreamURLRequest::StreamURLReceived() {
|
||||
|
||||
QList<QUrl> urls;
|
||||
|
||||
if (json_obj.contains(QStringLiteral("manifest"))) {
|
||||
if (json_obj.contains(QLatin1String("manifest"))) {
|
||||
|
||||
QString manifest(json_obj[QStringLiteral("manifest")].toString());
|
||||
QString manifest(json_obj[QLatin1String("manifest")].toString());
|
||||
QByteArray data_manifest = QByteArray::fromBase64(manifest.toUtf8());
|
||||
|
||||
QXmlStreamReader xml_reader(data_manifest);
|
||||
@@ -215,9 +215,9 @@ void TidalStreamURLRequest::StreamURLReceived() {
|
||||
return;
|
||||
}
|
||||
|
||||
if (json_obj.contains(QStringLiteral("encryptionType")) && json_obj.contains(QStringLiteral("keyId"))) {
|
||||
QString encryption_type = json_obj[QStringLiteral("encryptionType")].toString();
|
||||
QString key_id = json_obj[QStringLiteral("keyId")].toString();
|
||||
if (json_obj.contains(QLatin1String("encryptionType")) && json_obj.contains(QLatin1String("keyId"))) {
|
||||
QString encryption_type = json_obj[QLatin1String("encryptionType")].toString();
|
||||
QString key_id = json_obj[QLatin1String("keyId")].toString();
|
||||
if (!encryption_type.isEmpty() && !key_id.isEmpty()) {
|
||||
Error(tr("Received URL with %1 encrypted stream from Tidal. Strawberry does not currently support encrypted streams.").arg(encryption_type));
|
||||
emit StreamURLFailure(id_, media_url_, errors_.first());
|
||||
@@ -225,13 +225,13 @@ void TidalStreamURLRequest::StreamURLReceived() {
|
||||
}
|
||||
}
|
||||
|
||||
if (!json_obj.contains(QStringLiteral("mimeType"))) {
|
||||
if (!json_obj.contains(QLatin1String("mimeType"))) {
|
||||
Error(QStringLiteral("Invalid Json reply, stream url reply manifest is missing mimeType."), json_obj);
|
||||
emit StreamURLFailure(id_, media_url_, errors_.first());
|
||||
return;
|
||||
}
|
||||
|
||||
QString mimetype = json_obj[QStringLiteral("mimeType")].toString();
|
||||
QString mimetype = json_obj[QLatin1String("mimeType")].toString();
|
||||
QMimeDatabase mimedb;
|
||||
QStringList suffixes = mimedb.mimeTypeForName(mimetype).suffixes();
|
||||
for (const QString &suffix : suffixes) {
|
||||
@@ -246,8 +246,8 @@ void TidalStreamURLRequest::StreamURLReceived() {
|
||||
|
||||
}
|
||||
|
||||
if (json_obj.contains(QStringLiteral("urls"))) {
|
||||
QJsonValue json_urls = json_obj[QStringLiteral("urls")];
|
||||
if (json_obj.contains(QLatin1String("urls"))) {
|
||||
QJsonValue json_urls = json_obj[QLatin1String("urls")];
|
||||
if (!json_urls.isArray()) {
|
||||
Error(QStringLiteral("Invalid Json reply, urls is not an array."), json_urls);
|
||||
emit StreamURLFailure(id_, media_url_, errors_.first());
|
||||
@@ -259,8 +259,8 @@ void TidalStreamURLRequest::StreamURLReceived() {
|
||||
urls << QUrl(value.toString());
|
||||
}
|
||||
}
|
||||
else if (json_obj.contains(QStringLiteral("url"))) {
|
||||
QUrl new_url(json_obj[QStringLiteral("url")].toString());
|
||||
else if (json_obj.contains(QLatin1String("url"))) {
|
||||
QUrl new_url(json_obj[QLatin1String("url")].toString());
|
||||
urls << new_url;
|
||||
if (filetype == Song::FileType::Stream) {
|
||||
// Guess filetype by filename extension in URL.
|
||||
@@ -269,8 +269,8 @@ void TidalStreamURLRequest::StreamURLReceived() {
|
||||
}
|
||||
}
|
||||
|
||||
if (json_obj.contains(QStringLiteral("encryptionKey"))) {
|
||||
QString encryption_key = json_obj[QStringLiteral("encryptionKey")].toString();
|
||||
if (json_obj.contains(QLatin1String("encryptionKey"))) {
|
||||
QString encryption_key = json_obj[QLatin1String("encryptionKey")].toString();
|
||||
if (!encryption_key.isEmpty()) {
|
||||
Error(tr("Received URL with encrypted stream from Tidal. Strawberry does not currently support encrypted streams."));
|
||||
emit StreamURLFailure(id_, media_url_, errors_.first());
|
||||
@@ -278,9 +278,9 @@ void TidalStreamURLRequest::StreamURLReceived() {
|
||||
}
|
||||
}
|
||||
|
||||
if (json_obj.contains(QStringLiteral("securityType")) && json_obj.contains(QStringLiteral("securityToken"))) {
|
||||
QString security_type = json_obj[QStringLiteral("securityType")].toString();
|
||||
QString security_token = json_obj[QStringLiteral("securityToken")].toString();
|
||||
if (json_obj.contains(QLatin1String("securityType")) && json_obj.contains(QLatin1String("securityToken"))) {
|
||||
QString security_type = json_obj[QLatin1String("securityType")].toString();
|
||||
QString security_token = json_obj[QLatin1String("securityToken")].toString();
|
||||
if (!security_type.isEmpty() && !security_token.isEmpty()) {
|
||||
Error(tr("Received URL with encrypted stream from Tidal. Strawberry does not currently support encrypted streams."));
|
||||
emit StreamURLFailure(id_, media_url_, errors_.first());
|
||||
|
||||
Reference in New Issue
Block a user