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
	 Sefa Eyeoglu
					Sefa Eyeoglu