diff options
| author | Silarn <jrim@rimpo.org> | 2019-01-31 23:19:16 -0600 |
|---|---|---|
| committer | Silarn <jrim@rimpo.org> | 2019-02-18 21:29:27 -0600 |
| commit | 7f56407b916f6ca204e72f25c01965441e0228b1 (patch) | |
| tree | 851c0c605678efbdf7dc397b3cc802d613e3a906 | |
| parent | d08b836265c3f2c44041cb4d6da37183245b9a0e (diff) | |
Use NXM link key and expiration in file list API call when available
| -rw-r--r-- | src/downloadmanager.cpp | 10 | ||||
| -rw-r--r-- | src/nexusinterface.cpp | 7 |
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"; |
