Skip to content

Commit

Permalink
check for new version
Browse files Browse the repository at this point in the history
  • Loading branch information
RikudouSage committed Sep 4, 2020
1 parent 4f1a678 commit 7eca679
Show file tree
Hide file tree
Showing 4 changed files with 64 additions and 0 deletions.
7 changes: 7 additions & 0 deletions main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,20 @@
#include "websiteparser.h"
#include "androidprojectmodifier.h"
#include "coloredstring.h"
#include "newversionchecker.h"

int main(int argc, char *argv[])
{
InputOutput io;
try {
QCoreApplication app(argc, argv);

NewVersionChecker newVersionChecker;

if (newVersionChecker.isNewVersionAvailable()) {
io.writeError(ColoredString("<green>New version available at https://github.com/RikudouSage/PwaToTwa/releases/latest</green>"));
}

if (app.arguments().count() < 4 || app.arguments().contains("--help")) {
const auto binaryName = app.arguments().at(0);

Expand Down
33 changes: 33 additions & 0 deletions newversionchecker.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
#include "newversionchecker.h"

NewVersionChecker::NewVersionChecker()
{

}

bool NewVersionChecker::isNewVersionAvailable()
{
return latestVersion() > currentVersion();
}

QVersionNumber NewVersionChecker::currentVersion()
{
return QVersionNumber::fromString("0.0.14");
}

QVersionNumber NewVersionChecker::latestVersion()
{
QNetworkAccessManager manager;
QNetworkRequest request(QUrl("https://github.com/RikudouSage/PwaToTwa/releases/latest"));
QEventLoop loop;

QObject::connect(&manager, &QNetworkAccessManager::finished, &loop, &QEventLoop::quit);

auto reply = manager.get(request);
loop.exec();

auto locationHeader = reply->header(QNetworkRequest::KnownHeaders::LocationHeader);
delete reply;

return QVersionNumber::fromString(locationHeader.toUrl().path().toUtf8().split('/').last().replace('v', ""));
}
22 changes: 22 additions & 0 deletions newversionchecker.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
#ifndef NEWVERSIONCHECKER_H
#define NEWVERSIONCHECKER_H

#include <QVersionNumber>
#include <QNetworkAccessManager>
#include <QNetworkRequest>
#include <QEventLoop>
#include <QObject>
#include <QNetworkReply>

class NewVersionChecker
{
public:
NewVersionChecker();
bool isNewVersionAvailable();

private:
QVersionNumber currentVersion();
QVersionNumber latestVersion();
};

#endif // NEWVERSIONCHECKER_H
2 changes: 2 additions & 0 deletions pwa-to-twa.pro
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ SOURCES += \
githelper.cpp \
inputoutput.cpp \
main.cpp \
newversionchecker.cpp \
websiteparser.cpp

# Default rules for deployment.
Expand All @@ -40,4 +41,5 @@ HEADERS += \
coloredstring.h \
githelper.h \
inputoutput.h \
newversionchecker.h \
websiteparser.h

0 comments on commit 7eca679

Please sign in to comment.