Merge pull request #5058 from arthomnix/feature/mrpack_export

NOISSUE Handle Modrinth files with multiple downloads
This commit is contained in:
Petr Mrázek 2023-02-05 19:16:42 +01:00 committed by GitHub
commit f9c2f818fe
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
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;
};