From d765fc9297dccb5099624564e8636897d5f0d429 Mon Sep 17 00:00:00 2001 From: Xavier Jouslin de Noray <xavier.jouslindenoray@savoirfairelinux.com> Date: Wed, 13 Sep 2023 15:00:26 -0400 Subject: [PATCH] PluginStoreEndPoint: add possibility to change the plugin store end point Gitlab: #1341 Change-Id: Ib4516c6cf2361a4976230a6b056a4c072932a92b --- src/app/appsettingsmanager.h | 1 + src/app/pluginadapter.cpp | 13 ++++++------- src/app/pluginadapter.h | 3 ++- src/app/pluginversionmanager.cpp | 16 ++++++++-------- src/app/pluginversionmanager.h | 4 +--- 5 files changed, 18 insertions(+), 19 deletions(-) diff --git a/src/app/appsettingsmanager.h b/src/app/appsettingsmanager.h index b28deddc0..69344ac6c 100644 --- a/src/app/appsettingsmanager.h +++ b/src/app/appsettingsmanager.h @@ -57,6 +57,7 @@ extern const QString defaultDownloadPath; X(WindowState, QWindow::AutomaticVisibility) \ X(EnableExperimentalSwarm, false) \ X(LANG, "SYSTEM") \ + X(PluginStoreEndpoint, "https://plugins.jami.net") \ X(PositionShareDuration, 15) \ X(PositionShareLimit, true) \ X(FlipSelf, true) \ diff --git a/src/app/pluginadapter.cpp b/src/app/pluginadapter.cpp index 79a9ff944..ccc23df89 100644 --- a/src/app/pluginadapter.cpp +++ b/src/app/pluginadapter.cpp @@ -40,12 +40,11 @@ PluginAdapter::PluginAdapter(LRCInstance* instance, QString baseUrl) : QmlAdapterBase(instance, parent) , pluginStoreListModel_(new PluginStoreListModel(instance, this)) - , pluginVersionManager_(new PluginVersionManager(instance, baseUrl, this)) + , pluginVersionManager_(new PluginVersionManager(instance, this)) , pluginListModel_(new PluginListModel(instance, this)) , lrcInstance_(instance) , settingsManager_(settingsManager) , tempPath_(QDir::tempPath()) - , baseUrl_(baseUrl) { QML_REGISTERSINGLETONTYPE_POBJECT(NS_MODELS, pluginStoreListModel_, "PluginStoreListModel"); @@ -99,7 +98,7 @@ PluginAdapter::getPluginsFromStore() const auto& language = settingsManager_->getLanguage(); header["Accept-Language"] = QByteArray(language.toStdString().c_str(), language.size()); pluginVersionManager_ - ->sendGetRequest(QUrl(baseUrl_ + ->sendGetRequest(QUrl(baseUrl() + "?arch=" + lrcInstance_->pluginModel().getPlatformInfo()["os"]), header, [this, errorHandler](const QByteArray& data) { @@ -127,7 +126,7 @@ PluginAdapter::getPluginDetails(const QString& pluginId) const auto& language = settingsManager_->getLanguage(); header["Accept-Language"] = QByteArray(language.toStdString().c_str(), language.size()); pluginVersionManager_ - ->sendGetRequest(QUrl(baseUrl_ + "/details/" + pluginId + ->sendGetRequest(QUrl(baseUrl() + "/details/" + pluginId + "?arch=" + lrcInstance_->pluginModel().getPlatformInfo()["os"]), header, [this](const QByteArray& data) { @@ -214,19 +213,19 @@ PluginAdapter::checkVersionStatus(const QString& pluginId) QString PluginAdapter::baseUrl() const { - return baseUrl_; + return settingsManager_->getValue("PluginStoreEndpoint").toString(); } QString PluginAdapter::getIconUrl(const QString& pluginId) const { - return baseUrl_ + "/icons/" + pluginId + return baseUrl() + "/icons/" + pluginId + "?arch=" + lrcInstance_->pluginModel().getPlatformInfo()["os"]; } QString PluginAdapter::getBackgroundImageUrl(const QString& pluginId) const { - return baseUrl_ + "/backgrounds/" + pluginId + return baseUrl() + "/backgrounds/" + pluginId + "?arch=" + lrcInstance_->pluginModel().getPlatformInfo()["os"]; } diff --git a/src/app/pluginadapter.h b/src/app/pluginadapter.h index 5b7c3ae92..f79d35384 100644 --- a/src/app/pluginadapter.h +++ b/src/app/pluginadapter.h @@ -22,6 +22,7 @@ #include "pluginlistmodel.h" #include "pluginhandlerlistmodel.h" #include "pluginlistpreferencemodel.h" +#include "appsettingsmanager.h" #include "pluginversionmanager.h" #include "pluginstorelistmodel.h" #include "preferenceitemlistmodel.h" @@ -78,8 +79,8 @@ private: std::unique_ptr<PluginHandlerListModel> pluginHandlerListModel_; LRCInstance* lrcInstance_; + AppSettingsManager* settingsManager_; std::mutex mtx_; QString tempPath_; QString baseUrl_; - AppSettingsManager* settingsManager_; }; diff --git a/src/app/pluginversionmanager.cpp b/src/app/pluginversionmanager.cpp index 6f2c11d52..e6a177e7f 100644 --- a/src/app/pluginversionmanager.cpp +++ b/src/app/pluginversionmanager.cpp @@ -33,7 +33,7 @@ public: Impl(LRCInstance* instance, PluginVersionManager& parent) : QObject(nullptr) , parent_(parent) - , appSettingsManager_(new AppSettingsManager(this)) + , settingsManager_(new AppSettingsManager(this)) , lrcInstance_(instance) , tempPath_(QDir::tempPath()) , updateTimer_(new QTimer(this)) @@ -78,12 +78,12 @@ public: bool isAutoUpdaterEnabled() { - return appSettingsManager_->getValue(Settings::Key::PluginAutoUpdate).toBool(); + return settingsManager_->getValue(Settings::Key::PluginAutoUpdate).toBool(); } void setAutoUpdate(bool state) { - appSettingsManager_->setValue(Settings::Key::PluginAutoUpdate, state); + settingsManager_->setValue(Settings::Key::PluginAutoUpdate, state); } void checkVersionStatus(const QString& pluginId) @@ -103,7 +103,8 @@ public: return; } - parent_.sendGetRequest(QUrl(parent_.baseUrl + "/versions/" + plugin.id + "?arch=" + parent_.sendGetRequest(QUrl(settingsManager_->getValue("PluginStoreEndpoint").toString() + + "/versions/" + plugin.id + "?arch=" + lrcInstance_->pluginModel().getPlatformInfo()["os"]), [this, plugin](const QByteArray& data) { // `data` represents the version in this case. @@ -121,7 +122,7 @@ public: void installRemotePlugin(const QString& pluginId) { parent_.downloadFile( - QUrl(parent_.baseUrl + "/download/" + QUrl(settingsManager_->getValue("PluginStoreEndpoint").toString() + "/download/" + lrcInstance_->pluginModel().getPlatformInfo()["os"] + "/" + pluginId), pluginId, 0, @@ -158,15 +159,14 @@ public: }; PluginVersionManager& parent_; - AppSettingsManager* appSettingsManager_ {nullptr}; + AppSettingsManager* settingsManager_ {nullptr}; LRCInstance* lrcInstance_ {nullptr}; QString tempPath_; QTimer* updateTimer_; }; -PluginVersionManager::PluginVersionManager(LRCInstance* instance, QString& baseUrl, QObject* parent) +PluginVersionManager::PluginVersionManager(LRCInstance* instance, QObject* parent) : NetworkManager(&instance->connectivityMonitor(), parent) - , baseUrl(baseUrl) , pimpl_(std::make_unique<Impl>(instance, *this)) {} diff --git a/src/app/pluginversionmanager.h b/src/app/pluginversionmanager.h index cf03b0b85..9aff2feaf 100644 --- a/src/app/pluginversionmanager.h +++ b/src/app/pluginversionmanager.h @@ -46,9 +46,7 @@ class PluginVersionManager final : public NetworkManager { Q_OBJECT public: - explicit PluginVersionManager(LRCInstance* instance, - QString& baseUrl, - QObject* parent = nullptr); + explicit PluginVersionManager(LRCInstance* instance, QObject* parent = nullptr); ~PluginVersionManager(); Q_INVOKABLE bool isAutoUpdaterEnabled(); -- GitLab