summaryrefslogtreecommitdiff
path: root/src/mainwindow.cpp
diff options
context:
space:
mode:
authorSilarn <jrim@rimpo.org>2019-01-27 21:51:26 -0600
committerSilarn <jrim@rimpo.org>2019-02-18 21:28:06 -0600
commitb6498abaf39be52191dfaf4fcaa7bb91ece9edcf (patch)
tree4d8dd876c617982f25ec09793f84a1f56cd8f893 /src/mainwindow.cpp
parentfbbff08fb8774d8f6a22efe9532dc27ce7a1dae7 (diff)
Implement an API rate limiter
Diffstat (limited to 'src/mainwindow.cpp')
-rw-r--r--src/mainwindow.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index 9dbb8a86..e37ab150 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -396,6 +396,8 @@ MainWindow::MainWindow(QSettings &initSettings
connect(NexusInterface::instance(&pluginContainer)->getAccessManager(), SIGNAL(validateFailed(QString)), this, SLOT(validationFailed(QString)));
connect(NexusInterface::instance(&pluginContainer)->getAccessManager(), SIGNAL(credentialsReceived(const QString&, bool)),
this, SLOT(updateWindowTitle(const QString&, bool)));
+ connect(NexusInterface::instance(&pluginContainer)->getAccessManager(), SIGNAL(credentialsReceived(const QString&, bool)),
+ NexusInterface::instance(&m_PluginContainer), SLOT(setRateMax(const QString&, bool)));
connect(&TutorialManager::instance(), SIGNAL(windowTutorialFinished(QString)), this, SLOT(windowTutorialFinished(QString)));
connect(ui->tabWidget, SIGNAL(currentChanged(int)), &TutorialManager::instance(), SIGNAL(tabChanged(int)));
@@ -430,6 +432,11 @@ MainWindow::MainWindow(QSettings &initSettings
connect(&m_SaveMetaTimer, SIGNAL(timeout()), this, SLOT(saveModMetas()));
m_SaveMetaTimer.start(5000);
+ m_NexusLimitTimer.setTimerType(Qt::TimerType::PreciseTimer);
+ m_NexusLimitTimer.setSingleShot(false);
+ connect(&m_NexusLimitTimer, SIGNAL(timeout()), NexusInterface::instance(&m_PluginContainer), SLOT(calculateRequests()));
+ m_NexusLimitTimer.start(1000);
+
setCategoryListVisible(initSettings.value("categorylist_visible", true).toBool());
FileDialogMemory::restore(initSettings);
@@ -5526,6 +5533,7 @@ void MainWindow::nxmDescriptionAvailable(QString gameName, int modID, QVariant u
std::vector<ModInfo::Ptr> modsList = ModInfo::getByModID(gameName, modID);
for (auto mod : modsList) {
mod->setNexusDescription(result["description"].toString());
+ mod->setNewestVersion(result["version"].toString());
if ((mod->endorsedState() != ModInfo::ENDORSED_NEVER) && (result.contains("endorsement"))) {
QVariantMap endorsement = result["endorsement"].toMap();