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:
		@@ -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;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user