feat: add verion_type / release_type to IndexedVersion

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
This commit is contained in:
Rachel Powers
2023-05-26 13:50:22 -07:00
parent f24211e8b5
commit c156034069
5 changed files with 93 additions and 3 deletions

View File

@ -109,8 +109,11 @@ void Modrinth::loadIndexedPackVersions(ModPlatform::IndexedPack& pack,
unsortedVersions.append(file);
}
auto orderSortPredicate = [](const ModPlatform::IndexedVersion& a, const ModPlatform::IndexedVersion& b) -> bool {
bool a_better_release = true;
if (a.verison_type.has_value() && b.verison_type.has_value())
a_better_release = a.verison_type.value() < b.verison_type.value();
// dates are in RFC 3339 format
return a.date > b.date;
return a.date > b.date && a_better_release;
};
std::sort(unsortedVersions.begin(), unsortedVersions.end(), orderSortPredicate);
pack.versions = unsortedVersions;
@ -138,6 +141,10 @@ auto Modrinth::loadIndexedPackVersion(QJsonObject& obj, QString preferred_hash_t
}
file.version = Json::requireString(obj, "name");
file.version_number = Json::requireString(obj, "version_number");
auto verison_type = ModPlatform::IndexedVersionType(Json::requireString(obj, "version_type"));
if (verison_type.isValid())
file.verison_type = verison_type;
file.changelog = Json::requireString(obj, "changelog");
auto files = Json::requireArray(obj, "files");