1
0
Fork 0
mirror of https://git.jami.net/savoirfairelinux/jami-client-qt.git synced 2025-08-10 09:45:40 +02:00

PluginStoreEndPoint: add possibility to change the plugin store end point

Gitlab: #1341
Change-Id: Ib4516c6cf2361a4976230a6b056a4c072932a92b
This commit is contained in:
Xavier Jouslin de Noray 2023-09-13 15:00:26 -04:00 committed by Adrien Béraud
parent f8f1301fa0
commit d765fc9297
5 changed files with 18 additions and 19 deletions

View file

@ -57,6 +57,7 @@ extern const QString defaultDownloadPath;
X(WindowState, QWindow::AutomaticVisibility) \ X(WindowState, QWindow::AutomaticVisibility) \
X(EnableExperimentalSwarm, false) \ X(EnableExperimentalSwarm, false) \
X(LANG, "SYSTEM") \ X(LANG, "SYSTEM") \
X(PluginStoreEndpoint, "https://plugins.jami.net") \
X(PositionShareDuration, 15) \ X(PositionShareDuration, 15) \
X(PositionShareLimit, true) \ X(PositionShareLimit, true) \
X(FlipSelf, true) \ X(FlipSelf, true) \

View file

@ -40,12 +40,11 @@ PluginAdapter::PluginAdapter(LRCInstance* instance,
QString baseUrl) QString baseUrl)
: QmlAdapterBase(instance, parent) : QmlAdapterBase(instance, parent)
, pluginStoreListModel_(new PluginStoreListModel(instance, this)) , pluginStoreListModel_(new PluginStoreListModel(instance, this))
, pluginVersionManager_(new PluginVersionManager(instance, baseUrl, this)) , pluginVersionManager_(new PluginVersionManager(instance, this))
, pluginListModel_(new PluginListModel(instance, this)) , pluginListModel_(new PluginListModel(instance, this))
, lrcInstance_(instance) , lrcInstance_(instance)
, settingsManager_(settingsManager) , settingsManager_(settingsManager)
, tempPath_(QDir::tempPath()) , tempPath_(QDir::tempPath())
, baseUrl_(baseUrl)
{ {
QML_REGISTERSINGLETONTYPE_POBJECT(NS_MODELS, pluginStoreListModel_, "PluginStoreListModel"); QML_REGISTERSINGLETONTYPE_POBJECT(NS_MODELS, pluginStoreListModel_, "PluginStoreListModel");
@ -99,7 +98,7 @@ PluginAdapter::getPluginsFromStore()
const auto& language = settingsManager_->getLanguage(); const auto& language = settingsManager_->getLanguage();
header["Accept-Language"] = QByteArray(language.toStdString().c_str(), language.size()); header["Accept-Language"] = QByteArray(language.toStdString().c_str(), language.size());
pluginVersionManager_ pluginVersionManager_
->sendGetRequest(QUrl(baseUrl_ ->sendGetRequest(QUrl(baseUrl()
+ "?arch=" + lrcInstance_->pluginModel().getPlatformInfo()["os"]), + "?arch=" + lrcInstance_->pluginModel().getPlatformInfo()["os"]),
header, header,
[this, errorHandler](const QByteArray& data) { [this, errorHandler](const QByteArray& data) {
@ -127,7 +126,7 @@ PluginAdapter::getPluginDetails(const QString& pluginId)
const auto& language = settingsManager_->getLanguage(); const auto& language = settingsManager_->getLanguage();
header["Accept-Language"] = QByteArray(language.toStdString().c_str(), language.size()); header["Accept-Language"] = QByteArray(language.toStdString().c_str(), language.size());
pluginVersionManager_ pluginVersionManager_
->sendGetRequest(QUrl(baseUrl_ + "/details/" + pluginId ->sendGetRequest(QUrl(baseUrl() + "/details/" + pluginId
+ "?arch=" + lrcInstance_->pluginModel().getPlatformInfo()["os"]), + "?arch=" + lrcInstance_->pluginModel().getPlatformInfo()["os"]),
header, header,
[this](const QByteArray& data) { [this](const QByteArray& data) {
@ -214,19 +213,19 @@ PluginAdapter::checkVersionStatus(const QString& pluginId)
QString QString
PluginAdapter::baseUrl() const PluginAdapter::baseUrl() const
{ {
return baseUrl_; return settingsManager_->getValue("PluginStoreEndpoint").toString();
} }
QString QString
PluginAdapter::getIconUrl(const QString& pluginId) const PluginAdapter::getIconUrl(const QString& pluginId) const
{ {
return baseUrl_ + "/icons/" + pluginId return baseUrl() + "/icons/" + pluginId
+ "?arch=" + lrcInstance_->pluginModel().getPlatformInfo()["os"]; + "?arch=" + lrcInstance_->pluginModel().getPlatformInfo()["os"];
} }
QString QString
PluginAdapter::getBackgroundImageUrl(const QString& pluginId) const PluginAdapter::getBackgroundImageUrl(const QString& pluginId) const
{ {
return baseUrl_ + "/backgrounds/" + pluginId return baseUrl() + "/backgrounds/" + pluginId
+ "?arch=" + lrcInstance_->pluginModel().getPlatformInfo()["os"]; + "?arch=" + lrcInstance_->pluginModel().getPlatformInfo()["os"];
} }

View file

@ -22,6 +22,7 @@
#include "pluginlistmodel.h" #include "pluginlistmodel.h"
#include "pluginhandlerlistmodel.h" #include "pluginhandlerlistmodel.h"
#include "pluginlistpreferencemodel.h" #include "pluginlistpreferencemodel.h"
#include "appsettingsmanager.h"
#include "pluginversionmanager.h" #include "pluginversionmanager.h"
#include "pluginstorelistmodel.h" #include "pluginstorelistmodel.h"
#include "preferenceitemlistmodel.h" #include "preferenceitemlistmodel.h"
@ -78,8 +79,8 @@ private:
std::unique_ptr<PluginHandlerListModel> pluginHandlerListModel_; std::unique_ptr<PluginHandlerListModel> pluginHandlerListModel_;
LRCInstance* lrcInstance_; LRCInstance* lrcInstance_;
AppSettingsManager* settingsManager_;
std::mutex mtx_; std::mutex mtx_;
QString tempPath_; QString tempPath_;
QString baseUrl_; QString baseUrl_;
AppSettingsManager* settingsManager_;
}; };

View file

@ -33,7 +33,7 @@ public:
Impl(LRCInstance* instance, PluginVersionManager& parent) Impl(LRCInstance* instance, PluginVersionManager& parent)
: QObject(nullptr) : QObject(nullptr)
, parent_(parent) , parent_(parent)
, appSettingsManager_(new AppSettingsManager(this)) , settingsManager_(new AppSettingsManager(this))
, lrcInstance_(instance) , lrcInstance_(instance)
, tempPath_(QDir::tempPath()) , tempPath_(QDir::tempPath())
, updateTimer_(new QTimer(this)) , updateTimer_(new QTimer(this))
@ -78,12 +78,12 @@ public:
bool isAutoUpdaterEnabled() bool isAutoUpdaterEnabled()
{ {
return appSettingsManager_->getValue(Settings::Key::PluginAutoUpdate).toBool(); return settingsManager_->getValue(Settings::Key::PluginAutoUpdate).toBool();
} }
void setAutoUpdate(bool state) void setAutoUpdate(bool state)
{ {
appSettingsManager_->setValue(Settings::Key::PluginAutoUpdate, state); settingsManager_->setValue(Settings::Key::PluginAutoUpdate, state);
} }
void checkVersionStatus(const QString& pluginId) void checkVersionStatus(const QString& pluginId)
@ -103,7 +103,8 @@ public:
return; 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"]), + lrcInstance_->pluginModel().getPlatformInfo()["os"]),
[this, plugin](const QByteArray& data) { [this, plugin](const QByteArray& data) {
// `data` represents the version in this case. // `data` represents the version in this case.
@ -121,7 +122,7 @@ public:
void installRemotePlugin(const QString& pluginId) void installRemotePlugin(const QString& pluginId)
{ {
parent_.downloadFile( parent_.downloadFile(
QUrl(parent_.baseUrl + "/download/" QUrl(settingsManager_->getValue("PluginStoreEndpoint").toString() + "/download/"
+ lrcInstance_->pluginModel().getPlatformInfo()["os"] + "/" + pluginId), + lrcInstance_->pluginModel().getPlatformInfo()["os"] + "/" + pluginId),
pluginId, pluginId,
0, 0,
@ -158,15 +159,14 @@ public:
}; };
PluginVersionManager& parent_; PluginVersionManager& parent_;
AppSettingsManager* appSettingsManager_ {nullptr}; AppSettingsManager* settingsManager_ {nullptr};
LRCInstance* lrcInstance_ {nullptr}; LRCInstance* lrcInstance_ {nullptr};
QString tempPath_; QString tempPath_;
QTimer* updateTimer_; QTimer* updateTimer_;
}; };
PluginVersionManager::PluginVersionManager(LRCInstance* instance, QString& baseUrl, QObject* parent) PluginVersionManager::PluginVersionManager(LRCInstance* instance, QObject* parent)
: NetworkManager(&instance->connectivityMonitor(), parent) : NetworkManager(&instance->connectivityMonitor(), parent)
, baseUrl(baseUrl)
, pimpl_(std::make_unique<Impl>(instance, *this)) , pimpl_(std::make_unique<Impl>(instance, *this))
{} {}

View file

@ -46,9 +46,7 @@ class PluginVersionManager final : public NetworkManager
{ {
Q_OBJECT Q_OBJECT
public: public:
explicit PluginVersionManager(LRCInstance* instance, explicit PluginVersionManager(LRCInstance* instance, QObject* parent = nullptr);
QString& baseUrl,
QObject* parent = nullptr);
~PluginVersionManager(); ~PluginVersionManager();
Q_INVOKABLE bool isAutoUpdaterEnabled(); Q_INVOKABLE bool isAutoUpdaterEnabled();