From 09a68079bb9ac083bd060b1e75bf329917a7d888 Mon Sep 17 00:00:00 2001 From: LostDragonist Date: Wed, 6 Mar 2019 18:46:15 -0600 Subject: Assume an empty release list from GitHub means some kind of error occurred --- src/selfupdater.cpp | 59 +++++++++++++++++++++++++++++------------------------ 1 file changed, 32 insertions(+), 27 deletions(-) (limited to 'src/selfupdater.cpp') diff --git a/src/selfupdater.cpp b/src/selfupdater.cpp index 37700e08..4c0f9a8d 100644 --- a/src/selfupdater.cpp +++ b/src/selfupdater.cpp @@ -126,37 +126,42 @@ void SelfUpdater::testForUpdate() // TODO: if prereleases are disabled we could just request the latest release // directly try { - m_GitHub.releases(GitHub::Repository("Modorganizer2", "modorganizer"), - [this](const QJsonArray &releases) { - QJsonObject newest; - for (const QJsonValue &releaseVal : releases) { - QJsonObject release = releaseVal.toObject(); - if (!release["draft"].toBool() && (Settings::instance().usePrereleases() - || !release["prerelease"].toBool())) { - if (newest.empty() || (VersionInfo(release["tag_name"].toString()) - > VersionInfo(newest["tag_name"].toString()))) { - newest = release; + m_GitHub.releases(GitHub::Repository("Modorganizer2", "modorganizer"), + [this](const QJsonArray &releases) { + if (releases.isEmpty()) { + qDebug("Unable to connect to github.com to check version"); + return; + } + + QJsonObject newest; + for (const QJsonValue &releaseVal : releases) { + QJsonObject release = releaseVal.toObject(); + if (!release["draft"].toBool() && (Settings::instance().usePrereleases() + || !release["prerelease"].toBool())) { + if (newest.empty() || (VersionInfo(release["tag_name"].toString()) + > VersionInfo(newest["tag_name"].toString()))) { + newest = release; + } } } - } - if (!newest.empty()) { - VersionInfo newestVer(newest["tag_name"].toString()); - if (newestVer > this->m_MOVersion) { - m_UpdateCandidate = newest; - qDebug("update available: %s -> %s", - qUtf8Printable(this->m_MOVersion.displayString(3)), - qUtf8Printable(newestVer.displayString(3))); - emit updateAvailable(); - } else if (newestVer < this->m_MOVersion) { - // this could happen if the user switches from using prereleases to - // stable builds. Should we downgrade? - qDebug("This version is newer than the latest released one: %s -> %s", - qUtf8Printable(this->m_MOVersion.displayString(3)), - qUtf8Printable(newestVer.displayString(3))); + if (!newest.empty()) { + VersionInfo newestVer(newest["tag_name"].toString()); + if (newestVer > this->m_MOVersion) { + m_UpdateCandidate = newest; + qDebug("update available: %s -> %s", + qUtf8Printable(this->m_MOVersion.displayString(3)), + qUtf8Printable(newestVer.displayString(3))); + emit updateAvailable(); + } else if (newestVer < this->m_MOVersion) { + // this could happen if the user switches from using prereleases to + // stable builds. Should we downgrade? + qDebug("This version is newer than the latest released one: %s -> %s", + qUtf8Printable(this->m_MOVersion.displayString(3)), + qUtf8Printable(newestVer.displayString(3))); + } } - } - }); + }); } //Catch all is bad by design, should be improved catch (...) { -- cgit v1.3.1