From 616925ebbb8e916119f8dbee0c1f0cb97b14a68b Mon Sep 17 00:00:00 2001
From: isanae <14251494+isanae@users.noreply.github.com>
Date: Fri, 14 Jun 2019 01:38:07 -0400
Subject: moved api user account classes to their own files api label in status
bar: - now shows when not logged in - changed some of the colour thresholds
to correspond to real throttling numbers make sure the api key is also
cleared from the access manager when clearing from the settings removed
unused bool m_ValidateAttempted in NXMAccessManager update the window title
and status bar api label with correct values on startup, which fixes
incorrect values when "restarting" MO after changing nexus settings
---
src/nexusinterface.h | 131 ++-------------------------------------------------
1 file changed, 5 insertions(+), 126 deletions(-)
(limited to 'src/nexusinterface.h')
diff --git a/src/nexusinterface.h b/src/nexusinterface.h
index 6c4e8d11..6e768149 100644
--- a/src/nexusinterface.h
+++ b/src/nexusinterface.h
@@ -20,6 +20,8 @@ along with Mod Organizer. If not, see .
#ifndef NEXUSINTERFACE_H
#define NEXUSINTERFACE_H
+#include "apiuseraccount.h"
+
#include
#include
#include
@@ -40,130 +42,6 @@ class NexusInterface;
class NXMAccessManager;
-/**
- * represents user account types on a mod provider website such as nexus
- */
-enum class APIUserAccountTypes
-{
- // not logged in
- None = 0,
-
- // regular account
- Regular,
-
- // premium account
- Premium
-};
-
-
-/**
- * current limits imposed on the user account
- **/
-struct APILimits
-{
- // maximum number of requests per day
- int maxDailyRequests = 0;
-
- // remaining number of requests today
- int remainingDailyRequests = 0;
-
- // maximum number of requests per hour
- int maxHourlyRequests = 0;
-
- // remaining number of requests this hour
- int remainingHourlyRequests = 0;
-};
-
-
-/**
- * API statistics
- */
-struct APIStats
-{
- // number of API requests currently queued
- int requestsQueued = 0;
-};
-
-
-/**
- * represents a user account on the mod provier website
- */
-class APIUserAccount
-{
-public:
- // when the number of remanining requests is under this number, further
- // requests will be throttled by avoiding non-critical ones
- static const int ThrottleThreshold = 300;
-
- APIUserAccount();
-
- /**
- * user id
- */
- const QString& id() const;
-
- /**
- * user name
- */
- const QString& name() const;
-
- /**
- * account type
- */
- APIUserAccountTypes type() const;
-
- /**
- * current API limits
- */
- const APILimits& limits() const;
-
-
- /**
- * sets the user id
- */
- APIUserAccount& id(const QString& id);
-
- /**
- * sets the user name
- **/
- APIUserAccount& name(const QString& name);
-
- /**
- * sets the acount type
- */
- APIUserAccount& type(APIUserAccountTypes type);
-
- /**
- * sets the current limits
- */
- APIUserAccount& limits(const APILimits& limits);
-
-
- /**
- * returns the number of remaining requests
- */
- int remainingRequests() const;
-
- /**
- * whether the number of remaining requests is low enough that further
- * requests should be throttled
- */
- bool shouldThrottle() const;
-
- /**
- * true if all the remaining requests have been used and the API will refuse
- * further requests
- */
- bool exhausted() const;
-
-private:
- QString m_id, m_name;
- APIUserAccountTypes m_type;
- APILimits m_limits;
- APIStats m_stats;
-};
-
-
/**
* @brief convenience class to make nxm requests easier
* usually, all objects that started a nxm request will be signaled if one finished.
@@ -521,6 +399,9 @@ public:
std::vector> getGameChoices(const MOBase::IPluginGame *game);
+ APIUserAccount getAPIUserAccount() const;
+ APIStats getAPIStats() const;
+
public:
/**
@@ -667,8 +548,6 @@ private:
MOBase::VersionInfo m_MOVersion;
PluginContainer *m_PluginContainer;
APIUserAccount m_User;
-
- APIStats stats() const;
};
#endif // NEXUSINTERFACE_H
--
cgit v1.3.1