use release tag for downloading latest github releases...

This commit is contained in:
Anthony Calosa
2024-10-25 17:24:48 +08:00
parent dcbd25d00e
commit 9897c85559
6 changed files with 55 additions and 4 deletions

View File

@@ -49,4 +49,28 @@ public class RSSReader {
} }
return message; return message;
} }
public static String getLatestReleaseTag() {
String tag = "";
try {
RssReader reader = new RssReader();
URL url = new URL("https://github.com/Card-Forge/forge/releases.atom");
InputStream inputStream = url.openStream();
List<Item> items = reader.read(inputStream).toList();
for (Item i : items) {
if (i.getLink().isPresent()) {
try {
String val = i.getLink().get();
tag = val.substring(val.lastIndexOf("forge"));
break;
} catch (Exception e) {
e.printStackTrace();
}
}
}
inputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
return tag;
}
} }

View File

@@ -639,6 +639,12 @@ public class Main extends ForgeAndroidApplication {
return new GitLogs().getLatest(buildDateOriginal, maxDate); return new GitLogs().getLatest(buildDateOriginal, maxDate);
} }
@Override
public String getReleaseTag() {
//android doesn't have release yet on github...
return "";
}
@Override @Override
public boolean openFile(String filename) { public boolean openFile(String filename) {
try { try {

View File

@@ -84,6 +84,11 @@ public class Main extends IOSApplication.Delegate {
return ""; return "";
} }
@Override
public String getReleaseTag() {
return "";
}
@Override @Override
public boolean openFile(final String filename) { public boolean openFile(final String filename) {
return new IOSFiles().local(filename).exists(); return new IOSFiles().local(filename).exists();

View File

@@ -56,6 +56,11 @@ public class Main {
return RSSReader.getCommitLog(buildDateOriginal, max); return RSSReader.getCommitLog(buildDateOriginal, max);
} }
@Override
public String getReleaseTag() {
return RSSReader.getLatestReleaseTag();
}
@Override @Override
public boolean openFile(String filename) { public boolean openFile(String filename) {
try { try {

View File

@@ -31,9 +31,19 @@ public class AssetsDownloader {
public static void checkForUpdates(boolean exited, Runnable runnable) { public static void checkForUpdates(boolean exited, Runnable runnable) {
if (exited) if (exited)
return; return;
final String versionString = Forge.getDeviceAdapter().getVersionString();
Forge.getSplashScreen().getProgressBar().setDescription("Checking for updates...");
if (versionString.contains("GIT")) {
if (!GuiBase.isAndroid()) {
run(runnable);
return;
}
}
//currently for desktop/mobile-dev release on github
String releaseTag = Forge.getDeviceAdapter().getReleaseTag();
final String packageSize = GuiBase.isAndroid() ? "160MB" : "270MB"; final String packageSize = GuiBase.isAndroid() ? "160MB" : "270MB";
final String apkSize = "12MB"; final String apkSize = "12MB";
final String versionString = Forge.getDeviceAdapter().getVersionString();
final boolean isSnapshots = versionString.contains("SNAPSHOT"); final boolean isSnapshots = versionString.contains("SNAPSHOT");
final String snapsURL = "https://downloads.cardforge.org/dailysnapshots/"; final String snapsURL = "https://downloads.cardforge.org/dailysnapshots/";
final String releaseURL = "https://releases.cardforge.org/forge/forge-gui-android/"; final String releaseURL = "https://releases.cardforge.org/forge/forge-gui-android/";
@@ -41,7 +51,6 @@ public class AssetsDownloader {
FileHandle assetsDir = Gdx.files.absolute(ForgeConstants.ASSETS_DIR); FileHandle assetsDir = Gdx.files.absolute(ForgeConstants.ASSETS_DIR);
FileHandle resDir = Gdx.files.absolute(ForgeConstants.RES_DIR); FileHandle resDir = Gdx.files.absolute(ForgeConstants.RES_DIR);
boolean mandatory = false; boolean mandatory = false;
Forge.getSplashScreen().getProgressBar().setDescription("Checking for updates...");
String message; String message;
boolean connectedToInternet = Forge.getDeviceAdapter().isConnectedToInternet(); boolean connectedToInternet = Forge.getDeviceAdapter().isConnectedToInternet();
@@ -55,8 +64,9 @@ public class AssetsDownloader {
filename = "forge-android-" + version + "-signed-aligned.apk"; filename = "forge-android-" + version + "-signed-aligned.apk";
installerURL = isSnapshots ? snapsURL + filename : releaseURL + version + "/" + filename; installerURL = isSnapshots ? snapsURL + filename : releaseURL + version + "/" + filename;
} else { } else {
filename = isSnapshots ? "forge-installer-" + version + ".jar" : "forge-gui-desktop-" + version + ".tar.bz2"; //current release on github is tar.bz2, update this to jar installer in the future...
String releaseBZ2URL = "https://github.com/Card-Forge/forge/releases/download/forge-" + version + "/"; filename = isSnapshots ? "forge-installer-" + version + ".jar" : releaseTag.replace("forge-", "forge-gui-desktop-") + ".tar.bz2";
String releaseBZ2URL = "https://github.com/Card-Forge/forge/releases/download/" + releaseTag + "/" + filename;
String snapsBZ2URL = "https://downloads.cardforge.org/dailysnapshots/"; String snapsBZ2URL = "https://downloads.cardforge.org/dailysnapshots/";
installerURL = isSnapshots ? snapsBZ2URL : releaseBZ2URL; installerURL = isSnapshots ? snapsBZ2URL : releaseBZ2URL;
} }

View File

@@ -15,6 +15,7 @@ public interface IDeviceAdapter {
String getDownloadsDir(); String getDownloadsDir();
String getVersionString(); String getVersionString();
String getLatestChanges(Date buildDateOriginal, Date maxDate); String getLatestChanges(Date buildDateOriginal, Date maxDate);
String getReleaseTag();
boolean openFile(String filename); boolean openFile(String filename);
void setLandscapeMode(boolean landscapeMode); void setLandscapeMode(boolean landscapeMode);
void preventSystemSleep(boolean preventSleep); void preventSystemSleep(boolean preventSleep);