aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorflow <flowlnlnln@gmail.com>2022-07-21 16:41:44 -0300
committerflow <flowlnlnln@gmail.com>2022-09-20 18:36:07 -0300
commit2246c3359bcd07d8bfab949d79a1e428a948f1b7 (patch)
tree2f70776cc96c713c63020ed64291659aa3ca13bd
parent242fb156a281ef188c9fd75969c5d70ba6f8c140 (diff)
downloadPrismLauncher-2246c3359bcd07d8bfab949d79a1e428a948f1b7.tar.gz
PrismLauncher-2246c3359bcd07d8bfab949d79a1e428a948f1b7.tar.bz2
PrismLauncher-2246c3359bcd07d8bfab949d79a1e428a948f1b7.zip
refactor: add `throw_on_blocked` arg to Flame file parse
Signed-off-by: flow <flowlnlnln@gmail.com>
-rw-r--r--launcher/modplatform/flame/PackManifest.cpp4
-rw-r--r--launcher/modplatform/flame/PackManifest.h2
2 files changed, 3 insertions, 3 deletions
diff --git a/launcher/modplatform/flame/PackManifest.cpp b/launcher/modplatform/flame/PackManifest.cpp
index 12a4b990..81395fcd 100644
--- a/launcher/modplatform/flame/PackManifest.cpp
+++ b/launcher/modplatform/flame/PackManifest.cpp
@@ -61,7 +61,7 @@ void Flame::loadManifest(Flame::Manifest& m, const QString& filepath)
loadManifestV1(m, obj);
}
-bool Flame::File::parseFromObject(const QJsonObject& obj)
+bool Flame::File::parseFromObject(const QJsonObject& obj, bool throw_on_blocked)
{
fileName = Json::requireString(obj, "fileName");
// This is a piece of a Flame project JSON pulled out into the file metadata (here) for convenience
@@ -91,7 +91,7 @@ bool Flame::File::parseFromObject(const QJsonObject& obj)
// may throw, if the project is blocked
QString rawUrl = Json::ensureString(obj, "downloadUrl");
url = QUrl(rawUrl, QUrl::TolerantMode);
- if (!url.isValid()) {
+ if (!url.isValid() && throw_on_blocked) {
throw JSONValidationError(QString("Invalid URL: %1").arg(rawUrl));
}
diff --git a/launcher/modplatform/flame/PackManifest.h b/launcher/modplatform/flame/PackManifest.h
index 677db1c3..a69e1321 100644
--- a/launcher/modplatform/flame/PackManifest.h
+++ b/launcher/modplatform/flame/PackManifest.h
@@ -46,7 +46,7 @@ namespace Flame
struct File
{
// NOTE: throws JSONValidationError
- bool parseFromObject(const QJsonObject& object);
+ bool parseFromObject(const QJsonObject& object, bool throw_on_blocked = true);
int projectId = 0;
int fileId = 0;