diff options
author | flow <thiagodonato300@gmail.com> | 2022-03-24 18:39:53 -0300 |
---|---|---|
committer | flow <thiagodonato300@gmail.com> | 2022-03-24 19:31:11 -0300 |
commit | d00c320c0041421e67d5d8ec6deb4427d0f8020c (patch) | |
tree | 00f8bcdb15f5f98e969617b369cf15eb5847ef9f /launcher/modplatform/helpers | |
parent | e13ca94061c7fdfec9bd18b982b56a8d5a1f80b0 (diff) | |
download | PrismLauncher-d00c320c0041421e67d5d8ec6deb4427d0f8020c.tar.gz PrismLauncher-d00c320c0041421e67d5d8ec6deb4427d0f8020c.tar.bz2 PrismLauncher-d00c320c0041421e67d5d8ec6deb4427d0f8020c.zip |
optimize: Improve mod versions request to Modrinth
This uses more arguments in the GET request for mod versions on the
Modrinth API, filtering what versions can be returned, decreasing load
on Modrinth servers and improving a little the time it takes for the versions to be
available to the user.
This also removes the now unneeded check on correct modloaders in
ModrinthPackIndex, since it is now filtered by the Modrinth server.
Lastly, this adds a couple of helper functions in ModModel.
Diffstat (limited to 'launcher/modplatform/helpers')
-rw-r--r-- | launcher/modplatform/helpers/NetworkModAPI.cpp | 10 | ||||
-rw-r--r-- | launcher/modplatform/helpers/NetworkModAPI.h | 4 |
2 files changed, 7 insertions, 7 deletions
diff --git a/launcher/modplatform/helpers/NetworkModAPI.cpp b/launcher/modplatform/helpers/NetworkModAPI.cpp index 25c7b9fd..6829b837 100644 --- a/launcher/modplatform/helpers/NetworkModAPI.cpp +++ b/launcher/modplatform/helpers/NetworkModAPI.cpp @@ -31,14 +31,14 @@ void NetworkModAPI::searchMods(CallerType* caller, SearchArgs&& args) const netJob->start(); } -void NetworkModAPI::getVersions(CallerType* caller, const QString& addonId) const +void NetworkModAPI::getVersions(CallerType* caller, VersionSearchArgs&& args) const { - auto netJob = new NetJob(QString("%1::ModVersions(%2)").arg(caller->debugName()).arg(addonId), APPLICATION->network()); + auto netJob = new NetJob(QString("%1::ModVersions(%2)").arg(caller->debugName()).arg(args.addonId), APPLICATION->network()); auto response = new QByteArray(); - netJob->addNetAction(Net::Download::makeByteArray(getVersionsURL(addonId), response)); + netJob->addNetAction(Net::Download::makeByteArray(getVersionsURL(args), response)); - QObject::connect(netJob, &NetJob::succeeded, caller, [response, caller, addonId] { + QObject::connect(netJob, &NetJob::succeeded, caller, [response, caller, args] { QJsonParseError parse_error{}; QJsonDocument doc = QJsonDocument::fromJson(*response, &parse_error); if (parse_error.error != QJsonParseError::NoError) { @@ -48,7 +48,7 @@ void NetworkModAPI::getVersions(CallerType* caller, const QString& addonId) cons return; } - caller->versionRequestSucceeded(doc, addonId); + caller->versionRequestSucceeded(doc, args.addonId); }); QObject::connect(netJob, &NetJob::finished, caller, [response, netJob] { diff --git a/launcher/modplatform/helpers/NetworkModAPI.h b/launcher/modplatform/helpers/NetworkModAPI.h index 4d3f7005..000620b2 100644 --- a/launcher/modplatform/helpers/NetworkModAPI.h +++ b/launcher/modplatform/helpers/NetworkModAPI.h @@ -5,9 +5,9 @@ class NetworkModAPI : public ModAPI { public: void searchMods(CallerType* caller, SearchArgs&& args) const override; - void getVersions(CallerType* caller, const QString& addonId) const override; + void getVersions(CallerType* caller, VersionSearchArgs&& args) const override; protected: virtual auto getModSearchURL(SearchArgs& args) const -> QString = 0; - virtual auto getVersionsURL(const QString& addonId) const -> QString = 0; + virtual auto getVersionsURL(VersionSearchArgs& args) const -> QString = 0; }; |