summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/nexusinterface.cpp2
-rw-r--r--src/nxmaccessmanager.cpp31
-rw-r--r--src/settings.cpp8
3 files changed, 20 insertions, 21 deletions
diff --git a/src/nexusinterface.cpp b/src/nexusinterface.cpp
index 06fbe451..3ea7fdac 100644
--- a/src/nexusinterface.cpp
+++ b/src/nexusinterface.cpp
@@ -148,7 +148,7 @@ QAtomicInt NexusInterface::NXMRequestInfo::s_NextID(0);
NexusInterface::NexusInterface(PluginContainer *pluginContainer)
- : m_NMMVersion(), m_PluginContainer(pluginContainer), m_RemainingDailyRequests(0), m_RemainingHourlyRequests(0), m_MaxDailyRequests(0), m_MaxHourlyRequests(0)
+ : m_NMMVersion(), m_PluginContainer(pluginContainer), m_RemainingDailyRequests(2500), m_RemainingHourlyRequests(100), m_MaxDailyRequests(2500), m_MaxHourlyRequests(100)
{
m_MOVersion = createVersionInfo();
diff --git a/src/nxmaccessmanager.cpp b/src/nxmaccessmanager.cpp
index d9bb2905..77ffbebc 100644
--- a/src/nxmaccessmanager.cpp
+++ b/src/nxmaccessmanager.cpp
@@ -249,23 +249,26 @@ void NXMAccessManager::validateFinished()
if (m_ValidateReply != nullptr) {
QJsonDocument jdoc = QJsonDocument::fromJson(m_ValidateReply->readAll());
QJsonObject credentialsData = jdoc.object();
- QString test = jdoc.toJson();
- QString name = credentialsData.value("name").toString();
- bool premium = credentialsData.value("is_premium?").toBool();
+ if (credentialsData.contains("user_id")) {
+ QString name = credentialsData.value("name").toString();
+ bool premium = credentialsData.value("is_premium").toBool();
- std::tuple<int, int, int, int> limits(std::make_tuple(
- m_ValidateReply->rawHeader("x-rl-daily-remaining").toInt(),
- m_ValidateReply->rawHeader("x-rl-daily-limit").toInt(),
- m_ValidateReply->rawHeader("x-rl-hourly-remaining").toInt(),
- m_ValidateReply->rawHeader("x-rl-hourly-limit").toInt()
- ));
+ std::tuple<int, int, int, int> limits(std::make_tuple(
+ m_ValidateReply->rawHeader("x-rl-daily-remaining").toInt(),
+ m_ValidateReply->rawHeader("x-rl-daily-limit").toInt(),
+ m_ValidateReply->rawHeader("x-rl-hourly-remaining").toInt(),
+ m_ValidateReply->rawHeader("x-rl-hourly-limit").toInt()
+ ));
- emit credentialsReceived(name, premium, limits);
+ emit credentialsReceived(name, premium, limits);
- m_ValidateReply->deleteLater();
- m_ValidateReply = nullptr;
+ m_ValidateReply->deleteLater();
+ m_ValidateReply = nullptr;
- m_ValidateState = VALIDATE_VALID;
- emit validateSuccessful(true);
+ m_ValidateState = VALIDATE_VALID;
+ emit validateSuccessful(true);
+ } else {
+ emit validateFailed(tr("Validation failed, please reauthenticate in the Settings -> Nexus tab: %1").arg(credentialsData.value("message").toString()));
+ }
}
}
diff --git a/src/settings.cpp b/src/settings.cpp
index eb34ab29..42f2e43f 100644
--- a/src/settings.cpp
+++ b/src/settings.cpp
@@ -181,9 +181,7 @@ QString Settings::obfuscate(const QString &info)
QString result;
DATA_BLOB input;
DATA_BLOB output;
- std::vector<uint8_t> data;
- data.reserve(info.size() + 1);
- memcpy(data.data(), info.constData(), info.size() + 1);
+ std::vector<uint8_t> data(info.toUtf8().begin(), info.toUtf8().end());
DWORD cbInput = info.size() + 1;
input.pbData = data.data();
input.cbData = cbInput;
@@ -204,9 +202,7 @@ QString Settings::deObfuscate(const QString &info)
QByteArray realInfo = QByteArray::fromBase64(info.toUtf8());
DATA_BLOB input;
DATA_BLOB output;
- std::vector<uint8_t> data;
- data.reserve(realInfo.size() + 1);
- memcpy(data.data(), realInfo.constData(), realInfo.size() + 1);
+ std::vector<uint8_t> data(realInfo.begin(), realInfo.end());
DWORD cbInput = realInfo.size() + 1;
input.pbData = data.data();
input.cbData = cbInput;