NOISSUE Handle Modrinth files with multiple downloads

This commit is contained in:
arthomnix 2023-02-05 17:36:44 +00:00
parent bea3251d9c
commit 496440cbc8
2 changed files with 15 additions and 1 deletions

View File

@ -88,6 +88,7 @@ void InstanceExportTask::executeTask()
m_responses.append(HashLookupData{
QFileInfo(file),
hash,
QByteArray()
});
@ -117,7 +118,19 @@ void InstanceExportTask::lookupSucceeded()
try {
auto document = Json::requireDocument(data.response);
auto object = Json::requireObject(document);
auto file = Json::requireIsArrayOf<QJsonObject>(object, "files").first();
auto files = Json::requireIsArrayOf<QJsonObject>(object, "files");
QJsonObject file;
for (const auto &fileJson : files) {
auto hashes = Json::requireObject(fileJson, "hashes");
QString sha512 = Json::requireString(hashes, "sha512");
if (sha512 == data.sha512) {
file = fileJson;
}
}
auto url = Json::requireString(file, "url");
auto hashes = Json::requireObject(file, "hashes");

View File

@ -38,6 +38,7 @@ struct ExportSettings
struct HashLookupData
{
QFileInfo fileInfo;
QString sha512;
QByteArray response;
};