From 065e63f27caa7ec1cb42815d0ee5e4bd25a8aeda Mon Sep 17 00:00:00 2001 From: William JCM Date: Thu, 2 Dec 2021 20:37:47 +0100 Subject: [PATCH] SaveTool: skip prereleases in update check. --- src/SaveTool/SaveTool.cpp | 41 ++++++++++++++++++++++++--------------- 1 file changed, 25 insertions(+), 16 deletions(-) diff --git a/src/SaveTool/SaveTool.cpp b/src/SaveTool/SaveTool.cpp index d9d6599..e21a3b0 100644 --- a/src/SaveTool/SaveTool.cpp +++ b/src/SaveTool/SaveTool.cpp @@ -402,22 +402,32 @@ void SaveTool::updateCheckEvent(SDL_Event& event) { }; static const Version current_ver{SAVETOOL_VERSION}; - Version latest_ver{response[0]["tag_name"]}; - if(latest_ver > current_ver || (latest_ver == current_ver && Utility::String::endsWith(SAVETOOL_VERSION, "-pre"))) { - _queue.addToast(Toast::Type::Warning, "Your version is out of date.\nCheck the settings for more information.", - std::chrono::milliseconds{5000}); - _updateAvailable = true; - _latestVersion = Utility::formatString("{}.{}.{}", latest_ver.major, latest_ver.minor, latest_ver.patch); - _releaseLink = response[0]["html_url"]; - _downloadLink = response[0]["assets"][0]["browser_download_url"]; - } - else if(latest_ver == current_ver) { - _queue.addToast(Toast::Type::Success, "The application is already up to date."); - } - else if(current_ver > latest_ver) { - _queue.addToast(Toast::Type::Warning, "Your version is more recent than the latest one in the repo. How???"); + for(auto& release : response) { + if(release["prerelease"] == true) { + continue; + } + + Version latest_ver{release["tag_name"]}; + + if(latest_ver > current_ver || (latest_ver == current_ver && Utility::String::endsWith(SAVETOOL_VERSION, "-pre"))) { + _queue.addToast(Toast::Type::Warning, "Your version is out of date.\nCheck the settings for more information.", + std::chrono::milliseconds{5000}); + _updateAvailable = true; + _latestVersion = Utility::formatString("{}.{}.{}", latest_ver.major, latest_ver.minor, latest_ver.patch); + _releaseLink = response[0]["html_url"]; + _downloadLink = response[0]["assets"][0]["browser_download_url"]; + } + else if(latest_ver == current_ver) { + _queue.addToast(Toast::Type::Success, "The application is already up to date."); + } + else if(current_ver > latest_ver) { + _queue.addToast(Toast::Type::Warning, "Your version is more recent than the latest one in the repo. How???"); + } + + break; } + } void SaveTool::initialiseConfiguration() { @@ -762,8 +772,7 @@ void SaveTool::checkGameState() { } void SaveTool::checkForUpdates() { - cpr::Response r = cpr::Get(cpr::Url{"https://williamjcm.ovh/git/api/v1/repos/williamjcm/MassBuilderSaveTool/releases"}, - cpr::Parameters{{"limit", "1"}}, cpr::Timeout{10000}); + cpr::Response r = cpr::Get(cpr::Url{"https://williamjcm.ovh/git/api/v1/repos/williamjcm/MassBuilderSaveTool/releases"}, cpr::Timeout{10000}); SDL_Event event; SDL_zero(event);