the updater now uses gitea
This commit is contained in:
parent
3f6eeece7d
commit
38421599a3
|
@ -44,16 +44,16 @@ import javafx.application.Platform;
|
|||
public class UpdateController implements Runnable {
|
||||
|
||||
private MainWindowController mainWindowController;
|
||||
private String buildNumber;
|
||||
private int buildNumber;
|
||||
private int updateBuildNumber; // tag_name from gitea
|
||||
private String apiOutput;
|
||||
private String updateBuildNumber; // tag_name from Github
|
||||
// private String updateName;
|
||||
// private String updateChanges;
|
||||
@SuppressWarnings("unused")
|
||||
private String updateName;
|
||||
@SuppressWarnings("unused")
|
||||
private String updateChanges;
|
||||
private String browserDownloadUrl; // update download link
|
||||
private String githubApiRelease = "https://api.github.com/repos/Seil0/cemu_UI/releases/latest";
|
||||
private String githubApiBeta = "https://api.github.com/repos/Seil0/cemu_UI/releases";
|
||||
|
||||
private URL githubApiUrl;
|
||||
private String giteaApiRelease = "https://git.mosad.xyz/api/v1/repos/Seil0/cemu_UI/releases";
|
||||
private URL giteaApiUrl;
|
||||
private boolean useBeta;
|
||||
private static final Logger LOGGER = LogManager.getLogger(UpdateController.class.getName());
|
||||
|
||||
|
@ -62,7 +62,7 @@ public class UpdateController implements Runnable {
|
|||
*/
|
||||
public UpdateController(MainWindowController mwc, String buildNumber, boolean useBeta) {
|
||||
mainWindowController = mwc;
|
||||
this.buildNumber = buildNumber;
|
||||
this.buildNumber = Integer.parseInt(buildNumber);
|
||||
this.useBeta = useBeta;
|
||||
}
|
||||
|
||||
|
@ -74,15 +74,9 @@ public class UpdateController implements Runnable {
|
|||
});
|
||||
|
||||
try {
|
||||
giteaApiUrl = new URL(giteaApiRelease);
|
||||
|
||||
if (useBeta) {
|
||||
githubApiUrl = new URL(githubApiBeta);
|
||||
} else {
|
||||
githubApiUrl = new URL(githubApiRelease);
|
||||
}
|
||||
|
||||
// URL githubApiUrl = new URL(githubApiRelease);
|
||||
BufferedReader ina = new BufferedReader(new InputStreamReader(githubApiUrl.openStream()));
|
||||
BufferedReader ina = new BufferedReader(new InputStreamReader(giteaApiUrl.openStream()));
|
||||
apiOutput = ina.readLine();
|
||||
ina.close();
|
||||
} catch (IOException e) {
|
||||
|
@ -91,40 +85,31 @@ public class UpdateController implements Runnable {
|
|||
});
|
||||
}
|
||||
|
||||
if (useBeta) {
|
||||
JsonArray objectArray = Json.parse("{\"items\": " + apiOutput + "}").asObject().get("items").asArray();
|
||||
JsonValue object = objectArray.get(0);
|
||||
JsonArray objectAssets = object.asObject().get("assets").asArray();
|
||||
|
||||
updateBuildNumber = object.asObject().getString("tag_name", "");
|
||||
// updateName = object.asObject().getString("name", "");
|
||||
// updateChanges = object.asObject().getString("body", "");
|
||||
|
||||
for (JsonValue asset : objectAssets) {
|
||||
browserDownloadUrl = asset.asObject().getString("browser_download_url", "");
|
||||
}
|
||||
|
||||
} else {
|
||||
JsonObject object = Json.parse(apiOutput).asObject();
|
||||
JsonArray objectAssets = Json.parse(apiOutput).asObject().get("assets").asArray();
|
||||
|
||||
updateBuildNumber = object.getString("tag_name", "");
|
||||
// updateName = object.getString("name", "");
|
||||
// updateChanges = object.getString("body", "");
|
||||
for (JsonValue asset : objectAssets) {
|
||||
browserDownloadUrl = asset.asObject().getString("browser_download_url", "");
|
||||
JsonValue object = objectArray.get(0).asObject(); // set to the latest release as default
|
||||
JsonObject objectAsset = object.asObject().get("assets").asArray().get(0).asObject();
|
||||
|
||||
for(JsonValue objectIt : objectArray) {
|
||||
// TODO note this will download still the pre-release if there's a more recent stable version
|
||||
if(objectIt.asObject().getBoolean("prerelease", false) == useBeta) {
|
||||
// we found the needed release either beta or not
|
||||
object = objectIt;
|
||||
objectAsset = objectIt.asObject().get("assets").asArray().get(0).asObject();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
updateBuildNumber = Integer.parseInt(object.asObject().getString("tag_name", ""));
|
||||
updateName = object.asObject().getString("name", "");
|
||||
updateChanges = object.asObject().getString("body", "");
|
||||
|
||||
LOGGER.info("Build: " + buildNumber + ", Update: " + updateBuildNumber);
|
||||
|
||||
// Compares the program BuildNumber with the current BuildNumber if program
|
||||
// BuildNumber < current BuildNumber then perform a update
|
||||
int iversion = Integer.parseInt(buildNumber);
|
||||
int iaktVersion = Integer.parseInt(updateBuildNumber.replace(".", ""));
|
||||
|
||||
if (iversion >= iaktVersion) {
|
||||
/**
|
||||
* Compare the program BuildNumber with the current BuildNumber
|
||||
* if buildNumber < updateBuildNumber then perform a update
|
||||
*/
|
||||
if (buildNumber >= updateBuildNumber) {
|
||||
Platform.runLater(() -> {
|
||||
mainWindowController.getUpdateBtn().setText(mainWindowController.getBundle().getString("updateBtnNoUpdateAvailable"));
|
||||
});
|
||||
|
@ -134,6 +119,7 @@ public class UpdateController implements Runnable {
|
|||
mainWindowController.getUpdateBtn().setText(mainWindowController.getBundle().getString("updateBtnUpdateAvailable"));
|
||||
});
|
||||
LOGGER.info("update available");
|
||||
browserDownloadUrl = objectAsset.getString("browser_download_url", "");
|
||||
LOGGER.info("download link: " + browserDownloadUrl);
|
||||
try {
|
||||
// open new Http connection, ProgressMonitorInputStream for downloading the data
|
||||
|
@ -148,7 +134,7 @@ public class UpdateController implements Runnable {
|
|||
org.apache.commons.io.FileUtils.copyFile(new File("cemu_UI_update.jar"), new File("cemu_UI.jar"));
|
||||
org.apache.commons.io.FileUtils.deleteQuietly(new File("cemu_UI_update.jar")); // delete update
|
||||
new ProcessBuilder("java", "-jar", "cemu_UI.jar").start(); // start the new application
|
||||
System.exit(0); // finishes itself
|
||||
System.exit(0); // close the current application
|
||||
} catch (IOException e) {
|
||||
Platform.runLater(() -> {
|
||||
LOGGER.info("could not download update files", e);
|
||||
|
|
|
@ -18,10 +18,10 @@ fullscreenToggleBtn = start game in fullscreen
|
|||
cemu_UISettingsLbl = cemu_UI Settings
|
||||
cemuDirectoryLbl = cemu directory
|
||||
romDirectoryLbl = ROM directory
|
||||
mainColorLbl = main color
|
||||
languageLbl = language
|
||||
updateLbl = updates
|
||||
branchLbl = branch
|
||||
mainColorLbl = primary color
|
||||
languageLbl = Language
|
||||
updateLbl = Updates
|
||||
branchLbl = Branch
|
||||
cemuSettingsLbl = cemu Settings
|
||||
licensesLbl = Licenses
|
||||
|
||||
|
|
Loading…
Reference in New Issue