revert: remove CurseForge workaround
We have been asked by CurseForge to remove this workaround as it violates their terms of service. This is just a partial revert, as the UI changes were otherwise unrelated. This reverts commit92e8aaf36f
, reversing changes made to88a93945d4
.
This commit is contained in:
parent
7d91db607f
commit
cb69869836
@ -31,21 +31,7 @@ void Flame::FileResolvingTask::netJobFinished()
|
|||||||
for (auto& bytes : results) {
|
for (auto& bytes : results) {
|
||||||
auto& out = m_toProcess.files[index];
|
auto& out = m_toProcess.files[index];
|
||||||
try {
|
try {
|
||||||
bool fail = (!out.parseFromBytes(bytes));
|
failed &= (!out.parseFromBytes(bytes));
|
||||||
if(fail){
|
|
||||||
//failed :( probably disabled mod, try to add to the list
|
|
||||||
auto doc = Json::requireDocument(bytes);
|
|
||||||
if (!doc.isObject()) {
|
|
||||||
throw JSONValidationError(QString("data is not an object? that's not supposed to happen"));
|
|
||||||
}
|
|
||||||
auto obj = Json::ensureObject(doc.object(), "data");
|
|
||||||
//FIXME : HACK, MAY NOT WORK FOR LONG
|
|
||||||
out.url = QUrl(QString("https://media.forgecdn.net/files/%1/%2/%3")
|
|
||||||
.arg(QString::number(QString::number(out.fileId).leftRef(4).toInt())
|
|
||||||
,QString::number(QString::number(out.fileId).rightRef(3).toInt())
|
|
||||||
,QUrl::toPercentEncoding(out.fileName)), QUrl::TolerantMode);
|
|
||||||
}
|
|
||||||
failed &= fail;
|
|
||||||
} catch (const JSONValidationError& e) {
|
} catch (const JSONValidationError& e) {
|
||||||
qCritical() << "Resolving of" << out.projectId << out.fileId << "failed because of a parsing error:";
|
qCritical() << "Resolving of" << out.projectId << out.fileId << "failed because of a parsing error:";
|
||||||
qCritical() << e.cause();
|
qCritical() << e.cause();
|
||||||
|
@ -56,15 +56,8 @@ void FlameMod::loadIndexedPackVersions(ModPlatform::IndexedPack& pack,
|
|||||||
file.fileId = Json::requireInteger(obj, "id");
|
file.fileId = Json::requireInteger(obj, "id");
|
||||||
file.date = Json::requireString(obj, "fileDate");
|
file.date = Json::requireString(obj, "fileDate");
|
||||||
file.version = Json::requireString(obj, "displayName");
|
file.version = Json::requireString(obj, "displayName");
|
||||||
|
file.downloadUrl = Json::requireString(obj, "downloadUrl");
|
||||||
file.fileName = Json::requireString(obj, "fileName");
|
file.fileName = Json::requireString(obj, "fileName");
|
||||||
file.downloadUrl = Json::ensureString(obj, "downloadUrl", "");
|
|
||||||
if(file.downloadUrl.isEmpty()){
|
|
||||||
//FIXME : HACK, MAY NOT WORK FOR LONG
|
|
||||||
file.downloadUrl = QString("https://media.forgecdn.net/files/%1/%2/%3")
|
|
||||||
.arg(QString::number(QString::number(file.fileId.toInt()).leftRef(4).toInt())
|
|
||||||
,QString::number(QString::number(file.fileId.toInt()).rightRef(3).toInt())
|
|
||||||
,QUrl::toPercentEncoding(file.fileName));
|
|
||||||
}
|
|
||||||
|
|
||||||
unsortedVersions.append(file);
|
unsortedVersions.append(file);
|
||||||
}
|
}
|
||||||
|
@ -71,6 +71,11 @@ bool Flame::File::parseFromBytes(const QByteArray& bytes)
|
|||||||
|
|
||||||
fileName = Json::requireString(obj, "fileName");
|
fileName = Json::requireString(obj, "fileName");
|
||||||
|
|
||||||
|
QString rawUrl = Json::requireString(obj, "downloadUrl");
|
||||||
|
url = QUrl(rawUrl, QUrl::TolerantMode);
|
||||||
|
if (!url.isValid()) {
|
||||||
|
throw JSONValidationError(QString("Invalid URL: %1").arg(rawUrl));
|
||||||
|
}
|
||||||
// This is a piece of a Flame project JSON pulled out into the file metadata (here) for convenience
|
// This is a piece of a Flame project JSON pulled out into the file metadata (here) for convenience
|
||||||
// It is also optional
|
// It is also optional
|
||||||
type = File::Type::SingleFile;
|
type = File::Type::SingleFile;
|
||||||
@ -82,17 +87,7 @@ bool Flame::File::parseFromBytes(const QByteArray& bytes)
|
|||||||
// this is probably a mod, dunno what else could modpacks download
|
// this is probably a mod, dunno what else could modpacks download
|
||||||
targetFolder = "mods";
|
targetFolder = "mods";
|
||||||
}
|
}
|
||||||
QString rawUrl = Json::ensureString(obj, "downloadUrl");
|
|
||||||
|
|
||||||
if(rawUrl.isEmpty()){
|
|
||||||
//either there somehow is an emtpy string as a link, or it's null either way it's invalid
|
|
||||||
//soft failing
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
url = QUrl(rawUrl, QUrl::TolerantMode);
|
|
||||||
if (!url.isValid()) {
|
|
||||||
throw JSONValidationError(QString("Invalid URL: %1").arg(rawUrl));
|
|
||||||
}
|
|
||||||
resolved = true;
|
resolved = true;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user