aboutsummaryrefslogtreecommitdiff
path: root/launcher/modplatform/flame/FlameAPI.h
diff options
context:
space:
mode:
Diffstat (limited to 'launcher/modplatform/flame/FlameAPI.h')
-rw-r--r--launcher/modplatform/flame/FlameAPI.h32
1 files changed, 26 insertions, 6 deletions
diff --git a/launcher/modplatform/flame/FlameAPI.h b/launcher/modplatform/flame/FlameAPI.h
index ce02df65..61628e60 100644
--- a/launcher/modplatform/flame/FlameAPI.h
+++ b/launcher/modplatform/flame/FlameAPI.h
@@ -4,32 +4,52 @@
class FlameAPI : public NetworkModAPI {
private:
+ inline auto getSortFieldInt(QString sortString) const -> int
+ {
+ return sortString == "Featured" ? 1
+ : sortString == "Popularity" ? 2
+ : sortString == "LastUpdated" ? 3
+ : sortString == "Name" ? 4
+ : sortString == "Author" ? 5
+ : sortString == "TotalDownloads" ? 6
+ : sortString == "Category" ? 7
+ : sortString == "GameVersion" ? 8
+ : 1;
+ }
+
+ private:
inline auto getModSearchURL(SearchArgs& args) const -> QString override
{
auto gameVersionStr = args.versions.size() != 0 ? QString("gameVersion=%1").arg(args.versions.front().toString()) : QString();
return QString(
- "https://addons-ecs.forgesvc.net/api/v2/addon/search?"
+ "https://api.curseforge.com/v1/mods/search?"
"gameId=432&"
- "categoryId=0&"
- "sectionId=6&"
+ "classId=6&"
"index=%1&"
"pageSize=25&"
"searchFilter=%2&"
- "sort=%3&"
+ "sortField=%3&"
+ "sortOrder=desc&"
"modLoaderType=%4&"
"%5")
.arg(args.offset)
.arg(args.search)
- .arg(args.sorting)
+ .arg(getSortFieldInt(args.sorting))
.arg(getMappedModLoader(args.mod_loader))
.arg(gameVersionStr);
};
inline auto getVersionsURL(VersionSearchArgs& args) const -> QString override
{
- return QString("https://addons-ecs.forgesvc.net/api/v2/addon/%1/files").arg(args.addonId);
+ QString gameVersionQuery = args.mcVersions.size() == 1 ? QString("gameVersion=%1&").arg(args.mcVersions.front().toString()) : "";
+ QString modLoaderQuery = QString("modLoaderType=%1&").arg(getMappedModLoader(args.loader));
+
+ return QString("https://api.curseforge.com/v1/mods/%1/files?pageSize=10000&%2%3")
+ .arg(args.addonId)
+ .arg(gameVersionQuery)
+ .arg(modLoaderQuery);
};
public: