Use QString::compare with Qt::CaseInsensitive to reduce allocations
This commit is contained in:
@@ -434,7 +434,7 @@ void ListenBrainzScrobbler::UpdateNowPlaying(const Song &song) {
|
||||
title = title.remove(Song::kTitleRemoveMisc);
|
||||
|
||||
QJsonObject object_track_metadata;
|
||||
if (song.albumartist().isEmpty() || song.albumartist().toLower() == Song::kVariousArtists) {
|
||||
if (song.albumartist().isEmpty() || song.albumartist().compare(Song::kVariousArtists, Qt::CaseInsensitive) == 0) {
|
||||
object_track_metadata.insert("artist_name", QJsonValue::fromVariant(song.artist()));
|
||||
}
|
||||
else {
|
||||
@@ -492,7 +492,7 @@ void ListenBrainzScrobbler::UpdateNowPlayingRequestFinished(QNetworkReply *reply
|
||||
}
|
||||
|
||||
QString status = json_obj["status"].toString();
|
||||
if (status.toLower() != "ok") {
|
||||
if (status.compare("ok", Qt::CaseInsensitive) != 0) {
|
||||
Error(status);
|
||||
}
|
||||
|
||||
@@ -562,13 +562,16 @@ void ListenBrainzScrobbler::Submit() {
|
||||
QJsonObject object_listen;
|
||||
object_listen.insert("listened_at", QJsonValue::fromVariant(item->timestamp_));
|
||||
QJsonObject object_track_metadata;
|
||||
if (item->albumartist_.isEmpty() || item->albumartist_.toLower() == Song::kVariousArtists)
|
||||
if (item->albumartist_.isEmpty() || item->albumartist_.compare(Song::kVariousArtists, Qt::CaseInsensitive) == 0) {
|
||||
object_track_metadata.insert("artist_name", QJsonValue::fromVariant(item->artist_));
|
||||
else
|
||||
}
|
||||
else {
|
||||
object_track_metadata.insert("artist_name", QJsonValue::fromVariant(item->albumartist_));
|
||||
}
|
||||
|
||||
if (!item->album_.isEmpty())
|
||||
if (!item->album_.isEmpty()) {
|
||||
object_track_metadata.insert("release_name", QJsonValue::fromVariant(item->album_));
|
||||
}
|
||||
|
||||
object_track_metadata.insert("track_name", QJsonValue::fromVariant(item->song_));
|
||||
object_listen.insert("track_metadata", object_track_metadata);
|
||||
|
||||
@@ -36,7 +36,7 @@ class ScrobblerCacheItem : public QObject {
|
||||
public:
|
||||
explicit ScrobblerCacheItem(const QString &artist, const QString &album, const QString &song, const QString &albumartist, const int track, const qint64 duration, const quint64 timestamp, QObject *parent = nullptr);
|
||||
|
||||
QString effective_albumartist() const { return albumartist_.isEmpty() || albumartist_.toLower() == Song::kVariousArtists ? artist_ : albumartist_; }
|
||||
QString effective_albumartist() const { return albumartist_.isEmpty() || albumartist_.compare(Song::kVariousArtists, Qt::CaseInsensitive) == 0 ? artist_ : albumartist_; }
|
||||
|
||||
public:
|
||||
QString artist_;
|
||||
|
||||
@@ -474,11 +474,13 @@ void ScrobblingAPI20::UpdateNowPlaying(const Song &song) {
|
||||
<< Param("artist", prefer_albumartist_ && song.effective_albumartist() != Song::kVariousArtists ? song.effective_albumartist() : song.artist())
|
||||
<< Param("track", title);
|
||||
|
||||
if (!album.isEmpty())
|
||||
if (!album.isEmpty()) {
|
||||
params << Param("album", album);
|
||||
}
|
||||
|
||||
if (!prefer_albumartist_ && !song.albumartist().isEmpty() && song.albumartist().toLower() != Song::kVariousArtists)
|
||||
if (!prefer_albumartist_ && !song.albumartist().isEmpty() && song.albumartist().compare(Song::kVariousArtists, Qt::CaseInsensitive) != 0) {
|
||||
params << Param("albumArtist", song.albumartist());
|
||||
}
|
||||
|
||||
QNetworkReply *reply = CreateRequest(params);
|
||||
QObject::connect(reply, &QNetworkReply::finished, this, [this, reply]() { UpdateNowPlayingRequestFinished(reply); });
|
||||
@@ -592,12 +594,15 @@ void ScrobblingAPI20::Submit() {
|
||||
params << Param(QString("%1[%2]").arg("track").arg(i), item->song_);
|
||||
params << Param(QString("%1[%2]").arg("timestamp").arg(i), QString::number(item->timestamp_));
|
||||
params << Param(QString("%1[%2]").arg("duration").arg(i), QString::number(item->duration_ / kNsecPerSec));
|
||||
if (!item->album_.isEmpty())
|
||||
if (!item->album_.isEmpty()) {
|
||||
params << Param(QString("%1[%2]").arg("album").arg(i), item->album_);
|
||||
if (!prefer_albumartist_ && !item->albumartist_.isEmpty() && item->albumartist_.toLower() != Song::kVariousArtists)
|
||||
}
|
||||
if (!prefer_albumartist_ && !item->albumartist_.isEmpty() && item->albumartist_.compare(Song::kVariousArtists, Qt::CaseInsensitive) != 0) {
|
||||
params << Param(QString("%1[%2]").arg("albumArtist").arg(i), item->albumartist_);
|
||||
if (item->track_ > 0)
|
||||
}
|
||||
if (item->track_ > 0) {
|
||||
params << Param(QString("%1[%2]").arg("trackNumber").arg(i), QString::number(item->track_));
|
||||
}
|
||||
++i;
|
||||
if (i >= kScrobblesPerRequest) break;
|
||||
}
|
||||
@@ -790,12 +795,15 @@ void ScrobblingAPI20::SendSingleScrobble(ScrobblerCacheItemPtr item) {
|
||||
<< Param("timestamp", QString::number(item->timestamp_))
|
||||
<< Param("duration", QString::number(item->duration_ / kNsecPerSec));
|
||||
|
||||
if (!item->album_.isEmpty())
|
||||
if (!item->album_.isEmpty()) {
|
||||
params << Param("album", item->album_);
|
||||
if (!prefer_albumartist_ && !item->albumartist_.isEmpty() && item->albumartist_.toLower() != Song::kVariousArtists)
|
||||
}
|
||||
if (!prefer_albumartist_ && !item->albumartist_.isEmpty() && item->albumartist_.compare(Song::kVariousArtists, Qt::CaseInsensitive) != 0) {
|
||||
params << Param("albumArtist", item->albumartist_);
|
||||
if (item->track_ > 0)
|
||||
}
|
||||
if (item->track_ > 0) {
|
||||
params << Param("trackNumber", QString::number(item->track_));
|
||||
}
|
||||
|
||||
QNetworkReply *reply = CreateRequest(params);
|
||||
QObject::connect(reply, &QNetworkReply::finished, this, [this, reply, item]() { SingleScrobbleRequestFinished(reply, item->timestamp_); });
|
||||
@@ -945,7 +953,7 @@ void ScrobblingAPI20::Love() {
|
||||
if (!song_playing_.album().isEmpty())
|
||||
params << Param("album", song_playing_.album());
|
||||
|
||||
if (!prefer_albumartist_ && !song_playing_.albumartist().isEmpty() && song_playing_.albumartist().toLower() != Song::kVariousArtists)
|
||||
if (!prefer_albumartist_ && !song_playing_.albumartist().isEmpty() && song_playing_.albumartist().compare(Song::kVariousArtists, Qt::CaseInsensitive) != 0)
|
||||
params << Param("albumArtist", song_playing_.albumartist());
|
||||
|
||||
QNetworkReply *reply = CreateRequest(params);
|
||||
|
||||
Reference in New Issue
Block a user