summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSilarn <jrim@rimpo.org>2019-01-31 23:19:16 -0600
committerSilarn <jrim@rimpo.org>2019-02-18 21:29:27 -0600
commit7f56407b916f6ca204e72f25c01965441e0228b1 (patch)
tree851c0c605678efbdf7dc397b3cc802d613e3a906 /src
parentd08b836265c3f2c44041cb4d6da37183245b9a0e (diff)
Use NXM link key and expiration in file list API call when available
Diffstat (limited to 'src')
-rw-r--r--src/downloadmanager.cpp10
-rw-r--r--src/nexusinterface.cpp7
2 files changed, 14 insertions, 3 deletions
diff --git a/src/downloadmanager.cpp b/src/downloadmanager.cpp
index 32d05230..1db8b0eb 100644
--- a/src/downloadmanager.cpp
+++ b/src/downloadmanager.cpp
@@ -575,7 +575,13 @@ void DownloadManager::addNXMDownload(const QString &url)
emit update(-1);
emit downloadAdded();
- m_RequestIDs.insert(m_NexusInterface->requestFileInfo(nxmInfo.game(), nxmInfo.modId(), nxmInfo.fileId(), this, nxmInfo.fileId(), ""));
+ ModRepositoryFileInfo *info = new ModRepositoryFileInfo();
+
+ info->nexusKey = nxmInfo.key();
+ info->nexusExpires = nxmInfo.expires();
+
+ QObject *test = info;
+ m_RequestIDs.insert(m_NexusInterface->requestFileInfo(nxmInfo.game(), nxmInfo.modId(), nxmInfo.fileId(), this, qVariantFromValue(test), ""));
}
@@ -1520,7 +1526,7 @@ void DownloadManager::nxmFileInfoAvailable(QString gameName, int modID, int file
m_RequestIDs.erase(idIter);
}
- ModRepositoryFileInfo *info = new ModRepositoryFileInfo();
+ ModRepositoryFileInfo *info = qobject_cast<ModRepositoryFileInfo*>(qvariant_cast<QObject*>(userData));
QVariantMap result = resultData.toMap();
info->name = result["name"].toString();
diff --git a/src/nexusinterface.cpp b/src/nexusinterface.cpp
index 16f96154..1d6d2015 100644
--- a/src/nexusinterface.cpp
+++ b/src/nexusinterface.cpp
@@ -532,7 +532,12 @@ void NexusInterface::nextRequest()
url = QString("%1/games/%2/mods/%3/files/%4").arg(info.m_URL).arg(info.m_GameName).arg(info.m_ModID).arg(info.m_FileID);
} break;
case NXMRequestInfo::TYPE_DOWNLOADURL: {
- url = QString("%1/games/%2/mods/%3/files/%4/download_link").arg(info.m_URL).arg(info.m_GameName).arg(info.m_ModID).arg(info.m_FileID);
+ ModRepositoryFileInfo *fileInfo = qobject_cast<ModRepositoryFileInfo*>(qvariant_cast<QObject*>(info.m_UserData));
+ if (!fileInfo->nexusKey.isEmpty() && fileInfo->nexusExpires)
+ url = QString("%1/games/%2/mods/%3/files/%4/download_link?key=%5&expires=%6")
+ .arg(info.m_URL).arg(info.m_GameName).arg(info.m_ModID).arg(info.m_FileID).arg(fileInfo->nexusKey).arg(fileInfo->nexusExpires);
+ else
+ url = QString("%1/games/%2/mods/%3/files/%4/download_link").arg(info.m_URL).arg(info.m_GameName).arg(info.m_ModID).arg(info.m_FileID);
} break;
case NXMRequestInfo::TYPE_TOGGLEENDORSEMENT: {
QString endorse = info.m_Endorse ? "endorse" : "abstain";