aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortimoreo <timo.oreo34@gmail.com>2022-01-31 17:18:11 +0100
committertimoreo <timo.oreo34@gmail.com>2022-01-31 17:18:11 +0100
commitaa2c27bf6984f9ea2d67411c0f28d802d40834af (patch)
treecd1c4989c94dbd2a57b7c8891bbc195a3a97de61
parentefc44c56a62def0242353dde9c84452690209465 (diff)
downloadPrismLauncher-aa2c27bf6984f9ea2d67411c0f28d802d40834af.tar.gz
PrismLauncher-aa2c27bf6984f9ea2d67411c0f28d802d40834af.tar.bz2
PrismLauncher-aa2c27bf6984f9ea2d67411c0f28d802d40834af.zip
Update to Modrinth API V2
-rw-r--r--launcher/modplatform/modrinth/ModrinthPackIndex.cpp6
-rw-r--r--launcher/ui/pages/modplatform/modrinth/ModrinthModel.cpp6
-rw-r--r--launcher/ui/pages/modplatform/modrinth/ModrinthPage.cpp4
3 files changed, 8 insertions, 8 deletions
diff --git a/launcher/modplatform/modrinth/ModrinthPackIndex.cpp b/launcher/modplatform/modrinth/ModrinthPackIndex.cpp
index a546eb7c..1a31e940 100644
--- a/launcher/modplatform/modrinth/ModrinthPackIndex.cpp
+++ b/launcher/modplatform/modrinth/ModrinthPackIndex.cpp
@@ -10,7 +10,7 @@
void Modrinth::loadIndexedPack(Modrinth::IndexedPack & pack, QJsonObject & obj)
{
- pack.addonId = Json::requireString(obj, "mod_id");
+ pack.addonId = Json::requireString(obj, "project_id");
pack.name = Json::requireString(obj, "title");
pack.websiteUrl = Json::ensureString(obj, "page_url", "");
pack.description = Json::ensureString(obj, "description", "");
@@ -20,7 +20,7 @@ void Modrinth::loadIndexedPack(Modrinth::IndexedPack & pack, QJsonObject & obj)
Modrinth::ModpackAuthor modAuthor;
modAuthor.name = Json::requireString(obj, "author");
- modAuthor.url = Json::requireString(obj, "author_url");
+ modAuthor.url = "https://modrinth.com/user/"+modAuthor.name;
pack.author = modAuthor;
}
@@ -33,7 +33,7 @@ void Modrinth::loadIndexedPackVersions(Modrinth::IndexedPack & pack, QJsonArray
for(auto versionIter: arr) {
auto obj = versionIter.toObject();
Modrinth::IndexedVersion file;
- file.addonId = Json::requireString(obj,"mod_id") ;
+ file.addonId = Json::requireString(obj,"project_id") ;
file.fileId = Json::requireString(obj, "id");
file.date = Json::requireString(obj, "date_published");
auto versionArray = Json::requireArray(obj, "game_versions");
diff --git a/launcher/ui/pages/modplatform/modrinth/ModrinthModel.cpp b/launcher/ui/pages/modplatform/modrinth/ModrinthModel.cpp
index 4f6a491e..71574156 100644
--- a/launcher/ui/pages/modplatform/modrinth/ModrinthModel.cpp
+++ b/launcher/ui/pages/modplatform/modrinth/ModrinthModel.cpp
@@ -157,7 +157,7 @@ void ListModel::fetchMore(const QModelIndex& parent)
}
performPaginatedSearch();
}
-const char* sorts[4]{"relevance","downloads","updated","newest"};
+const char* sorts[5]{"relevance","downloads","follows","updated","newest"};
void ListModel::performPaginatedSearch()
{
@@ -166,12 +166,12 @@ void ListModel::performPaginatedSearch()
bool hasFabric = !((MinecraftInstance *)((ModrinthPage *)parent())->m_instance)->getPackProfile()->getComponentVersion("net.fabricmc.fabric-loader").isEmpty();
auto netJob = new NetJob("Modrinth::Search", APPLICATION->network());
auto searchUrl = QString(
- "https://api.modrinth.com/api/v1/mod?"
+ "https://api.modrinth.com/v2/search?"
"offset=%1&"
"limit=25&"
"query=%2&"
"index=%3&"
- "filters=categories=\"%4\" AND versions=\"%5\""
+ "facets=[[\"categories:%4\"],[\"versions:%5\"],[\"project_type:mod\"]]"
)
.arg(nextSearchOffset)
.arg(currentSearchTerm)
diff --git a/launcher/ui/pages/modplatform/modrinth/ModrinthPage.cpp b/launcher/ui/pages/modplatform/modrinth/ModrinthPage.cpp
index 61912cd7..ee3c9e76 100644
--- a/launcher/ui/pages/modplatform/modrinth/ModrinthPage.cpp
+++ b/launcher/ui/pages/modplatform/modrinth/ModrinthPage.cpp
@@ -27,6 +27,7 @@ ModrinthPage::ModrinthPage(ModDownloadDialog *dialog, BaseInstance *instance)
// index is used to set the sorting with the modrinth api
ui->sortByBox->addItem(tr("Sort by Relevence"));
ui->sortByBox->addItem(tr("Sort by Downloads"));
+ ui->sortByBox->addItem(tr("Sort by Follows"));
ui->sortByBox->addItem(tr("Sort by last updated"));
ui->sortByBox->addItem(tr("Sort by newest"));
@@ -99,8 +100,7 @@ void ModrinthPage::onSelectionChanged(QModelIndex first, QModelIndex second)
auto netJob = new NetJob(QString("Modrinth::ModVersions(%1)").arg(current.name), APPLICATION->network());
std::shared_ptr<QByteArray> response = std::make_shared<QByteArray>();
QString addonId = current.addonId;
- addonId.remove(0,6);
- netJob->addNetAction(Net::Download::makeByteArray(QString("https://api.modrinth.com/api/v1/mod/%1/version").arg(addonId), response.get()));
+ netJob->addNetAction(Net::Download::makeByteArray(QString("https://api.modrinth.com/v2/project/%1/version").arg(addonId), response.get()));
QObject::connect(netJob, &NetJob::succeeded, this, [this, response, netJob]
{