add curseforge modpack filter

Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
This commit is contained in:
Trial97
2024-10-02 01:06:45 +03:00
parent 44b4262f3c
commit dfe3cd849d
15 changed files with 242 additions and 75 deletions

View File

@ -25,6 +25,7 @@ class FlameAPI : public NetworkResourceAPI {
Task::Ptr getFiles(const QStringList& fileIds, std::shared_ptr<QByteArray> response) const;
Task::Ptr getFile(const QString& addonId, const QString& fileId, std::shared_ptr<QByteArray> response) const;
static Task::Ptr getCategories(std::shared_ptr<QByteArray> response, ModPlatform::ResourceType type);
static Task::Ptr getModCategories(std::shared_ptr<QByteArray> response);
static QList<ModPlatform::Category> loadModCategories(std::shared_ptr<QByteArray> response);
@ -46,6 +47,8 @@ class FlameAPI : public NetworkResourceAPI {
return 12;
case ModPlatform::ResourceType::SHADER_PACK:
return 6552;
case ModPlatform::ResourceType::MODPACK:
return 4471;
}
}
@ -82,8 +85,8 @@ class FlameAPI : public NetworkResourceAPI {
static const QString getModLoaderFilters(ModPlatform::ModLoaderTypes types) { return "[" + getModLoaderStrings(types).join(',') + "]"; }
private:
[[nodiscard]] std::optional<QString> getSearchURL(SearchArgs const& args) const override
public:
static std::optional<QString> getStaticSearchURL(SearchArgs const& args)
{
auto gameVersionStr =
args.versions.has_value() ? QString("gameVersion=%1").arg(args.versions.value().front().toString()) : QString();
@ -105,12 +108,14 @@ class FlameAPI : public NetworkResourceAPI {
get_arguments.append(gameVersionStr);
return "https://api.curseforge.com/v1/mods/search?gameId=432&" + get_arguments.join('&');
};
}
[[nodiscard]] std::optional<QString> getSearchURL(SearchArgs const& args) const override { return getStaticSearchURL(args); }
private:
[[nodiscard]] std::optional<QString> getInfoURL(QString const& id) const override
{
return QString("https://api.curseforge.com/v1/mods/%1").arg(id);
};
}
[[nodiscard]] std::optional<QString> getVersionsURL(VersionSearchArgs const& args) const override
{
@ -125,7 +130,7 @@ class FlameAPI : public NetworkResourceAPI {
url += QString("&modLoaderType=%1").arg(mappedModLoader);
}
return url;
};
}
[[nodiscard]] std::optional<QString> getDependencyURL(DependencySearchArgs const& args) const override
{
@ -137,5 +142,5 @@ class FlameAPI : public NetworkResourceAPI {
url += QString("&modLoaderType=%1").arg(mappedModLoader);
}
return url;
};
}
};