Subsonic: Add support for using album id to retrieve album covers
This commit is contained in:
committed by
Jonas Kvinge
parent
8302a95bc1
commit
24af1be666
@@ -69,6 +69,7 @@ class SubsonicBaseRequest : public QObject {
|
||||
bool http2() const { return service_->http2(); }
|
||||
bool verify_certificate() const { return service_->verify_certificate(); }
|
||||
bool download_album_covers() const { return service_->download_album_covers(); }
|
||||
bool use_album_id_for_album_covers() const { return service_->use_album_id_for_album_covers(); }
|
||||
|
||||
private Q_SLOTS:
|
||||
void HandleSSLErrors(const QList<QSslError> &ssl_errors);
|
||||
|
||||
@@ -606,12 +606,20 @@ QString SubsonicRequest::ParseSong(Song &song, const QJsonObject &json_obj, cons
|
||||
if (json_obj.contains("genre"_L1)) genre = json_obj["genre"_L1].toString();
|
||||
|
||||
QString cover_id;
|
||||
if (json_obj.contains("coverArt"_L1)) {
|
||||
if (json_obj["coverArt"_L1].type() == QJsonValue::String) {
|
||||
cover_id = json_obj["coverArt"_L1].toString();
|
||||
if (use_album_id_for_album_covers()) {
|
||||
cover_id = album_id;
|
||||
}
|
||||
else {
|
||||
if (json_obj.contains("coverArt"_L1)) {
|
||||
if (json_obj["coverArt"_L1].type() == QJsonValue::String) {
|
||||
cover_id = json_obj["coverArt"_L1].toString();
|
||||
}
|
||||
else {
|
||||
cover_id = QString::number(json_obj["coverArt"_L1].toInt());
|
||||
}
|
||||
}
|
||||
else {
|
||||
cover_id = QString::number(json_obj["coverArt"_L1].toInt());
|
||||
cover_id = song_id;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -122,6 +122,7 @@ class SubsonicRequest : public SubsonicBaseRequest {
|
||||
|
||||
QHash<QString, Request> album_songs_requests_pending_;
|
||||
QMultiMap<QString, QString> album_covers_requests_sent_;
|
||||
QMultiMap<QString, QUrl> album_covers_retrieved_;
|
||||
|
||||
int albums_requests_active_;
|
||||
|
||||
|
||||
@@ -82,6 +82,7 @@ SubsonicService::SubsonicService(const SharedPtr<TaskManager> task_manager,
|
||||
http2_(false),
|
||||
verify_certificate_(false),
|
||||
download_album_covers_(true),
|
||||
use_album_id_for_album_covers_(false),
|
||||
auth_method_(SubsonicSettings::AuthMethod::MD5),
|
||||
ping_redirects_(0) {
|
||||
|
||||
@@ -128,6 +129,7 @@ void SubsonicService::ReloadSettings() {
|
||||
http2_ = s.value(SubsonicSettings::kHTTP2, false).toBool();
|
||||
verify_certificate_ = s.value(SubsonicSettings::kVerifyCertificate, false).toBool();
|
||||
download_album_covers_ = s.value(SubsonicSettings::kDownloadAlbumCovers, true).toBool();
|
||||
use_album_id_for_album_covers_ = s.value(SubsonicSettings::kUseAlbumIdForAlbumCovers, false).toBool();
|
||||
auth_method_ = static_cast<SubsonicSettings::AuthMethod>(s.value(SubsonicSettings::kAuthMethod, static_cast<int>(SubsonicSettings::AuthMethod::MD5)).toInt());
|
||||
|
||||
s.endGroup();
|
||||
|
||||
@@ -80,6 +80,7 @@ class SubsonicService : public StreamingService {
|
||||
bool http2() const { return http2_; }
|
||||
bool verify_certificate() const { return verify_certificate_; }
|
||||
bool download_album_covers() const { return download_album_covers_; }
|
||||
bool use_album_id_for_album_covers() const { return use_album_id_for_album_covers_; }
|
||||
SubsonicSettings::AuthMethod auth_method() const { return auth_method_; }
|
||||
|
||||
SharedPtr<CollectionBackend> collection_backend() const { return collection_backend_; }
|
||||
@@ -123,6 +124,7 @@ class SubsonicService : public StreamingService {
|
||||
bool http2_;
|
||||
bool verify_certificate_;
|
||||
bool download_album_covers_;
|
||||
bool use_album_id_for_album_covers_;
|
||||
SubsonicSettings::AuthMethod auth_method_;
|
||||
|
||||
QStringList errors_;
|
||||
|
||||
Reference in New Issue
Block a user